
html { scroll-behavior: smooth; }
/* S69: Prevent year anchors from being hidden behind fixed navbar (~67px + buffer) */
[id^="year-"] { scroll-margin-top: 80px; }
.award-item {
    transition: opacity 0.4s ease, max-height 0.4s ease, margin 0.4s ease, transform 0.4s ease;
}
.award-item.filtered-out {
    opacity: 0;
    max-height: 0;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    overflow: hidden;
    pointer-events: none;
    transform: scaleY(0.8);
}
/* S71: Year nav button active state — with smooth transition
   S434: white label on the accent pill was 3.52:1 (blue-500) — blue-600 #2563EB
   gives 4.55:1, clearing WCAG AA for normal-size text in BOTH themes. */
.year-nav-btn.active {
    background-color: #2563EB !important;
    color: #ffffff !important;
    border-color: #2563EB !important;
    transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
    box-shadow: 0 0 12px rgba(37, 99, 235, 0.4);
}
.dark .year-nav-btn.active {
    background-color: #2563EB !important;
    color: #ffffff !important;
    border-color: #2563EB !important;
    box-shadow: 0 0 12px rgba(37, 99, 235, 0.5);
}
/* S617（本单）：分类 / 级别筛选胶囊 hover 反馈缺失 —— 非选中胶囊只有 `hover:bg-bg`，
   深色态被 `dark:bg-gray-800` 同特异性后序覆盖成**死代码**（8 个属性零变化），
   浅色态则是 #FFFFFF→#F8FAFC（≈1.03:1，肉眼不可辨）。这里对齐年份胶囊的做法：
   hover 同时改**文字色 + 边框色 + 底色**，两主题各 ≥3 处属性变化且差异远超 3:1。
   文字色沿用 S554 口径：浅 #1D4ED8（白底 6.70:1）、深 #93C5FD（#1F2937 上 7.5:1）。
   年份胶囊非选中态 hover 同步抬到同一档，使同行三种控件观感一致。
   只改颜色，不改 padding/border-width → 零几何位移。 */
#year-anchors .year-nav-btn:not(.active):hover {
    color: #1D4ED8 !important;
}
html.dark #year-anchors .year-nav-btn:not(.active):hover {
    color: #93C5FD !important;
}
#category-filters button[aria-pressed="false"]:hover,
#level-filters button[aria-pressed="false"]:hover {
    color: #1D4ED8 !important;
    border-color: rgba(37, 99, 235, 0.45) !important;
    background-color: rgba(37, 99, 235, 0.07) !important;
}
html.dark #category-filters button[aria-pressed="false"]:hover,
html.dark #level-filters button[aria-pressed="false"]:hover {
    color: #93C5FD !important;
    border-color: rgba(96, 165, 250, 0.55) !important;
    background-color: rgba(96, 165, 250, 0.12) !important;
}
/* S442: 统计卡已改纯展示 —— 移除 S225/S228 的 hover 高亮、:focus-visible 焦点环
   与「筛选/Filter」角标（角标样式随之删除，见下）。卡片不再可交互。 */
/* S301: zero-count stat card under an active filter — de-emphasized but
   (S442 后不再可点，弱化仅作展示语义)
   S636（本单）：原 `opacity: .55/.6` 会把 12px 标签（text-muted #4B5563 / gray-300）
   与卡片底色一起按 alpha 合成 —— 实测浅 2.51:1、深 3.96:1 < AA 4.5:1。opacity 是**容器级**
   衰减，无法只给文字开豁免，故改为「不再降低整体不透明度」，弱化改用**降饱和**（saturate）
   + 虚线描边表达：色相褪去、边框降权，观感仍明显弱于正常卡，而文字对比度回到
   浅 7.4:1 / 深 7.5:1。filter 与 border-style 均不影响布局盒（零几何位移）。 */
.stat-card.stat-zero {
    opacity: 1;
    filter: saturate(0.35);
    border-style: dashed;
}
html.dark .stat-card.stat-zero {
    opacity: 1;
    filter: saturate(0.45);
    border-style: dashed;
}
/* S343: year-group accordion — heading doubles as the toggle; collapsed
   groups hide their award items; chevron rotates to signal state. */
.year-group-heading {
    cursor: pointer;
    margin-bottom: -1.5rem; /* keep the pre-accordion -mb-6 timeline rhythm */
    user-select: none;
}
.year-group-heading:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: 8px;
}
.year-group-chevron {
    color: var(--text-muted, #94A3B8);
    transition: transform 0.3s ease;
    flex-shrink: 0;
}
.year-group.collapsed .year-group-chevron {
    transform: rotate(-90deg);
}
.year-group.collapsed .award-item {
    display: none;
}
.year-group-heading:hover .year-group-chevron {
    color: var(--accent);
}
/* Mobile: heading becomes a compact tappable row (year + chevron) */
@media (max-width: 639px) {
    .year-group-heading {
        margin-bottom: 0.25rem;
        padding: 0.5rem 0.25rem;
        border-radius: 0.5rem;
    }
    .year-group-heading:hover {
        background: rgba(148, 163, 184, 0.1);
    }
}
/* S442: .stat-filter-hint 角标媒体查询随角标一并移除（统计卡纯展示后无筛选提示） */
/* S650: 获奖页浅色态 accent 淡底小字对比度。base.html 的全站 S434 规则把
   `text-accent` 文字在浅色态统一定为 #2563EB(blue-600)，落在白/浅灰底上刚好
   4.55:1；但同样的 12px 文字落到本页 bg-accent/10 淡蓝底纹（合成 rgb(229,238,251)
   或 × 圆底 rgb(195,216,250)）上只剩 4.42:1 / 3.59:1 < AA 4.5:1。这里做**页面级**
   覆盖：年份徽标 / 筛选 chip / 清除全部 / chip 内 × 的强调色改用 #1D4ED8(blue-700)，
   在上述淡底上抬到 ≥4.5:1。仅本页生效，不动 base.html 的 S434 全站规则。 */
html:not(.dark) #award-filter-chips .lang-zh,
html:not(.dark) #award-filter-chips .lang-en,
html:not(.dark) #award-filter-chips button,
html:not(.dark) #award-clear-all,
html:not(.dark) .year-badge {
    color: #1D4ED8 !important;
}
/* S650(深色态)：年份徽标/chip/清除全部沿用 blue-400 已达标(5.44:1)，保持不变；
   仅 chip 内 × (dark:bg-blue-400/20 圆底，合成 rgb(42,69,107)) 为 3.82:1 < 4.5，
   改用更亮的 blue-300 #93C5FD 抬到 ≥4.5:1（实测 ~5.4:1）。 */
html.dark #award-filter-chips button {
    color: #93C5FD !important;
}
