/* Scoped presentation layer for the existing portal and archive homepages. */
body.ui-home {
    --ui-ink: #17232b;
    --ui-muted: #566970;
    --ui-line: #ccd9d8;
    --ui-accent: #176d73;
    --ui-dark: #203b40;
    --ui-paper: #f4f7f7;
    margin: 0;
    background: var(--ui-paper);
    color: var(--ui-ink);
    font: 14px/1.7 "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
}
.ui-home *, .ui-home *::before, .ui-home *::after { box-sizing: border-box; letter-spacing: 0; }
.ui-home::before, .ui-home::after { display: none; }
.ui-home .animate-in { animation: none; }
.ui-home .header {
    position: relative;
    background: #fff;
    border: 0;
    border-bottom: 1px solid var(--ui-line);
    box-shadow: none;
    padding: 0 24px;
    backdrop-filter: none;
}
.ui-home .nav { max-width: 1180px; min-height: 68px; margin: auto; padding: 12px 0; gap: 24px; flex-wrap: wrap; }
.ui-home .logo {
    font: 600 20px/1.4 "Songti SC", SimSun, serif;
    border-left: 4px solid var(--ui-accent);
    padding-left: 12px;
    background: none;
    -webkit-text-fill-color: var(--ui-ink);
    color: var(--ui-ink);
    text-shadow: none;
}
.ui-home .nav-links { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; }
.ui-home .nav-links a, .ui-home .breadcrumb-container a { color: var(--ui-accent); }
.ui-home .breadcrumb-container { flex: 1; min-width: 0; color: var(--ui-muted); font-size: 13px; }
.ui-home :focus-visible { outline: 3px solid #c68143; outline-offset: 3px; }
.ui-home .search-container { display: flex; max-width: 720px; width: 100%; gap: 0; }
.ui-home .search-box {
    min-width: 0; width: auto; flex: 1; min-height: 52px; padding: 12px 18px;
    border: 1px solid var(--ui-line); border-radius: 3px 0 0 3px;
    background: #fff; color: var(--ui-ink); box-shadow: none; font-size: 16px;
}
.ui-home .search-btn {
    position: static; flex: 0 0 92px; min-height: 52px; padding: 12px 18px;
    border: 0; border-radius: 0 3px 3px 0; background: var(--ui-accent);
    color: #fff; font-size: 16px; box-shadow: none; transform: none; cursor: pointer;
}
.ui-home .search-btn:hover { background: #10565b; transform: none; box-shadow: none; }
.ui-home .footer { background: var(--ui-dark); color: #d2dfde; border: 0; border-radius: 0; padding: 32px 24px; margin-top: 0; box-shadow: none; }
.ui-home .footer-content { max-width: 1180px; gap: 32px; }
.ui-home .footer h3, .ui-home .footer a { color: #fff; }
.ui-home .footer p, .ui-home .footer li { color: #d2dfde; overflow-wrap: anywhere; }
.ui-home .footer-bottom { border-color: #527074; margin: 24px 0 0; width: auto; }
.ui-home .footer::before { display: none; }
.ui-portal .hero {
    --ui-hero-overlay-color: rgb(23 50 54);
    --ui-hero-overlay-opacity: .55;
    position: relative; isolation: isolate; padding: 64px 24px 56px;
    background: var(--ui-dark) url('/assets/images/hero-background.png') center/cover;
    background-image: image-set(
        url('/assets/images/hero-background-20261022.webp') type('image/webp'),
        url('/assets/images/hero-background.png') type('image/png')
    );
    color: #fff; text-align: center;
}
.ui-portal .hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--ui-hero-overlay-color); opacity: var(--ui-hero-overlay-opacity); }
.ui-portal .hero h1 { font: 600 40px/1.3 "Songti SC", SimSun, serif; margin: 0 0 16px; color: #fff; }
.ui-portal .hero p { font-size: 16px; color: #e0ebeb; margin: 0 auto 28px; max-width: 720px; }
.ui-portal .search-container { margin: 0 auto; }
.ui-portal .tags { margin-top: 18px; gap: 12px; }
.ui-portal .tag { background: transparent; border: 0; border-radius: 0; border-bottom: 1px solid #8aa8aa; color: #e0ebeb; padding: 2px 0; font-size: 13px; }
.ui-portal .libraries { background: var(--ui-paper); padding: 36px 24px 48px; }
.ui-portal .libraries-container { max-width: 1180px; }
.ui-portal .libraries h2 { text-align: left; font: 600 24px/1.4 "Songti SC", SimSun, serif; border-left: 3px solid var(--ui-accent); padding-left: 12px; color: var(--ui-ink); }
.ui-portal .libraries p { text-align: left; color: var(--ui-muted); }
.ui-portal .library-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ui-portal .library-card { max-width: none; padding: 24px; border: 1px solid var(--ui-line); border-radius: 4px; background: #fff; text-align: left; box-shadow: none; }
.ui-portal .library-card:hover { transform: none; border-color: var(--ui-accent); box-shadow: 0 3px 12px #18373a12; }
.ui-portal .library-card h3 { font: 600 20px/1.5 "Songti SC", SimSun, serif; color: var(--ui-ink); overflow-wrap: anywhere; }
.ui-portal .library-icon { font-size: 28px; }
.ui-portal .library-stats { color: var(--ui-muted); }
.ui-portal .library-grid > :not(.library-card) { grid-column: 1 / -1; }
.ui-archive .container { max-width: none; padding: 0; margin: 0; }
.ui-archive .page-header {
    padding: 52px max(24px, calc((100% - 1180px) / 2));
    margin: 0; border: 0; border-radius: 0; box-shadow: none;
    background-color: var(--ui-dark); color: #fff;
}
.ui-archive .page-header::after { border-radius: 0; background: rgb(24 59 62 / 90%); }
.ui-archive .page-title { background: none; -webkit-text-fill-color: inherit; color: #fff; margin-bottom: 12px; gap: 0; }
.ui-archive .page-title h1 { font: 600 36px/1.3 "Songti SC", SimSun, serif; margin: 0 0 10px; }
.ui-archive .page-icon { display: none; }
.ui-archive .page-subtitle { color: #e6d59c; font-size: 16px; margin: 0; }
.ui-archive .page-header p { max-width: 820px; color: #e0ebeb; font-size: 15px; line-height: 1.9; text-align: left; }
.ui-archive .page-header .search-container { margin-left: 0; margin-right: 0; }
.ui-archive .stats { max-width: 1180px; margin: 0 auto; padding: 24px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-bottom: 1px solid var(--ui-line); }
.ui-archive .stat-card { background: transparent; border: 0; border-right: 1px solid var(--ui-line); border-radius: 0; box-shadow: none; padding: 8px 24px; min-width: 0; }
.ui-archive .stat-card:last-child { border-right: 0; }
.ui-archive .stat-card::after { display: none; }
.ui-archive .stat-card:hover { transform: none; background: #e6f1f0; box-shadow: none; }
.ui-archive .stat-number { background: none; -webkit-text-fill-color: var(--ui-accent); color: var(--ui-accent); font: 600 26px/1.4 "Songti SC", SimSun, serif; overflow-wrap: anywhere; }
.ui-archive .stat-label { color: var(--ui-muted); font-size: 13px; }
.ui-archive .content-section { max-width: 1228px; margin: 0 auto; padding: 36px 24px 48px; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.ui-archive .section-header { border: 0; margin-bottom: 20px; gap: 16px; }
.ui-archive .section-title { font: 600 24px/1.4 "Songti SC", SimSun, serif; color: var(--ui-ink); border-left: 3px solid var(--ui-accent); padding-left: 12px; }
.ui-archive .section-title { background: none; -webkit-text-fill-color: var(--ui-ink); border-image: none; border-bottom: 0; margin: 0; padding-bottom: 0; }
.ui-archive .section-title::before, .ui-archive .book-item::before { display: none; }
.ui-archive .btn-more { color: var(--ui-accent); background: none; border: 0; box-shadow: none; }
.ui-archive .book-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ui-archive .book-list > li { min-width: 0; margin: 0; padding: 20px; border: 1px solid var(--ui-line); border-radius: 4px; background: #fff; box-shadow: none; }
.ui-archive .book-list > li:hover { transform: none; border-color: var(--ui-accent); }
.ui-archive .book-list > :not(.book-item) { grid-column: 1 / -1; }
.ui-archive .archive-header { align-items: flex-start; gap: 16px; }
.ui-archive .archive-title { color: var(--ui-ink); font: 600 17px/1.6 "Songti SC", SimSun, serif; overflow-wrap: anywhere; }
.ui-archive .archive-meta { color: var(--ui-muted); flex-wrap: wrap; }
.ui-archive .btn-primary { background: var(--ui-accent); color: #fff; border-radius: 3px; box-shadow: none; white-space: nowrap; }
@media (max-width: 800px) {
    .ui-home .nav { gap: 12px; }
    .ui-home .nav-links { gap: 12px; }
    .ui-portal .library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ui-archive .stats { margin: 0 24px; }
}
@media (max-width: 540px) {
    .ui-home .header { padding: 0 16px; }
    .ui-home .nav { align-items: center; flex-direction: row; justify-content: space-between; }
    .ui-home .nav-links { font-size: 13px; }
    .ui-home .breadcrumb-container { flex-basis: 100%; order: 3; font-size: 12px; }
    .ui-home .search-btn { flex-basis: 76px; padding: 12px; }
    .ui-portal .hero { padding: 36px 16px; }
    .ui-portal .hero h1 { font-size: 28px; }
    .ui-portal .libraries { padding: 28px 16px; }
    .ui-portal .library-grid { grid-template-columns: minmax(0, 1fr); }
    .ui-archive .page-header { padding: 32px 16px; }
    .ui-archive .page-title { text-align: left; justify-content: flex-start; }
    .ui-archive .page-title h1 { font-size: 28px; }
    .ui-archive .stats { margin: 0 16px; padding: 18px 0; }
    .ui-archive .stat-card { padding: 8px; }
    .ui-archive .stat-number { font-size: 20px; }
    .ui-archive .content-section { padding: 28px 16px; }
    .ui-archive .book-list { grid-template-columns: minmax(0, 1fr); }
}
