        /* =============================================
           ACHIEVEMENT PAGE
        ============================================= */

        /* 年度 Tabs */
        .year-tabs {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
            margin-bottom: 32px;
            border-bottom: 2px solid #e5eaf0;
            padding-bottom: 0;
        }

        .year-tab-btn {
            padding: 9px 22px;
            font-size: 14px;
            font-weight: 600;
            font-family: inherit;
            color: #427096;
            background: transparent;
            border: none;
            border-bottom: 3px solid transparent;
            margin-bottom: -2px;
            cursor: pointer;
            transition: color 0.18s, border-color 0.18s;
            white-space: nowrap;
        }

        .year-tab-btn:hover { color: #004c99; }

        .year-tab-btn.active {
            color: #004c99;
            border-bottom-color: #004c99;
            font-weight: 700;
        }

        /* 年度區塊 */
        .year-section { display: none; }
        .year-section.active { display: block; }

        .year-section-label {
            font-size: 13px;
            font-weight: 700;
            color: #427096;
            letter-spacing: 0.5px;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .year-section-label::after {
            content: '';
            flex: 1;
            height: 1px;
            background: #e5eaf0;
        }

        /* 活動卡片 Grid */
        .activity-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            margin-bottom: 8px;
        }

        /* 單張活動卡片 */
        .activity-card {
            border: 1.5px solid #e5eaf0;
            border-radius: 10px;
            overflow: hidden;
            cursor: pointer;
            transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
            background: #fff;
        }

        .activity-card:hover {
            border-color: #427096;
            box-shadow: 0 6px 22px rgba(66,112,150,.13);
            transform: translateY(-3px);
        }

        /* 海報縮圖 */
        .activity-thumb {
            position: relative;
            width: 100%;
            aspect-ratio: 3 / 2;
            overflow: hidden;
            background: #eef3f8;
        }

        .activity-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform 0.3s ease;
        }

        .activity-card:hover .activity-thumb img {
            transform: scale(1.04);
        }

        /* 縮圖 hover overlay */
        .activity-thumb-overlay {
            position: absolute;
            inset: 0;
            background: rgba(26,58,82,.52);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 16px;
            opacity: 0;
            transition: opacity 0.22s;
        }

        .activity-card:hover .activity-thumb-overlay { opacity: 1; }

        .thumb-overlay-btn {
            display: inline-flex;
            flex-direction: column;
            align-items: center;
            gap: 5px;
            color: #fff;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.3px;
        }

        .thumb-overlay-btn svg {
            width: 28px;
            height: 28px;
            background: rgba(255,255,255,.18);
            border-radius: 50%;
            padding: 6px;
            box-sizing: border-box;
            transition: background 0.18s;
        }

        .thumb-overlay-btn:hover svg { background: rgba(255,255,255,.35); }

        /* 無海報佔位 */
        .activity-thumb-placeholder {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, #e8f0f8 0%, #ddeaf5 100%);
        }

        .activity-thumb-placeholder svg {
            width: 44px;
            height: 44px;
            color: #b0c8dc;
        }

        /* 相片數量徽章 */
        .activity-photo-count {
            position: absolute;
            bottom: 8px;
            right: 10px;
            background: rgba(0,0,0,.55);
            color: #fff;
            font-size: 11px;
            font-weight: 700;
            padding: 2px 8px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .activity-photo-count svg { width: 11px; height: 11px; }

        /* 卡片資訊區 */
        .activity-info {
            padding: 14px 16px 16px;
        }

        .activity-date {
            font-size: 11px;
            font-weight: 700;
            color: #427096;
            letter-spacing: 0.4px;
            margin-bottom: 5px;
        }

        .activity-title {
            font-size: 14px;
            font-weight: 700;
            color: #1a3a52;
            line-height: 1.45;
            margin-bottom: 8px;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .activity-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 5px;
        }

        .activity-tag {
            font-size: 11px;
            padding: 2px 8px;
            border-radius: 3px;
            font-weight: 600;
        }

        .activity-tag.poster  { background: #e3f0fb; color: #1565c0; }
        .activity-tag.photos  { background: #e8f5e9; color: #2e7d32; }
        .activity-tag.no-content { background: #f0f2f5; color: #aaa; }

        /* =============================================
           MODAL
        ============================================= */
        .modal-backdrop {
            position: fixed;
            inset: 0;
            background: rgba(10,20,30,.75);
            z-index: 9000;
            display: flex;
            align-items: flex-start;
            justify-content: center;
            padding: 24px 16px;
            overflow-y: auto;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.22s;
        }

        .modal-backdrop.open {
            opacity: 1;
            pointer-events: all;
        }

        .modal-box {
            background: #fff;
            border-radius: 12px;
            width: 100%;
            max-width: 860px;
            position: relative;
            transform: translateY(20px);
            transition: transform 0.25s ease;
            overflow: hidden;
            margin: auto;
        }

        .modal-backdrop.open .modal-box {
            transform: translateY(0);
        }

        /* Modal 頭部 */
        .modal-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 16px;
            padding: 20px 24px 16px;
            border-bottom: 1px solid #edf1f6;
        }

        .modal-header-text {}

        .modal-activity-date {
            font-size: 11px;
            font-weight: 700;
            color: #427096;
            letter-spacing: 0.4px;
            margin-bottom: 4px;
        }

        .modal-activity-title {
            font-size: 18px;
            font-weight: 700;
            color: #1a3a52;
            line-height: 1.35;
        }

        .modal-close {
            width: 34px;
            height: 34px;
            border: none;
            background: #f0f2f5;
            border-radius: 50%;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            transition: background 0.15s;
            color: #555;
        }

        .modal-close:hover { background: #e0e4ea; color: #1a3a52; }
        .modal-close svg { width: 16px; height: 16px; }

        /* Modal Tab 切換 */
        .modal-tabs {
            display: flex;
            gap: 0;
            border-bottom: 1px solid #edf1f6;
            padding: 0 24px;
        }

        .modal-tab-btn {
            padding: 11px 20px;
            font-size: 13px;
            font-weight: 600;
            font-family: inherit;
            color: #888;
            background: transparent;
            border: none;
            border-bottom: 2px solid transparent;
            margin-bottom: -1px;
            cursor: pointer;
            transition: color 0.15s, border-color 0.15s;
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .modal-tab-btn svg { width: 14px; height: 14px; }

        .modal-tab-btn:hover { color: #1a3a52; }

        .modal-tab-btn.active {
            color: #004c99;
            border-bottom-color: #004c99;
        }

        .modal-tab-badge {
            display: inline-block;
            font-size: 10px;
            font-weight: 700;
            padding: 1px 6px;
            border-radius: 8px;
            background: #e8f0fb;
            color: #427096;
        }

        .modal-tab-btn.active .modal-tab-badge {
            background: #004c99;
            color: #fff;
        }

        /* Modal 內容 */
        .modal-body {
            padding: 24px;
            min-height: 280px;
        }

        .modal-panel { display: none; }
        .modal-panel.active { display: block; }

        /* 海報展示 */
        .poster-wrap {
            display: flex;
            justify-content: center;
            align-items: flex-start;
        }

        .poster-img {
            max-width: 100%;
            max-height: 520px;
            border-radius: 6px;
            box-shadow: 0 4px 20px rgba(0,0,0,.14);
            display: block;
            cursor: zoom-in;
        }

        /* 活動剪影 Grid */
        .gallery-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 10px;
        }

        .gallery-item {
            aspect-ratio: 4 / 3;
            border-radius: 6px;
            overflow: hidden;
            cursor: pointer;
            position: relative;
        }

        .gallery-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform 0.25s;
        }

        .gallery-item:hover img { transform: scale(1.06); }

        .gallery-item-overlay {
            position: absolute;
            inset: 0;
            background: rgba(26,58,82,.38);
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transition: opacity 0.2s;
        }

        .gallery-item:hover .gallery-item-overlay { opacity: 1; }

        .gallery-item-overlay svg {
            width: 28px;
            height: 28px;
            color: #fff;
        }

        /* 無內容提示 */
        .modal-empty {
            text-align: center;
            padding: 48px 20px;
            color: #bbb;
        }

        .modal-empty svg { width: 44px; height: 44px; margin-bottom: 10px; opacity: .45; display: block; margin-inline: auto; }
        .modal-empty p { font-size: 14px; }

        /* =============================================
           LIGHTBOX（全螢幕單張放大）
        ============================================= */
        .lightbox {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,.88);
            z-index: 9999;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 16px;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.2s;
        }

        .lightbox.open {
            opacity: 1;
            pointer-events: all;
        }

        .lightbox img {
            max-width: 100%;
            max-height: 90vh;
            border-radius: 4px;
            display: block;
            box-shadow: 0 8px 40px rgba(0,0,0,.5);
            object-fit: contain;
        }

        .lightbox-close {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 38px;
            height: 38px;
            background: rgba(255,255,255,.15);
            border: none;
            border-radius: 50%;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            transition: background 0.15s;
        }

        .lightbox-close:hover { background: rgba(255,255,255,.28); }
        .lightbox-close svg { width: 18px; height: 18px; }

        /* Lightbox 上下頁 */
        .lightbox-prev,
        .lightbox-next {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            width: 44px;
            height: 44px;
            background: rgba(255,255,255,.15);
            border: none;
            border-radius: 50%;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            transition: background 0.15s;
        }

        .lightbox-prev { left: 16px; }
        .lightbox-next { right: 16px; }
        .lightbox-prev:hover,
        .lightbox-next:hover { background: rgba(255,255,255,.28); }
        .lightbox-prev svg,
        .lightbox-next svg { width: 20px; height: 20px; }

        .lightbox-counter {
            position: absolute;
            bottom: 16px;
            left: 50%;
            transform: translateX(-50%);
            color: rgba(255,255,255,.7);
            font-size: 13px;
            font-weight: 600;
        }

        /* =============================================
           RESPONSIVE
        ============================================= */
        @media (max-width: 900px) {
            .activity-grid { grid-template-columns: repeat(2, 1fr); }
            .gallery-grid  { grid-template-columns: repeat(2, 1fr); }
        }

        @media (max-width: 560px) {
            .activity-grid { grid-template-columns: 1fr; }
            .gallery-grid  { grid-template-columns: repeat(2, 1fr); }
            .modal-box { border-radius: 10px; }
            .modal-header { padding: 16px 16px 12px; }
            .modal-body { padding: 16px; }
            .modal-tabs { padding: 0 16px; }
        }
