
        .news-list-page { background: #ffffff; }
        .news-list-page .nav-logo { filter: brightness(0); }
        .news-list-page .nav-link { color: #000000; }
        .news-list-page .nav-link.institute { color: var(--accent); }
        .news-list-page .nav-icon { color: #000000; }

        .nl-main {
            min-height: 100vh;
            background: #ffffff;
            padding: calc(var(--nav-height) + 90px) 40px 120px;
        }
        .nl-header {
            text-align: center;
            margin-bottom: 40px;
        }
        .nl-eyebrow {
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            color: var(--accent);
            margin-bottom: 18px;
        }
        .nl-title {
            font-size: clamp(2.4rem, 5vw, 4rem);
            font-weight: 600;
            line-height: 1.1;
            letter-spacing: -0.01em;
            color: #111111;
        }
        .nl-toolbar {
            max-width: 1320px;
            margin: 0 auto 36px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 24px;
            flex-wrap: wrap;
        }
        .nl-sort {
            position: relative;
        }
        .nl-sort-label {
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: #111111;
        }
        .nl-sort-btn {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            margin-left: 10px;
            padding: 0;
            background: transparent;
            border: none;
            font-family: inherit;
            font-size: 11px;
            font-weight: 500;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #111111;
            cursor: pointer;
        }
        .nl-sort-btn svg {
            width: 10px;
            height: 10px;
            flex-shrink: 0;
            transition: transform 0.2s ease;
        }
        .nl-sort-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
        .nl-sort-menu {
            position: absolute;
            top: calc(100% + 10px);
            left: 0;
            min-width: 180px;
            background: #ffffff;
            border: 1px solid rgba(0,0,0,0.12);
            box-shadow: 0 12px 40px rgba(0,0,0,0.08);
            z-index: 100;
            display: none;
        }
        .nl-sort-menu.active { display: block; }
        .nl-sort-option {
            width: 100%;
            padding: 12px 16px;
            background: transparent;
            border: none;
            text-align: left;
            font-family: inherit;
            font-size: 12px;
            font-weight: 500;
            letter-spacing: 0.04em;
            color: #111111;
            cursor: pointer;
            transition: background 0.15s ease;
        }
        .nl-sort-option:hover { background: rgba(0,0,0,0.04); }
        .nl-sort-option[aria-selected="true"] { font-weight: 700; }

        .nl-filter {
            position: relative;
        }
        .nl-filter-btn {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 0;
            background: transparent;
            border: none;
            font-family: inherit;
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: #111111;
            cursor: pointer;
        }
        .nl-filter-btn svg {
            width: 14px;
            height: 14px;
            flex-shrink: 0;
        }
        .nl-filter-panel {
            position: absolute;
            top: calc(100% + 12px);
            right: 0;
            min-width: 200px;
            background: #ffffff;
            border: 1px solid rgba(0,0,0,0.12);
            box-shadow: 0 12px 40px rgba(0,0,0,0.08);
            padding: 18px 20px;
            z-index: 100;
            display: none;
        }
        .nl-filter-panel.active { display: block; }
        /* English page: widen filter dropdown so long category names fit */
        html:not(.lang-zh) .nl-filter-panel { min-width: 240px; }
        .nl-filter-title {
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: #111111;
            margin-bottom: 14px;
        }
        .nl-filter-option {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 0;
            cursor: pointer;
            font-size: 13px;
            font-weight: 500;
            color: #111111;
        }
        .nl-filter-option input {
            width: 16px;
            height: 16px;
            accent-color: #111111;
            cursor: pointer;
        }

        .nl-grid {
            max-width: 1320px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 40px 28px;
        }
        .nl-card {
            display: block;
            text-decoration: none;
            color: inherit;
            background: #ffffff;
            border-radius: 0;
            overflow: visible;
            box-shadow: 0 6px 22px rgba(0, 0, 0, 0.06);
            transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.45s cubic-bezier(0.16, 1, 0.3, 1);
            will-change: transform;
        }
        .nl-card:hover {
            transform: translateY(-6px) scale(1.04);
            box-shadow: 0 26px 60px rgba(0, 0, 0, 0.16);
            z-index: 2;
        }
        .nl-thumb {
            position: relative;
            width: 100%;
            aspect-ratio: 16 / 9;
            overflow: hidden;
            background: #111111;
        }
        .nl-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .nl-card:hover .nl-thumb img { transform: scale(1.08); }
        .nl-body { padding: 20px 18px 26px; }
        .nl-meta {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 14px;
        }
        .nl-cat {
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: var(--accent);
        }
        .nl-date {
            font-size: 11px;
            font-weight: 500;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: rgba(0, 0, 0, 0.45);
            white-space: nowrap;
        }
        .nl-cardtitle {
            font-size: 1.15rem;
            font-weight: 600;
            line-height: 1.4;
            color: #111111;
        }

        .nl-pagination {
            max-width: 1320px;
            margin: 64px auto 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 18px;
        }
        .nl-page-btns {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
            justify-content: center;
        }
        .nl-page-btn {
            min-width: 40px;
            height: 40px;
            padding: 0 12px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ffffff;
            border: 1px solid rgba(0,0,0,0.15);
            border-radius: 0;
            font-family: inherit;
            font-size: 13px;
            font-weight: 500;
            color: #111111;
            cursor: pointer;
            transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
        }
        .nl-page-btn:hover:not(:disabled) {
            background: #111111;
            color: #ffffff;
            border-color: #111111;
        }
        .nl-page-btn.active {
            background: #111111;
            color: #ffffff;
            border-color: #111111;
        }
        .nl-page-btn:disabled {
            opacity: 0.35;
            cursor: not-allowed;
        }
        .nl-page-ellipsis {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 40px;
            height: 40px;
            font-size: 13px;
            color: rgba(0,0,0,0.5);
        }
        .nl-page-info {
            font-size: 13px;
            font-weight: 500;
            color: rgba(0,0,0,0.55);
        }

        @media (max-width: 1100px) {
            .nl-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
        }
        @media (max-width: 560px) {
            .nl-main { padding: calc(var(--nav-height) + 56px) 20px 80px; }
            .nl-grid { grid-template-columns: 1fr; gap: 28px; }
            .nl-header { margin-bottom: 32px; }
            .nl-toolbar { margin-bottom: 28px; }
            .nl-filter-panel { right: -20px; }
        }

/* CI integration: legacy category URLs retain their original nine-item pagination. */
.nl-pages { display: flex; justify-content: center; gap: 8px; margin-top: 56px; flex-wrap: wrap; }
.nl-pages a, .nl-pages strong, .nl-pages span {
    min-width: 40px; height: 40px; padding: 0 10px; display: inline-flex;
    align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,.15);
    color: #111; text-decoration: none; font-size: 14px;
}
.nl-pages a:hover, .nl-pages strong { background: #111; color: #fff; border-color: #111; }
.nl-empty {
    grid-column: 1 / -1; min-height: 240px; display: flex; align-items: center;
    justify-content: center; color: rgba(17,17,17,.55); font-size: 15px;
}
@media (max-width: 768px) {
    .nl-sort-btn, .nl-filter-btn { min-height: 44px; padding-block: 10px; font-size: 12px; }
    .nl-sort-option, .nl-filter-option { min-height: 44px; }
    .nl-cat, .nl-date { font-size: 12px; letter-spacing: .08em; }
    .nl-page-btn, .nl-page-ellipsis,
    .nl-pages a, .nl-pages strong, .nl-pages span { min-width: 44px; height: 44px; }
}
