:root { color-scheme: light; --cp-bg: #f6f7f9; --cp-ink: #1f2430; --cp-blue: #2f6fd0; --cp-line: rgba(31,36,48,.09); --cp-font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Archivo", system-ui, sans-serif; }
html { -webkit-text-size-adjust: 100%; }
body.cp-site { margin: 0; padding: 0 0 0 236px; min-width: 320px; min-height: 100vh; background: var(--cp-bg); color: var(--cp-ink); font-family: var(--cp-font); }
.cp-site *, .cp-site *::before, .cp-site *::after { box-sizing: border-box; }
.cp-site > .topbar { display: none; }
.cp-site > main, .cp-site > .cp-home-layout > main, .cp-site > .cp-document-main { width: 100%; max-width: 1240px; min-width: 0; margin: 0 auto; padding: 30px 34px 40px; }
.cp-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 60; width: 236px; padding: 24px 16px 20px; display: flex; flex-direction: column; gap: 0; background: #fff; border-right: 1px solid var(--cp-line); overflow-y: auto; color: var(--cp-ink); }
.cp-brand { display: flex; align-items: center; gap: 10px; padding: 0 4px; color: var(--cp-ink); text-decoration: none; flex-shrink: 0; }
.cp-brand:hover { color: var(--cp-ink); text-decoration: none; }
.cp-brand-mark { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 10px; background: var(--cp-blue); color: #fff; font: 700 13px/1 "Archivo", system-ui, sans-serif; }
.cp-brand-copy { display: flex; flex-direction: column; gap: 3px; }
.cp-brand-copy strong { font: 700 15px/1.2 "Archivo", system-ui, sans-serif; letter-spacing: .02em; }
.cp-brand-copy small { font-size: 11px; line-height: 1.5; color: #6b707b; }
.cp-nav { margin-top: 6px; }
.cp-nav-group { margin: 21px 0 7px; padding: 0 12px; font-size: 11px; font-weight: 600; line-height: 1.7; color: #777d87; letter-spacing: .05em; }
.cp-nav-link { display: flex; align-items: center; gap: 10px; margin: 3px 0; padding: 10px 12px; min-height: 42px; border-radius: 10px; color: #616671; font-size: 13.5px; font-weight: 500; text-decoration: none; line-height: 1.6; }
.cp-nav-link:hover { background: #f1f4f8; color: var(--cp-ink); text-decoration: none; }
.cp-nav-link[aria-current="page"] { background: #eef4fd; color: #17427f; font-weight: 700; }
.cp-nav-number { flex: none; font: 500 10.5px/1.6 ui-monospace, "SFMono-Regular", Menlo, monospace; color: #8a8e97; }
.cp-nav-link[aria-current="page"] .cp-nav-number { color: var(--cp-blue); }
.cp-nav-divider { height: 1px; margin: 18px 8px 12px; background: var(--cp-line); }
.cp-nav-footer { margin-top: auto; padding: 24px 4px 0; }
.cp-language-title { margin: 0 0 10px; color: #777d87; font-size: 11px; font-weight: 600; letter-spacing: .05em; }
.cp-nav-footer #language-selector { display: flex; gap: 2px; padding: 3px; width: 100%; border-radius: 999px; background: #f0f2f6; font-size: 12px; }
.cp-nav-footer #language-selector label { flex: 1; position: relative; display: flex; justify-content: center; margin: 0; padding: 7px 3px; border-radius: 999px; color: #616671; cursor: pointer; }
.cp-nav-footer #language-selector input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cp-nav-footer #language-selector label:has(input:checked) { color: #1b4a9c; background: #fff; box-shadow: 0 1px 2px #1f24301f; font-weight: 700; }
.cp-nav-footer #language-selector label:has(input:focus-visible) { outline: 2px solid var(--cp-blue); outline-offset: 2px; }
.cp-nav-footer #language-selector span { margin: 0; color: inherit; }
.cp-nav-caption { font-size: 11px; color: #7b818c; line-height: 1.8; margin: 0; }
.cp-mobile-header, .cp-menu-backdrop { display: none; }
.cp-site a:focus-visible, .cp-site button:focus-visible { outline: 2px solid var(--cp-blue); outline-offset: 3px; }
.cp-section-pill { display: inline-flex; border-radius: 999px; padding: 5px 12px; font-size: 12px; line-height: 1.6; font-weight: 600; background: #eef4fd; color: #1b4a9c; margin-bottom: 12px; }
.cp-home-layout h1 { margin: 0 0 22px; text-align: left; font-size: 30px; font-weight: 800; line-height: 1.5; }
.cp-home-layout .content-text { padding: 24px 26px; font-size: 14px; line-height: 1.95; }
.cp-home-layout .content-text p:empty { display: none; }
.cp-home-layout .content-text p + p { margin-top: 16px; }
.cp-home-layout .content-text ol { padding-left: 22px; list-style: decimal; }
.cp-home-layout .content-text li + li { margin-top: 14px; }
.cp-home-layout #publication-list { overflow-wrap: anywhere; }
.cp-home-layout .team-photos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 20px; }
.cp-home-layout .team-photos figure { margin: 0; background: #fff; border: 1px solid var(--cp-line); border-radius: 16px; overflow: hidden; }
.cp-home-layout .team-photos img { display: block; width: 100%; height: auto; border-radius: 0; box-shadow: none; }
.cp-home-layout .team-photos figcaption { padding: 12px 16px; color: #6b707b; font-size: 12px; }
.cp-home-layout footer { text-align: left; border-top: 1px solid var(--cp-line); padding-top: 18px; line-height: 1.8; }
@media (max-width: 1100px) { .cp-site > main, .cp-site > .cp-home-layout > main, .cp-site > .cp-document-main { padding: 26px 24px 36px; } }
@media (max-width: 760px) {
  body.cp-site { padding: 0; }
  .cp-mobile-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; position: sticky; top: 0; z-index: 55; min-height: 66px; padding: 12px 18px; background: #fff; border-bottom: 1px solid var(--cp-line); }
  .cp-mobile-header .cp-brand { padding: 0; }
  .cp-mobile-header .cp-brand-copy small { display: none; }
  .cp-menu-button { display: flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 12px; background: #fff; border: 1px solid #dfe3e9; border-radius: 10px; color: #394352; font: 500 13px/1.5 var(--cp-font); cursor: pointer; }
  .cp-menu-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
  .cp-sidebar { top: 66px; width: 248px; z-index: 60; transform: translateX(-100%); visibility: hidden; transition: transform .18s ease, visibility .18s; padding-top: 20px; }
  .cp-sidebar > .cp-brand { display: none; }
  .cp-sidebar .cp-nav { margin-top: -14px; }
  .cp-sidebar[data-open="true"] { transform: translateX(0); visibility: visible; }
  .cp-menu-backdrop[data-open="true"] { display: block; position: fixed; inset: 66px 0 0; z-index: 58; background: #1f24304d; border: 0; width: 100%; }
  body.cp-menu-open { overflow: hidden; }
  .cp-site > main, .cp-site > .cp-home-layout > main, .cp-site > .cp-document-main { padding: 24px 18px 30px; }
  .cp-home-layout h1 { font-size: 26px; }
  .cp-home-layout .content-text { padding: 20px; }
  .cp-home-layout .team-photos { grid-template-columns: 1fr; }
}
@media (max-width: 370px) { .cp-site > main, .cp-site > .cp-home-layout > main, .cp-site > .cp-document-main { padding-left: 12px; padding-right: 12px; } }
@media (prefers-reduced-motion: reduce) { .cp-sidebar { transition: none; } }
