/* 西文全部本地：Archivo 与 Spline Mono 在吊牌项目里，跨项目相对引用。
   中文两款：思源黑体做门户与夜读，思源宋体做日报与杂志——新闻这一类
   宋体标题是真实存在的版面语言，不是装饰，所以两款都要。 */
:root {
  color-scheme: light;
  --ui-accent: #a8352c;
  --ui-accent-dark: #7c241d;
  --ui-accent-soft: #f6e5e2;
  --ui-bg: #e8e6e3;
  --ui-panel: #f7f6f4;
  --ui-card: #fdfcfb;
  --ui-line: #cfccc7;
  --ui-line-strong: #adaaa4;
  --ui-text: #262421;
  --ui-muted: #6a6660;
  --topbar-height: 64px;
  --font-ui: "OC Archivo","OC Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-serif: "OC Noto Serif SC","Noto Serif SC","Songti SC",serif;
  --font-mono: "OC Spline Mono",Consolas,"Courier New",monospace;
  font-family: var(--font-ui);
}
* { box-sizing: border-box; }
html { height: 100%; overflow: hidden; }
body { width: 100%; height: 100vh; height: 100dvh; min-width: 320px; margin: 0; overflow: hidden; display: grid; grid-template-rows: var(--topbar-height) minmax(0,1fr); color: var(--ui-text); background: var(--ui-bg); }
body.is-export-busy,body.is-export-busy button { cursor: progress; }
button,input,textarea,select { font: inherit; color: inherit; }
button,.file-button { -webkit-tap-highlight-color: transparent; }
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
button:active,.file-button:active { transform: translateY(1px); }
[hidden] { display: none !important; }

