/* 内容类型渲染契约：字段排列 → 12 栏网格。
   渲染器还会内联一份最小兜底；这里按主题 token 覆盖视觉。 */
.ct{display:block}
.ct-header{margin:0 0 1.8rem}
.ct-title{font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.22;margin:0;color:var(--fg)}
.ct-row{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(.75rem,1.5vw,1.35rem);
  margin:0 0 1.35rem;
}
.ct-col{min-width:0}
.ct-span-1{grid-column:span 1}.ct-span-2{grid-column:span 2}.ct-span-3{grid-column:span 3}
.ct-span-4{grid-column:span 4}.ct-span-5{grid-column:span 5}.ct-span-6{grid-column:span 6}
.ct-span-7{grid-column:span 7}.ct-span-8{grid-column:span 8}.ct-span-9{grid-column:span 9}
.ct-span-10{grid-column:span 10}.ct-span-11{grid-column:span 11}.ct-span-12{grid-column:span 12}
.ct-variant-title .ct-text{font-size:clamp(1.7rem,3.1vw,2.5rem);font-weight:700;line-height:1.22}
.ct-variant-lead .ct-text{font-size:1.12rem;color:var(--fg);opacity:.94}
.ct-variant-meta{font-size:.84rem;color:var(--dim)}
.ct-variant-meta .ct-date,.ct-variant-meta .ct-number{color:var(--dim)}
.ct-text,.ct-textarea,.ct-prose{line-height:1.9;color:var(--fg)}
.ct-textarea{white-space:pre-wrap}
.ct-prose h2{font-size:1.35rem;margin:1.5em 0 .55em;color:var(--fg)}
.ct-prose h3{font-size:1.15rem;margin:1.25em 0 .45em;color:var(--fg)}
.ct-prose p{margin:.72em 0}
.ct-prose a{color:var(--accent)}
.ct-prose ul,.ct-prose ol{padding-left:1.45em}
.ct-prose code{background:rgba(120,160,220,.14);padding:.12em .36em;border-radius:4px}
.ct-prose pre{background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:10px;padding:13px;overflow:auto}
.ct-media{margin:0}
.ct-media img,.ct-media video{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}
.ct-chips{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;padding:0;margin:0}
.ct-chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.1em .65em;font-size:.86rem;color:var(--fg)}
.ct-badge{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.1em .65em;font-size:.84rem;color:var(--dim)}
.ct-badge.on{color:var(--accent);border-color:var(--accent)}
.ct-date,.ct-number,.ct-link{font-variant-numeric:tabular-nums}
.ct-variant-price .ct-number{font-size:1.5rem;font-weight:700;color:var(--accent)}
.ct-link{color:var(--accent);word-break:break-all}
@media(max-width:760px){.ct-col{grid-column:span 12!important}}
