        /* ========== 监狱网格布局 - 等比例缩放 ========== */
        .prisoners-grid {
            display: grid;
            /* 默认：中等屏幕4列，卡片等比例缩放 */
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
            padding: 20px;
            padding-bottom: 100px;
            flex: 1;
            overflow-y: auto;
            overflow-x: hidden; /* 🚀 禁止横向滚动 */
            align-content: start;
            width: 100%;
            max-width: 100vw; /* 🚀 防止超出视口宽度 */
            margin: 0 auto;
            box-sizing: border-box;
            /* 🚀 移动端滚动优化 */
            -webkit-overflow-scrolling: touch;
            overscroll-behavior-x: none;
            touch-action: pan-y; /* 只允许竖向触摸滚动 */
        }
        
        /* 桌面端 ≥1200px：6列，卡片最大250px，间距30px */
        @media (min-width: 1200px) {
            .prisoners-grid {
                grid-template-columns: repeat(6, minmax(auto, 250px));
                gap: 30px;
                justify-content: center; /* 居中对齐，两侧留白 */
            }
        }
        
        /* 中等屏幕 900-1199px：5列 */
        @media (max-width: 1199px) and (min-width: 900px) {
            .prisoners-grid {
                grid-template-columns: repeat(5, 1fr);
                gap: 20px;
            }
        }
        
        /* 中等屏幕 700-899px：4列 */
        @media (max-width: 899px) and (min-width: 700px) {
            .prisoners-grid {
                grid-template-columns: repeat(4, 1fr);
                gap: 20px;
            }
        }
        
        /* 平板 560-699px：3列 */
        @media (max-width: 699px) and (min-width: 560px) {
            .prisoners-grid {
                grid-template-columns: repeat(3, 1fr);
                gap: 20px;
            }
        }
        
        /* 移动端 421-559px：2列 */
        @media (max-width: 559px) and (min-width: 421px) {
            .prisoners-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 15px;
            }
        }
        
        /* 移动端 320-420px：2列 */
        @media (max-width: 420px) and (min-width: 320px) {
            .prisoners-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 15px;
            }
        }
        
        /* 移动端 <320px：1列 */
        @media (max-width: 319px) {
            .prisoners-grid {
                grid-template-columns: 1fr;
                gap: 15px;
            }
        }

        /* ========== 监狱卡片 - 固定比例 ========== */
        .prisoner-card {
            background: none;
            border: none;
            color: #000;
            border-radius: 0;
            padding: 0;
            text-align: center;
            width: 100%;
            aspect-ratio: 1 / 1; /* 保持正方形 */
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            position: relative;
            transform: scale(1) rotate(-1deg); /* 明确包含scale，避免后续覆盖 */
            transition: transform 0.3s ease;
            cursor: pointer;
            /* 关键：启用容器查询，让子元素相对卡片宽度 */
            container-type: inline-size;
        }

        .prisoner-card:nth-child(2n) {
            transform: scale(1) rotate(0.5deg);
        }

        .prisoner-card:nth-child(3n) {
            transform: scale(1) rotate(-0.5deg);
        }

        /* 桌面端hover效果（仅支持hover的设备） - 保持旋转 */
        @media (hover: hover) {
            .prisoner-card:hover {
                transform: scale(1.15) rotate(-1deg);
            }
            
            .prisoner-card:nth-child(2n):hover {
                transform: scale(1.15) rotate(0.5deg);
            }
            
            .prisoner-card:nth-child(3n):hover {
                transform: scale(1.15) rotate(-0.5deg);
            }
        }

        /* 移动端按压反馈（所有设备） - 保持旋转 */
        .prisoner-card:active {
            transform: scale(0.8) rotate(-1deg);
        }
        
        .prisoner-card:nth-child(2n):active {
            transform: scale(0.8) rotate(0.5deg);
        }
        
        .prisoner-card:nth-child(3n):active {
            transform: scale(0.8) rotate(-0.5deg);
        }
        
        /* 骨架屏样式 */
        .skeleton-card {
            width: 100%;
            aspect-ratio: 1 / 1;
            background: #f0f0f0;
            border-radius: 12px;
            position: relative;
            overflow: hidden;
        }
        
        .skeleton-card::after {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
            animation: skeleton-loading 1.5s infinite;
        }
        
        @keyframes skeleton-loading {
            0% { left: -100%; }
            100% { left: 100%; }
        }
        
        @media (prefers-color-scheme: dark) {
            .skeleton-card {
                background: #2a2a2a;
            }
            
            .skeleton-card::after {
                background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
            }
        }

        /* ========== 卡片分层设计 ========== */
        /* 背景层 - 最底层 */
        .prisoner-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image: var(--card-background, url('../../images/cards/day-background.svg'));
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
            z-index: 1;
            pointer-events: none;
        }

        /* 栏杆层 - z-index: 10（在猫咪和编号之上） */
        .prisoner-card::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: var(--card-railing, none);
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
            z-index: 10;
            pointer-events: none;
        }

        /* 卡片内容层 - 中间层 */
        .prisoner-card > * {
            position: relative;
            z-index: 5;
        }
        
        /* 遮罩层 - z-index: 7（在猫咪之上，罪名之下） */
        .prisoner-card .card-overlay {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image: var(--card-overlay, none);
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
            z-index: 7;
            pointer-events: none;
        }

        .cat-avatar-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .cat-avatar-container svg {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }

        /* 夜晚主题变体 */
        .prisoner-card.night-theme::before {
            background-image: url('../../images/cards/night-background.svg');
        }

        body.dark-theme .prisoner-card::before {
            background-image: url('../../images/cards/night-background.svg');
        }

        body.dark-theme .card-time {
            color: #fff;
        }

        @media (prefers-color-scheme: dark) {
            body:not(.force-light) .prisoner-card {
                background: none;
                border: none;
                color: #fff;
            }
            
            body:not(.force-light) .prisoner-card::before {
                background-image: url('../../images/cards/night-background.svg');
            }
            
            body:not(.force-light) .card-time {
                color: #fff;
            }
        }

        /* 空状态 - 全局居中 */
        .empty-state {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 20px;
            z-index: 10;
        }
        
        .empty-state-icon {
            font-size: 80px;
            margin-bottom: 10px;
        }
        
        .empty-state-text {
            font-size: 24px;
            color: #666;
            font-weight: 500;
            margin-bottom: 10px;
        }
        
        .empty-state-action {
            padding: 12px 30px;
            font-size: 18px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            border-radius: 25px;
            cursor: pointer;
            transition: transform 0.2s;
            font-family: inherit;
        }
        
        /* 桌面端hover效果（仅支持hover的设备） */
        @media (hover: hover) {
            .empty-state-action:hover {
                transform: scale(1.15); /* 放大15% */
            }
        }

        /* 移动端按压反馈（所有设备） */
        .empty-state-action:active {
            transform: scale(0.8);
        }
        
        body.dark-theme .empty-state-text {
            color: #ccc;
        }

        /* ========== 卡片内部元素 - 基于容器宽度(cqw) ========== */
        /* 年份 - 右上角 */
        .card-time {
            position: absolute;
            top: 3.6cqw;  /* 下移4px：2cqw + 1.6cqw (4/250) */
            right: -1.2cqw; /* 右移8px：2cqw - 3.2cqw (8/250) */
            /* 250px设计稿下是30px，30/250 = 12% */
            font-size: 12cqw;
            font-weight: bold;
            color: #000;
            text-shadow: 
                -2px -2px 0 #fff, 2px -2px 0 #fff,
                -2px 2px 0 #fff, 2px 2px 0 #fff;
            z-index: 15;
            white-space: nowrap;
            line-height: 1;
            transform: rotate(20deg);
            transform-origin: right top;
        }
        
        body.dark-theme .card-time {
            color: #fff;
            text-shadow: 
                -2px -2px 0 #000, 2px -2px 0 #000,
                -2px 2px 0 #000, 2px 2px 0 #000;
        }
        
        @media (prefers-color-scheme: dark) {
            body:not(.force-light) .card-time {
                color: #fff;
                text-shadow: 
                    -2px -2px 0 #000, 2px -2px 0 #000,
                    -2px 2px 0 #000, 2px 2px 0 #000;
            }
        }

        /* 囚犯头像 - 居中显示 */
        .prisoner-avatar {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            z-index: 6;
            cursor: pointer;
            width: 96%;
            height: 96%;
        }

        /* 编号 - 左上角 */
        .prisoner-number {
            position: absolute;
            top: 6.6cqw;  /* 下移4px：5cqw + 1.6cqw (4/250) */
            left: 9.6cqw; /* 右移4px：8cqw + 1.6cqw */
            font-family: 'Knewave', sans-serif;
            /* 250px设计稿下是20px，20/250 = 8% */
            font-size: 8cqw;
            color: #000;
            background: transparent;
            padding: 0;
            border-radius: 0;
            z-index: 15;
            font-weight: normal;
            line-height: 1;
        }
        
        body.dark-theme .prisoner-number {
            color: #fff;
        }
        
        @media (prefers-color-scheme: dark) {
            body:not(.force-light) .prisoner-number {
                color: #fff;
            }
        }

        /* 罪名 - 底部 */
        .prisoner-crime {
            position: absolute;
            bottom: 5cqw;  /* 用cqw而不是%，确保等比例 */
            left: 50%;
            transform: translateX(-50%);
            /* 250px设计稿下是30px，30/250 = 12% */
            font-size: 12cqw;
            color: var(--crime-text-color, #fff);
            background: var(--crime-bg-light, url('../../images/cards/criminal%20charge_bg_2.svg')) center center no-repeat;
            /* 背景宽度固定为卡片的90%，高度自适应 */
            background-size: 90cqw auto;
            padding: 0.45em 1.8em; /* padding用em单位，随字体缩放 */
            border-radius: 0;
            z-index: 20;
            font-weight: bold;
            text-align: center;
            line-height: 1;
            white-space: nowrap;
            overflow: visible;
        }
        
        /* 暗色模式下罪名背景和文字颜色 */
        body.dark-theme .prisoner-crime,
        [data-theme="dark"] .prisoner-crime {
            background-image: var(--crime-bg-dark, url('../../images/cards/criminal charge_bg_2_night.svg'));
            color: var(--crime-text-color-dark, #000);
        }
        
        @media (prefers-color-scheme: dark) {
            body:not(.force-light):not(.light-theme) .prisoner-crime {
                background-image: var(--crime-bg-dark, url('../../images/cards/criminal charge_bg_2_night.svg'));
                color: var(--crime-text-color-dark, #000);
            }
        }

        /* 隐藏其他不需要的元素 */
        .prisoner-sentence,
        .prisoner-confession,
        .prisoner-name {
            display: none;
        }


