/* Shared non-reader shell. Keep the reader's existing theme and geometry intact. */
body.site-shell:not(.reader-page) { background:#eff3f7; }
body.site-shell:not(.reader-page) .site-header { min-height:104px; background:#19568a; border-bottom:1px solid #174f7e; color:#fff; }
body.site-shell:not(.reader-page) .header-main { min-height:66px; display:grid; align-items:center; grid-template-columns:210px minmax(300px,560px) 1fr; gap:34px; }
body.site-shell:not(.reader-page) .brand { color:#fff; gap:8px; font-size:22px; line-height:1; }
body.site-shell:not(.reader-page) .brand-mark { width:54px; height:46px; object-fit:contain; filter:grayscale(1) invert(1) brightness(2); mix-blend-mode:screen; }
body.site-shell:not(.reader-page) .brand-copy { gap:5px; }
body.site-shell:not(.reader-page) .brand-copy strong { white-space:nowrap; }
body.site-shell:not(.reader-page) .brand-tagline { display:block; color:#cbdfee; font-size:9px; font-weight:500; line-height:1; }
body.site-shell:not(.reader-page) .header-search { height:38px; display:grid; grid-template-columns:1fr 74px; border:1px solid #fff; border-radius:3px; background:#fff; }
body.site-shell:not(.reader-page) .header-search input { min-width:0; background:#fff; color:#29384b; padding-inline:14px; font-size:12px; }
body.site-shell:not(.reader-page) .header-search button { display:flex; align-items:center; justify-content:center; gap:5px; background:#e6f0f9; color:#19568a; font-size:13px; }
body.site-shell:not(.reader-page) .header-search button span { display:inline; }
body.site-shell:not(.reader-page) .header-search button svg { width:17px; height:17px; }
body.site-shell:not(.reader-page) .header-actions { color:#fff; gap:24px; font-size:13px; }
body.site-shell:not(.reader-page) .header-action { color:#fff; gap:6px; }
body.site-shell:not(.reader-page) .header-action svg { color:#fff; }
body.site-shell:not(.reader-page) .site-nav { height:38px; align-items:flex-end; gap:42px; }
body.site-shell:not(.reader-page) .site-nav::after { content:"阅读，让生活多一点海阔天空"; color:#cbdfee; margin:0 0 9px auto; font-size:11px; }
body.site-shell:not(.reader-page) .site-nav a { height:38px; color:#fff; font-size:14px; font-weight:500; }
body.site-shell:not(.reader-page) .site-nav a[aria-current="page"] { color:#fff; font-weight:600; }
body.site-shell:not(.reader-page) .site-nav a[aria-current="page"]::after,
body.site-shell:not(.reader-page) .site-nav a:hover::after { height:3px; background:#fff; }
body.site-shell:not(.reader-page) .site-header a:focus-visible { outline:2px solid #fff; outline-offset:3px; }
body.site-shell:not(.reader-page) .site-footer { padding:26px 0 10px; background:#183d5d; color:#c3d3e1; border-top:1px solid #183d5d; }
body.site-shell:not(.reader-page) .hailang-footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,.75fr) 1.2fr; align-items:start; gap:42px; }
body.site-shell:not(.reader-page) .footer-brand img { width:58px; height:50px; object-fit:contain; filter:grayscale(1) invert(1) brightness(2); mix-blend-mode:screen; }
body.site-shell:not(.reader-page) .footer-brand strong { color:#fff; font-size:21px; }
body.site-shell:not(.reader-page) .footer-brand small { display:block; color:#c3d3e1; font-size:9px; }
body.site-shell:not(.reader-page) .site-footer .footer-title { margin:0 0 11px; color:#fff; font-size:12px; font-weight:500; }
body.site-shell:not(.reader-page) .site-footer .footer-links { gap:3px; color:#c3d3e1; font-size:10px; line-height:1.8; }
body.site-shell:not(.reader-page) .site-footer .footer-links a { color:#c3d3e1; }
body.site-shell:not(.reader-page) .site-footer a:hover { color:#fff; }
body.site-shell:not(.reader-page) .footer-wave-note { justify-self:end; width:180px; height:152px; margin-top:-13px; object-fit:contain; filter:grayscale(1) invert(1); mix-blend-mode:screen; opacity:.7; }
body.site-shell:not(.reader-page) .footer-bottom { margin-top:20px; padding-top:13px; color:#c3d3e1; border-top-color:#355773; font-size:9px; text-align:center; }
@media (min-width:1200px) {
 body.site-shell:not(.reader-page) .container { width:min(calc(100% - 80px),1360px); }
 body.site-shell:not(.reader-page) .site-header { min-height:126px; }
 body.site-shell:not(.reader-page) .header-main { height:84px; min-height:84px; grid-template-columns:353px minmax(300px,548px) 1fr; gap:34px; padding:0; }
 body.site-shell:not(.reader-page) .brand { gap:13px; font-size:30px; }
 body.site-shell:not(.reader-page) .brand-mark { width:62px; height:48px; }
 body.site-shell:not(.reader-page) .brand-tagline { font-size:13px; }
 body.site-shell:not(.reader-page) .header-search { height:44px; grid-template-columns:1fr 100px; }
 body.site-shell:not(.reader-page) .header-search input { font-size:14px; }
 body.site-shell:not(.reader-page) .header-search button,
 body.site-shell:not(.reader-page) .header-actions { font-size:16px; }
 body.site-shell:not(.reader-page) .header-actions { gap:32px; }
 body.site-shell:not(.reader-page) .site-nav { height:41px; gap:48px; }
 body.site-shell:not(.reader-page) .site-nav a { height:41px; padding-inline:4px; font-size:16px; }
 body.site-shell:not(.reader-page) .site-nav::after { font-size:14px; margin-bottom:13px; }
 body.site-shell:not(.reader-page) .site-footer { padding:38px 0 20px; }
 body.site-shell:not(.reader-page) .hailang-footer-grid { grid-template-columns:393px repeat(3,162px) 1fr; gap:40px; }
 body.site-shell:not(.reader-page) .footer-brand img { width:62px; height:48px; }
 body.site-shell:not(.reader-page) .footer-brand strong { font-size:30px; }
 body.site-shell:not(.reader-page) .footer-brand small { font-size:13px; }
 body.site-shell:not(.reader-page) .site-footer .footer-title { font-size:16px; margin-bottom:16px; }
 body.site-shell:not(.reader-page) .site-footer .footer-links { font-size:14px; line-height:24px; }
 body.site-shell:not(.reader-page) .footer-wave-note { width:230px; height:146px; margin:0; }
 body.site-shell:not(.reader-page) .footer-bottom { font-size:14px; margin-top:30px; padding-top:22px; }
}
@media (min-width:1200px) and (max-width:1350px) {
 body.site-shell:not(.reader-page) .header-main { grid-template-columns:290px minmax(300px,1fr) auto; gap:24px; }
 body.site-shell:not(.reader-page) .hailang-footer-grid { grid-template-columns:280px repeat(3,1fr) 180px; gap:24px; }
 body.site-shell:not(.reader-page) .footer-wave-note { width:180px; }
}
@media (min-width:761px) and (max-width:1199px) {
 body.site-shell:not(.reader-page) .container { width:calc(100% - 28px); }
 body.site-shell:not(.reader-page) .header-main { grid-template-columns:185px minmax(260px,1fr) auto; gap:18px; }
 body.site-shell:not(.reader-page) .hailang-footer-grid { gap:20px; }
}
@media (max-width:760px) {
 body.site-shell:not(.reader-page) .container { width:calc(100% - 24px); }
 body.site-shell:not(.reader-page) .site-header { min-height:142px; }
 body.site-shell:not(.reader-page) .header-main { min-height:96px; height:auto; grid-template-columns:1fr auto; gap:8px 16px; padding-block:8px; }
 body.site-shell:not(.reader-page) .brand { font-size:20px; }
 body.site-shell:not(.reader-page) .brand-mark { width:48px; height:42px; }
 body.site-shell:not(.reader-page) .header-search { grid-column:1/-1; grid-row:2; width:100%; }
 body.site-shell:not(.reader-page) .header-actions { grid-column:2; grid-row:1; gap:12px; }
 body.site-shell:not(.reader-page) .header-action { min-height:34px; font-size:12px; }
 body.site-shell:not(.reader-page) .site-nav { height:46px; gap:0; justify-content:space-between; overflow-x:auto; }
 body.site-shell:not(.reader-page) .site-nav::after { display:none; }
 body.site-shell:not(.reader-page) .site-nav a { height:46px; padding-inline:8px; font-size:13px; white-space:nowrap; }
 body.site-shell:not(.reader-page) .hailang-footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 12px; }
 body.site-shell:not(.reader-page) .footer-brand { grid-column:1/-1; }
 body.site-shell:not(.reader-page) .footer-wave-note { display:none; }
 body.site-shell:not(.reader-page) .site-footer .footer-title { font-size:14px; }
 body.site-shell:not(.reader-page) .site-footer .footer-links { font-size:12px; line-height:24px; }
 body.site-shell:not(.reader-page) .footer-bottom { font-size:11px; line-height:1.8; }
}

@media (max-width:430px) {
 body.site-shell:not(.reader-page) .brand-tagline { font-size:8px; }
 body.site-shell:not(.reader-page) .header-actions span { display:none; }
}

/* Inner pages: tinted controls, quiet white reading surfaces, restrained accents. */
body.hailang-library .page-heading h1,
body.hailang-ranking .ranking-heading h1,
body.hailang-updates .updates-heading h1,
body.hailang-detail .hd-info h1 { color:#27374b; font-weight:600; }
body.hailang-library .filter-panel { background:#e2eef8; border-color:#d3e3f0; border-radius:8px; }
body.hailang-library .filter-row { border-color:#cfdfea; }
body.hailang-library .filter-label { color:#526c83; }
body.hailang-library .filter-options a { color:#345570; }
body.hailang-library .filter-options a.is-active,
body.hailang-library .filter-options a:hover { color:#fff; background:#2376bc; }
body.hailang-library .library-toolbar { background:#e8f0f7; border-color:#d7e3ed; border-radius:8px; }
body.hailang-library .library-card { grid-template-rows:minmax(126px,1fr) 30px; border-color:#dfe7ee; border-radius:8px; }
body.hailang-library .library-card .book-name { color:#27374b; font-weight:500; }
body.hailang-library .library-card .book-cover { box-shadow:0 3px 7px rgb(25 45 65 / 10%); }
body.hailang-library .library-card-chapter { background:#f5f8fb; margin-inline:-15px; padding-inline:15px; border-radius:0 0 8px 8px; }
body.hailang-library .library-pagination { border-color:#dfe7ee; border-radius:8px; }
body.hailang-ranking .rank-controls { background:#e2eef8; border-color:#d3e3f0; border-radius:8px; }
body.hailang-ranking .ranking-explanation { border-color:#cfdfea; }
body.hailang-ranking .ranking-explanation strong { font-weight:500; }
body.hailang-ranking .ranking-leader { background:#eaf3fc; border-color:#d6e5f3; border-radius:8px; }
body.hailang-ranking .ranking-leader:nth-child(2) { background:#edf5f3; border-color:#d9e8e2; }
body.hailang-ranking .ranking-leader:nth-child(3) { background:#f4f0e8; border-color:#e8dfce; }
body.hailang-ranking .ranking-leader .ranking-cover { box-shadow:0 3px 7px rgb(25 45 65 / 10%); }
body.hailang-ranking .ranking-name { font-weight:500; color:#27374b; }
body.hailang-ranking .ranking-leader .ranking-name { font-weight:600; }
body.hailang-ranking .ranking-table { border-color:#dfe7ee; border-radius:8px; }
body.hailang-ranking .ranking-list-heading { margin-inline:-19px; padding-inline:19px; background:#edf4fa; border-radius:8px 8px 0 0; }
body.hailang-ranking .ranking-list-heading h2 { font-weight:600; border-color:#aeccea; }
body.hailang-ranking .ranking-columns { background:#e8f0f7; color:#526c83; }
body.hailang-ranking .ranking-more strong { font-weight:500; }
body.hailang-ranking .ranking-more > a { background:#e8f0f7; border-color:#d7e3ed; border-radius:8px; }
body.hailang-updates .updates-calendar { background:#e2eef8; border-color:#d3e3f0; border-radius:8px; }
body.hailang-updates .updates-day { background:transparent; }
body.hailang-updates .updates-day.is-selected { background:#fff; border-color:#78aadb; box-shadow:0 2px 5px rgb(25 45 65 / 8%); }
body.hailang-updates .updates-day:disabled { background:#eaf0f5; }
body.hailang-updates .updates-day strong { font-weight:600; font-variant-numeric:tabular-nums; }
body.hailang-updates .updates-filters { background:#e8f0f7; border-color:#d7e3ed; border-radius:8px; }
body.hailang-updates .updates-panel { border-color:#dfe7ee; border-radius:8px; }
body.hailang-updates .updates-panel-head { background:#edf4fa; margin-inline:-19px; padding-inline:19px; border-radius:8px 8px 0 0; }
body.hailang-updates .updates-panel-head h2 { border-color:#aeccea; font-weight:600; }
body.hailang-updates .updates-table th { background:#e8f0f7; color:#526c83; }
body.hailang-updates .updates-book strong { font-weight:500; }
body.hailang-updates .updates-more { background:#e4edf5; border-color:#d7e3ed; border-radius:8px; }
body.hailang-updates .updates-more h2 { font-weight:500; }
body.hailang-detail .hd-main { background:#eff3f7; }
body.hailang-detail .hd-hero { background:#eaf3fc; border-color:#d6e5f3; border-radius:8px; }
body.hailang-detail .hd-cover img { box-shadow:0 3px 6px rgb(29 55 83 / 10%),0 12px 24px rgb(29 55 83 / 10%); }
body.hailang-detail .hd-tags span { background:#fff; }
body.hailang-detail .hd-latest { background:#fff; border-color:#d7e3ed; border-radius:6px; }
body.hailang-detail .hd-panel { border-color:#dfe7ee; border-radius:8px; }
body.hailang-detail .hd-panel > .hd-heading { background:#edf4fa; margin:-20px -23px 20px; padding:16px 23px; border-radius:8px 8px 0 0; }
body.hailang-detail .hd-heading h2 { color:#27374b; font-weight:600; }
body.hailang-detail .hd-heading h2::before { background:#aeccea; }
body.hailang-detail .hd-chapter-grid a { color:inherit; }
body.hailang-detail .hd-chapters > .hd-heading { margin-bottom:0; }
body.hailang-detail .hd-related > .hd-heading { background:#e6f3f1; }
body.hailang-detail .hd-related-grid h3 { font-weight:500; }
body.hailang-detail .hd-search { background:#fff; }
body.hailang-detail .hd-related-grid img { box-shadow:0 3px 7px rgb(25 45 65 / 10%); }
body.hailang-detail .hd-stats dd,
body.hailang-updates .updates-table time,
body.hailang-ranking .ranking-metric { font-variant-numeric:tabular-nums; }
@media (hover:hover) {
 body.hailang-library .library-card:hover { border-color:#bed5e8; box-shadow:0 4px 12px rgb(25 45 65 / 6%); }
 body.hailang-ranking .ranking-rows .ranking-book:hover,
 body.hailang-updates .updates-table tbody tr:hover,
 body.hailang-detail .hd-chapter-grid a:hover { background:#f4f8fc; }
}
@media (max-width:800px) {
 body.hailang-ranking .ranking-list-heading { margin-inline:-12px; padding-inline:12px; }
}
@media (max-width:700px) {
 body.hailang-updates .updates-panel-head { margin-inline:-12px; padding-inline:12px; }
}
@media (max-width:600px) {
 body.hailang-detail .hd-panel > .hd-heading { margin:-16px -16px 16px; padding:14px 16px; }
 body.hailang-detail .hd-chapters > .hd-heading { margin-bottom:0; }
}

/* Match the homepage's semantic text palette, not the legacy vivid blue. */
body:is(.hailang-library,.hailang-ranking,.hailang-updates,.hailang-detail) {
 --hailang-link:#52769b;
 --hailang-control:#3a6d9e;
 --hailang-accent:#1477d4;
}
body.hailang-library :is(.library-detail,.library-reset,.library-card-tags span),
body.hailang-ranking :is(.ranking-detail,.ranking-list-foot a,.ranking-sort-label),
body.hailang-updates :is(.updates-reset,.updates-shelf,.updates-read,.updates-table-foot a),
body.hailang-updates .updates-table tbody tr:nth-child(-n+3) :is(time,.updates-chapter),
body.hailang-detail :is(.hd-heading > a,.hd-text-button,.hd-tags span:nth-child(2),.hd-latest-label) { color:var(--hailang-link); }
body.hailang-library .library-sort-tabs a:is(.is-active,:hover),
body.hailang-ranking :is(.ranking-tabs a.is-active,.ranking-periods a.is-active),
body.hailang-ranking .ranking-leader:not(:first-child) .ranking-metric,
body.hailang-updates .updates-day.is-selected,
body.hailang-updates .updates-day.is-selected .updates-weekday,
body.hailang-detail .hd-order button[aria-pressed=true] { color:var(--hailang-accent); }
body.hailang-ranking :is(.ranking-more-mark,.ranking-more svg),
body.hailang-updates :is(.updates-apply,.updates-panel-head button),
body.hailang-detail .hd-button:not(.hd-primary) { color:var(--hailang-control); }
body.hailang-detail .hd-main a:hover { color:var(--hailang-accent); }
body.hailang-detail .hd-main .hd-primary:hover { color:#fff; }
body:is(.hailang-library,.hailang-ranking,.hailang-updates) main a:hover { color:var(--hailang-accent); }
body.hailang-library .filter-options a:is(.is-active,:hover),
body.hailang-library .pager .on,
body.hailang-updates .updates-more > a:hover { color:#fff; }
