:root { --paper:#ffffff; --surface:#f6f7f8; --text:#24292f; --secondary:#57616c; --accent:#245e94; --line:#dde2e7; --error:#a32020; font-family:"Microsoft YaHei","PingFang SC",sans-serif; color:var(--text); background:var(--paper); font-synthesis:none; }
* { box-sizing:border-box; }
body { margin:0; font-size:16px; line-height:1.7; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
a { color:var(--accent); text-underline-offset:4px; overflow-wrap:anywhere; }
input,select,textarea,button { border-radius:4px; }
:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline-offset:1px; }
[hidden] { display:none !important; }
.page-width { width:min(1120px,calc(100% - 64px)); margin-inline:auto; }
.development-notice { background:var(--surface); color:var(--secondary); border-bottom:1px solid var(--line); padding-block:10px; font-size:14px; }
.development-notice p { margin:0; }
.site-header { border-bottom:1px solid var(--line); }
.header-inner { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap; padding-block:16px; }
.brand { font-size:22px; font-weight:700; color:var(--text); text-decoration:none; }
.header-nav { display:flex; gap:20px; align-items:center; flex-wrap:wrap; font-size:15px; }
.header-nav a { text-decoration:none; }
.header-nav a:not(.plain-button) { color:var(--secondary); }
.header-nav a[aria-current="page"] { color:var(--text); text-decoration:underline; text-decoration-thickness:2px; }
.inline-form { display:inline; margin:0; }
.nav-button { background:transparent; border:0; padding:0; color:var(--secondary); }
main { padding-block:40px 56px; min-height:60vh; }
h1 { font-size:28px; font-weight:650; line-height:1.4; margin:0 0 12px; overflow-wrap:anywhere; }
h2 { font-size:20px; font-weight:600; line-height:1.5; margin:0 0 15px; }
h3 { font-size:19px; font-weight:600; line-height:1.5; margin:0 0 10px; overflow-wrap:anywhere; }
p { margin:0 0 16px; max-width:48em; }
.intro,.secondary-text { color:var(--secondary); }
.intro { margin-bottom:24px; }
.primary-button,.plain-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:8px 19px; text-decoration:none; text-align:center; font-weight:500; border:1px solid var(--line); background:var(--paper); color:var(--text); border-radius:4px; }
.primary-button { background:var(--accent); border-color:var(--accent); color:var(--paper); padding-inline:24px; }
.plain-button:hover { color:var(--accent); border-color:var(--accent); }
.primary-button:hover { background:#1d4f7e; border-color:#1d4f7e; }
.search-form { display:flex; gap:10px; width:min(800px,100%); }
.search-field { flex:1; min-width:0; height:54px; padding:12px 16px; border:1px solid #a9b5c0; background:var(--paper); color:var(--text); }
.catalog-layout { display:grid; grid-template-columns:190px minmax(0,1fr); gap:44px; margin-top:42px; }
.results-heading { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:10px; border-bottom:1px solid var(--line); padding-bottom:17px; }
.results-heading h2,.results-count { margin:0; }
.results-count { font-size:14px; color:var(--secondary); }
.book-row { padding-block:24px; border-bottom:1px solid var(--line); }
.book-title-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; }
.book-title-line h3 { margin:0; font-size:20px; }
.book-title-line h3 a { text-decoration:none; color:var(--text); }
.book-title-line h3 a:hover { color:var(--accent); text-decoration:underline; }
.sample-label { font-size:13px; font-weight:400; color:var(--secondary); }
.book-meta { display:flex; flex-wrap:wrap; gap:4px 24px; margin:9px 0 0; color:var(--secondary); font-size:14px; }
.book-description { margin:12px 0 14px; }
.tag-line { font-size:13px; color:var(--secondary); margin:0 0 12px; }
.detail-link { font-size:15px; }
.form-field { margin-bottom:19px; }
.form-field label { display:block; font-size:15px; font-weight:600; margin-bottom:6px; }
.form-field input:not([type=checkbox]):not([type=radio]),.form-field select,.form-field textarea { display:block; width:100%; min-width:0; padding:9px 11px; min-height:44px; border:1px solid #a9b5c0; background:var(--paper); color:var(--text); }
.form-field textarea { min-height:140px; resize:vertical; }
.field-hint,.helptext { display:block; font-size:13px; line-height:1.6; color:var(--secondary); margin:6px 0 0; }
.field-hint ul,.helptext ul { padding-left:20px; }
.field-error,.errorlist { color:var(--error); font-size:14px; margin:6px 0 0; }
.errorlist { padding-left:20px; }
[aria-invalid=true] { border-color:var(--error) !important; }
.tag-filter { margin:0 0 20px; padding:0; border:0; min-width:0; }
.tag-filter legend { font-weight:600; font-size:15px; margin-bottom:7px; }
.checkbox-label { display:flex; align-items:baseline; gap:9px; font-size:14px; margin-bottom:9px; overflow-wrap:anywhere; }
.checkbox-label input { flex:none; accent-color:var(--accent); }
.filter-actions { display:flex; align-items:center; flex-wrap:wrap; gap:15px; font-size:14px; }
.empty-state { padding:34px 0; }
.empty-state p { color:var(--secondary); }
.pagination { margin-top:26px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; font-size:14px; }
.breadcrumb { font-size:14px; margin-bottom:25px; }
.product-detail { max-width:850px; }
.product-summary { margin-top:24px; }
.detail-section { border-top:1px solid var(--line); padding-top:25px; margin-top:28px; }
.metadata-list { display:grid; grid-template-columns:90px minmax(0,1fr); gap:11px 18px; margin:0; }
.metadata-list dt { color:var(--secondary); font-size:14px; }
.metadata-list dd { margin:0; overflow-wrap:anywhere; }
.component-row { padding-block:18px; border-bottom:1px solid var(--line); }
.component-row h3 .sample-label { margin-left:12px; }
.narrow-content,.form-container { width:min(620px,100%); }
.form-layout { width:min(620px,100%); }
.error-summary { padding:11px 15px; margin:18px 0; border-left:3px solid var(--error); background:var(--surface); color:var(--error); font-size:14px; }
.detail-content { margin-top:18px; padding:16px 18px; background:var(--surface); border-left:3px solid var(--line); }
.message-body { white-space:pre-wrap; overflow-wrap:anywhere; }
.form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:24px; }
.notice { border-left:3px solid var(--accent); background:var(--surface); padding:12px 16px; margin-bottom:20px; font-size:14px; }
.notice.error,.notice.danger { border-color:var(--error); color:var(--error); }
.section { margin-top:28px; border-top:1px solid var(--line); padding-top:24px; }
.simple-list { padding:0; list-style:none; margin:0; }
.simple-list li { padding-block:18px; border-bottom:1px solid var(--line); }
.status-label { font-size:13px; color:var(--secondary); }
.table-scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th,td { padding:12px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { font-weight:600; background:var(--surface); }
.site-footer { border-top:1px solid var(--line); background:var(--surface); color:var(--secondary); font-size:14px; }
.footer-inner { padding-block:24px; display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:14px; }
.footer-inner p { margin:0; }
.footer-links { display:flex; flex-wrap:wrap; gap:24px; }
.skip-link { position:fixed; top:8px; left:8px; z-index:20; transform:translateY(-180%); padding:8px 16px; background:var(--paper); border:2px solid var(--accent); }
.skip-link:focus { transform:none; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.home-intro { max-width:900px; }
.home-categories { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 22px; margin-top:24px; font-size:14px; }
.home-section { margin-top:42px; }
.support-intro { border-top:1px solid var(--line); padding-top:30px; }
.text-links { display:flex; flex-wrap:wrap; align-items:baseline; gap:12px 24px; }
.reading-content { max-width:850px; }
.page-heading { margin-bottom:30px; }
.page-heading .intro { margin-bottom:0; }
.service-row { padding-block:24px; border-bottom:1px solid var(--line); }
.service-row h2 a { color:var(--text); text-decoration:none; }
.service-row h2 a:hover { color:var(--accent); text-decoration:underline; }
.service-row h2 { margin-bottom:10px; }
.service-row .service-description { margin-block:12px; }
.release-row { border-bottom:1px solid var(--line); padding-block:22px; }
.release-row h4 { font-size:16px; font-weight:600; margin:16px 0 8px; }
.release-row .metadata-list { margin-bottom:16px; grid-template-columns:100px minmax(0,1fr); }
.release-digest { font-size:13px; overflow-wrap:anywhere; }
.guide-steps { padding-left:26px; margin:0; }
.guide-steps li { padding-left:5px; margin-bottom:23px; }
.guide-steps h3 { margin-bottom:8px; }
.guide-steps p:last-child { margin-bottom:0; }
.faq-group { margin-top:34px; }
.faq-item { border-bottom:1px solid var(--line); padding-block:16px; }
.faq-item summary { cursor:pointer; font-weight:600; padding-block:4px; overflow-wrap:anywhere; }
.faq-answer { padding-top:14px; max-width:48em; }
.faq-answer p:last-child { margin-bottom:0; }
@media(max-width:760px) { .page-width { width:calc(100% - 36px); } .header-inner { min-height:76px; gap:12px; } .brand { font-size:20px; } .header-nav { font-size:14px; gap:14px; } main { padding-block:30px 40px; } h1 { font-size:24px; } .intro { font-size:15px; } .catalog-layout { grid-template-columns:minmax(0,1fr); gap:26px; margin-top:30px; } .catalog-sidebar { border-bottom:1px solid var(--line); padding-bottom:22px; } .tag-filter { display:flex; flex-wrap:wrap; gap:3px 18px; } .tag-filter legend { float:left; width:100%; } .tag-filter .field-hint { flex-basis:100%; } .book-row { padding-block:21px; } .search-field { padding-inline:12px; } .search-form .primary-button { padding-inline:18px; } }
@media(max-width:760px) { .header-nav { width:100%; gap:8px 18px; } .header-nav>a { min-height:36px; display:inline-flex; align-items:center; } .header-nav .inline-form { display:inline-flex; min-height:36px; align-items:center; } .home-section { margin-top:32px; } .home-categories { gap:8px 18px; } .release-row .metadata-list { grid-template-columns:90px minmax(0,1fr); } }
@media(max-width:420px) { .page-width { width:calc(100% - 32px); } .development-notice { font-size:12px; } .book-meta { display:grid; } .metadata-list { grid-template-columns:minmax(0,1fr); gap:4px; } .metadata-list dd+dt { margin-top:9px; } .header-nav { gap:12px; } .header-nav .plain-button { padding-inline:12px; } }
@media(max-width:420px) { .release-row .metadata-list { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Images selected through the private manager. */
.site-brand-image{width:36px;height:36px;object-fit:contain;vertical-align:middle;margin-right:10px}
.site-editor-image{display:block;max-width:100%;height:auto;max-height:480px;object-fit:contain;margin:24px 0}
.home-editor-hero{width:100%;max-height:350px;object-fit:contain;margin-bottom:16px}
.product-cover{display:block;max-width:140px;max-height:210px;object-fit:contain;margin:0 20px 16px 0}
.book-row .product-cover{float:left}