.topbar { height: 100%; display: flex; align-items: center; gap: 14px; padding: 0 16px; border-bottom: 1px solid var(--ui-line); background: rgba(252,251,250,.98); position: relative; z-index: 20; }
.brand { display: inline-flex; align-items: center; gap: 10px; min-width: 250px; color: inherit; text-decoration: none; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 3px; background: var(--ui-accent); color: #fff; font-family: var(--font-serif); font-size: 22px; font-weight: 800; box-shadow: 4px 4px 0 #d6d3ce; }
.brand-copy { display: grid; gap: 1px; }
.brand-copy b { font-family: var(--font-serif); font-size: 17px; line-height: 1.2; }
.brand-copy small { color: var(--ui-muted); font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.project-field { flex: 1; max-width: 420px; display: grid; grid-template-columns: auto minmax(160px,1fr); align-items: center; gap: 8px; }
.project-field span { color: var(--ui-muted); font-size: 12px; font-weight: 700; }
.project-field input { height: 40px; min-width: 0; padding: 0 12px; border: 1px solid var(--ui-line); border-radius: 6px; background: #fff; }
.top-actions { margin-left: auto; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.button,.preview-actions button { min-height: 38px; padding: 0 13px; border: 1px solid var(--ui-line); border-radius: 6px; background: #fff; cursor: pointer; font-size: 13px; font-weight: 750; white-space: nowrap; }
.button:hover,.preview-actions button:hover { border-color: var(--ui-accent); }
.button.primary { border-color: var(--ui-accent); background: var(--ui-accent); color: #fff; }
.button.quiet { background: transparent; }
.button.compact { min-height: 34px; padding-inline: 10px; font-size: 12px; }
.button:disabled { opacity: .4; cursor: default; }
.file-button { position: relative; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; cursor: pointer; }
.file-button input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.text-button { padding: 4px 0; border: 0; background: transparent; color: var(--ui-accent-dark); cursor: pointer; font-size: 12px; font-weight: 750; }
.workspace { min-height: 0; display: grid; grid-template-columns: 356px minmax(430px,1fr) 372px; }
.editor-panel { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); background: var(--ui-panel); }
.content-panel { border-right: 1px solid var(--ui-line); }
.style-panel { border-left: 1px solid var(--ui-line); }
.panel-heading { min-height: 70px; display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--ui-line); background: #faf9f7; }
.panel-heading > span { padding: 4px 8px; border-radius: 4px; background: var(--ui-accent-soft); color: var(--ui-accent-dark); font-size: 10px; font-weight: 850; letter-spacing: .1em; }
.panel-heading h1 { margin: 0; font-family: var(--font-serif); font-size: 17px; }
.panel-heading p { margin: 2px 0 0; color: var(--ui-muted); font-size: 11px; }
.panel-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 14px; scrollbar-gutter: stable; }
.editor-card { margin-bottom: 14px; padding: 14px; border: 1px solid var(--ui-line); border-radius: 8px; background: var(--ui-card); box-shadow: 0 1px 0 rgba(38,36,33,.03); }
.card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.card-title h2 { margin: 0; font-family: var(--font-serif); font-size: 15px; }
.card-title p { margin: 3px 0 0; color: var(--ui-muted); font-size: 11px; line-height: 1.5; }
.card-title > span { padding: 3px 7px; border: 1px solid var(--ui-line); border-radius: 4px; color: var(--ui-muted); font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.field { min-width: 0; display: grid; gap: 5px; margin-bottom: 10px; }
.field > span { color: var(--ui-muted); font-size: 11px; font-weight: 750; }
.field input,.field select,.field textarea { min-height: 38px; min-width: 0; padding: 8px 10px; border: 1px solid var(--ui-line); border-radius: 5px; background: #fff; font-size: 13px; }
.field textarea { min-height: 66px; line-height: 1.6; resize: vertical; }
.field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.image-control { display: grid; grid-template-columns: 66px minmax(0,1fr); align-items: center; gap: 11px; margin-bottom: 10px; }
.image-control p { margin: 3px 0 6px; color: var(--ui-muted); font-size: 11px; line-height: 1.5; }
.upload-preview { width: 66px; height: 66px; display: grid; place-items: center; overflow: hidden; border: 1px dashed var(--ui-line-strong); border-radius: 8px; background: #efeeec; color: var(--ui-muted); font-size: 10px; }
.upload-preview img { width: 100%; height: 100%; object-fit: cover; }
.inline-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.style-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.style-button { min-width: 0; min-height: 58px; display: grid; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--ui-line); border-radius: 6px; background: #fff; text-align: left; cursor: pointer; }
.style-button.active { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.style-swatch { width: 30px; height: 40px; border: 1px solid rgba(0,0,0,.15); border-radius: 3px; background: linear-gradient(180deg,var(--sw-s) 0 34%,var(--sw-c) 34% 62%,var(--sw-a) 62% 78%,var(--sw-l) 78%); }
.style-button b { display: block; font-size: 11.5px; line-height: 1.35; }
.style-button small { display: block; margin-top: 2px; color: var(--ui-muted); font-size: 9px; line-height: 1.32; }
.color-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.color-field { min-width: 0; display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 6px; padding: 6px; border: 1px solid var(--ui-line); border-radius: 5px; background: #fff; }
.color-field > span { font-size: 10.5px; font-weight: 750; }
.color-field .clr-field { width: 100%; }
.color-field input { width: 100%; min-width: 0; height: 30px; border: 0; background: transparent; }
.check-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.check-row label,.check-field { min-height: 38px; display: flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid var(--ui-line); border-radius: 5px; background: #fff; font-size: 12px; font-weight: 700; }
.check-field { margin-top: 8px; }
.check-row input,.check-field input { accent-color: var(--ui-accent); }
.range-row { display: grid; grid-template-columns: minmax(0,1fr) 56px; align-items: center; gap: 10px; margin-bottom: 10px; }
.range-row.labeled { grid-template-columns: 44px minmax(0,1fr) 56px; }
.range-row.labeled > span { color: var(--ui-muted); font-size: 11px; font-weight: 750; }
.range-row input[type="range"] { width: 100%; accent-color: var(--ui-accent); }
.range-row output { text-align: right; color: var(--ui-muted); font-size: 11px; font-weight: 750; }
.segment-control { display: grid; gap: 7px; }
.segment-control > span { color: var(--ui-muted); font-size: 11px; font-weight: 750; }
.segment-switch { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); }
.segment-switch button { min-height: 36px; border: 1px solid var(--ui-line); border-right: 0; background: #fff; cursor: pointer; font-size: 12px; font-weight: 800; }
.segment-switch button:first-child { border-radius: 6px 0 0 6px; }
.segment-switch button:last-child { border-right: 1px solid var(--ui-line); border-radius: 0 6px 6px 0; }
.segment-switch button.active { border-color: var(--ui-accent); background: var(--ui-accent); color: #fff; }
.hint-note { margin: 8px 0 0; padding: 8px 10px; border-left: 3px solid var(--ui-line-strong); background: #f2f1ef; color: var(--ui-muted); font-size: 11px; line-height: 1.6; }
.hint-note.warn { border-left-color: var(--ui-accent); background: var(--ui-accent-soft); color: var(--ui-accent-dark); font-weight: 700; }
.empty-note { margin: 4px 0; color: var(--ui-muted); font-size: 11px; }
.export-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.export-grid .button { min-height: 42px; }
.export-grid > .oc-pw-export-button { order: 99; grid-column: 1 / -1; }
.export-grid > .button:only-child { grid-column: 1 / -1; }
.preview-panel { min-width: 0; min-height: 0; display: grid; grid-template-rows: 48px minmax(0,1fr); background: #d9d7d4; }
.preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 0 11px; border-bottom: 1px solid var(--ui-line); background: #f5f4f2; }
.preview-toolbar > div { display: flex; align-items: center; gap: 6px; }
.preview-toolbar strong { font-size: 13px; }
.preview-toolbar #save-state { color: var(--ui-muted); font-size: 11px; }
.preview-actions button { min-height: 32px; padding: 0 9px; font-size: 12px; }
.preview-actions button.active { border-color: var(--ui-accent); background: var(--ui-accent); color: #fff; }
.preview-zoom { display: inline-flex; align-items: center; gap: 3px; }
.preview-zoom button { min-width: 30px; padding: 0 7px; }
.preview-zoom output { min-width: 47px; color: var(--ui-muted); font: 750 10.5px/1 var(--font-mono); text-align: center; }
.preview-zoom #fit-canvas { min-width: 42px; }
.page-badge { min-width: 66px; text-align: center; font: 700 11px/1 var(--font-mono); color: var(--ui-muted); }
.preview-viewport { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.preview-stage { position: relative; margin: 26px auto; box-shadow: 0 12px 34px rgba(30,28,25,.22); }

/* ================= 新闻画面基座 =================
   一套标记，五套版式靠 [data-style] 覆盖；信息流与内容页靠 [data-view]。
   六个色槽：底 --s / 卡 --c / 文 --i / 次 --m / 线 --l / 强 --a
   宽固定 390，高随内容——这一点和聊天工坊相反，那边是固定一屏。
   --a-ink 是压在强调色上的字色，按风格给：浅强调色配深字，深强调色配白字。 */
.news { position: relative; width: 390px; flex: none; display: flex; flex-direction: column; overflow: hidden;
  transform-origin: top left;
  background: var(--s); color: var(--i); font-family: var(--cjk); font-size: calc(14px * var(--tscale,1)); line-height: 1.6;
  --s: #f4f5f7; --c: #ffffff; --i: #1b1d20; --m: #8a9099; --l: #e3e5e9; --a: #d33b34;
  --a-ink: #ffffff;
  --cjk: "OC Noto Sans SC","PingFang SC",sans-serif; --serif: "OC Noto Serif SC","Songti SC",serif;
  --lat: "OC Archivo",sans-serif; --mono: "OC Spline Mono",monospace; --gap: 0px; }
.status { flex: none; height: 20px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 14px; background: var(--c); color: var(--i); font: 600 11px/1 var(--mono); }
.status .ind { display: flex; align-items: center; gap: 5px; }
.sig { width: 15px; height: 9px; background:
  linear-gradient(currentColor,currentColor) 0 100%/3px 4px no-repeat,
  linear-gradient(currentColor,currentColor) 4px 100%/3px 6px no-repeat,
  linear-gradient(currentColor,currentColor) 8px 100%/3px 8px no-repeat,
  linear-gradient(currentColor,currentColor) 12px 100%/3px 9px no-repeat; }
.wifi { width: 12px; height: 9px; border: 1.5px solid currentColor; border-radius: 50% 50% 0 0; border-bottom: 0; }
.batt { width: 19px; height: 9px; border: 1.2px solid currentColor; border-radius: 2px; padding: 1.4px; position: relative; }
.batt::before { content: ""; display: block; height: 100%; width: var(--lv,62%); background: currentColor; border-radius: 1px; }
.batt::after { content: ""; position: absolute; right: -3px; top: 2.6px; width: 1.6px; height: 3.4px; background: currentColor; border-radius: 0 1px 1px 0; }
.news[data-status="off"] .status { display: none; }

.np-top { flex: none; height: 44px; display: flex; align-items: center; gap: 10px; padding: 0 14px; background: var(--c); }
.np-top b { font-size: 1.15em; font-weight: 800; letter-spacing: .02em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.np-top .date { margin-left: auto; color: var(--m); font: 400 .78em/1 var(--mono); white-space: nowrap; }
.np-top .more { width: 16px; height: 16px; flex: none; opacity: .5;
  background: radial-gradient(circle 1.6px at 3px 8px,currentColor 1.6px,transparent 0),radial-gradient(circle 1.6px at 8px 8px,currentColor 1.6px,transparent 0),radial-gradient(circle 1.6px at 13px 8px,currentColor 1.6px,transparent 0); }
.np-top .back { width: 15px; height: 15px; flex: none; opacity: .55; border-left: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg) scale(.6); }
.np-top .np-src { flex: none; font-size: .92em; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.np-top .follow { flex: none; margin-left: auto; padding: 3px 10px; border-radius: 3px; background: var(--a); color: var(--a-ink); font-size: .76em; font-weight: 700; }
.np-tabs { flex: none; display: flex; gap: 16px; padding: 0 14px 8px; background: var(--c); overflow: hidden;
  border-bottom: 1px solid var(--l); }
.np-tabs span { position: relative; flex: none; color: var(--m); font-size: .93em; padding-bottom: 5px; }
.np-tabs span.on { color: var(--i); font-weight: 700; }
.np-tabs span.on::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 16px; height: 2.5px; margin-left: -8px; background: var(--a); border-radius: 2px; }
.np-body { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: var(--gap); }
.np-foot { flex: none; display: grid; grid-template-columns: repeat(4,1fr); padding: 7px 0 10px; background: var(--c); border-top: 1px solid var(--l); }
.np-foot span { display: grid; justify-items: center; gap: 3px; color: var(--m); font-size: .72em; }
.np-foot span i { width: 18px; height: 18px; border: 1.5px solid currentColor; border-radius: 4px; }
.np-foot span.on { color: var(--a); }
.np-act { flex: none; display: flex; align-items: center; gap: 10px; padding: 9px 14px 11px; background: var(--c); border-top: 1px solid var(--l); }
.np-act .ipt { flex: 1; min-width: 0; padding: 6px 12px; border-radius: 999px; background: color-mix(in srgb,var(--i) 7%,var(--c)); color: var(--m); font-size: .8em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.np-act .act { flex: none; display: flex; align-items: center; gap: 4px; color: var(--m); font: 400 .76em/1 var(--mono); }
.np-act .act i { width: 15px; height: 15px; border: 1.4px solid currentColor; border-radius: 3px; }

/* ---- 信息流条目 ---- */
.card { position: relative; background: var(--c); padding: 12px 14px; border-bottom: 1px solid var(--l); }
.card h3 { margin: 0; font-size: 1.07em; font-weight: 600; line-height: 1.42; }
.card .ph + h3 { margin-top: 10px; }
.card .meta { display: flex; align-items: center; gap: 8px; margin-top: 8px; color: var(--m); font-size: .76em; flex-wrap: wrap; }
.card .meta .src { color: var(--m); }
.card .meta .tag { color: var(--a); }
.ph { background: linear-gradient(135deg,#c2ccd6,#8fa2b4 55%,#6b7f93); position: relative; overflow: hidden; }
.ph::after { content: ""; position: absolute; left: 22%; top: 26%; width: 22%; padding-top: 22%; border-radius: 50%; background: rgba(255,255,255,.78); }
.ph.has-img::after { display: none; }
.ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.card.lead .ph { height: 186px; border-radius: 5px; }
.card.lead h3 { font-size: 1.32em; font-weight: 800; line-height: 1.34; }
.card.side { display: grid; grid-template-columns: minmax(0,1fr) 108px; gap: 11px; align-items: start; }
.card.side .ph { height: 74px; border-radius: 4px; }
.card.text .summary { margin: 6px 0 0; color: var(--m); font-size: .86em; line-height: 1.55; }
.card.triple .row3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin-top: 9px; }
.card.triple .ph { height: 70px; border-radius: 3px; }
.card.video .ph { height: 180px; border-radius: 5px; }
.card.video .play { position: absolute; left: 50%; top: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%;
  background: rgba(20,22,26,.55); border: 1.5px solid rgba(255,255,255,.85); }
.card.video .play::after { content: ""; position: absolute; left: 15px; top: 11px; border-left: 11px solid #fff; border-block: 7px solid transparent; }
.card.video .dur { position: absolute; right: 7px; bottom: 7px; padding: 1px 5px; border-radius: 3px; background: rgba(20,22,26,.7); color: #fff; font: 400 .7em/1.5 var(--mono); }
.card.topic .items { margin-top: 9px; display: grid; gap: 7px; padding-left: 10px; border-left: 2px solid var(--a); }
.card.topic .items span { display: block; font-size: .93em; color: var(--i); }
.card.live .ph { height: 150px; border-radius: 5px; }
.card.live .badge { position: absolute; left: 7px; top: 7px; display: flex; align-items: center; gap: 4px; padding: 2px 7px; border-radius: 3px; background: var(--a); color: var(--a-ink); font-size: .72em; font-weight: 700; }
.card.live .badge i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.card.rank ol { margin: 9px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; counter-reset: r; }
.card.rank li { display: flex; align-items: baseline; gap: 9px; font-size: .93em; counter-increment: r; }
.card.rank li::before { content: counter(r); flex: none; width: 16px; color: var(--m); font: 700 .82em/1 var(--mono); text-align: center; }
.card.rank li:nth-child(-n+3)::before { color: var(--a); }
.card.rank li span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card.rank li em { margin-left: auto; padding-left: 8px; font-style: normal; color: var(--m); font: 400 .8em/1 var(--mono); white-space: nowrap; }
.divider { flex: none; padding: 9px 14px 7px; background: var(--s); color: var(--m); font-size: .8em; font-weight: 700; letter-spacing: .06em; }

/* ---- 内容页 ---- */
.news[data-view="article"] .np-body { padding: 16px 18px 22px; gap: 0; background: var(--c); }
.art-chip { display: inline-block; margin-bottom: 9px; padding: 2px 8px; border-radius: 3px; background: color-mix(in srgb,var(--a) 12%,transparent); color: color-mix(in srgb,var(--a) 76%,var(--i)); font-size: .74em; font-weight: 700; }
.art-title { margin: 0; font-size: 1.62em; font-weight: 800; line-height: 1.36; letter-spacing: .01em; }
.art-sub { margin: 9px 0 0; color: var(--m); font-size: .93em; line-height: 1.6; }
.art-by { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 12px; padding-bottom: 13px;
  border-bottom: 1px solid var(--l); color: var(--m); font-size: .8em; }
.art-by .src { display: flex; align-items: center; gap: 5px; color: var(--i); font-weight: 600; }
.art-by .logo { width: 18px; height: 18px; flex: none; border-radius: 3px; display: grid; place-items: center; overflow: hidden; background: var(--a); color: var(--a-ink); font-size: .7em; font-weight: 700; }
.art-by .logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.art-by .vf { width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--a); }
.blk { margin-top: 14px; }
.blk.lede { padding: 11px 12px; border-radius: 4px; background: color-mix(in srgb,var(--a) 7%,transparent);
  font-size: .97em; line-height: 1.72; color: var(--i); }
.blk.para { font-size: 1em; line-height: 1.85; text-align: justify; }
.blk.sub { margin-top: 20px; font-size: 1.12em; font-weight: 700; line-height: 1.5; }
.blk.figure { margin-top: 16px; }
.blk.figure .ph { height: 196px; border-radius: 4px; }
.blk.figure figcaption { margin-top: 6px; color: var(--m); font-size: .78em; line-height: 1.5; }
.blk.quote { padding-left: 12px; border-left: 3px solid var(--a); font-size: 1em; line-height: 1.75; color: var(--i); }
.blk.quote p { margin: 0; }
.blk.quote cite { display: block; margin-top: 6px; color: var(--m); font-size: .8em; font-style: normal; }
.blk.list { margin: 14px 0 0; padding: 0 0 0 18px; font-size: .97em; line-height: 1.8; }
.blk.list li { margin-bottom: 5px; }
.blk.data { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--l); border: 1px solid var(--l); border-radius: 4px; overflow: hidden; }
.blk.data div { background: var(--c); padding: 10px 8px; text-align: center; }
.blk.data b { display: block; font: 800 1.2em/1.2 var(--lat); color: var(--a); }
.blk.data small { display: block; margin-top: 3px; color: var(--m); font-size: .72em; }
.blk.rule { margin: 20px 0 0; height: 1px; border: 0; background: var(--l); }
.blk.related { margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--l); }
.blk.related b { display: block; margin-bottom: 9px; font-size: .86em; color: var(--m); letter-spacing: .06em; }
.blk.related a { display: block; margin-bottom: 8px; font-size: .95em; color: var(--i); text-decoration: none; line-height: 1.5; }
.blk.tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 16px; }
.blk.tags span { padding: 3px 9px; border-radius: 3px; background: color-mix(in srgb,var(--a) 10%,transparent);
  color: color-mix(in srgb,var(--a) 72%,var(--i)); font-size: .78em; }
.art-foot { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--l); color: var(--m); font-size: .78em; }

/* ================= 01 门户资讯 ================= */
.news[data-style="pt"] { --s: #f4f5f7; --c: #ffffff; --i: #1b1d20; --m: #83898f; --l: #e3e5e9; --a: #d33b34; --gap: 8px; }
.news[data-style="pt"] .card { border-bottom: 0; border-radius: 0; }
.news[data-style="pt"] .divider { padding-top: 4px; }

/* ================= 02 严肃日报 ================= */
.news[data-style="dp"] { --s: #ffffff; --c: #ffffff; --i: #141414; --m: #6f6f6f; --l: #d2d2d2; --a: #8c1c17; --gap: 0px; }
.news[data-style="dp"] .np-top b { font-family: var(--serif); font-weight: 900; letter-spacing: .1em; }
.news[data-style="dp"] .np-tabs span.on::after { width: 100%; left: 0; margin-left: 0; height: 2px; border-radius: 0; }
.news[data-style="dp"] .card { border-bottom: 1px solid var(--l); }
.news[data-style="dp"] .card h3 { font-family: var(--serif); font-weight: 700; }
.news[data-style="dp"] .card.lead h3 { font-size: 1.42em; font-weight: 900; letter-spacing: .01em; }
.news[data-style="dp"] .ph,.news[data-style="dp"] .card.lead .ph { border-radius: 0; }
.news[data-style="dp"] .divider { background: var(--c); border-block: 1px solid var(--i); padding: 5px 14px; color: var(--i); }
.news[data-style="dp"] .art-title { font-family: var(--serif); font-weight: 900; font-size: 1.72em; line-height: 1.42; }
.news[data-style="dp"] .art-sub { font-family: var(--serif); }
.news[data-style="dp"] .blk.para { font-family: var(--serif); line-height: 1.9; }
.news[data-style="dp"] .blk.sub { font-family: var(--serif); }
.news[data-style="dp"] .blk.lede { background: transparent; border-block: 1px solid var(--l); border-radius: 0; font-family: var(--serif); }

/* ================= 03 杂志专题 ================= */
.news[data-style="mg"] { --s: #faf8f4; --c: #faf8f4; --i: #1f1c19; --m: #8b8378; --l: #ddd6ca; --a: #a8543a; --gap: 0px; }
.news[data-style="mg"] .np-top { background: transparent; }
.news[data-style="mg"] .np-top b { font-family: var(--serif); font-weight: 400; letter-spacing: .28em; font-size: 1em; }
.news[data-style="mg"] .np-tabs { background: transparent; border-bottom: 0; gap: 20px; }
.news[data-style="mg"] .np-tabs span { font-size: .82em; letter-spacing: .1em; }
.news[data-style="mg"] .card { padding: 20px 22px; border-bottom: 1px solid var(--l); }
.news[data-style="mg"] .card h3 { font-family: var(--serif); font-weight: 400; line-height: 1.5; }
.news[data-style="mg"] .card.lead .ph { height: 224px; border-radius: 0; }
.news[data-style="mg"] .card .ph + h3 { margin-top: 14px; }
.news[data-style="mg"] .card.lead h3 { font-size: 1.5em; font-weight: 400; letter-spacing: .01em; }
.news[data-style="mg"] .card .meta { letter-spacing: .08em; }
.news[data-style="mg"] .art-title { font-family: var(--serif); font-weight: 400; font-size: 1.78em; line-height: 1.48; }
.news[data-style="mg"] .art-sub { font-family: var(--serif); font-style: italic; }
.news[data-style="mg"] .blk.para { font-family: var(--serif); line-height: 1.95; }
.news[data-style="mg"] .blk.figure figcaption { font-style: italic; letter-spacing: .04em; }

/* ================= 04 深色夜读 ================= */
.news[data-style="nt"] { --s: #15171a; --c: #1c1f23; --i: #e4e6e9; --m: #8e959d; --l: #2b3036; --a: #e0a24a; --a-ink: #17191c; --gap: 8px; }
.news[data-style="nt"] .card { border-bottom: 0; border-radius: 6px; margin-inline: 10px; }
.news[data-style="nt"] .divider { background: transparent; }
.news[data-style="nt"] .blk.para { line-height: 1.95; color: #d6d9dd; }
.news[data-style="nt"] .np-tabs span.on::after { background: var(--a); }

/* ================= 05 都市小报 ================= */
.news[data-style="tb"] { --s: #fff8e8; --c: #ffffff; --i: #161616; --m: #7d7568; --l: #e6dcc6; --a: #c8321f; --gap: 6px; }
.news[data-style="tb"] .np-top { background: var(--a); color: #fff; }
.news[data-style="tb"] .np-top b { font-weight: 900; letter-spacing: .06em; }
.news[data-style="tb"] .np-top .date { color: rgba(255,255,255,.8); }
.news[data-style="tb"] .np-top .follow { background: #fff; color: var(--a); }
.news[data-style="tb"] .np-tabs { background: var(--a); border-bottom: 0; padding-bottom: 7px; }
.news[data-style="tb"] .np-tabs span { color: rgba(255,255,255,.72); }
.news[data-style="tb"] .np-tabs span.on { color: #fff; }
.news[data-style="tb"] .np-tabs span.on::after { background: #fff; }
.news[data-style="tb"] .card h3 { font-weight: 900; line-height: 1.36; }
.news[data-style="tb"] .card.lead h3 { font-size: 1.46em; }
.news[data-style="tb"] .card .meta .tag { padding: 1px 6px; border-radius: 2px; background: var(--a); color: var(--a-ink); font-weight: 700; }
.news[data-style="tb"] .divider { background: var(--a); color: #fff; padding: 5px 14px; }
.news[data-style="tb"] .art-title { font-weight: 900; font-size: 1.72em; }

/* ================= 来源卡 / 块清单 ================= */
.cast-list,.msg-list,.sticker-list { display: grid; gap: 6px; }
.cast-row,.msg-row,.sticker-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px;
  padding: 7px 9px; border: 1px solid var(--ui-line); border-radius: 5px; background: #fff; cursor: pointer; text-align: left; }
.block-sort-note { margin: 0 0 8px; }
.message-add-bottom { width: 100%; min-height: 38px; margin-top: 9px; border-style: dashed; color: var(--ui-accent-dark); }
.message-add-bottom:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.msg-row { position: relative; grid-template-columns: 27px auto minmax(0,1fr) auto; transition: border-color .14s ease, box-shadow .14s ease, opacity .14s ease, transform .14s ease; }
.msg-drag-handle { width: 27px; height: 31px; padding: 0; display: grid; place-items: center; border: 1px solid var(--ui-line);
  border-radius: 5px; background: #fff; color: var(--ui-muted); cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.msg-drag-handle::before { content: ""; width: 12px; height: 18px; opacity: .8;
  background: radial-gradient(circle, currentColor 1.35px, transparent 1.6px) 0 0 / 6px 6px; }
.msg-drag-handle:hover,.msg-drag-handle:focus-visible { border-color: var(--ui-accent); color: var(--ui-accent-dark); outline: none; }
.msg-drag-handle:active { cursor: grabbing; }
.msg-row.is-dragging { opacity: .46; transform: scale(.985); }
.msg-row.is-drop-before { box-shadow: inset 0 3px 0 var(--ui-accent); }
.msg-row.is-drop-after { box-shadow: inset 0 -3px 0 var(--ui-accent); }
body.is-message-sorting { user-select: none; -webkit-user-select: none; }
.cast-row.active,.msg-row.active,.sticker-row.active { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.cast-row b,.msg-row b,.sticker-row b { display: block; overflow: hidden; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cast-row small,.msg-row small,.sticker-row small { display: block; margin-top: 2px; color: var(--ui-muted); font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-ava { width: 28px; height: 28px; flex: none; border-radius: 5px; display: grid; place-items: center; overflow: hidden;
  background: var(--ui-accent); color: #fff; font-size: 12px; font-weight: 700; }
.mini-ava img { width: 100%; height: 100%; object-fit: cover; }
.row-actions { display: flex; gap: 4px; }
.row-actions button,.row-item .row-del { min-height: 26px; padding: 0 8px; display: grid; place-items: center; border: 1px solid var(--ui-line);
  border-radius: 5px; background: #fff; cursor: pointer; font-size: 11px; font-weight: 700; white-space: nowrap; color: var(--ui-muted); }
.row-actions button:hover,.row-item .row-del:hover { border-color: var(--ui-accent); color: var(--ui-text); }
.row-actions button.on { border-color: var(--ui-accent); background: var(--ui-accent-soft); color: var(--ui-accent-dark); }
.cast-row[role="button"] { cursor: pointer; }
.msg-kind { flex: none; min-width: 40px; padding: 2px 5px; border-radius: 3px; background: var(--ui-accent-soft);
  color: var(--ui-accent-dark); font-size: 9.5px; font-weight: 800; text-align: center; }
.msg-row[data-family="struct"] .msg-kind { background: #e7e9ec; color: #4d545c; }
/* 逐条填写：左边一个大字、右边一个小字、行尾一个删；底下一个「加一条」 */
.row-list { display: grid; gap: 6px; }
.row-item { display: grid; grid-template-columns: 78px minmax(0,1fr) 34px; gap: 6px; align-items: center; }
.row-item input { min-height: 36px; min-width: 0; padding: 7px 9px; border: 1px solid var(--ui-line); border-radius: 5px; background: #fff; font-size: 13px; }
.row-item .row-del { min-height: 36px; padding: 0; }
.button.row-add { width: 100%; min-height: 36px; border-style: dashed; color: var(--ui-accent-dark); }
.button.row-add:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.editor-block { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ui-line); }

/* ================= 贴纸 ================= */
.sticker-layer { position: absolute; inset: 0; z-index: 12; pointer-events: none; }
.canvas-sticker { position: absolute; left: var(--x); top: var(--y); width: var(--w); min-height: var(--h);
  transform: translate(-50%,-50%) rotate(var(--r)); display: grid; pointer-events: auto; cursor: grab; touch-action: none; }
.canvas-sticker.is-locked { cursor: default; }
.canvas-sticker.is-hidden { display: none; }
.canvas-sticker.is-selected { outline: 1.5px dashed var(--ui-accent); outline-offset: 2px; }
.sticker-body { width: 100%; min-height: 100%; display: flex; align-items: center; overflow: hidden; box-sizing: border-box; word-break: break-word; }
.sticker-body img { width: 100%; height: 100%; object-fit: contain; display: block; }
.sticker-body.fit-cover img { object-fit: cover; }
.sticker-body.fit-stretch img { object-fit: fill; }
.sticker-font-sans { font-family: "OC Noto Sans SC","PingFang SC",sans-serif; }
.sticker-font-serif { font-family: "OC Noto Serif SC","Songti SC",serif; }
.sticker-font-mono { font-family: "OC Spline Mono",monospace; }
.sticker-handle { position: absolute; width: 14px; height: 14px; border: 2px solid var(--ui-accent); border-radius: 50%;
  background: #fff; opacity: 0; pointer-events: none; touch-action: none; }
.canvas-sticker.is-selected .sticker-handle { opacity: 1; pointer-events: auto; }
.canvas-sticker.is-locked .sticker-handle { display: none; }
.resize-handle { right: -9px; bottom: -9px; cursor: nwse-resize; }
.rotate-handle { left: 50%; top: -24px; margin-left: -7px; cursor: grab; }
.rotate-handle::after { content: ""; position: absolute; left: 5px; top: 12px; width: 2px; height: 12px; background: var(--ui-accent); }
.news.is-exporting .canvas-sticker { outline: 0 !important; }
.news.is-exporting .sticker-handle { display: none !important; }
.preset-sticker-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 10px; }
.preset-sticker-grid button { min-height: 32px; padding: 0 6px; border: 1px solid var(--ui-line); border-radius: 5px;
  background: #fff; cursor: pointer; font-size: 11px; font-weight: 700; }
.preset-sticker-grid button:hover { border-color: var(--ui-accent); }
.sticker-editor-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 10px; }

/* ================= 弹窗：裁切与类型选择 ================= */
.crop-modal { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 16px; }
.crop-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(30,27,24,.72); backdrop-filter: blur(4px); cursor: default; }
.crop-dialog { position: relative; width: min(720px,100%); max-height: calc(100dvh - 32px); overflow: auto; padding: 18px; border-radius: 12px; background: var(--ui-card); box-shadow: 0 24px 90px rgba(0,0,0,.4); }
.crop-dialog header,.crop-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.crop-dialog header small { color: var(--ui-accent); font: 800 9px/1 var(--font-mono); letter-spacing: .12em; }
.crop-dialog h2 { margin: 4px 0 0; font-family: var(--font-serif); font-size: 18px; }
.crop-dialog > p { margin: 10px 0 14px; color: var(--ui-muted); font-size: 12px; line-height: 1.6; }
.crop-stage { position: relative; display: grid; place-items: center; min-height: 180px; overflow: hidden; border: 1px solid var(--ui-line-strong); border-radius: 10px; background: #22262a; }
.crop-stage canvas { display: block; width: 100%; max-height: min(56dvh,560px); object-fit: contain; cursor: grab; touch-action: none; }
.crop-stage canvas:active { cursor: grabbing; }
.crop-stage > span { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); padding: 5px 8px; border-radius: 999px; background: rgba(20,24,21,.72); color: #fff; font-size: 10px; pointer-events: none; }
.crop-zoom { display: grid; grid-template-columns: 108px 1fr; align-items: center; gap: 12px; margin: 14px 0; font-size: 11px; font-weight: 750; }
.crop-zoom output { display: block; margin-top: 4px; color: var(--ui-accent); font: 800 10px/1 var(--font-mono); }
.crop-zoom input { width: 100%; accent-color: var(--ui-accent); }
.crop-dialog footer { justify-content: flex-end; }
body.crop-modal-open { overflow: hidden; }
.type-dialog { width: min(560px,100%); }
.type-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.type-grid button { min-height: 58px; padding: 9px 11px; border: 1px solid var(--ui-line); border-radius: 6px; background: #fff; cursor: pointer; text-align: left; }
.type-grid button:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.type-grid b { display: block; font-size: 13px; }
.type-grid small { display: block; margin-top: 3px; color: var(--ui-muted); font-size: 11px; line-height: 1.45; }

.mobile-resizer,.mobile-main-tabs { display: none; }
.toast { position: fixed; left: 50%; bottom: 24px; z-index: 140; max-width: calc(100vw - 32px); padding: 10px 14px; border-radius: 6px; background: var(--ui-accent-dark); color: #fff; font-size: 13px; opacity: 0; pointer-events: none; transform: translate(-50%,16px); transition: .16s ease; }
.toast.show { opacity: 1; transform: translate(-50%,0); }

@media (max-width:900px) {
  :root { --topbar-height:62px; }
  .topbar { gap:8px; padding:0 10px; }
  .brand { min-width:44px; }
  .brand-copy,.project-field,.desktop-action { display:none; }
  .brand-mark { width:40px; height:40px; }
  .top-actions { width:calc(100% - 50px); justify-content:flex-end; gap:6px; }
  .top-actions .button { min-height:40px; padding:0 12px; }
  .workspace { --mobile-preview-height:46%; height:auto; min-height:0; grid-template-columns:1fr; grid-template-rows:var(--mobile-preview-height) 20px 48px minmax(0,1fr); grid-template-areas:"preview" "resizer" "tabs" "panel"; }
  .preview-panel { grid-area:preview; grid-template-rows:42px minmax(0,1fr); border-bottom:0; }
  .preview-toolbar { padding:0 8px; }
  .preview-actions button { padding:0 7px; }
  .preview-zoom { display:none; }
  .preview-viewport { overflow:auto; }
  .preview-stage { margin:0 auto; }
  .mobile-resizer { grid-area:resizer; display:grid; place-items:center; border-top:1px solid var(--ui-line); border-bottom:1px solid var(--ui-line); background:#f0efed; cursor:row-resize; touch-action:none; user-select:none; z-index:12; }
  .mobile-resizer span { width:112px; height:5px; border-radius:4px; background:var(--ui-line-strong); pointer-events:none; }
  .mobile-main-tabs { grid-area:tabs; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--ui-line); border-bottom:1px solid var(--ui-line); background:#f7f6f4; z-index:14; }
  .mobile-main-tabs button { border:0; border-right:1px solid var(--ui-line); background:transparent; font-size:13px; font-weight:850; }
  .mobile-main-tabs button:last-child { border-right:0; }
  .mobile-main-tabs button.active { background:var(--ui-accent-soft); box-shadow:inset 0 -3px var(--ui-accent); }
  .editor-panel { grid-area:panel; min-height:0; border:0; display:grid; grid-template-rows:minmax(0,1fr); }
  .panel-heading { display:none; }
  .panel-scroll { padding:12px 10px calc(20px + env(safe-area-inset-bottom)); scrollbar-gutter:auto; }
  body[data-active-mobile-panel="content"] .style-panel,body[data-active-mobile-panel="style"] .content-panel { display:none; }
  .editor-card { padding:13px; }
  .field input,.field select,.field textarea { min-height:42px; }
  .row-item .row-del,.button.row-add { min-height:42px; }
  .toast { bottom:calc(20px + env(safe-area-inset-bottom)); }
}
@media (max-width:600px) {
  .crop-dialog { padding:14px; }
  .crop-stage canvas { max-height:50dvh; }
  .crop-zoom { grid-template-columns:1fr; gap:6px; }
  .type-grid { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .top-actions .button { padding-inline:9px; font-size:12px; }
  .field-grid,.style-grid,.check-row,.export-grid { grid-template-columns:1fr; }
  .color-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition-duration:.01s !important; animation-duration:.01s !important; scroll-behavior:auto !important; } }

/* ================= 06 复古报刊 =================
   标题走朝華標題A（明体标题），正文与角标走朝華打字機，两款都在时间线项目里跨项目引用。
   版面语言靠双线、点线、方框与括号，不靠圆角与色块——和另外五套没有重叠。 */
.news[data-style="rt"] { --s: #e7dfce; --c: #f4efe3; --i: #2b2620; --m: #7c7364; --l: #c4baa4; --a: #9c3b2a; --gap: 7px;
  --cjk: "ZhaohuaTypeWriter Light","OC Noto Sans SC",sans-serif;
  --serif: "ZhaohuaMinA","OC Noto Serif SC",serif;
  letter-spacing: .01em;
  background-image: repeating-linear-gradient(0deg,rgba(90,74,52,.05) 0 1px,transparent 1px 4px); }
.news[data-style="rt"] .np-top { justify-content: center; border-bottom: 3px double var(--i); }
.news[data-style="rt"] .np-top b { font-family: var(--serif); font-weight: 700; font-size: 1.24em; letter-spacing: .3em; text-indent: .3em; }
.news[data-style="rt"] .np-top .date { font-family: var(--cjk); font-size: .74em; letter-spacing: .06em; }
.news[data-style="rt"] .np-tabs { gap: 0; padding: 6px 14px 7px; border-bottom: 1px solid var(--i); }
.news[data-style="rt"] .np-tabs span { padding: 1px 9px 1px; font-size: .84em; letter-spacing: .14em; }
.news[data-style="rt"] .np-tabs span + span { border-left: 1px solid var(--l); }
.news[data-style="rt"] .np-tabs span.on { color: var(--a); font-weight: 400; }
.news[data-style="rt"] .np-tabs span.on::after { display: none; }
.news[data-style="rt"] .np-top .follow { border-radius: 0; letter-spacing: .1em; }

.news[data-style="rt"] .card { border-radius: 0; border-bottom: 1px dashed var(--l); }
.news[data-style="rt"] .card h3 { font-family: var(--serif); font-weight: 700; letter-spacing: .02em; line-height: 1.44; }
.news[data-style="rt"] .card.lead h3 { font-size: 1.36em; }
.news[data-style="rt"] .card .meta { letter-spacing: .1em; font-size: .72em; }
.news[data-style="rt"] .card .meta .src::before { content: "— "; }
.news[data-style="rt"] .card .meta .tag { padding: 0 5px; border: 1px solid var(--a); }
/* 图片做成贴上去的照片：细墨线框，不要圆角 */
.news[data-style="rt"] .ph { border-radius: 0; border: 1px solid color-mix(in srgb,var(--i) 52%,transparent); }
.news[data-style="rt"] .card.video .dur,.news[data-style="rt"] .card.live .badge { border-radius: 0; letter-spacing: .08em; }
.news[data-style="rt"] .card.rank li::before { font-family: var(--serif); font-weight: 700; color: var(--i); }
.news[data-style="rt"] .card.rank li:nth-child(-n+3)::before { color: var(--a); }
.news[data-style="rt"] .card.rank li em { letter-spacing: .06em; }
.news[data-style="rt"] .card.topic .items { border-left: 0; padding-left: 0; }
.news[data-style="rt"] .card.topic .items span::before { content: "〇 "; color: var(--a); }
/* 频道条做成两边拉线的居中段名 */
.news[data-style="rt"] .divider { display: flex; align-items: center; gap: 10px; justify-content: center;
  background: transparent; color: var(--i); font-family: var(--serif); font-weight: 700; letter-spacing: .3em; text-indent: .3em; }
.news[data-style="rt"] .divider::before,.news[data-style="rt"] .divider::after { content: ""; flex: 1; height: 0; border-top: 1px solid var(--i); }

.news[data-style="rt"] .art-chip { border-radius: 0; background: transparent; border: 1px solid var(--a); color: var(--a); letter-spacing: .16em; }
.news[data-style="rt"] .art-title { font-family: var(--serif); font-weight: 700; font-size: 1.66em; line-height: 1.46; letter-spacing: .02em; }
.news[data-style="rt"] .art-sub { letter-spacing: .04em; }
.news[data-style="rt"] .art-by { border-bottom: 3px double var(--i); letter-spacing: .08em; }
.news[data-style="rt"] .art-by .logo { border-radius: 0; }
.news[data-style="rt"] .art-by .vf { border-radius: 0; transform: rotate(45deg); }
.news[data-style="rt"] .blk.lede { border-radius: 0; background: transparent; padding: 10px 0;
  border-block: 1px solid var(--l); letter-spacing: .02em; }
.news[data-style="rt"] .blk.para { line-height: 1.92; letter-spacing: .02em; }
.news[data-style="rt"] .blk.sub { font-family: var(--serif); font-weight: 700; letter-spacing: .12em; }
.news[data-style="rt"] .blk.sub::before { content: "■ "; color: var(--a); font-size: .7em; vertical-align: .12em; }
/* 引述换成开合引号，不用左侧色条 */
.news[data-style="rt"] .blk.quote { padding-left: 0; border-left: 0; text-align: center; }
.news[data-style="rt"] .blk.quote p::before { content: "「"; color: var(--a); }
.news[data-style="rt"] .blk.quote p::after { content: "」"; color: var(--a); }
.news[data-style="rt"] .blk.quote cite::before { content: "—— "; }
.news[data-style="rt"] .blk.list { padding-left: 0; list-style: none; }
.news[data-style="rt"] .blk.list li::before { content: "· "; color: var(--a); font-weight: 700; }
.news[data-style="rt"] .blk.data { border-radius: 0; border: 3px double var(--i); background: transparent; gap: 0; }
.news[data-style="rt"] .blk.data div { background: transparent; border-left: 1px dashed var(--l); }
.news[data-style="rt"] .blk.data div:first-child { border-left: 0; }
.news[data-style="rt"] .blk.data b { font-family: var(--serif); font-weight: 700; color: var(--i); }
.news[data-style="rt"] .blk.data small { letter-spacing: .1em; }
.news[data-style="rt"] .blk.rule { height: 0; background: transparent; border-top: 3px double var(--l); }
.news[data-style="rt"] .blk.related { border-top: 3px double var(--i); }
.news[data-style="rt"] .blk.related b { font-family: var(--serif); font-weight: 700; letter-spacing: .16em; color: var(--i); }
.news[data-style="rt"] .blk.related a::before { content: "▸ "; color: var(--a); }
/* 标签做成方头括号，不用药丸底 */
.news[data-style="rt"] .blk.tags span { border-radius: 0; background: transparent; padding: 0;
  color: var(--i); letter-spacing: .08em; }
.news[data-style="rt"] .blk.tags span::before { content: "〔"; color: var(--m); }
.news[data-style="rt"] .blk.tags span::after { content: "〕"; color: var(--m); }
.news[data-style="rt"] .art-foot { border-top: 1px dashed var(--l); letter-spacing: .08em; }
.news[data-style="rt"] .np-foot,.news[data-style="rt"] .np-act { border-top: 3px double var(--i); }
.news[data-style="rt"] .np-foot span { letter-spacing: .14em; }
.news[data-style="rt"] .np-foot span i { border-radius: 0; }
.news[data-style="rt"] .np-act .ipt { border-radius: 0; background: transparent; border: 1px solid var(--l); letter-spacing: .06em; }
.news[data-style="rt"] .np-act .act i { border-radius: 0; }
