﻿/* 完整 CSS - 从备份 index_backup_20250618_v2.html 重新提取 */



            /* 基础动画定义 */



            



            /* 可移动面板样式 */



            .scene-mode-panel {



                position: fixed;



                width: 600px;



                height: 500px;



                background: var(--bg-secondary);



                border-radius: var(--radius-md);



                box-shadow: var(--shadow-lg);



                z-index: 1000;



                top: 50%;



                left: 50%;



                transform: translate(-50%, -50%);



                overflow: hidden;



                border: 2px solid var(--primary-color);



            }



            .panel-header {



                display: flex;



                justify-content: space-between;



                align-items: center;



                padding: 15px 20px;



                background: linear-gradient(45deg, var(--primary-color), var(--primary-light));



                color: white;



                cursor: move;



            }



            .panel-header h3 {



                margin: 0;



                font-size: 1.3em;



                text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);



            }



            .panel-controls {



                display: flex;



                gap: 5px;



            }



            /* 遮罩层样式 */



            .scene-mode-overlay {



                position: fixed;



                top: 0;



                left: 0;



                width: 100%;



                height: 100%;



                background: rgba(0, 0, 0, 0.5);



                backdrop-filter: blur(3px);



                z-index: 999;



            }



            /* 皇冠样式 */



            .crown {



                position: absolute;



                top: -40px;



                left: 50%;



                transform: translateX(-50%);



                width: 40px;



                height: 20px;



                background: var(--crown-color, #FFD700);



                border-radius: 5px 5px 0 0;



                box-shadow: 0 0 15px var(--crown-color, #FFD700);



            }



            .crown:before, .crown:after {



                content: '';



                position: absolute;



                width: 0;



                height: 0;



                border-left: 10px solid transparent;



                border-right: 10px solid transparent;



                border-bottom: 20px solid var(--crown-color, #FFD700);



            }



            .crown:before {



                left: -10px;



                top: -10px;



            }



            .crown:after {



                right: -10px;



                top: -10px;



            }



            /* 金色皇冠变体 */



            .crown.gold-crown {



                background: linear-gradient(135deg, #FFD700, #FFA500);



                box-shadow: 0 0 20px #FFD700, 0 0 30px rgba(255,215,0,0.5);



            }



            .crown.gold-crown:before, .crown.gold-crown:after {



                border-bottom-color: #FFD700;



            }



            /* 场景模式内容样式 */



            .scene-mode-controls {



                padding: 20px;



            }



            .mode-buttons {



                display: flex;



                flex-direction: column;



                gap: 12px;



                margin-bottom: 20px;



            }



            .mode-btn {



                padding: 15px 20px;



                font-size: 1.1em;



                border: none;



                border-radius: var(--radius-md);



                cursor: pointer;



                transition: all 0.3s ease;



                color: white;



                font-weight: bold;



                text-align: left;



                box-shadow: var(--shadow-sm);



            }



            .mode-btn:hover {



                transform: translateY(-2px);



                box-shadow: var(--shadow-md);



            }



            .mode-btn:nth-child(1) {



                background: linear-gradient(45deg, #FF6B35, #F7931E);



            }



            .mode-btn:nth-child(2) {



                background: linear-gradient(45deg, #4682B4, #5F9EA0);



            }



            #autoModeToggle {



                 background: #6c757d;



             }



            .panel-control-btn {



                width: 30px;



                height: 30px;



                border: none;



                border-radius: 50%;



                background: rgba(255, 255, 255, 0.3);



                color: white;



                font-size: 1.2em;



                cursor: pointer;



                display: flex;



                align-items: center;



                justify-content: center;



                transition: all 0.3s ease;



            }



            .panel-control-btn:hover {



                background: rgba(255, 255, 255, 0.5);



            }



            .panel-body {



                padding: 20px;



                height: calc(100% - 60px);



                overflow-y: auto;



            }



            /* 场景模式内容样式 */



            .mode-controls {



                display: flex;



                gap: 10px;



                margin-bottom: 20px;



                flex-wrap: wrap;



            }



            .manual-score-btn {



                padding: 10px 15px;



                background: var(--primary-color);



                color: white;



                border: none;



                border-radius: var(--radius-md);



                cursor: pointer;



                font-size: 0.9em;



                transition: all 0.3s ease;



                margin: 5px 0;



            }



            .manual-score-btn:hover {



                background: var(--primary-dark);



                transform: translateY(-2px);



            }



            :root {



            /* 基础主题颜色变量 */



            --primary-color: #4dabf7;



            --primary-light: #74c0fc;



            --primary-dark: #339af0;



            /* 次要颜色 */



            --secondary-color: #51cf66;



            --secondary-light: #8ce99a;



            --secondary-dark: #37b24d;



            /* 玻璃拟态与卡片 */

            --glass-bg: rgba(255,255,255,0.72);

            --glass-border: rgba(255,255,255,0.5);

            --card-shadow: 0 4px 20px rgba(0,0,0,0.06);

            --card-shadow-hover: 0 8px 30px rgba(0,0,0,0.1);



            /* 强调色 */



            --accent-color: #ffd43b;



            --accent-light: #ffe066;



            --accent-dark: #fab005;



            /* 其他颜色 */



            --green-color: #51cf66;



            --green-light: #8ce99a;



            --green-dark: #37b24d;



            --blue-color: #339af0;



            --blue-light: #74c0fc;



            --blue-dark: #1971c2;



            --pink-color: #ff6b9d;



            --pink-light: #ffa8a8;



            --pink-dark: #e64980;



            /* 背景色 */



            --bg-primary: #F8F9FA;



            --bg-secondary: #FFFFFF;



            --bg-tertiary: #F0F8FF;



            /* 文本色 */



            --text-primary: #333333;



            --text-secondary: #666666;



            --text-light: #999999;



            /* 阴影 */



            --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.1);



            --shadow-md: 0 5px 15px rgba(0, 0, 0, 0.15);



            --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.2);



            /* 圆角 */



            --radius-sm: 8px;



            --radius-md: 15px;



            --radius-lg: 25px;



        }



        /* 全局样式 */



        * {



            box-sizing: border-box;



            margin: 0;



            padding: 0;



        }



        /* 闪烁动画 */



        @keyframes twinkle {



            0%, 100% {



                opacity: 0.6;



                transform: scale(1);



            }



            50% {



                opacity: 1;



                transform: scale(1.05);



            }



        }



        /* 冬季主题背景 */



        body {



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            background: linear-gradient(to bottom,



                #0c1445 0%,      /* 深冬夜空 */



                #1e3a8a 25%,     /* 冬季夜空蓝 */



                #3b82f6 50%,     /* 冬日蓝天 */



                #bfdbfe 70%,     /* 浅冬云层 */



                #f0f9ff 85%,     /* 近地云层 */



                #ffffff 100%     /* 雪地 */



            );



            color: #333;



            line-height: 1.6;



            overflow-x: hidden;



            position: relative;



        }



        /* 冬季雪地层 */



        .snow-ground {



            position: fixed;



            bottom: 0;



            left: 0;



            width: 100%;



            height: 150px;



            background: linear-gradient(to top,



                rgba(255, 255, 255, 0.9) 0%,



                rgba(255, 255, 255, 0.7) 50%,



                rgba(255, 255, 255, 0.3) 100%



            );



            z-index: 100;



            pointer-events: none;



        }



/* 添加马年快乐文字装饰 */



        #startButton {



            position: absolute;



            bottom: 100px;



            right: 100px;



            padding: 20px 40px;



            font-size: 1.8em;



            background: linear-gradient(45deg, var(--primary-color), var(--primary-light));



            border: none;



            border-radius: var(--radius-lg);



            box-shadow: var(--shadow-lg), 0 0 20px rgba(255, 107, 53, 0.4);



            color: white;



            cursor: pointer;



            transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            user-select: none;



            font-weight: bold;



            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);



            position: relative;



            overflow: hidden;



        }



        #startButton:hover {



            transform: scale(1.15) translateY(-5px);



            box-shadow: 0 15px 40px rgba(255, 107, 53, 0.4);



            background: linear-gradient(45deg, var(--primary-dark), var(--primary-color));



        }



        #startButton:active {



            transform: scale(1.05);



            box-shadow: 0 8px 25px rgba(255, 107, 53, 0.5);



            background: linear-gradient(45deg, var(--primary-color), var(--primary-light));



        }



        /* 通用模态框样式 */



        .modal {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background-color: rgba(0, 0, 0, 0.5);



            z-index: 10000;



            display: flex;



            justify-content: center;



            align-items: center;



            display: none; /* 默认隐藏 */



            overflow-y: auto;



        }



        .modal-content {



            background-color: var(--bg-secondary);



            border-radius: var(--radius-md);



            box-shadow: var(--shadow-lg);



            width: 90%;



            max-width: 700px;



            max-height: 80vh;



            overflow-y: auto;



            padding: 0;



            border: 3px solid var(--primary-color);



        }



        .modal-header {



            display: flex;



            justify-content: space-between;



            align-items: center;



            padding: 20px 25px;



            background: linear-gradient(45deg, var(--primary-color), var(--primary-light));



            color: white;



            border-top-left-radius: var(--radius-md);



            border-top-right-radius: var(--radius-md);



        }



        .modal-header h2 {



            margin: 0;



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            font-size: 1.8em;



            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);



        }



        .modal .close {



            color: white;



            font-size: 36px;



            font-weight: bold;



            cursor: pointer;



            background: none;



            border: none;



            padding: 5px 10px;



            margin: 0;



            transition: transform 0.3s ease;



        }



        .modal .close:hover {



            color: var(--accent-color);



            transform: scale(1.2) rotate(90deg);



        }



        /* 优化：简化宠物图标样式，减少性能消耗 */



        .pet-icon-3d {



            display: inline-block;



            position: relative;



            transform-style: flat;



            perspective: none;



            perspective-origin: center center;



            transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);



            /* 增强3D立体阴影层次效果 */



            text-shadow:



                0 1px 0 rgba(255,255,255,0.8),



                0 -1px 0 rgba(0,0,0,0.4),



                0 2px 2px rgba(0,0,0,0.3),



                0 4px 4px rgba(0,0,0,0.25),



                0 8px 8px rgba(0,0,0,0.2),



                0 16px 16px rgba(0,0,0,0.15),



                0 32px 32px rgba(0,0,0,0.1),



                0 64px 64px rgba(0,0,0,0.05);



            /* 增强的3D边框效果 */



            border: 1px solid rgba(255,255,255,0.3);



            border-radius: 12px;



            background: linear-gradient(145deg,



                rgba(255,255,255,0.1),



                rgba(255,255,255,0.05),



                rgba(0,0,0,0.05));



            /* 3D容器背景 */



            filter: drop-shadow(0 4px 8px rgba(0,0,0,0.2));



            animation: advanced-float 4s ease-in-out infinite;



            will-change: transform, filter;



            /* 3D变换原点 */



            transform-origin: center center;



        }



/* 3D容器增强效果 */



        .pet-icon-3d::before {



            content: '';



            position: absolute;



            top: -5px;



            left: -5px;



            right: -5px;



            bottom: -5px;



            background: linear-gradient(45deg,



                rgba(255,255,255,0.1),



                rgba(255,255,255,0.05),



                rgba(0,0,0,0.05));



            border-radius: 15px;



            z-index: -1;



            opacity: 0;



            transition: all 0.4s ease;



        }



        /* 悬停时的轻量增强效果 */



        .pet-icon-3d:hover {



            transform: scale(1.05);



            box-shadow: 0 4px 12px rgba(0,0,0,0.12);



            transition: transform 0.2s ease, box-shadow 0.2s ease;



        }



        /* 点击反馈效果 */



        .pet-icon-3d:active {



            transform: scale(0.95);



            transition: transform 0.1s ease;



        }



        /* 点击波纹效果 */



        .pet-icon-3d.clicked::after {



            content: '';



            position: absolute;



            top: 50%;



            left: 50%;



            width: 0;



            height: 0;



            border-radius: 50%;



            background: rgba(255,255,255,0.6);



            transform: translate(-50%, -50%);



            animation: click-ripple 0.6s ease-out;



            pointer-events: none;



        }



        @keyframes click-ripple {



            0% {



                width: 0;



                height: 0;



                opacity: 1;



            }



            100% {



                width: 100px;



                height: 100px;



                opacity: 0;



            }



        }



        /* 粒子发光效果 */



        .pet-icon-3d.glowing::before {



            opacity: 1;



            animation: glow-pulse 1.5s ease-in-out infinite alternate;



        }



        @keyframes glow-pulse {



            0% {



                box-shadow: 0 0 20px rgba(255,255,255,0.3), 0 0 40px rgba(255,255,255,0.1);



            }



            100% {



                box-shadow: 0 0 30px rgba(255,255,255,0.5), 0 0 60px rgba(255,255,255,0.2);



            }



        }



        /* 已删除未使用的马年特效 CSS (horse-year-interactive, imagination-particles, joyful-swing, positive-rise, creative-breathe, rainbow-aura, creative-border, innovative-text, creative-particles) - 共约270行 */



        /* 宠物视频样式 */



        .pet-video {



            display: block;



            border: none;



            outline: none;



            transition: all 0.3s ease;



        }



        .pet-video:hover {



            transform: scale(1.1);



            box-shadow: 0 8px 16px rgba(0,0,0,0.2);



        }



        /* 视频加载动画 */



        @keyframes video-loading {



            0%, 100% {



                opacity: 0.8;



            }



            50% {



                opacity: 1;



            }



        }



        .pet-video {



            animation: video-loading 2s ease-in-out infinite;



        }



        /* 宠物成长阶段动画 */



        /* 幼体期（1-5级）：软糖摇摆动画 */



        @keyframes baby-pet-animation {



            0% {



                transform: scale(0.9);



                text-shadow: 0 2px 4px rgba(0,0,0,0.2);



            }



            25% {



                transform: scale(1.1);



                text-shadow: 0 4px 8px rgba(0,0,0,0.2);



            }



            50% {



                transform: scale(1.0);



                text-shadow: 0 2px 4px rgba(0,0,0,0.2);



            }



            75% {



                transform: scale(1.1);



                text-shadow: 0 4px 8px rgba(0,0,0,0.2);



            }



            100% {



                transform: scale(0.9);



                text-shadow: 0 2px 4px rgba(0,0,0,0.2);



            }



        }



        /* 少年期（6-10级）：弹性跳跃动画 */



        @keyframes teen-pet-animation {



            0% {



                transform: scale(1) translateY(0px);



                text-shadow: 0 3px 6px rgba(0,0,0,0.2);



            }



            25% {



                transform: scale(1.05) translateY(-5px);



                text-shadow: 0 6px 12px rgba(0,0,0,0.25);



            }



            50% {



                transform: scale(1.1) translateY(-10px);



                text-shadow: 0 8px 16px rgba(0,0,0,0.3);



            }



            75% {



                transform: scale(1.05) translateY(-5px);



                text-shadow: 0 6px 12px rgba(0,0,0,0.25);



            }



            100% {



                transform: scale(1) translateY(0px);



                text-shadow: 0 3px 6px rgba(0,0,0,0.2);



            }



        }



        /* 成年期（21-30级）：沉稳呼吸动画 */



        @keyframes adult-pet-animation {



            0% {



                transform: scale(1);



                text-shadow: 0 6px 12px rgba(0,0,0,0.2);



            }



            50% {



                transform: scale(1.05);



                text-shadow: 0 10px 20px rgba(0,0,0,0.3);



            }



            100% {



                transform: scale(1);



                text-shadow: 0 6px 12px rgba(0,0,0,0.2);



            }



        }



        /* 终极期（31-40级）：炫目光效动画 */



        @keyframes ultimate-pet-animation {



            0% {



                transform: scale(1) rotateY(0deg);



                text-shadow: 0 8px 16px rgba(0,0,0,0.3);



            }



            25% {



                transform: scale(1.05) rotateY(10deg);



                text-shadow: 0 12px 24px rgba(0,0,0,0.35);



            }



            50% {



                transform: scale(1.1) rotateY(0deg);



                text-shadow: 0 15px 30px rgba(0,0,0,0.4);



            }



            75% {



                transform: scale(1.05) rotateY(-10deg);



                text-shadow: 0 12px 24px rgba(0,0,0,0.35);



            }



            100% {



                transform: scale(1) rotateY(0deg);



                text-shadow: 0 8px 16px rgba(0,0,0,0.3);



            }



        }



        /* 优化后的宠物3D动画 */



        @keyframes petFloat {



            0% { transform: translateZ(0px) rotateY(0deg); }



            25% { transform: translateZ(3px) rotateY(5deg); }



            50% { transform: translateZ(0px) rotateY(0deg); }



            75% { transform: translateZ(3px) rotateY(-5deg); }



            100% { transform: translateZ(0px) rotateY(0deg); }



        }



        @keyframes ultimatePulse {



            0% { transform: scale(1); opacity: 0.7; }



            50% { transform: scale(1.1); opacity: 0.9; }



            100% { transform: scale(1); opacity: 0.7; }



        }



        @keyframes ultimateRotate {



            0% { transform: rotate(0deg); }



            100% { transform: rotate(360deg); }



        }



        



        /* 浮动动画 */



        



        /* 100级宠物特殊样式 - 完全禁用所有动画 */



        .pet-level-500 {



            animation: none !important;



            -webkit-animation: none !important;



            -moz-animation: none !important;



            -o-animation: none !important;



            transform: none !important;



            -webkit-transform: none !important;



            -moz-transform: none !important;



            -ms-transform: none !important;



            transition: none !important;



            -webkit-transition: none !important;



            -moz-transition: none !important;



            -o-transition: none !important;



        }



        /* 100级宠物的子元素也禁用动画 */



        .pet-level-500 * {



            animation: none !important;



            -webkit-animation: none !important;



            -moz-animation: none !important;



            -o-animation: none !important;



            transform: none !important;



            -webkit-transform: none !important;



            -moz-transform: none !important;



            -ms-transform: none !important;



            transition: none !important;



            -webkit-transition: none !important;



            -moz-transition: none !important;



            -o-transition: none !important;



        }



        /* 100级宠物禁用悬停效果 */



        .pet-level-500:hover {



            animation: none !important;



            -webkit-animation: none !important;



            -moz-animation: none !important;



            -o-animation: none !important;



            transform: none !important;



            -webkit-transform: none !important;



            -moz-transform: none !important;



            -ms-transform: none !important;



            transition: none !important;



            -webkit-transition: none !important;



            -moz-transition: none !important;



            -o-transition: none !important;



            filter: none !important;



            -webkit-filter: none !important;



            box-shadow: 0 4px 8px rgba(0,0,0,0.1) !important;



            text-shadow: none !important;



            border-color: #ccc !important;



        }



        /* 100级宠物禁用悬停时的3D变换效果 */



        .pet-level-500:hover {



            transform: none !important;



            -webkit-transform: none !important;



            -moz-transform: none !important;



            -ms-transform: none !important;



        }



        /* 静态宠物类 - 全面禁用所有效果 */



        .pet-static,



        .pet-static:hover,



        .pet-static:active,



        .pet-static:focus,



        .pet-static * {



            animation: none !important;



            -webkit-animation: none !important;



            -moz-animation: none !important;



            -o-animation: none !important;



            transform: none !important;



            -webkit-transform: none !important;



            -moz-transform: none !important;



            -ms-transform: none !important;



            transition: none !important;



            -webkit-transition: none !important;



            -moz-transition: none !important;



            -o-transition: none !important;



            filter: none !important;



            -webkit-filter: none !important;



            box-shadow: 0 4px 8px rgba(0,0,0,0.1) !important;



            text-shadow: none !important;



            border-color: #ccc !important;



            cursor: default !important;



        }



        /* 防止任何CSS继承的悬停效果 */



        .pet-level-500.pet-static,



        .pet-level-500.pet-static:hover,



        .pet-level-500.pet-static:active {



            all: unset !important;



            display: flex !important;



            justify-content: center !important;



            align-items: center !important;



            width: 80px !important;



            height: 80px !important;



            background: linear-gradient(135deg, #f0f0f0, #e0e0e0) !important;



            border: 2px solid #ccc !important;



            border-radius: 12px !important;



            box-shadow: 0 4px 8px rgba(0,0,0,0.1) !important;



            position: relative !important;



            z-index: 1 !important;



        }



        /* 粒子环绕动画 */



        @keyframes particle-animation {



            0% { transform: scale(1); opacity: 0.8; }



            50% { transform: scale(1.2); opacity: 1; }



            100% { transform: scale(1); opacity: 0.8; }



        }



        /* 粒子样式 */



        .particle {



            animation: particle-animation 2s infinite ease-in-out;



        }



        /* 传说期（51-60级）：金色光芒动画 */



        @keyframes legendary-pet-animation {



            0% {



                transform: scale(1);



                text-shadow: 0 12px 24px rgba(0,0,0,0.4);



            }



            25% {



                transform: scale(1.05);



                text-shadow: 0 18px 36px rgba(0,0,0,0.45);



            }



            50% {



                transform: scale(1.1);



                text-shadow: 0 20px 40px rgba(0,0,0,0.5);



            }



            75% {



                transform: scale(1.05);



                text-shadow: 0 18px 36px rgba(0,0,0,0.45);



            }



            100% {



                transform: scale(1);



                text-shadow: 0 12px 24px rgba(0,0,0,0.4);



            }



        }



        /* 宠物进化动画样式 - 禁用所有动画效果 */



        .evolution-effect {



            display: none !important;



        }



        .evolution-particles {



            display: none !important;



        }



        .evolution-particles::before,



        .evolution-particles::after {



            display: none !important;



        }



        .evolution-light {



            display: none !important;



        }



        /* 宠物升级动画样式 - 禁用所有动画效果 */



        .levelup-effect {



            display: none !important;



        }



        .levelup-particles {



            display: none !important;



        }



        .levelup-particles::before,



        .levelup-particles::after {



            display: none !important;



        }



        .levelup-glow {



            display: none !important;



        }



        /* 进化动画关键帧 - 禁用所有动画 */



        



        



        /* 升级动画关键帧 - 禁用所有动画 */



        



        



        /* 不同进化类型的特殊效果 */



        .evolution-epic {



            animation: epicEvolution 3s ease-in-out;



        }



        .evolution-rare {



            animation: rareEvolution 2.5s ease-in-out;



        }



        .evolution-normal {



            animation: normalEvolution 2s ease-in-out;



        }



        .evolution-basic {



            animation: basicEvolution 1.5s ease-in-out;



        }



        /* 不同升级类型的特殊效果 */



        .levelup-milestone {



            animation: milestoneLevelUp 2s ease-in-out;



        }



        .levelup-major {



            animation: majorLevelUp 1.8s ease-in-out;



        }



        .levelup-minor {



            animation: minorLevelUp 1.5s ease-in-out;



        }



        .levelup-basic {



            animation: basicLevelUp 1.2s ease-in-out;



        }



        /* 进化类型动画 */



        @keyframes epicEvolution {



            0% {



                transform: scale(1) rotateY(0deg) translateZ(0px);



                filter: brightness(1) saturate(1);



            }



            20% {



                transform: scale(1.8) rotateY(72deg) translateZ(60px);



                filter: brightness(1.5) saturate(1.8);



            }



            40% {



                transform: scale(1.5) rotateY(144deg) translateZ(80px);



                filter: brightness(2) saturate(2);



            }



            60% {



                transform: scale(2.2) rotateY(216deg) translateZ(100px);



                filter: brightness(2.5) saturate(2.5);



            }



            80% {



                transform: scale(1.3) rotateY(288deg) translateZ(40px);



                filter: brightness(1.8) saturate(1.8);



            }



            100% {



                transform: scale(1) rotateY(360deg) translateZ(0px);



                filter: brightness(1) saturate(1);



            }



        }



        @keyframes rareEvolution {



            0% {



                transform: scale(1) rotateY(0deg) translateZ(0px);



                filter: brightness(1) saturate(1);



            }



            25% {



                transform: scale(1.5) rotateY(90deg) translateZ(50px);



                filter: brightness(1.3) saturate(1.5);



            }



            50% {



                transform: scale(1.8) rotateY(180deg) translateZ(70px);



                filter: brightness(1.8) saturate(2);



            }



            75% {



                transform: scale(1.2) rotateY(270deg) translateZ(30px);



                filter: brightness(1.4) saturate(1.6);



            }



            100% {



                transform: scale(1) rotateY(360deg) translateZ(0px);



                filter: brightness(1) saturate(1);



            }



        }



        @keyframes normalEvolution {



            0% {



                transform: scale(1) rotateY(0deg) translateZ(0px);



                filter: brightness(1);



            }



            30% {



                transform: scale(1.3) rotateY(108deg) translateZ(30px);



                filter: brightness(1.2);



            }



            60% {



                transform: scale(1.5) rotateY(216deg) translateZ(50px);



                filter: brightness(1.4);



            }



            100% {



                transform: scale(1) rotateY(360deg) translateZ(0px);



                filter: brightness(1);



            }



        }



        @keyframes basicEvolution {



            0% {



                transform: scale(1) rotateY(0deg);



            }



            50% {



                transform: scale(1.2) rotateY(180deg);



            }



            100% {



                transform: scale(1) rotateY(360deg);



            }



        }



        /* 升级类型动画 */



        @keyframes milestoneLevelUp {



            0% {



                transform: scale(1) translateY(0px) rotateX(0deg);



                filter: brightness(1) drop-shadow(0 0 0px rgba(255, 255, 0, 0));



            }



            25% {



                transform: scale(1.4) translateY(-20px) rotateX(15deg);



                filter: brightness(1.3) drop-shadow(0 0 20px rgba(255, 255, 0, 0.8));



            }



            50% {



                transform: scale(1.6) translateY(-30px) rotateX(-10deg);



                filter: brightness(1.5) drop-shadow(0 0 30px rgba(255, 255, 0, 1));



            }



            75% {



                transform: scale(1.2) translateY(-15px) rotateX(5deg);



                filter: brightness(1.2) drop-shadow(0 0 15px rgba(255, 255, 0, 0.6));



            }



            100% {



                transform: scale(1) translateY(0px) rotateX(0deg);



                filter: brightness(1) drop-shadow(0 0 0px rgba(255, 255, 0, 0));



            }



        }



        @keyframes majorLevelUp {



            0% {



                transform: scale(1) translateY(0px);



                filter: brightness(1);



            }



            30% {



                transform: scale(1.3) translateY(-15px);



                filter: brightness(1.2);



            }



            70% {



                transform: scale(1.4) translateY(-20px);



                filter: brightness(1.3);



            }



            100% {



                transform: scale(1) translateY(0px);



                filter: brightness(1);



            }



        }



        @keyframes minorLevelUp {



            0% {



                transform: scale(1) translateY(0px);



                filter: brightness(1);



            }



            50% {



                transform: scale(1.2) translateY(-10px);



                filter: brightness(1.1);



            }



            100% {



                transform: scale(1) translateY(0px);



                filter: brightness(1);



            }



        }



        @keyframes basicLevelUp {



            0% {



                transform: scale(1);



            }



            50% {



                transform: scale(1.1);



            }



            100% {



                transform: scale(1);



            }



        }



        .pet-container {



            position: relative;



            overflow: hidden;



        }



        /* 点击时的爆炸粒子效果 */



        .pet-icon-3d:active::before {



            content: '';



            position: absolute;



            top: -20px;



            left: -20px;



            right: -20px;



            bottom: -20px;



            background-image:



                radial-gradient(3px 3px at 25% 25%, rgba(255, 255, 0, 0.8) 0%, transparent 70%),



                radial-gradient(2px 2px at 75% 75%, rgba(255, 0, 255, 0.7) 0%, transparent 70%),



                radial-gradient(2px 2px at 75% 25%, rgba(0, 255, 255, 0.6) 0%, transparent 70%),



                radial-gradient(3px 3px at 25% 75%, rgba(255, 255, 0, 0.5) 0%, transparent 70%);



            animation: clickParticleExplosion 0.8s ease-out;



            pointer-events: none;



            z-index: 15;



        }



        /* 动画关键帧 */











        @keyframes clickParticleExplosion {



            0% {



                transform: scale(0.5) rotate(0deg);



                opacity: 1;



            }



            50% {



                transform: scale(1.5) rotate(180deg);



                opacity: 0.8;



            }



            100% {



                transform: scale(2) rotate(360deg);



                opacity: 0;



            }



        }



        /* 特殊粒子效果类 */



        .particle-legendary {



            position: relative;



        }



        .particle-legendary::before {



            content: '';



            position: absolute;



            top: -25px;



            left: -25px;



            right: -25px;



            bottom: -25px;



            background-image:



                radial-gradient(2px 2px at 20% 20%, rgba(255, 215, 0, 0.6) 0%, transparent 70%),



                radial-gradient(1px 1px at 40% 60%, rgba(255, 255, 255, 0.5) 0%, transparent 70%),



                radial-gradient(2px 2px at 60% 40%, rgba(255, 165, 0, 0.4) 0%, transparent 70%),



                radial-gradient(1px 1px at 80% 80%, rgba(255, 215, 0, 0.3) 0%, transparent 70%);



            animation: legendaryParticles 6s ease-in-out infinite;



            pointer-events: none;



            z-index: -2;



        }



        .particle-mythical {



            position: relative;



        }



        .particle-mythical::before {



            content: '';



            position: absolute;



            top: -30px;



            left: -30px;



            right: -30px;



            bottom: -30px;



            background-image:



                radial-gradient(3px 3px at 25% 25%, rgba(138, 43, 226, 0.7) 0%, transparent 70%),



                radial-gradient(2px 2px at 50% 50%, rgba(75, 0, 130, 0.5) 0%, transparent 70%),



                radial-gradient(2px 2px at 75% 75%, rgba(255, 20, 147, 0.4) 0%, transparent 70%),



                radial-gradient(1px 1px at 30% 70%, rgba(255, 255, 255, 0.6) 0%, transparent 70%);



            animation: mythicalParticles 4s ease-in-out infinite;



            pointer-events: none;



            z-index: -2;



        }



        @keyframes legendaryParticles {



            0%, 100% {



                transform: rotate(0deg) scale(1);



                opacity: 0.5;



            }



            33% {



                transform: rotate(120deg) scale(1.2);



                opacity: 0.8;



            }



            66% {



                transform: rotate(240deg) scale(0.9);



                opacity: 0.6;



            }



        }



        @keyframes mythicalParticles {



            0%, 100% {



                transform: rotate(0deg) scale(1) translateZ(0);



                opacity: 0.6;



            }



            25% {



                transform: rotate(90deg) scale(1.3) translateZ(10px);



                opacity: 0.9;



            }



            50% {



                transform: rotate(180deg) scale(1.1) translateZ(-5px);



                opacity: 0.7;



            }



            75% {



                transform: rotate(270deg) scale(1.4) translateZ(15px);



                opacity: 1;



            }



        }



        /* 移动端粒子效果优化 */



        @media (max-width: 768px) {



            .pet-container::before,



            .pet-container::after {



                animation-duration: 30s;



                opacity: 0.3;



            }



            .pet-icon-3d::before,



            .pet-icon-3d::after {



                animation-duration: 12s;



                opacity: 0.4;



            }



            .pet-icon-3d:hover::before,



            .pet-icon-3d:hover::after {



                animation-duration: 8s;



                opacity: 0.6;



            }



        }



        /* 3D场景背景系统 */



        .scene-background {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            z-index: -10;



            perspective: 1200px;



            transform-style: preserve-3d;



            overflow: hidden;



        }



        .scene-layer {



            position: absolute;



            width: 120%;



            height: 120%;



            top: -10%;



            left: -10%;



            transform-style: preserve-3d;



        }



        /* 远景层 - 星空背景 */



        .scene-background .layer-far {



            background:



                radial-gradient(2px 2px at 20% 30%, rgba(255, 255, 255, 0.8) 0%, transparent 50%),



                radial-gradient(1px 1px at 40% 70%, rgba(255, 255, 255, 0.6) 0%, transparent 50%),



                radial-gradient(1px 1px at 60% 20%, rgba(255, 255, 255, 0.7) 0%, transparent 50%),



                radial-gradient(2px 2px at 80% 60%, rgba(255, 255, 255, 0.9) 0%, transparent 50%),



                radial-gradient(1px 1px at 90% 80%, rgba(255, 255, 255, 0.5) 0%, transparent 50%);



            animation: farLayerFloat 60s ease-in-out infinite;



            transform: translateZ(-500px) scale(2);



            opacity: 0.6;



        }



        /* 中景层 - 星云 */



        .scene-background .layer-mid {



            background:



                radial-gradient(ellipse 400px 200px at 30% 40%, rgba(138, 43, 226, 0.3) 0%, transparent 70%),



                radial-gradient(ellipse 300px 150px at 70% 60%, rgba(75, 0, 130, 0.25) 0%, transparent 70%),



                radial-gradient(ellipse 350px 180px at 50% 30%, rgba(25, 25, 112, 0.2) 0%, transparent 70%);



            animation: midLayerFloat 45s ease-in-out infinite reverse;



            transform: translateZ(-300px) scale(1.5);



            opacity: 0.7;



        }



        /* 近景层 - 光效 */



        .scene-background .layer-near {



            background:



                radial-gradient(circle 200px at 20% 20%, rgba(0, 191, 255, 0.2) 0%, transparent 70%),



                radial-gradient(circle 150px at 80% 80%, rgba(255, 20, 147, 0.15) 0%, transparent 70%),



                radial-gradient(circle 250px at 60% 40%, rgba(255, 215, 0, 0.1) 0%, transparent 70%);



            animation: nearLayerFloat 30s ease-in-out infinite;



            transform: translateZ(-100px) scale(1.2);



            opacity: 0.8;



        }



        /* 3D场景动画关键帧 */



        @keyframes farLayerFloat {



            0%, 100% {



                transform: translateZ(-500px) scale(2) rotateY(0deg);



                opacity: 0.6;



            }



            33% {



                transform: translateZ(-520px) scale(2.1) rotateY(120deg);



                opacity: 0.8;



            }



            66% {



                transform: translateZ(-480px) scale(1.9) rotateY(240deg);



                opacity: 0.4;



            }



        }



        @keyframes midLayerFloat {



            0%, 100% {



                transform: translateZ(-300px) scale(1.5) rotateX(0deg) rotateY(0deg);



                opacity: 0.7;



            }



            25% {



                transform: translateZ(-320px) scale(1.6) rotateX(5deg) rotateY(90deg);



                opacity: 0.9;



            }



            50% {



                transform: translateZ(-280px) scale(1.4) rotateX(-3deg) rotateY(180deg);



                opacity: 0.6;



            }



            75% {



                transform: translateZ(-310px) scale(1.55) rotateX(8deg) rotateY(270deg);



                opacity: 0.8;



            }



        }



        @keyframes nearLayerFloat {



            0%, 100% {



                transform: translateZ(-100px) scale(1.2) rotateZ(0deg);



                opacity: 0.8;



            }



            50% {



                transform: translateZ(-120px) scale(1.3) rotateZ(180deg);



                opacity: 1;



            }



        }



        /* 等级对应的场景主题 */



        .scene-theme-baby {



            background: linear-gradient(135deg,



                rgba(255, 182, 193, 0.3) 0%,



                rgba(255, 192, 203, 0.2) 50%,



                rgba(176, 224, 230, 0.3) 100%);



        }



        .scene-theme-teen {



            background: linear-gradient(135deg,



                rgba(144, 238, 144, 0.3) 0%,



                rgba(152, 251, 152, 0.2) 50%,



                rgba(173, 216, 230, 0.3) 100%);



        }



        .scene-theme-adolescent {



            background: linear-gradient(135deg,



                rgba(255, 165, 0, 0.3) 0%,



                rgba(255, 215, 0, 0.2) 50%,



                rgba(255, 182, 193, 0.3) 100%);



        }



        .scene-theme-young {



            background: linear-gradient(135deg,



                rgba(255, 140, 0, 0.3) 0%,



                rgba(255, 69, 0, 0.2) 50%,



                rgba(255, 215, 0, 0.3) 100%);



        }



        .scene-theme-adult {



            background: linear-gradient(135deg,



                rgba(25, 25, 112, 0.3) 0%,



                rgba(72, 61, 139, 0.2) 50%,



                rgba(138, 43, 226, 0.3) 100%);



        }



        .scene-theme-elder {



            background: linear-gradient(135deg,



                rgba(75, 0, 130, 0.4) 0%,



                rgba(138, 43, 226, 0.3) 50%,



                rgba(25, 25, 112, 0.3) 100%);



        }



        .scene-theme-legendary {



            background: linear-gradient(135deg,



                rgba(255, 215, 0, 0.4) 0%,



                rgba(255, 140, 0, 0.3) 50%,



                rgba(255, 165, 0, 0.3) 100%);



            animation: legendaryGlow 4s ease-in-out infinite;



        }



        .scene-theme-mythical {



            background: linear-gradient(135deg,



                rgba(255, 20, 147, 0.4) 0%,



                rgba(138, 43, 226, 0.4) 50%,



                rgba(75, 0, 130, 0.3) 100%);



            animation: mythicalShimmer 3s ease-in-out infinite;



        }



        .scene-theme-cosmic {



            background: linear-gradient(135deg,



                rgba(75, 0, 130, 0.3) 0%,



                rgba(25, 25, 112, 0.4) 50%,



                rgba(0, 0, 0, 0.5) 100%);



            animation: cosmicPulse 5s ease-in-out infinite;



        }



        .scene-theme-chaotic {



            background: linear-gradient(135deg,



                rgba(255, 0, 255, 0.4) 0%,



                rgba(255, 0, 0, 0.3) 50%,



                rgba(0, 255, 255, 0.3) 100%);



            animation: chaoticFlicker 2s ease-in-out infinite;



        }



        /* 特殊场景动画 */



        



        @keyframes mythicalShimmer {



            0%, 100% {



                background-position: 0% 50%;



            }



            50% {



                background-position: 100% 50%;



            }



        }



        @keyframes cosmicPulse {



            0%, 100% {



                transform: scale(1);



                opacity: 0.8;



            }



            50% {



                transform: scale(1.05);



                opacity: 1;



            }



        }



        @keyframes chaoticFlicker {



            0%, 90%, 100% {



                opacity: 1;



                filter: hue-rotate(0deg);



            }



            95% {



                opacity: 0.7;



                filter: hue-rotate(90deg);



            }



        }



        /* 场景切换动画 */



        .scene-transition {



            transition: all 1.5s cubic-bezier(0.4, 0, 0.2, 1);



        }



        .scene-fade-in {



            animation: sceneFadeIn 1s ease-out;



        }



        .scene-fade-out {



            animation: sceneFadeOut 1s ease-in;



        }



        @keyframes sceneFadeIn {



            from {



                opacity: 0;



                transform: translateZ(-50px) scale(0.95);



            }



            to {



                opacity: 1;



                transform: translateZ(0) scale(1);



            }



        }



        @keyframes sceneFadeOut {



            from {



                opacity: 1;



                transform: translateZ(0) scale(1);



            }



            to {



                opacity: 0;



                transform: translateZ(50px) scale(1.05);



            }



        }



        /* 移动端场景优化 */



        @media (max-width: 768px) {



            .scene-background {



                perspective: 800px;



            }



            .scene-background .layer-far {



                animation-duration: 80s;



                opacity: 0.4;



            }



            .scene-background .layer-mid {



                animation-duration: 60s;



                opacity: 0.5;



            }



            .scene-background .layer-near {



                animation-duration: 40s;



                opacity: 0.6;



            }



        }



        .modal-body {



            padding: 20px;



        }



        /* 全屏弹窗样式 */



        .fullscreen-modal {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background-color: rgba(0, 0, 0, 0.7);



            z-index: 10000;



            display: flex;



            justify-content: center;



            align-items: center;



        }



        .fullscreen-modal .modal-content.fullscreen {



            width: 100%;



            max-width: 1600px;



            height: 100%;



            border-radius: 0;



            box-shadow: none;



            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);



            display: flex;



            flex-direction: column;



            margin: 0 auto;



        }



        .fullscreen-modal .modal-header {



            display: flex;



            justify-content: space-between;



            align-items: center;



            padding: 20px 40px;



            background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));



            color: white;



            border-bottom: 2px solid var(--primary-dark);



        }



        .pet-center-title {



            font-size: 2.8em;



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            font-weight: bold;



            text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.2);



            margin: 0;



            color: var(--primary-color);



        }



        .fullscreen-modal .close-btn {



            background: none;



            border: none;



            color: white;



            font-size: 2.5em;



            cursor: pointer;



            padding: 0;



            margin: 0;



            line-height: 1;



            transition: transform 0.3s;



        }



        .fullscreen-modal .close-btn:hover {



            transform: scale(1.2);



        }



        .fullscreen-modal .modal-body {



            flex: 1;



            padding: 40px;



            overflow-y: auto;



        }



        /* 宠物卡片网格样式 */



        .pet-grid {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));



            gap: 24px;



            margin-top: 30px;



            max-width: 1600px;



            margin-left: auto;



            margin-right: auto;



        }



        /* 宠物领养中心样式 */



        .pet-center-title {



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            font-size: 2.8em;



            color: var(--primary-color);



            text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.2);



            margin: 0;



            padding: 15px 0;



        }



        /* 核心限制视觉提示 */



        .adoption-limit-hint {



            background-color: var(--accent-light);



            border: 2px solid var(--accent-color);



            border-radius: 20px;



            padding: 14px 20px;



            margin: 18px auto;



            text-align: center;



            font-weight: 600;



            color: var(--primary-dark);



            font-size: 1.1em;



            box-shadow: 0 4px 12px rgba(255, 215, 0, 0.3);



            max-width: 600px;



            position: relative;



        }



        .adoption-limit-hint::before {



            content: '';



            position: absolute;



            bottom: -8px;



            left: 50%;



            transform: translateX(-50%);



            width: 0;



            height: 0;



            border-left: 8px solid transparent;



            border-right: 8px solid transparent;



            border-top: 8px solid var(--accent-color);



        }



        /* 宠物卡片样式 — 班宠乐园 v2 风格 */



        .pet-card {



            background: #fff;



            border-radius: 18px;



            padding: 0;



            text-align: left;



            box-shadow: 0 3px 14px rgba(0,0,0,0.06);



            cursor: pointer;



            transition: transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.25s ease, border-color 0.25s ease;



            position: relative;



            overflow: hidden;



            min-height: auto;



            display: flex;



            flex-direction: column;



            border: 1.5px solid transparent;



            animation: fadeIn 0.3s ease-out;



        }



        .pet-card:nth-child(even) {



            background: #fff;



        }



        .pet-card:hover {



            transform: translateY(-4px);



            box-shadow: 0 8px 30px rgba(0,0,0,0.12);



            border-color: rgba(140, 100, 220, 0.25);



        }



        /* ============ 稀有度系统样式 ============ */



        /* 稀有度筛选栏 */



        .pet-search-input {



            width: 100%;



            max-width: 320px;



            padding: 9px 18px;



            border-radius: 24px;



            border: 2px solid #e0e0e0;



            font-size: 0.9em;



            outline: none;



            transition: border-color 0.25s ease, box-shadow 0.25s ease;



            background: #fafafa;



        }



        .pet-search-input:focus {



            border-color: var(--primary-color);



        }



        .rarity-filter-bar {



            display: flex;



            flex-wrap: wrap;



            gap: 8px;



            justify-content: center;



            align-items: center;



            margin: 20px auto;



            max-width: 800px;



            padding: 0 15px;



        }



        .rarity-filter-btn {



            padding: 7px 18px;



            border-radius: 22px;



            border: 2px solid transparent;



            cursor: pointer;



            font-size: 0.88em;



            font-weight: 600;



            transition: all 0.25s ease;



            background: var(--bg-secondary);



            color: var(--text-secondary);



            white-space: nowrap;



            letter-spacing: 0.3px;



        }



        .rarity-filter-btn:hover {



            transform: translateY(-2px);



            box-shadow: 0 4px 12px rgba(0,0,0,0.12);



        }



        .rarity-filter-btn.active {



            color: white;



            box-shadow: 0 4px 16px rgba(0,0,0,0.2);



            transform: translateY(-2px);



        }



        .rarity-filter-btn.all.active { background: linear-gradient(135deg, #667eea, #764ba2); border-color: #667eea; }



        .rarity-filter-btn.common { border-color: #a0a0a0; color: #666; }



        .rarity-filter-btn.common.active { background: linear-gradient(135deg, #a0a0a0, #888); border-color: #a0a0a0; color: white; }



        .rarity-filter-btn.uncommon { border-color: #4caf50; color: #388e3c; }



        .rarity-filter-btn.uncommon.active { background: linear-gradient(135deg, #66bb6a, #43a047); border-color: #4caf50; color: white; }



        .rarity-filter-btn.rare { border-color: #2196f3; color: #1976d2; }



        .rarity-filter-btn.rare.active { background: linear-gradient(135deg, #42a5f5, #1e88e5); border-color: #2196f3; color: white; }



        .rarity-filter-btn.epic { border-color: #9c27b0; color: #7b1fa2; }



        .rarity-filter-btn.epic.active { background: linear-gradient(135deg, #ab47bc, #8e24aa); border-color: #9c27b0; color: white; }



        .rarity-filter-btn.legendary { border-color: #f9a825; color: #f57f17; }



        .rarity-filter-btn.legendary.active { background: linear-gradient(135deg, #fbc02d, #f9a825); border-color: #f9a825; color: #5d4037; }



        .filter-count {



            font-size: 0.85em;



            color: var(--text-tertiary);



            margin-left: 10px;



        }



        /* 稀有度徽章 */



        .rarity-badge {



            position: absolute;



            top: 10px;



            left: 10px;



            padding: 3px 12px;



            border-radius: 12px;



            font-size: 11px;



            font-weight: 700;



            color: white;



            z-index: 3;



            letter-spacing: 0.5px;



            box-shadow: 0 2px 10px rgba(0,0,0,0.18);



            background: rgba(0,0,0,0.50);



            backdrop-filter: blur(2px);



            -webkit-backdrop-filter: blur(2px);



        }



        .rarity-common { background: linear-gradient(135deg, #b0b0b0, #909090); }



        .rarity-uncommon { background: linear-gradient(135deg, #66bb6a, #43a047); }



        .rarity-rare { background: linear-gradient(135deg, #42a5f5, #1e88e5); }



        .rarity-epic { background: linear-gradient(135deg, #ab47bc, #7b1fa2); }



        .rarity-legendary { background: linear-gradient(135deg, #fbc02d, #f57f17); animation: legendaryGlow 2s ease-in-out infinite; }



        @keyframes legendaryGlow {



            0%, 100% { box-shadow: 0 2px 8px rgba(249, 168, 37, 0.4); }



            50% { box-shadow: 0 4px 20px rgba(249, 168, 37, 0.8); }



        }



        /* 宠物图片容器 — 16:9 比例矩形 */



        .pet-card-image-wrap {



            position: relative;



            width: 100%;



            aspect-ratio: 1 / 1;



            margin: 0;



            border-radius: 16px 16px 0 0;



            overflow: hidden;



            display: flex;



            align-items: center;



            justify-content: center;



            background: linear-gradient(160deg, #f5f0ff 0%, #ede4f8 50%, #e0d4f0 100%);



        }



        .pet-card-image-wrap.common { background: linear-gradient(135deg, #f5f5f5, #e0e0e0); }



        .pet-card-image-wrap.uncommon { background: linear-gradient(135deg, #e8f5e9, #c8e6c9); }



        .pet-card-image-wrap.rare { background: linear-gradient(135deg, #e3f2fd, #bbdefb); }



        .pet-card-image-wrap.epic { background: linear-gradient(135deg, #f3e5f5, #e1bee7); }



        .pet-card-image-wrap.legendary {



            background: linear-gradient(135deg, #fff8e1, #ffe082);



            animation: legendaryBgGlow 3s ease-in-out infinite;



        }



        @keyframes legendaryBgGlow {



            0%, 100% { box-shadow: inset 0 0 10px rgba(249,168,37,0.3); }



            50% { box-shadow: inset 0 0 25px rgba(249,168,37,0.6); }



        }



        .pet-card-image-wrap .pet-adopt-image {



            width: 100%;



            height: 100%;



            object-fit: cover;



            transition: transform 0.3s ease;



        }



        .pet-card:hover .pet-card-image-wrap .pet-adopt-image {



            transform: scale(1.03);



        }



        .pet-card-image-wrap .pet-adopt-fallback {



            font-size: 4em;



            display: flex;



            align-items: center;



            justify-content: center;



            width: 100%;



            height: 100%;



        }



        /* 进化阶段预览 */



        .evolution-preview-badge {



            position: absolute;



            top: 10px;



            right: 10px;



            background: rgba(0,0,0,0.5);



            backdrop-filter: blur(6px);



            -webkit-backdrop-filter: blur(6px);



            color: #fff;



            font-size: 10px;



            font-weight: 600;



            padding: 4px 12px;



            border-radius: 12px;



            white-space: nowrap;



            letter-spacing: 0.3px;



            z-index: 3;



            box-shadow: 0 2px 8px rgba(0,0,0,0.15);



        }



        /* 宠物卡片 - 稀有度顶部色条 */



        .pet-card.rarity-common { border-top: 3px solid #d0d0d0; }



        .pet-card.rarity-uncommon { border-top: 3px solid #81c784; }



        .pet-card.rarity-rare { border-top: 3px solid #64b5f6; }



        .pet-card.rarity-epic { border-top: 3px solid #ce93d8; }



        .pet-card.rarity-legendary {



            border-top: 3px solid #fbc02d;



            box-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 0 16px rgba(249,168,37,0.15);



        }



        .pet-card.rarity-legendary:hover {



            box-shadow: 0 4px 16px rgba(0,0,0,0.1), 0 0 24px rgba(249,168,37,0.25);



        }



        /* 领养按钮 — 覆盖在图片区域上，半透明渐变 */



        .adopt-btn.rarity-common { background: linear-gradient(135deg, rgba(120,120,120,0.75), rgba(90,90,90,0.75)); }



        .adopt-btn.rarity-uncommon { background: linear-gradient(135deg, rgba(76,175,80,0.75), rgba(56,142,60,0.75)); }



        .adopt-btn.rarity-rare { background: linear-gradient(135deg, rgba(33,150,243,0.75), rgba(25,118,210,0.75)); }



        .adopt-btn.rarity-epic { background: linear-gradient(135deg, rgba(156,39,176,0.75), rgba(106,27,154,0.75)); }



        .adopt-btn.rarity-legendary {



            background: linear-gradient(135deg, rgba(251,192,45,0.85), rgba(249,168,37,0.85));



            color: #5d4037;



        }



        .adopt-btn.rarity-common:hover { background: linear-gradient(135deg, rgba(140,140,140,0.85), rgba(110,110,110,0.85)); }



        .adopt-btn.rarity-uncommon:hover { background: linear-gradient(135deg, rgba(102,187,106,0.85), rgba(65,160,67,0.85)); }



        .adopt-btn.rarity-rare:hover { background: linear-gradient(135deg, rgba(66,165,245,0.85), rgba(30,136,229,0.85)); }



        .adopt-btn.rarity-epic:hover { background: linear-gradient(135deg, rgba(171,71,188,0.85), rgba(123,31,162,0.85)); }



        .adopt-btn.rarity-legendary:hover { background: linear-gradient(135deg, rgba(255,214,0,0.9), rgba(251,192,45,0.9)); }



        /* 无匹配结果提示 */



        .no-filter-match {



            grid-column: 1 / -1;



            text-align: center;



            padding: 50px 20px;



            color: var(--text-tertiary);



            font-size: 1.1em;



        }



        /* 宠物模态框标签样式 */



        .pet-modal-tabs {



            display: flex;



            gap: 10px;



            margin: 20px 0;



            flex-wrap: wrap;



        }



        .tab-btn {



            padding: 10px 20px;



            background: var(--primary-color);



            color: white;



            border: none;



            border-radius: var(--radius-md);



            cursor: pointer;



            transition: all 0.3s ease;



            font-size: 0.9em;



        }



        .tab-btn:hover {



            background: var(--primary-dark);



            transform: translateY(-2px);



        }



        .tab-btn.active {



            background: var(--accent-color);



            box-shadow: var(--shadow-md);



        }



        /* 宠物模态框标签内容样式 */



        .pet-modal-tab-content {



            display: none;



            padding: 20px;



            background: var(--bg-primary);



            border-radius: var(--radius-md);



            border: 1px solid var(--border-color);



        }



        .pet-modal-tab-content.active {



            display: block;



        }



        /* 技能系统样式 */



        .pet-skills-section {



            margin-bottom: 25px;



        }



        .pet-skills-section h5 {



            margin-bottom: 15px;



            color: var(--primary-color);



        }



        .pet-skills-list {



            display: flex;



            flex-direction: column;



            gap: 15px;



        }



        .pet-skill-item {



            display: flex;



            justify-content: space-between;



            align-items: flex-start;



            background: var(--bg-secondary);



            padding: 15px;



            border-radius: var(--radius-md);



            box-shadow: var(--shadow-sm);



        }



        .skill-info strong {



            display: block;



            margin-bottom: 5px;



            color: var(--primary-color);



        }



        .skill-info p {



            margin: 5px 0;



            font-size: 0.9em;



            color: var(--text-secondary);



        }



        /* 进化系统样式 */



        .evolution-forms {



            display: flex;



            flex-direction: column;



            gap: 15px;



        }



        .evolution-form-item {



            display: flex;



            justify-content: space-between;



            align-items: flex-start;



            background: var(--bg-secondary);



            padding: 15px;



            border-radius: var(--radius-md);



            box-shadow: var(--shadow-sm);



            opacity: 0.7;



        }



        .evolution-form-item.can-evolve {



            opacity: 1;



            border-left: 4px solid var(--secondary-color);



        }



        .evolution-info strong {



            display: block;



            margin-bottom: 5px;



            color: var(--primary-color);



        }



        .evolution-info p {



            margin: 5px 0;



            font-size: 0.9em;



            color: var(--text-secondary);



        }



        /* 装备系统样式 */



        .pet-equipment-section {



            margin-bottom: 25px;



        }



        .pet-equipment-section h5 {



            margin-bottom: 15px;



            color: var(--primary-color);



        }



        .equipment-slots {



            display: grid;



            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));



            gap: 15px;



            margin-bottom: 20px;



        }



        .equipment-slot {



            background: var(--bg-secondary);



            padding: 15px;



            border-radius: var(--radius-md);



            box-shadow: var(--shadow-sm);



        }



        .equipment-slot h6 {



            margin-bottom: 10px;



            color: var(--primary-color);



        }



        .equipped-item {



            margin-top: 10px;



        }



        .equipped-item strong {



            display: block;



            margin-bottom: 5px;



        }



        .equipped-item p {



            margin: 5px 0;



            font-size: 0.9em;



            color: var(--text-secondary);



        }



        .equipment-list {



            display: flex;



            flex-direction: column;



            gap: 15px;



        }



        .equipment-item {



            display: flex;



            justify-content: space-between;



            align-items: flex-start;



            background: var(--bg-secondary);



            padding: 15px;



            border-radius: var(--radius-md);



            box-shadow: var(--shadow-sm);



        }



        .equipment-info strong {



            display: block;



            margin-bottom: 5px;



            color: var(--primary-color);



        }



        .equipment-info p {



            margin: 5px 0;



            font-size: 0.9em;



            color: var(--text-secondary);



        }



        /* 天赋系统样式 */



        .pet-talents-section {



            margin-bottom: 25px;



        }



        .pet-talents-section h5 {



            margin-bottom: 15px;



            color: var(--primary-color);



        }



        .pet-talents-list {



            display: flex;



            flex-direction: column;



            gap: 15px;



        }



        .pet-talent-item {



            display: flex;



            justify-content: space-between;



            align-items: flex-start;



            background: var(--bg-secondary);



            padding: 15px;



            border-radius: var(--radius-md);



            box-shadow: var(--shadow-sm);



        }



        .talent-info strong {



            display: block;



            margin-bottom: 5px;



            color: var(--primary-color);



        }



        .talent-info p {



            margin: 5px 0;



            font-size: 0.9em;



            color: var(--text-secondary);



        }



        /* 通用按钮样式 */



        .btn-small {



            padding: 8px 16px;



            background: var(--primary-color);



            color: white;



            border: none;



            border-radius: var(--radius-sm);



            cursor: pointer;



            transition: all 0.3s ease;



            font-size: 0.85em;



            margin-top: 10px;



        }



        .btn-small:hover {



            background: var(--primary-dark);



            transform: translateY(-2px);



        }



        /* 状态标签样式 */



        .maxed-tag {



            background: var(--secondary-color);



            color: white;



            padding: 5px 10px;



            border-radius: var(--radius-sm);



            font-size: 0.85em;



            margin-top: 10px;



        }



        .locked {



            background: var(--text-light);



            color: white;



            padding: 5px 10px;



            border-radius: var(--radius-sm);



            font-size: 0.85em;



            margin-top: 10px;



        }



        /* 宠物图标 - 新学期主题美化 */



        .pet-icon {



            font-size: 50px;



            margin-bottom: 10px;



            display: block;



            animation: pet-float 3s ease-in-out infinite, pet-glow 2s ease-in-out infinite alternate;



            cursor: pointer;



            filter: drop-shadow(0 4px 8px rgba(102, 126, 234, 0.3));



            transition: all 0.3s ease;



        }



        /* 宠物浮动动画 */



        @keyframes pet-float {



            0%, 100% { transform: translateY(0) rotate(0deg); }



            25% { transform: translateY(-5px) rotate(2deg); }



            50% { transform: translateY(-8px) rotate(0deg); }



            75% { transform: translateY(-5px) rotate(-2deg); }



        }



        /* 宠物发光动画 - 科技蓝色 */



        @keyframes pet-glow {



            0% { filter: drop-shadow(0 4px 8px rgba(0, 212, 255, 0.3)); }



            100% { filter: drop-shadow(0 6px 16px rgba(0, 153, 255, 0.5)) drop-shadow(0 0 20px rgba(0, 255, 204, 0.4)); }



        }



        .pet-icon:hover {



            animation: pet-bounce 0.6s ease infinite;



            filter: drop-shadow(0 8px 20px rgba(0, 153, 255, 0.6));



            transform: scale(1.15);



        }



        @keyframes pet-bounce {



            0%, 100% { transform: scale(1.15) translateY(0); }



            50% { transform: scale(1.15) translateY(-10px); }



        }



        /* 宠物名称 — 加粗加大 */



        .pet-name {



            font-size: 15px;



            font-weight: 700;



            color: #1a1a2e;



            margin: 0;



            padding: 12px 14px 0;



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            letter-spacing: 0.5px;



        }



        /* 宠物性格 — pill 标签 */



        .pet-personality {



            font-size: 11px;



            color: #1565C0;



            background: #E3F2FD;



            margin: 4px 0 0;



            padding: 3px 10px;



            border-radius: 12px;



            display: inline-block;



            font-weight: 600;



            white-space: nowrap;



            text-align: left;



            line-height: 1.5;



            border: 1px solid #90CAF9;



        }



        .personality-label {



            display: none;



        }



        .personality-value {



            font-style: normal;



            color: inherit;



        }



        /* 宠物细节 — pill 标签 */



        .pet-details {



            font-size: 11px;



            color: #2E7D32;



            background: #E8F5E9;



            margin: 4px 0 6px;



            padding: 3px 10px;



            border-radius: 12px;



            display: inline-block;



            font-weight: 600;



            white-space: nowrap;



            text-align: left;



            line-height: 1.4;



        }



        .details-label {



            display: none;



        }



        .details-value {



            font-family: inherit;



            color: inherit;



        }



        /* 卡片信息包装容器 */



        .pet-card .pet-name,



        .pet-card .pet-personality,



        .pet-card .pet-details {



            margin-left: 12px;



            margin-right: 12px;



        }



        .pet-card .pet-details {



            margin-bottom: 12px;



        }



        /* 学生选择区域 */



        .student-select-section {



            margin: 25px 0;



            text-align: center;



        }



        .student-select-section label {



            font-size: 1.3em;



            margin-right: 15px;



            font-weight: bold;



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            color: var(--primary-color);



        }



        .student-select {



            padding: 8px 12px;



            font-size: 1em;



            border: 2px solid var(--primary-color);



            border-radius: 5px;



            background-color: white;



            color: var(--text-primary);



            cursor: pointer;



            min-width: 200px;



        }



        .student-select:focus {



            outline: none;



            border-color: var(--primary-dark);



            box-shadow: 0 0 5px var(--primary-color);



        }



        /* 领养按钮 — 覆盖在图片区域中间 */



        .adopt-btn {



            position: absolute;



            top: 50%;



            left: 50%;



            transform: translate(-50%, -50%);



            background: rgba(255,255,255,0.25);



            backdrop-filter: blur(4px);



            -webkit-backdrop-filter: blur(4px);



            color: #fff;



            border: 1.5px solid rgba(255,255,255,0.5);



            border-radius: 22px;



            padding: 8px 22px;



            font-size: 13px;



            font-weight: 700;



            cursor: pointer;



            transition: all 0.25s ease;



            z-index: 4;



            font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;



            text-shadow: 0 1px 3px rgba(0,0,0,0.35);



            box-shadow: 0 2px 12px rgba(0,0,0,0.10);



            white-space: nowrap;



            letter-spacing: 0.5px;



            opacity: 0.85;



        }



        .pet-card:hover .adopt-btn {



            opacity: 1;



            transform: translate(-50%, -50%) scale(1);



        }



        .adopt-btn:hover {



            background: linear-gradient(135deg, rgba(255,107,53,0.9), rgba(255,152,0,0.9));



            transform: translate(-50%, -50%) scale(1.08);



            box-shadow: 0 6px 20px rgba(0,0,0,0.25);



            backdrop-filter: blur(6px);



            -webkit-backdrop-filter: blur(6px);



        }



        .adopt-btn:disabled {



            background: rgba(160,160,160,0.5);



            color: #ccc;



            cursor: not-allowed;



            transform: translate(-50%, -50%) scale(0.9);



            box-shadow: none;



        }



        /* 宠物网格布局 */



        .pet-grid {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));



            gap: 20px;



            padding: 20px;



        }



        .pet-grid .pet-name {



            font-size: 15px;



            font-weight: 700;



            color: #1a1a2e;



            margin: 0;



        }



        /* 领养状态样式 */



        .adoption-status {



            background: rgba(255, 255, 255, 0.9);



            border-radius: 10px;



            padding: 20px;



            margin-bottom: 30px;



            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);



            text-align: center;



            font-size: 1.2em;



            font-weight: bold;



            color: var(--text-secondary);



        }



        /* 未领养宠物区域样式 */



        .no-pet-section {



            text-align: center;



            padding: 24px 16px;



            cursor: pointer;



            transition: all 0.3s ease;



            border-radius: 14px;



            background: linear-gradient(135deg, rgba(255,240,220,0.55) 0%, rgba(255,225,190,0.55) 100%);



            border: 2px dashed rgba(200,160,100,0.30);



        }



        .no-pet-section:hover {



            background: rgba(255, 220, 180, 0.7);



            transform: translateY(-2px);



        }



        .empty-paw-print {



            font-size: 60px;



            color: var(--primary-color);



            opacity: 0.7;



            margin-bottom: 10px;



        }



        .pet-adopt-hint {



            font-size: 1.2em;



            color: var(--primary-color);



            font-weight: bold;



        }



        /* Toast提示框样式 */



        .toast {



            position: fixed;



            top: 90px;



            right: 20px;



            padding: 15px 24px;



            border-radius: 8px;



            color: white;



            font-size: 16px;



            font-family: 'Comic Neue', Arial, sans-serif;



            z-index: 10001;



            opacity: 0;



            transition: opacity 0.3s ease, transform 0.3s ease;



            transform: translateY(-20px);



            max-width: 400px;



            white-space: pre-line;



            line-height: 1.6;



            box-shadow: 0 4px 12px rgba(0,0,0,0.2);



            pointer-events: none;



        }



        .toast.show {



            opacity: 1;



            transform: translateY(0);



        }



        .toast.success {



            background-color: var(--secondary-color);



        }



        .toast.error {



            background-color: #d9534f;



        }



        .toast.info {



            background-color: var(--primary-light);



        }



        /* 主标题栏样式 */



        .fixed-header {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));



            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);



            z-index: 9999;



            padding: 10px 20px;



            display: flex;



            justify-content: space-between;



            align-items: center;



            height: 70px;



            box-sizing: border-box;



            border-bottom: 3px solid var(--accent-color);



        }



        .header-content {



            display: flex;



            justify-content: space-between;



            align-items: center;



            width: 100%;



        }



        .header-title {



            font-size: 1.8em;



            font-weight: bold;



            background: linear-gradient(45deg, #fff, var(--primary-light));



            -webkit-background-clip: text;



            -webkit-text-fill-color: transparent;



            text-shadow: 1px 1px 3px rgba(0,0,0,0.2);



            font-family: 'Comic Neue', Arial, sans-serif;



            display: flex;



            align-items: center;



            gap: 15px;



        }



        .logo {



            width: 50px;



            height: 50px;



            display: flex;



            align-items: center;



            justify-content: center;



        }



        .header-controls {



            display: flex;



            align-items: center;



            gap: 20px;



        }



        /* 班级切换器 */

        .class-switcher {

            display: flex;

            align-items: center;

            gap: 8px;

            flex-shrink: 0;

        }



        .class-switcher select {

            padding: 6px 12px;

            border: 2px solid rgba(255,255,255,0.4);

            border-radius: 8px;

            background: rgba(255,255,255,0.15);

            color: #fff;

            font-size: 14px;

            font-weight: bold;

            cursor: pointer;

            outline: none;

            min-width: 120px;

            transition: border-color 0.2s;

        }



        .class-switcher select:hover,

        .class-switcher select:focus {

            border-color: rgba(255,255,255,0.7);

            background: rgba(255,255,255,0.25);

        }



        .class-switcher select option {

            color: #333;

            background: #fff;

        }



        .class-switcher button {

            padding: 6px 14px;

            border: 2px solid rgba(255,255,255,0.4);

            border-radius: 8px;

            background: rgba(255,255,255,0.15);

            color: #fff;

            font-size: 16px;

            font-weight: bold;

            cursor: pointer;

            transition: background 0.2s;

        }



        .class-switcher button:hover {

            background: rgba(255,255,255,0.35);

        }



        .mode-selector {



            display: flex;



            gap: 8px;



        }



        .mode-btn {



            padding: 8px 15px;



            border: none;



            border-radius: 15px;



            cursor: pointer;



            font-weight: bold;



            font-size: 14px;



            transition: all 0.3s ease;



            background: var(--bg-tertiary);



            color: var(--text-secondary);



        }



        .mode-btn.active {



            background: linear-gradient(45deg, var(--accent-color), var(--accent-dark));



            color: var(--text-primary);



            box-shadow: 0 3px 10px rgba(255, 212, 59, 0.4);



        }



        .mode-btn:hover {



            transform: translateY(-2px);



            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);



        }



        .mode-controls {



            display: flex;



            gap: 8px;



        }



        .control-btn {



            padding: 8px 12px;



            border: none;



            border-radius: 50%;



            cursor: pointer;



            transition: all 0.3s ease;



            background: #4dabf7;



            color: white;



            font-size: 16px;



        }



        .control-btn:hover {



            transform: scale(1.1);



            box-shadow: 0 4px 12px rgba(77, 171, 247, 0.4);



        }



        .mode-status {



            display: flex;



            flex-direction: column;



            align-items: center;



            gap: 5px;



        }



        .timer {



            font-size: 16px;



            font-weight: bold;



            color: var(--primary-color);



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .decibel-display {



            font-size: 14px;



            color: var(--text-secondary);



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .admin-btn {



            background: rgba(255,255,255,0.2);



            border: 1px solid rgba(255,255,255,0.3);



            color: white;



            padding: 8px 15px;



            border-radius: 20px;



            cursor: pointer;



            transition: all 0.3s;



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .admin-btn:hover {



            background: rgba(255,255,255,0.3);



        }



        .profile-container {



            display: flex;



            align-items: center;



            gap: 10px;



            margin-right: 20px;



        }



        .profile-avatar {



            width: 50px;



            height: 50px;



            border-radius: 50%;



            background: var(--bg-tertiary);



            display: flex;



            align-items: center;



            justify-content: center;



            font-size: 1.5em;



            color: var(--primary-color);



            overflow: hidden;



        }



        .profile-avatar img {



            width: 100%;



            height: 100%;



            object-fit: cover;



        }



        .teacher-name {



            color: white;



            font-weight: bold;



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        /* 全屏显示按钮样式 */



        .fullscreen-btn {



            background: rgba(255,255,255,0.2);



            border: 1px solid rgba(255,255,255,0.3);



            color: white;



            padding: 8px 15px;



            border-radius: 20px;



            cursor: pointer;



            transition: all 0.3s;



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .fullscreen-btn:hover {



            background: rgba(255,255,255,0.3);



        }



        /* 管理员下拉菜单样式 */



        .admin-dropdown {



            position: absolute;



            top: 70px;



            right: 20px;



            background: white;



            border-radius: 10px;



            box-shadow: 0 5px 15px rgba(0,0,0,0.1);



            padding: 15px;



            width: 280px;



            z-index: 10000;



            display: none;



            max-height: 80vh;



            overflow-y: auto;



        }



        .admin-dropdown.show {



            display: block;



        }



        .admin-option {



            margin-bottom: 10px;



        }



        .admin-option label {



            display: block;



            margin-bottom: 5px;



            font-weight: bold;



            color: var(--primary-color);



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .admin-option input, .admin-option select {



            width: 100%;



            padding: 8px;



            border: 1px solid var(--primary-light);



            border-radius: 5px;



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .admin-option button {



            width: 100%;



            padding: 8px;



            background: var(--primary-color);



            color: white;



            border: none;



            border-radius: 5px;



            cursor: pointer;



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        /* 新增：主题设置容器 */



        .theme-settings-container {



            display: flex;



            flex-direction: column;



            gap: 15px;



            padding: 15px;



            background: rgba(255, 255, 255, 0.9);



            border-radius: 10px;



            border: 1px solid var(--primary-light);



        }



        .theme-section {



            display: flex;



            flex-direction: column;



            gap: 8px;



        }



        .section-title {



            font-weight: bold;



            color: var(--primary-dark);



            font-size: 14px;



            margin-bottom: 2px;



        }



        /* 新增：主题颜色预览 */



        .theme-preview {



            display: flex;



            flex-wrap: wrap;



            gap: 5px;



            margin-top: 5px;



        }



        .theme-color {



            width: 25px;



            height: 25px;



            border-radius: 5px;



            cursor: pointer;



            border: 2px solid transparent;



        }



        .theme-color.active {



            border-color: var(--text-primary);



            transform: scale(1.1);



        }



        /* 新增：背景预览 */



        .background-preview {



            display: flex;



            flex-wrap: wrap;



            gap: 5px;



            margin-top: 5px;



        }



        .background-option {



            width: 50px;



            height: 30px;



            border-radius: 5px;



            cursor: pointer;



            border: 2px solid transparent;



            display: flex;



            align-items: center;



            justify-content: center;



            font-size: 0.7em;



            overflow: hidden;



        }



        .background-option.active {



            border-color: var(--text-primary);



            transform: scale(1.05);



        }



        /* 字母定位功能样式 */



        .letter-filter {



            position: relative;



        }



        .letter-filter-btn {



            background: #4dabf7;



            color: white;



            border: none;



            border-radius: 20px;



            padding: 8px 15px;



            cursor: pointer;



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .letter-filter-panel {



            position: absolute;



            top: 40px;



            left: 0;



            background: white;



            border-radius: 10px;



            box-shadow: 0 5px 15px rgba(0,0,0,0.1);



            padding: 10px;



            display: none;



            grid-template-columns: repeat(6, 1fr);



            gap: 5px;



            z-index: 1000;



            width: 200px;



        }



        .letter-filter-panel.show {



            display: grid;



        }



        .letter-btn {



            background: #e6f7ff;



            border: 1px solid #d1e9ff;



            border-radius: 5px;



            padding: 5px;



            cursor: pointer;



            text-align: center;



            font-family: 'Comic Neue', Arial, sans-serif;



        }



        .letter-btn.active {



            background: #4dabf7;



            color: white;



        }



        /* 调整主体内容位置，避免被固定标题栏遮挡 */



        .main-container {



            margin-top: 90px;



        }



        /* 其他样式保持不变 */



        /* ... 原有样式代码 ... */



        /* 整体背景调整为淡蓝色渐变 */



        body {



            font-family: 'Comic Neue', Arial, sans-serif;



            margin: 20px 0 20px 20px;



            display: flex;



            flex-direction: column;



            gap: 20px;



        }



        /* 主内容区域使用半透明背景，让body背景能够显示 */



        .main-content {



            flex: 4;



            min-width: 800px;



            background: rgba(255, 255, 255, 0.9);



            padding: 25px;



            border-radius: 20px;



            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);



            border: 2px solid var(--accent-color);



        }



        /* 表格和卡片使用协调的蓝色调 */



        table {



            border-collapse: separate;



            border-spacing: 0;



            width: 100%;



            background: white;



            border-radius: 15px;



            overflow: hidden;



            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);



        }



        th, td {



            border: 1px solid var(--primary-light);



            padding: 12px;



            text-align: center;



            background: rgba(255, 255, 255, 0.8);



        }



        th {



            background: linear-gradient(45deg, var(--primary-color), var(--primary-dark));



            color: white;



            text-shadow: 1px 1px 2px rgba(0,0,0,0.1);



            cursor: pointer;



            transition: background 0.3s;



        }



        th:hover {



            background: linear-gradient(45deg, var(--primary-dark), var(--primary-color));



        }



        /* 导航栏模块颜色区分 */



        .nav-module.class-management h3 {



            color: var(--pink-color);



            border-bottom: 2px dashed var(--pink-light);



        }



        .nav-module.student-management h3 {



            color: var(--green-color);



            border-bottom: 2px dashed var(--green-light);



        }



        .nav-module.score-management h3 {



            color: var(--accent-dark);



            border-bottom: 2px dashed var(--accent-light);



        }



        .nav-module.record-management h3 {



            color: var(--primary-dark);



            border-bottom: 2px dashed var(--primary-light);



        }



        /* 班级管理 - 粉色系按钮 */



        .nav-module.class-management .nav-btn {



            background: linear-gradient(45deg, var(--pink-color), var(--pink-light));



        }



        .nav-module.class-management .nav-btn:hover {



            background: linear-gradient(45deg, var(--pink-light), var(--pink-color));



        }



        /* 学生管理 - 绿色系按钮 */



        .nav-module.student-management .nav-btn {



            background: linear-gradient(45deg, var(--green-color), var(--green-light));



        }



        .nav-module.student-management .nav-btn:hover {



            background: linear-gradient(45deg, var(--green-light), var(--green-color));



        }



        /* 积分管理和宠物管理 - 橙色系按钮 */



        .nav-module.score-management .nav-btn,



        .nav-module.pet-management .nav-btn {



            background: linear-gradient(45deg, var(--accent-dark), var(--accent-color));



        }



        .nav-module.score-management .nav-btn:hover,



        .nav-module.pet-management .nav-btn:hover {



            background: linear-gradient(45deg, var(--accent-color), var(--accent-dark));



        }



        /* 记录管理 - 紫色系按钮 */



        .nav-module.record-management .nav-btn {



            background: linear-gradient(45deg, var(--primary-dark), var(--primary-light));



        }



        .nav-module.record-management .nav-btn:hover {



            background: linear-gradient(45deg, var(--primary-light), var(--primary-dark));



        }



        .hall-introduction {



            background: linear-gradient(135deg, #fff8e1, #fff3c4);



            padding: 20px;



            border-radius: 15px;



            margin-bottom: 20px;



            border: 2px solid #ffb74d;



            box-shadow: 0 4px 10px rgba(255, 183, 77, 0.2);



        }



        /* 导师候选人选择区域样式 */



        /* 下拉菜单美化样式 */



        /* 为下拉菜单添加自定义箭头 */



        /* 下拉选项美化 */



        /* 选中信息显示样式 */



        /* 学生选择器样式 */



        /* 按钮样式美化 */



        /* 为导师选择区域添加装饰元素 */



        .selected-student-info {



            margin-left: 15px;



            font-size: 14px;



            padding: 8px 12px;



            border-radius: 6px;



            background: #e8f5e8;



            border: 2px solid #4caf50;



            display: inline-block;



            min-width: 200px;



            box-shadow: 0 2px 4px rgba(76, 175, 80, 0.1);



            transition: all 0.3s ease;



        }



        .selected-student-info:hover {



            background: #f0f8f0;



            box-shadow: 0 4px 8px rgba(76, 175, 80, 0.2);



        }



        .no-masters {



            text-align: center;



            padding: 40px;



            color: #999;



            font-style: italic;



            background: #f5f5f5;



            border-radius: 10px;



            border: 2px dashed #ddd;



        }



        .hall-stats {



            display: grid;



            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));



            gap: 15px;



            margin-top: 15px;



        }



        .stat-item {



            background: white;



            padding: 15px;



            border-radius: 10px;



            text-align: center;



            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);



            border: 2px solid #ffd54f;



            font-weight: bold;



            color: #e67700;



        }



        .master-recommendations, .students-seeking-masters {



            margin-bottom: 30px;



        }



        .masters-grid, .students-grid {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));



            gap: 20px;



            margin-top: 15px;



        }



        .master-card, .student-card {



            background: linear-gradient(145deg, #fafcfd 0%, #f3f6f9 50%, #fafcfd 100%);



            border-radius: 14px;



            padding: 15px;



            box-shadow: 0 3px 12px rgba(0, 0, 0, 0.06), 0 1px 4px rgba(0, 0, 0, 0.04);



            border: 1px solid #e8ecf0;



            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);



            position: relative;



            overflow: hidden;

            z-index: 2;



            /* Phase 2 性能增强：离屏卡片跳过渲染（学生多/低配设备防卡顿），contain-intrinsic-size 防滚动跳动 */

            content-visibility: auto;

            contain-intrinsic-size: auto 320px;

        }



        /* 渐变背景动画 */



        



        /* 学生卡片装饰光效 */



        .student-card::before {



            content: '';



            position: absolute;



            top: -50%;



            left: -50%;



            width: 200%;



            height: 200%;



            background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 60%);



            animation: card-shine 6s ease-in-out infinite;



            pointer-events: none;



        }



        @keyframes card-shine {



            0%, 100% { transform: rotate(0deg) scale(1); opacity: 0.5; }



            50% { transform: rotate(180deg) scale(1.1); opacity: 0.8; }



        }



        /* 学生卡片悬浮粒子效果 */



        .student-card::after {



            content: '⚡';



            position: absolute;



            top: 10px;



            right: 10px;



            font-size: 16px;



            opacity: 0.25;



            animation: particle-float 2.5s ease-in-out infinite, particle-pulse 1.5s ease-in-out infinite alternate;



            pointer-events: none;



            filter: drop-shadow(0 0 8px rgba(0, 212, 255, 0.6));



        }



        @keyframes particle-float {



            0%, 100% { transform: translateY(0px); }



            50% { transform: translateY(-8px); }



        }



        @keyframes particle-pulse {



            0% { opacity: 0.15; transform: scale(1); }



            100% { opacity: 0.4; transform: scale(1.2); }



        }



        /* 学生卡片悬浮粒子效果 - 科技蓝色 */



        /* 学生卡片 - 无多余装饰 */



        /* 导师卡片标题栏特殊样式 - 紧凑版 */



        /* 导师头像尊贵样式 - 紧凑版 */



        /* 导师称号样式 */



        /* 导师统计信息尊贵样式 - 紧凑版 */



        /* 导师操作按钮尊贵样式 - 紧凑版 */



        /* 动画效果 */



        



        



        @keyframes crownFloat {



            0%, 100% {



                transform: translateY(0px) rotate(0deg);



            }



            50% {



                transform: translateY(-3px) rotate(5deg);



            }



        }



        /* 导师姓名尊贵样式 */



        /* 统计图标样式 */



        /* 按钮图标样式 */



        /* 高贵装饰元素 */



        /* 高级导师特殊样式（积分超过1000的导师） */



        /* 传奇导师特殊样式（积分超过2000的导师） */



        /* 至尊导师特殊样式（积分超过5000的导师） */



        .master-card:hover, .student-card:hover {



            transform: translateY(-5px) scale(1.01);



            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(0, 0, 0, 0.06);



            border: 1px solid #d0d8e0;



            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);



        }



        /* 卡片发光动画 */



        @keyframes card-glow {



            0% { filter: brightness(1); }



            100% { filter: brightness(1.1); }



        }



        .card-header {



            display: flex;



            align-items: center;



            margin-bottom: 15px;



        }



        .card-avatar {



            width: 60px;



            height: 60px;



            border-radius: 50%;



            background: linear-gradient(45deg, #ffd54f, #ffb74d);



            display: flex;



            align-items: center;



            justify-content: center;



            font-size: 24px;



            margin-right: 15px;



        }



        /* 有头像图片的样式 */



        /* 头像占位符样式 */



        /* 男性头像 - 蓝色系 */



        /* 女性头像 - 粉色/紫色系 */



        .card-info h4 {



            margin: 0 0 5px 0;



            color: #e67700;



            font-size: 18px;



        }



        .card-info p {



            margin: 0;



            color: #666;



            font-size: 14px;



        }



        .card-stats {



            display: grid;



            grid-template-columns: repeat(2, 1fr);



            gap: 10px;



            margin: 15px 0;



        }



        .stat-item-small {



            text-align: center;



            padding: 8px;



            background: #fff8e1;



            border-radius: 8px;



            font-size: 12px;



            color: #e67700;



        }



        .card-actions {



            display: flex;



            gap: 10px;



        }



        .btn-apply, .btn-view {



            flex: 1;



            padding: 10px;



            border: none;



            border-radius: 8px;



            font-size: 14px;



            cursor: pointer;



            transition: all 0.3s ease;



        }



        .btn-apply {



            background: linear-gradient(45deg, #e67700, #ffd54f);



            color: white;



        }



        .btn-apply:hover {



            background: linear-gradient(45deg, #ffd54f, #e67700);



        }



        .btn-view {



            background: #f5f5f5;



            color: #e67700;



            border: 2px solid #ffd54f;



        }



        .btn-view:hover {



            background: #ffd54f;



            color: white;



        }



        .matching-container {



            display: grid;



            grid-template-columns: 1fr 1fr;



            gap: 30px;



            margin-top: 20px;



        }



        .student-application, .master-selection {



            background: white;



            border-radius: 15px;



            padding: 25px;



            box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);



            border: 2px solid #ffd54f;



        }



        .matching-suggestions {



            grid-column: 1 / -1;



            background: white;



            border-radius: 15px;



            padding: 25px;



            margin-top: 20px;



            box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);



            border: 2px solid #ffd54f;



        }



        .form-group {



            margin-bottom: 20px;



        }



        .form-group label {



            display: block;



            margin-bottom: 8px;



            font-weight: bold;



            color: #e67700;



        }



        .form-group select, .form-group textarea {



            width: 100%;



            padding: 12px;



            border: 2px solid #ffd54f;



            border-radius: 8px;



            font-size: 14px;



            transition: border-color 0.3s ease;



        }



        .form-group select:focus, .form-group textarea:focus {



            outline: none;



            border-color: #e67700;



        }



        .submit-btn {



            width: 100%;



            padding: 12px;



            background: linear-gradient(45deg, #e67700, #ffd54f);



            color: white;



            border: none;



            border-radius: 8px;



            font-size: 16px;



            font-weight: bold;



            cursor: pointer;



            transition: all 0.3s ease;



        }



        .submit-btn:hover {



            background: linear-gradient(45deg, #ffd54f, #e67700);



            transform: translateY(-2px);



        }



        .applicant-item {



            background: #fff8e1;



            border: 2px solid #ffd54f;



            border-radius: 10px;



            padding: 15px;



            margin-bottom: 15px;



        }



        .applicant-header {



            display: flex;



            justify-content: space-between;



            align-items: center;



            margin-bottom: 10px;



        }



        .applicant-name {



            font-weight: bold;



            color: #e67700;



        }



        .applicant-reason {



            color: #666;



            font-size: 14px;



            margin-bottom: 10px;



        }



        .applicant-actions {



            display: flex;



            gap: 10px;



        }



        .btn-accept, .btn-reject {



            padding: 8px 16px;



            border: none;



            border-radius: 6px;



            cursor: pointer;



            font-size: 12px;



        }



        .btn-accept {



            background: #4caf50;



            color: white;



        }



        .btn-reject {



            background: #f44336;



            color: white;



        }



        .suggestion-item {



            background: #e8f5e8;



            border: 2px solid #4caf50;



            border-radius: 10px;



            padding: 15px;



            margin-bottom: 15px;



            display: flex;



            justify-content: space-between;



            align-items: center;



        }



        .suggestion-content {



            flex: 1;



        }



        .suggestion-score {



            background: #4caf50;



            color: white;



            padding: 8px 12px;



            border-radius: 20px;



            font-weight: bold;



            margin-left: 15px;



        }



        .status-active {



            background: #e8f5e8;



            color: #4caf50;



        }



        .status-completed {



            background: #e3f2fd;



            color: #2196f3;



        }



        .status-pending {



            background: #fff3e0;



            color: #ff9800;



        }



        .detail-item {



            text-align: center;



            padding: 10px;



            background: #fff8e1;



            border-radius: 8px;



        }



        .growth-overview {



            margin-bottom: 30px;



        }



        .overview-stats {



            display: grid;



            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));



            gap: 20px;



        }



        .stat-card {



            background: white;



            border: 2px solid #ffd54f;



            border-radius: 15px;



            padding: 25px;



            text-align: center;



            box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);



        }



        .stat-card h4 {



            margin: 0 0 15px 0;



            color: #e67700;



            font-size: 16px;



        }



        .stat-value {



            font-size: 32px;



            font-weight: bold;



            color: #e67700;



            margin-bottom: 10px;



        }



        .stat-change {



            padding: 5px 10px;



            border-radius: 15px;



            font-size: 14px;



            font-weight: bold;



        }



        .stat-change.positive {



            background: #e8f5e8;



            color: #4caf50;



        }



        .stat-change.negative {



            background: #ffebee;



            color: #f44336;



        }



        .stat-change.neutral {



            background: #f5f5f5;



            color: #666;



        }



        .growth-timeline {



            background: white;



            border: 2px solid #ffd54f;



            border-radius: 15px;



            padding: 25px;



            max-height: 400px;



            overflow-y: auto;



        }



        .timeline-item {



            border-left: 4px solid #ffd54f;



            padding-left: 20px;



            margin-bottom: 20px;



            position: relative;



        }



        .timeline-item::before {



            content: '';



            position: absolute;



            left: -8px;



            top: 5px;



            width: 12px;



            height: 12px;



            background: #e67700;



            border-radius: 50%;



        }



        .timeline-date {



            font-size: 12px;



            color: #666;



            margin-bottom: 5px;



        }



        .timeline-content {



            color: #333;



            font-size: 14px;



        }



        .achievements-categories {



            display: flex;



            gap: 10px;



            margin-bottom: 20px;



            flex-wrap: wrap;



        }



        .achievements-categories button {



            padding: 10px 20px;



            border: 2px solid #ffd54f;



            background: white;



            color: #e67700;



            border-radius: 25px;



            cursor: pointer;



            transition: all 0.3s ease;



        }



        .achievements-categories button.active, .achievements-categories button:hover {



            background: #ffd54f;



            color: white;



        }



        .achievements-grid {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));



            gap: 20px;



        }



        .achievement-item {



            background: white;



            border: 2px solid #ffd54f;



            border-radius: 15px;



            padding: 20px;



            text-align: center;



            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);



            transition: transform 0.3s ease;



        }



        .achievement-item:hover {



            transform: translateY(-3px);



        }



        .achievement-icon {



            font-size: 48px;



            margin-bottom: 15px;



        }



        .achievement-title {



            font-weight: bold;



            color: #e67700;



            margin-bottom: 10px;



        }



        .achievement-description {



            font-size: 14px;



            color: #666;



            margin-bottom: 15px;



        }



        .achievement-progress {



            background: #f5f5f5;



            border-radius: 10px;



            height: 8px;



            margin-bottom: 10px;



            overflow: hidden;



        }



        .achievement-progress-bar {



            background: linear-gradient(45deg, #e67700, #ffd54f);



            height: 100%;



            border-radius: 10px;



            transition: width 0.3s ease;



        }



        .achievement-status {



            font-size: 12px;



            font-weight: bold;



        }



        .status-unlocked {



            color: #4caf50;



        }



        .status-locked {



            color: #999;



        }



        .report-controls {



            display: flex;



            gap: 15px;



            align-items: center;



            margin-bottom: 20px;



            flex-wrap: wrap;



        }



        .time-selector {



            display: flex;



            align-items: center;



            gap: 10px;



        }



        .time-selector label {



            font-weight: bold;



            color: #e67700;



        }



        .time-selector select {



            padding: 8px 12px;



            border: 2px solid #ffd54f;



            border-radius: 8px;



            background: white;



        }



        .generate-btn, .export-btn {



            padding: 10px 20px;



            border: none;



            border-radius: 8px;



            cursor: pointer;



            font-weight: bold;



            transition: all 0.3s ease;



        }



        .generate-btn {



            background: linear-gradient(45deg, #e67700, #ffd54f);



            color: white;



        }



        .export-btn {



            background: #2196f3;



            color: white;



        }



        .generate-btn:hover, .export-btn:hover {



            transform: translateY(-2px);



            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);



        }



        .report-content {



            background: white;



            border: 2px solid #ffd54f;



            border-radius: 15px;



            padding: 25px;



            min-height: 400px;



        }



        .report-summary h4 {



            color: #e67700;



            margin-bottom: 15px;



        }



        .settings-sections {



            display: grid;



            gap: 25px;



        }



        .settings-section {



            background: white;



            border: 2px solid #ffd54f;



            border-radius: 15px;



            padding: 25px;



        }



        .settings-section h4 {



            color: #e67700;



            margin-bottom: 20px;



            padding-bottom: 10px;



            border-bottom: 2px solid #ffd54f;



        }



        .setting-item {



            display: flex;



            justify-content: space-between;



            align-items: center;



            margin-bottom: 15px;



            padding: 10px 0;



        }



        .setting-item label {



            color: #333;



            font-weight: bold;



        }



        .setting-item input[type="checkbox"] {



            transform: scale(1.2);



        }



        .setting-item input[type="number"] {



            padding: 8px 12px;



            border: 2px solid #ffd54f;



            border-radius: 8px;



            width: 80px;



        }



        .settings-actions {



            display: flex;



            gap: 15px;



            margin-top: 25px;



        }



        .save-btn, .reset-btn {



            padding: 12px 24px;



            border: none;



            border-radius: 8px;



            cursor: pointer;



            font-weight: bold;



            transition: all 0.3s ease;



        }



        .save-btn {



            background: linear-gradient(45deg, #4caf50, #81c784);



            color: white;



        }



        .reset-btn {



            background: #f44336;



            color: white;



        }



        .save-btn:hover, .reset-btn:hover {



            transform: translateY(-2px);



            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);



        }



        /* 主界面姓名高亮，添加轻微阴影效果 */



        .student-name-highlight {



            font-weight: bold;



            color: #1971c2;



            text-shadow: 1px 1px 3px rgba(25, 113, 194, 0.2);



            padding: 2px 6px;



            border-radius: 4px;



            background: rgba(33, 150, 243, 0.1);



            cursor: pointer;



        }



        /* 跑马灯动画效果 */



        @keyframes marquee {



            0% { text-shadow: 0 0 5px rgba(255, 255, 255, 0.5), 0 0 10px rgba(255, 255, 255, 0.5); }



            50% { text-shadow: 0 0 15px rgba(255, 255, 255, 0.8), 0 0 30px rgba(255, 255, 255, 0.6); }



            100% { text-shadow: 0 0 5px rgba(255, 255, 255, 0.5), 0 0 10px rgba(255, 255, 255, 0.5); }



        }



        /* 排行榜前三名凸显 - 跑马灯效果 */



        #topRankings div:nth-child(1) {



            background: linear-gradient(145deg, #ffd700, #fffacd);



            border: 3px solid #ffc400;



            padding: 18px 25px;



            box-shadow: 0 6px 15px rgba(255, 215, 0, 0.5);



            text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);



            font-family: 'Comic Neue', Arial, sans-serif;



            font-weight: bold;



            color: #b8860b;



            animation: marquee 2s ease-in-out infinite;



        }



        #topRankings div:nth-child(2) {



            background: linear-gradient(145deg, #c0c0c0, #f0f0f0);



            border: 3px solid #a8a8a8;



            padding: 18px 25px;



            box-shadow: 0 6px 15px rgba(192, 192, 192, 0.5);



            text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);



            font-family: 'Comic Neue', Arial, sans-serif;



            font-weight: bold;



            color: #708090;



            animation: marquee 2.3s ease-in-out infinite;



        }



        #topRankings div:nth-child(3) {



            background: linear-gradient(145deg, #cd7f32, #ffdead);



            border: 3px solid #b87333;



            padding: 18px 25px;



            box-shadow: 0 6px 15px rgba(205, 127, 50, 0.5);



            text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);



            font-family: 'Comic Neue', Arial, sans-serif;



            font-weight: bold;



            color: #8b4513;



            animation: marquee 2.6s ease-in-out infinite;



        }



        /* 排行榜其他项目样式 */



        #topRankings div:nth-child(n+4) {



            background: white;



            border: 2px solid #e1f0ff;



        }



        /* 其他样式保持不变 */



        .header {



            text-align: center;



            font-family: 'Comic Neue', Arial, sans-serif;



            margin: 0 20px 20px;



            font-size: 2.5em;



            padding: 18px 15px;



            background: linear-gradient(135deg, #20c997, #38d9a9, #12b886);



            -webkit-background-clip: text;



            -webkit-text-fill-color: transparent;



            border-bottom: 3px solid rgba(32,201,151,0.3);

            backdrop-filter: blur(10px);



            text-shadow: 2px 2px 4px rgba(32, 201, 151, 0.2);



            box-shadow: 0 4px 20px rgba(32,201,151,0.15);



        }



        /* 整体布局容器 */



        .main-container {



            display: flex;



            gap: 20px;



            width: 100%;



        }



        /* 左侧导航栏样式 */



        .sidebar {



            width: 190px;



            background: rgba(255,255,255,0.75);

            backdrop-filter: blur(12px);



            padding: 16px 14px;



            border-radius: 20px;



            box-shadow: var(--card-shadow);



            border: 1.5px solid var(--glass-border);



            position: sticky;



            top: 90px;



            height: fit-content;



            max-height: calc(100vh - 110px);



            overflow-y: auto;



            transition: all 0.3s ease;



        }



        .nav-module {



            margin-bottom: 25px;



            background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 240, 220, 0.95) 100%);



            border-radius: 15px;



            box-shadow: 0 4px 15px rgba(231, 76, 60, 0.1);



            overflow: hidden;



            border: 2px solid #FFD700;



        }



        .nav-module h3 {



            font-size: 1.3em;



            margin-bottom: 12px;



            padding: 15px;



            text-align: center;



            cursor: pointer;



            display: flex;



            justify-content: space-between;



            align-items: center;



            color: white;



            margin: 0;



            border-bottom: 2px solid transparent;



            position: relative;



            overflow: hidden;



            transition: all 0.3s ease;



            text-shadow: 0 2px 4px rgba(0,0,0,0.3);



            font-weight: bold;



        }



        /* 班级管理 - 粉色系 */



        .nav-module.class-management h3 {



            background: linear-gradient(135deg, #FF6B6B, #FF8E8E);



            border-bottom-color: #FF6B6B;



            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.3);



        }



        /* 积分管理 - 金色系 */



        .nav-module.score-management h3 {



            background: linear-gradient(135deg, #FFD700, #FFED4E);



            border-bottom-color: #FFD700;



            box-shadow: 0 4px 12px rgba(255, 215, 0, 0.3);



            color: #333;



            text-shadow: 0 2px 4px rgba(255,255,255,0.5);



        }



        /* 学生管理 - 绿色系 */



        .nav-module.student-management h3 {



            background: linear-gradient(135deg, #4CAF50, #66BB6A);



            border-bottom-color: #4CAF50;



            box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3);



        }



        /* 宠物管理 - 蓝色系 */



        .nav-module.pet-management h3 {



            background: linear-gradient(135deg, #2196F3, #64B5F6);



            border-bottom-color: #2196F3;



            box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3);



        }



        /* 记录管理 - 橙色系 */



        .nav-module.record-management h3 {



            background: linear-gradient(135deg, #FF9800, #FFB74D);



            border-bottom-color: #FF9800;



            box-shadow: 0 4px 12px rgba(255, 152, 0, 0.3);



        }



        /* 悬停效果 */



        .nav-module h3:hover {



            transform: translateY(-2px);



            box-shadow: 0 6px 16px rgba(0,0,0,0.2);



        }



        /* 粒子效果 */



        .nav-module h3::before {



            content: '';



            position: absolute;



            top: -50%;



            left: -50%;



            width: 200%;



            height: 200%;



            background: linear-gradient(



                45deg,



                transparent 0%,



                rgba(255, 255, 255, 0.2) 50%,



                transparent 100%



            );



            background-size: 200% 200%;



            animation: nav-marquee 3s linear infinite;



            z-index: 0;



        }



        @keyframes nav-marquee {



            0% {



                background-position: 0% 0%;



            }



            100% {



                background-position: 100% 100%;



            }



        }



        .nav-module h3 span {



            position: relative;



            z-index: 1;



        }



        .nav-module h3::after {



            content: "▼";



            font-size: 0.8em;



            transition: transform 0.3s;



        }



        .nav-module.collapsed h3::after {



            transform: rotate(-90deg);



        }



        .nav-module.collapsed .nav-buttons {



            display: none;



        }



        .nav-btn {



            display: block;



            width: 100%;



            padding: 10px 15px;



            margin: 8px 0;



            border-radius: 15px;



            border: none;



            color: white;



            cursor: pointer;



            transition: all 0.3s;



            box-shadow: 0 3px 6px rgba(0,0,0,0.1);



            text-align: left;



            font-family: 'Comic Neue', Arial, sans-serif;



            font-size: 0.95em;



        }



        .nav-btn:hover {



            transform: translateX(2px);



            box-shadow: 0 6px 12px rgba(0,0,0,0.15);



        }



        .nav-btn:active {



            transform: translateY(0);



        }



        /* 导航栏批量导入按钮特殊样式 */



        .nav-module.student-management .dropdown-toggle {



            background: linear-gradient(45deg, #51cf66, #69db7c) !important;



            position: relative;



            overflow: hidden;



        }



        .nav-module.student-management .dropdown-toggle::before {



            content: '';



            position: absolute;



            top: 0;



            left: -100%;



            width: 100%;



            height: 100%;



            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);



            transition: left 0.5s;



        }



        .nav-module.student-management .dropdown-toggle:hover::before {



            left: 100%;



        }



        .nav-module.student-management .dropdown-toggle::after {



            content: ' ▼';



            font-size: 0.8em;



            opacity: 0.9;



            transition: transform 0.3s ease;



            margin-left: 8px;



        }



        .nav-module.student-management .dropdown-btn:hover .dropdown-toggle::after {



            transform: rotate(180deg);



        }



        .nav-module.student-management .dropdown-menu {



            background: linear-gradient(145deg, #ffffff, #f8f9fa);



            border-radius: 12px;



            box-shadow: 0 8px 25px rgba(0,0,0,0.12);



            border: 1px solid rgba(81, 207, 102, 0.2);



            backdrop-filter: blur(10px);



        }



        .nav-module.student-management .dropdown-menu a {



            padding: 12px 18px;



            color: #333;



            border-bottom: 1px solid rgba(81, 207, 102, 0.1);



            font-weight: 500;



        }



        .nav-module.student-management .dropdown-menu a:last-child {



            border-bottom: none;



        }



        .nav-module.student-management .dropdown-menu a:hover {



            background: linear-gradient(135deg, #51cf66, #69db7c);



            color: white;



            transform: translateX(8px);



            box-shadow: 0 4px 12px rgba(81, 207, 102, 0.3);



        }



        /* 下拉按钮样式 */



        .dropdown-btn {



            position: relative;



            margin: 8px 0;



        }



        .dropdown-toggle {



            width: 100%;



            position: relative;



        }



        .dropdown-toggle::after {



            content: ' ▼';



            font-size: 0.8em;



            opacity: 0.8;



            transition: transform 0.3s ease;



        }



        .dropdown-btn:hover .dropdown-toggle::after {



            transform: rotate(180deg);



        }



        .dropdown-menu {



            display: none;



            position: absolute;



            top: 100%;



            left: 0;



            right: 0;



            background: white;



            border-radius: 15px;



            box-shadow: 0 6px 20px rgba(0,0,0,0.15);



            z-index: 1000;



            overflow: hidden;



            margin-top: 5px;



        }



        .dropdown-menu.show {



            display: block;



        }



        .dropdown-menu a {



            display: block;



            padding: 12px 15px;



            color: #333;



            text-decoration: none;



            transition: all 0.3s;



            border-bottom: 1px solid #f0f0f0;



        }



        .dropdown-menu a:last-child {



            border-bottom: none;



        }



        .dropdown-menu a:hover {



            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);



            color: white;



            transform: translateX(5px);



        }



        .content-area {



            flex: 1;



            display: flex;

            flex-direction: column;



            gap: 20px;



            overflow-y: auto;



            background: linear-gradient(135deg, rgba(240,248,255,0.5) 0%, rgba(245,240,255,0.5) 100%);

            backdrop-filter: blur(6px);

            border-radius: 20px;

            padding: 16px;



        }



        .rankings {



            width: 260px;

            flex-shrink: 0;

            min-width: 240px;

            margin-left: auto;



            background: var(--glass-bg);

            backdrop-filter: blur(8px);



            padding: 20px;



            border-radius: 20px;



            height: fit-content;



            max-height: calc(100vh - 110px);



            overflow-y: auto;



            position: sticky;



            top: 90px;



            box-shadow: var(--card-shadow);



            border: 1.5px solid var(--glass-border);



            font-size: 1.08em; /* 排行榜整体字号调小 (v40b) */



            transition: all 0.3s ease;



        }



        .rankings:hover {



            box-shadow: var(--card-shadow-hover);

            transform: translateY(-2px);



        }



        .controls {



            margin-bottom: 20px;



            display: flex;



            flex-wrap: wrap;



            gap: 12px;



            font-size: 1.2em;



        }



        input {



            padding: 8px 12px;



            border: 2px solid var(--primary-color);



            border-radius: 20px;



            transition: all 0.3s;



        }



        input:focus {



            outline: none;



            box-shadow: 0 0 8px var(--primary-color);



        }



        /* 全局按钮美化 */



        button {



            border-radius: 8px;



            transition: all 0.25s ease;



        }



        button:hover {



            transform: translateY(-1px);



        }



        button:focus {



            outline: none;



            box-shadow: 0 0 0 3px rgba(77, 171, 247, 0.25);



        }



        /* 按钮基础样式 */



        button {



            padding: 8px 16px;



            border-radius: 20px;



            border: none;



            background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));



            color: white;



            cursor: pointer;



            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);



            box-shadow: 0 3px 6px rgba(0,0,0,0.1), 0 0 10px rgba(255, 102, 102, 0.3);



            margin: 2px;



            position: relative;



            overflow: hidden;



            font-weight: bold;



            text-shadow: 0 1px 2px rgba(0,0,0,0.2);



        }



        /* 按钮悬停效果 */



        button:hover {



            transform: scale(1.08);



            box-shadow: 0 5px 15px rgba(0,0,0,0.2), 0 0 20px rgba(255, 102, 102, 0.5);



            background: linear-gradient(45deg, var(--primary-color), var(--accent-color));



        }



        /* 按钮点击效果 */



        button:active {



            transform: scale(0.95);



            box-shadow: 0 2px 5px rgba(0,0,0,0.2), 0 0 10px rgba(255, 102, 102, 0.3);



        }



        /* 按钮点击波纹效果 */



        button::after {



            content: '';



            position: absolute;



            top: 50%;



            left: 50%;



            width: 0;



            height: 0;



            border-radius: 50%;



            background-color: rgba(255, 255, 255, 0.5);



            transform: translate(-50%, -50%);



            transition: width 0.6s, height 0.6s;



        }



        button:active::after {



            width: 300px;



            height: 300px;



        }



        .delete-btn { background: linear-gradient(45deg, #ff6b6b, #ff8787) !important; }



        .ranking-item {



            padding: 18px;



            margin: 10px 0;



            background: white;



            border-radius: 15px;



            display: flex;



            justify-content: space-between;



            box-shadow: 0 2px 6px rgba(0,0,0,0.1);



            border: 2px solid #e1f0ff;



            font-size: 1.0em; /* 排名条目字号调小 (v40b) */



            font-weight: bold;



            font-family: 'Comic Neue', Arial, sans-serif;



            color: #1971c2;



        }



        .star {



            color: #ffd700;



            text-shadow: 0 0 8px rgba(255,215,0,0.3);



        }



        tr:hover td {



            background: rgba(225, 240, 255, 0.5);



            transform: scale(1.02);



            transition: all 0.2s;



        }



        .checkbox-column input {



            accent-color: var(--primary-color);



            transform: scale(1.3);



        }



        @keyframes float {



            0% { transform: translateY(0px); }



            50% { transform: translateY(-5px); }



            100% { transform: translateY(0px); }



        }



        h3 {



            text-align: center;



            font-size: 1.8em;



        }



        .random-callout {



            position: fixed;



            top: 50%;



            left: 50%;



            transform: translate(-50%, -50%);



            font-size: 4em;



            font-weight: bold;



            color: #ff4757;



            text-shadow: 0 0 20px rgba(255,71,87,0.3);



            animation: callout 5s ease-out forwards;



            z-index: 1000;



            font-family: 'Comic Neue', cursive;



        }



        @keyframes callout {



            0% {



                opacity: 0;



                transform: translate(-50%, -50%) scale(0.1);



            }



            15% {



                opacity: 1;



                transform: translate(-50%, -50%) scale(1.3);



            }



            30% {



                transform: translate(-50%, -50%) scale(0.9);



            }



            60% {



                transform: translate(-50%, -50%) scale(1.1);



            }



            80% {



                transform: translate(-50%, -50%) scale(0.95);



            }



            100% {



                opacity: 0;



                transform: translate(-50%, -50%) scale(0);



            }



        }



        /* 新增样式 */



        .ranking-toggle {



            display: flex;



            justify-content: center;



            margin-bottom: 15px;



        }



        .ranking-toggle button {



            margin: 0 5px;



            padding: 6px 12px;



            font-size: 0.9em;



        }



        .ranking-toggle button.active {



            background: linear-gradient(45deg, #339af0, #4dabf7);



            box-shadow: 0 0 10px rgba(51, 154, 240, 0.3);



        }



        /* 新增：排行榜周期切换按钮样式 */



        .ranking-period-toggle {



            display: flex;



            justify-content: center;



            margin-bottom: 10px;



        }



        .ranking-period-toggle button {



            margin: 0 2px;



            padding: 4px 8px;



            font-size: 0.8em;



        }



        .ranking-period-toggle button.active {



            background: linear-gradient(45deg, #ff6b6b, #ff8787);



            box-shadow: 0 0 8px rgba(255, 107, 107, 0.3);



        }



        /* 排行榜操作按钮样式 */



        .ranking-actions {



            display: flex;



            margin-bottom: 15px;



            justify-content: flex-end;



            gap: 10px;



        }



        .ranking-actions button {



            padding: 8px 16px;



            border: none;



            border-radius: 5px;



            cursor: pointer;



            font-size: 14px;



            font-weight: bold;



            color: white;



            transition: background-color 0.3s;



        }



        .ranking-actions button:hover {



            opacity: 0.9;



        }



        .ranking-actions .delete-btn {



            background-color: #ff6b6b;



        }



        /* 小组卡片样式 - 修改 */



        .group-cards {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));



            gap: 25px;



            margin-top: 20px;



            max-height: calc(100vh - 200px);



            overflow-y: auto;



        }



        /* 滚动条样式 */



        .group-cards::-webkit-scrollbar {



            width: 8px;



        }



        .group-cards::-webkit-scrollbar-track {



            background: #f1f1f1;



            border-radius: 10px;



        }



        .group-cards::-webkit-scrollbar-thumb {



            background: #888;



            border-radius: 10px;



        }



        .group-cards::-webkit-scrollbar-thumb:hover {



            background: #555;



        }



        .group-card {



            background: linear-gradient(145deg, #f0f8ff 0%, #e6f7ff 100%);



            border-radius: 15px;



            padding: 20px;



            box-shadow: var(--cute-shadow);



            border: 2px solid #d1e9ff;



        }



        .group-card h4 {



            color: #339af0;



            margin-top: 0;



            text-align: center;



            font-size: 1.4em;



        }



        .group-card .members {



            margin: 15px 0;



        }



        .group-card .member {



            padding: 8px;



            margin: 5px 0;



            background: white;



            border-radius: 10px;



            display: flex;



            justify-content: space-between;



            cursor: move;



            transition: all 0.3s;



        }



        .group-card .member.dragging {



            opacity: 0.5;



        }



        .group-card .member.leader {



            background: linear-gradient(145deg, #fff3cd, #ffeaa7);



            border: 2px solid #ffd43b;



        }



        .group-card .member-title {



            font-size: 0.8em;



            margin-left: 5px;



            padding: 2px 6px;



            border-radius: 4px;



        }



        .group-card .member-title.leader {



            background: #ffd43b;



            color: #000;



        }



        .group-card .member-title.other {



            background: #4dabf7;



            color: white;



        }



        .group-card .member .actions {



            display: flex;



            gap: 5px;



        }



        .group-card .member .edit-title-btn {



            background: #868e96;



            padding: 2px 6px;



            font-size: 0.7em;



            display: none;



        }



        .group-card .member:hover .edit-title-btn {



            display: inline-block;



        }



        .group-card .total-score {



            font-weight: bold;



            text-align: center;



            margin-top: 10px;



            font-size: 1.2em;



            color: #339af0;



        }



        .group-card .actions {



            display: flex;



            justify-content: space-between;



            margin-top: 15px;



        }



        /* 座位布局样式 - 修改 */



        .seating-container {



            margin-top: 20px;



        }



        .seating-grid {



            display: grid;



            gap: 25px 10px; /* 调整列间距：1-2列、3-4列等紧凑为10px，2-3列、4-5列等宽松为25px */



            margin: 20px 0;



            grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));



        }



        /* 修改：取消列颜色，改为按性别显示 */



        .seat {



            border-radius: 8px; /* 减小圆角 */



            padding: 8px 10px; /* 减小内边距 */



            text-align: center;



            box-shadow: 0 3px 8px rgba(0,0,0,0.15); /* 添加阴影效果 */



            border: 2px solid #d1e9ff;



            cursor: move;



            transition: all 0.3s;



            min-height: 45px; /* 减小最小高度 */



            display: flex;



            align-items: center;



            justify-content: center;



            font-size: 0.9em; /* 减小字体 */



        }



        /* 修改：男生座位样式 - 蓝色 */



        .seat.male {



            background: linear-gradient(145deg, #4dabf7, #339af0);



            border: 2px solid #1971c2;



            color: white;



            text-shadow: 1px 1px 2px rgba(0,0,0,0.2);



        }



        /* 修改：女生座位样式 - 粉红色 */



        .seat.female {



            background: linear-gradient(145deg, #ff6b9d, #ff8fab);



            border: 2px solid #c2255c;



            color: white;



            text-shadow: 1px 1px 2px rgba(0,0,0,0.2);



        }



        .seat:hover {



            transform: translateY(-3px);



            box-shadow: 0 6px 12px rgba(0,0,0,0.1);



        }



        .seat.empty {



            background: #f0f0f0 !important;



            border: 2px dashed #ccc;



            color: #868e96;



        }



        /* 新增：讲台样式 - 调整大小 */



        .teacher-desk {



            grid-column: 1 / -1;



            background: #e0e0e0;



            border-radius: 6px;



            padding: 8px 12px;



            text-align: center;



            font-weight: bold;



            color: #000;



            margin-bottom: 15px;



            border: 2px solid #bdbdbd;



            font-size: 0.9em;



            height: 35px;



            display: flex;



            align-items: center;



            justify-content: center;



            width: 120px;



            margin-left: auto;



            margin-right: auto;



        }



        /* 座位控制面板样式 - 修改为顶部横向显示 */



        .seating-controls-container {



            display: flex;



            justify-content: space-between;



            align-items: center;



            margin-bottom: 20px;



            padding: 15px;



            background: linear-gradient(145deg, #f0f8ff 0%, #e6f7ff 100%);



            border-radius: 15px;



            border: 2px solid #d1e9ff;



            position: relative;



        }



        .seating-controls {



            display: flex;



            gap: 8px; /* 减小间距 */



            align-items: center;



            flex-wrap: wrap;



            flex: 1;



        }



        .seating-controls.collapsed {



            display: none;



        }



        /* 修改：移除隐藏控制面板按钮 */



        .seating-controls-toggle {



            display: none; /* 隐藏按钮 */



        }



        .seating-controls h4 {



            margin: 0;



            color: #339af0;



            white-space: nowrap;



            font-size: 1em; /* 减小字体 */



        }



        .seating-controls > div {



            display: flex;



            gap: 8px; /* 减小间距 */



            align-items: center;



        }



        .seating-controls input {



            width: 50px; /* 减小输入框宽度 */



            text-align: center;



            padding: 6px; /* 减小内边距 */



        }



        .seating-controls button {



            padding: 6px 10px; /* 减小按钮大小 */



            font-size: 0.85em; /* 减小字体 */



        }



        .seating-controls h5 {



            margin: 0;



            font-size: 0.9em; /* 减小字体 */



        }



        /* 整体换座控制区域样式 */



        .seating-move-controls-container {



            margin-top: 20px;



            padding: 15px;



            background: linear-gradient(145deg, #f0f8ff 0%, #e6f7ff 100%);



            border-radius: 15px;



            border: 2px solid #d1e9ff;



        }



        .seating-move-controls-toggle {



            background: #4dabf7;



            color: white;



            border: none;



            border-radius: 20px;



            padding: 8px 15px;



            cursor: pointer;



            margin-bottom: 10px;



            display: flex;



            align-items: center;



            justify-content: space-between;



            width: 100%;



            font-size: 1em;



        }



        .seating-move-controls-toggle.collapsed::after {



            transform: rotate(-90deg);



        }



        .seating-move-controls-content {



            display: flex;



            flex-direction: column;



            gap: 10px;



        }



        .seating-move-controls-content.collapsed {



            display: none;



        }



        .seating-move-buttons {



            display: flex;



            justify-content: center;



            gap: 10px;



            flex-wrap: wrap;



        }



        .adjustment-buttons {



            display: flex;



            justify-content: center;



            gap: 10px;



            margin-top: 10px;



        }



        /* 五星学生样式 - 修改 */



        .star-students-container {



            margin-top: 20px;



        }



        .star-cards {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));



            gap: 20px;



            margin-top: 20px;



        }



        .star-card {



            background: linear-gradient(145deg, #f0f8ff 0%, #e6f7ff 100%);



            border-radius: 15px;



            padding: 20px;



            box-shadow: var(--cute-shadow);



            border: 2px solid #d1e9ff;



            text-align: center;



            min-height: 150px;



            display: flex;



            flex-direction: column;



            justify-content: space-between;



            transition: all 0.3s;



            position: relative;



        }



        .star-card.selected {



            transform: scale(1.05);



            box-shadow: 0 10px 20px rgba(0,0,0,0.2);



        }



        .star-card .title {



            font-weight: bold;



            font-size: 1.2em;



            color: #339af0;



            margin-bottom: 10px;



        }



        .star-card .student-name {



            font-size: 1.6em;



            margin: 10px 0;



            transition: all 0.4s;



            font-weight: 900;



            background: linear-gradient(135deg, #FFD700, #DAA520, #B8860B);



            -webkit-background-clip: text;



            -webkit-text-fill-color: transparent;



            background-clip: text;



            text-shadow:



                0.5px 0.5px 0 #FFD700,



                1px 1px 0 #FFC107,



                1.5px 1.5px 0 #FFB300,



                2px 2px 0 #FF9800,



                2.5px 2.5px 0 #FF8F00,



                3px 3px 0 #FF6F00,



                4px 4px 0 #E65100,



                5px 5px 0 #D84315,



                6px 6px 0 #BF360C,



                7px 7px 10px rgba(0, 0, 0, 0.5);



            transform: perspective(1000px) rotateX(3deg) rotateY(-1deg);



            font-family: 'Ma Shan Zheng', cursive;



            letter-spacing: 1px;



            animation: royal-glow 5s ease-in-out infinite alternate;



        }



        .star-card .student-name.selected {



            animation: float 2s ease-in-out infinite;



            color: #ff6b6b;



            font-weight: bold;



        }



        .star-card .avatar {



            width: 80px;



            height: 80px;



            border-radius: 50%;



            margin: 0 auto 10px;



            background: linear-gradient(145deg, #4dabf7, #339af0);



            display: flex;



            align-items: center;



            justify-content: center;



            font-size: 2em;



            color: white;



        }



        .star-card .edit-title {



            width: 100%;



            padding: 5px;



            margin-bottom: 10px;



            border: 1px solid #d1e9ff;



            border-radius: 5px;



            text-align: center;



        }



        /* 五星学生下拉选择框样式 */



        .star-card select {



            width: 100%;



            padding: 8px;



            border: 2px solid var(--primary-color);



            border-radius: 10px;



            margin: 10px 0;



            background: white;



            font-family: 'Comic Neue', Arial, sans-serif;



            opacity: 0; /* 初始隐藏 */



            transition: opacity 0.3s;



        }



        .star-card:hover select {



            opacity: 1; /* 鼠标悬停时显示 */



        }



        /* 积分超市样式 - 修改 */



        .store-container {



            margin-top: 20px;



        }



        .store-categories {



            display: flex;



            gap: 10px;



            margin-bottom: 20px;



        }



        .store-categories button {



            flex: 1;



            font-size: 1.1em;



            padding: 10px;



        }



        .store-items {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));



            gap: 20px;



        }



        .store-item {



            border-radius: 15px;



            padding: 20px;



            box-shadow: var(--cute-shadow);



            border: 2px solid #d1e9ff;



            text-align: center;



            transition: all 0.3s;



        }



        .store-item.physical {



            background: linear-gradient(145deg, #fff3cd, #ffeaa7);



            border-color: #ffd43b;



        }



        .store-item.virtual {



            background: linear-gradient(145deg, #d0ebff, #a5d8ff);



            border-color: #4dabf7;



        }



        .store-item h4 {



            margin-top: 0;



            font-size: 1.3em;



        }



        .store-item.physical h4 {



            color: #e67700;



        }



        .store-item.virtual h4 {



            color: #1971c2;



        }



        .store-item .quantity {



            font-weight: bold;



            margin: 10px 0;



            font-size: 1.1em;



        }



        .store-item .required-coins {



            font-weight: bold;



            margin: 10px 0;



            font-size: 1.1em;



        }



        .store-item.physical .required-coins {



            color: #e67700;



        }



        .store-item.virtual .required-coins {



            color: #1971c2;



        }



        .store-item .actions {



            display: flex;



            justify-content: space-between;



            margin-top: 15px;



        }



        /* 隐藏界面样式 */



        .hidden-section {



            display: none;



        }



        /* 控制按钮样式优化 */



        .controls {



            display: flex;



            gap: 12px;



            margin-bottom: 20px;



            padding: 15px;



            background: rgba(255, 146, 43, 0.1) !important;



            border-radius: 10px !important;



        }



        .controls button {



            padding: 10px 20px !important;



            border: none !important;



            border-radius: 8px !important;



            font-size: 14px !important;



            font-weight: 600 !important;



            cursor: pointer !important;



            transition: all 0.3s ease !important;



            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;



        }



        /* 批量导入按钮特殊样式 */



        .controls .dropdown-btn {



            position: relative !important;



            margin: 0 !important;



        }



        .controls .dropdown-toggle {



            background: linear-gradient(135deg, #ff922b, #ffa94d) !important;



            color: white !important;



            border: none !important;



            padding: 10px 20px !important;



            border-radius: 8px !important;



            font-size: 14px !important;



            font-weight: 600 !important;



            cursor: pointer !important;



            transition: all 0.3s ease !important;



            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;



            display: inline-flex !important;



            align-items: center !important;



            justify-content: center !important;



            min-width: 120px !important;



        }



        .controls .dropdown-toggle:hover {



            background: linear-gradient(135deg, #ff8fab, #ff922b) !important;



            transform: translateY(-2px) !important;



            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;



        }



        .controls .dropdown-toggle::after {



            content: ' ▼' !important;



            font-size: 0.8em !important;



            opacity: 0.9 !important;



            transition: transform 0.3s ease !important;



            margin-left: 8px !important;



        }



        .controls .dropdown-btn:hover .dropdown-toggle::after {



            transform: rotate(180deg) !important;



        }



        .controls .dropdown-menu {



            background: white !important;



            border-radius: 8px !important;



            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;



            border: 1px solid rgba(0, 0, 0, 0.08) !important;



            min-width: 140px !important;



            z-index: 1001 !important;



        }



        .controls .dropdown-menu a {



            padding: 12px 16px !important;



            color: #333 !important;



            text-decoration: none !important;



            transition: all 0.3s ease !important;



            border-bottom: 1px solid #f5f5f5 !important;



            font-size: 13px !important;



        }



        .controls .dropdown-menu a:last-child {



            border-bottom: none !important;



        }



        .controls .dropdown-menu a:hover {



            background: linear-gradient(135deg, #ff922b, #ffa94d) !important;



            color: white !important;



            transform: translateX(3px) !important;



        }



        .controls button:hover {



            transform: translateY(-2px) !important;



            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;



        }



        .controls button.active {



            background: linear-gradient(135deg, #ff922b, #ffa94d) !important;



            color: white !important;



        }



        /* 时间选择器样式优化 */



        .time-selector {



            margin-bottom: 25px !important;



            display: flex !important;



            flex-wrap: wrap !important;



            gap: 12px !important;



            align-items: center !important;



            padding: 20px !important;



            background: rgba(255, 255, 255, 0.8) !important;



            border-radius: 10px !important;



            border: 1px solid rgba(0, 0, 0, 0.08) !important;



        }



        .time-selector label {



            font-weight: 700 !important;



            color: #333 !important;



            font-size: 14px !important;



            margin-right: 5px !important;



        }



        .time-selector select,



        .time-selector input[type="number"] {



            padding: 10px 14px !important;



            border: 2px solid rgba(255, 146, 43, 0.3) !important;



            border-radius: 8px !important;



            background: white !important;



            font-size: 14px !important;



            transition: all 0.3s ease !important;



            min-width: 100px !important;



        }



        .time-selector select:focus,



        .time-selector input[type="number"]:focus {



            outline: none !important;



            border-color: #ff922b !important;



            box-shadow: 0 0 0 3px rgba(255, 146, 43, 0.1) !important;



        }



        .time-selector button {



            padding: 10px 18px !important;



            border: none !important;



            border-radius: 8px !important;



            font-size: 14px !important;



            font-weight: 600 !important;



            cursor: pointer !important;



            transition: all 0.3s ease !important;



            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;



        }



        .time-selector button:hover {



            transform: translateY(-2px) !important;



            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;



        }



        .edit-week-name-btn {



            background: linear-gradient(135deg, #9c36b5, #cc5de8) !important;



            color: white !important;



        }



        .edit-week-name-input {



            margin: 20px 0 !important;



            padding: 20px !important;



            background: rgba(237, 112, 187, 0.1) !important;



            border-radius: 10px !important;



            display: flex !important;



            gap: 12px !important;



            align-items: center !important;



            border: 1px solid rgba(237, 112, 187, 0.2) !important;



        }



        .edit-week-name-input input {



            flex: 1 !important;



            padding: 10px 14px !important;



            border: 2px solid rgba(237, 112, 187, 0.3) !important;



            border-radius: 8px !important;



            font-size: 14px !important;



        }



        /* 排名表格样式优化 */



        .ranking-table-container {



            overflow-x: auto !important;



            border-radius: 10px !important;



            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08) !important;



        }



        .ranking-table {



            width: 100% !important;



            border-collapse: collapse !important;



            background: white !important;



        }



        .ranking-table thead {



            background: linear-gradient(135deg, #ff922b, #ffa94d) !important;



            color: white !important;



        }



        .ranking-table th {



            padding: 15px 20px !important;



            text-align: left !important;



            font-weight: 700 !important;



            font-size: 14px !important;



            text-transform: uppercase !important;



            letter-spacing: 0.5px !important;



            border-bottom: 2px solid #ff922b !important;



        }



        .ranking-table td {



            padding: 15px 20px !important;



            border-bottom: 1px solid rgba(0, 0, 0, 0.05) !important;



            font-size: 14px !important;



            transition: all 0.3s ease !important;



        }



        .ranking-table tbody tr {



            transition: all 0.3s ease !important;



        }



        .ranking-table tbody tr:hover {



            background: rgba(255, 146, 43, 0.05) !important;



            transform: translateY(-1px) !important;



            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;



        }



        .ranking-table tbody tr:nth-child(even) {



            background: rgba(0, 0, 0, 0.02) !important;



        }



        /* 排名样式 */



        .ranking-table td:first-child {



            font-weight: 700 !important;



            color: #ff922b !important;



            font-size: 16px !important;



        }



        /* 积分样式 */



        .ranking-table td:nth-child(3) {



            font-weight: 700 !important;



            color: #22b8cf !important;



            font-size: 15px !important;



        }



        /* 最高积分项目样式 */



        .ranking-table td:nth-child(4) {



            color: #666 !important;



            font-style: italic !important;



        }



        /* 自定义周数输入样式 */



        #customWeekInput {



            display: none !important;



            gap: 10px !important;



            align-items: center !important;



            margin-top: 10px !important;



            padding: 15px !important;



            background: rgba(0, 0, 0, 0.05) !important;



            border-radius: 8px !important;



        }



        #customWeekInput input {



            padding: 8px 12px !important;



            border: 1px solid #ddd !important;



            border-radius: 5px !important;



        }



        /* 返回按钮样式 */



        .back-button {



            display: block;



            margin-bottom: 20px;



            background: linear-gradient(45deg, #ff922b, #ffa94d);



        }



        .back-button {



            display: block;



        }



        /* 周榜月榜美化样式 */



        #weeklyMonthly {



            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);



            padding: 20px;



            border-radius: 15px;



            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);



        }



        /* 周榜月榜标题样式 */



        #weeklyMonthly h3 {



            color: white;



            text-align: center;



            font-size: 24px;



            margin-bottom: 25px;



            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);



        }



        /* 控制按钮样式优化 */



        #weeklyMonthly .controls {



            display: flex !important;



            justify-content: center !important;



            align-items: center !important;



            gap: 10px !important;



            margin-bottom: 25px !important;



            background: rgba(255, 255, 255, 0.95) !important;



            padding: 15px 20px !important;



            border-radius: 10px !important;



            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08) !important;



            flex-wrap: wrap !important;



        }



        /* 周榜月榜容器样式 */



        .weekly-monthly-container {



            background: white !important;



            padding: 25px !important;



            border-radius: 15px !important;



            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;



        }



        /* 时间选择器样式 */



        .time-selector {



            display: flex !important;



            flex-wrap: wrap !important;



            gap: 15px !important;



            align-items: center !important;



            margin-bottom: 25px !important;



            padding: 20px !important;



            background: rgba(255, 146, 43, 0.05) !important;



            border-radius: 10px !important;



        }



        /* 前三名特殊样式 */



        #weeklyMonthlyBody tr:nth-child(1) td:first-child {



            color: #ffd700 !important;



            font-size: 18px !important;



        }



        #weeklyMonthlyBody tr:nth-child(2) td:first-child {



            color: #c0c0c0 !important;



            font-size: 18px !important;



        }



        #weeklyMonthlyBody tr:nth-child(3) td:first-child {



            color: #cd7f32 !important;



            font-size: 18px !important;



        }



        /* 编辑周榜名称输入样式 */



        .edit-week-name-input {



            display: none !important;



            gap: 10px !important;



            align-items: center !important;



            margin-top: 15px !important;



            padding: 15px !important;



            background: rgba(102, 126, 234, 0.05) !important;



            border-radius: 10px !important;



            border-left: 4px solid #667eea !important;



        }



        /* 自定义周数输入样式 */



        #customWeekInput {



            display: none !important;



            gap: 10px !important;



            align-items: center !important;



            margin-top: 10px !important;



            padding: 15px !important;



            background: rgba(102, 126, 234, 0.05) !important;



            border-radius: 10px !important;



            border-left: 4px solid #667eea !important;



            flex-wrap: wrap !important;



        }



        /* 随机点名样式 - 修改 */



        .random-call-container {



            text-align: center;



            padding: 40px;



            margin: 20px 0;



            background: linear-gradient(145deg, #f5f7fa 0%, #c3cfe2 100%);



            border-radius: 20px;



            border: 3px solid #8e44ad;



            position: relative;



            min-height: 350px;



            display: flex;



            flex-direction: column;



            justify-content: center;



            box-shadow: 0 10px 30px rgba(142, 68, 173, 0.2);



        }



        .random-call-display {



            font-size: 5em;



            font-weight: bold;



            margin: 20px 0;



            color: #8e44ad;



            min-height: 120px;



            display: flex;



            align-items: center;



            justify-content: center;



            text-shadow: 0 0 15px rgba(142, 68, 173, 0.4);



            flex-wrap: wrap;



            gap: 15px;



            padding: 20px;



        }



        .random-item {



            background: linear-gradient(135deg, #9b59b6, #8e44ad);



            color: white;



            padding: 20px 30px;



            border-radius: 35px;



            font-size: 2em;



            box-shadow: 0 6px 20px rgba(142, 68, 173, 0.3);



            margin: 15px;



            animation: pulse 0.3s ease-in-out, sparkle 1.5s ease-in-out infinite alternate;



            border: 2px solid #ecf0f1;



        }



        @keyframes sparkle {



            0% {



                box-shadow: 0 6px 20px rgba(142, 68, 173, 0.3);



            }



            100% {



                box-shadow: 0 6px 25px rgba(142, 68, 173, 0.5), 0 0 30px rgba(231, 76, 60, 0.3);



            }



        }



        .random-call-settings {



            display: flex;



            align-items: center;



            margin-bottom: 20px;



            justify-content: center;



            font-size: 18px;



            font-weight: bold;



            color: #343a40;



        }



        .random-call-settings input {



            border: 2px solid #ddd;



            border-radius: 5px;



            font-size: 16px;



            text-align: center;



            width: 60px;



            padding: 8px;



            margin: 0 10px;



        }



        



        .random-call-controls {



            display: flex;



            justify-content: center;



            gap: 15px;



            margin-top: 25px;



        }



        .random-call-controls button {



            padding: 12px 25px;



            font-size: 16px;



            font-weight: bold;



            border: none;



            border-radius: 25px;



            cursor: pointer;



            transition: all 0.3s ease;



            background: linear-gradient(135deg, #3498db, #2980b9);



            color: white;



            box-shadow: 0 4px 15px rgba(52, 152, 219, 0.3);



        }



        .random-call-controls button:hover {



            transform: translateY(-2px);



            box-shadow: 0 6px 20px rgba(52, 152, 219, 0.4);



        }



        .random-call-controls button:active {



            transform: translateY(0);



        }



        .random-call-controls button:nth-child(2) {



            background: linear-gradient(135deg, #e74c3c, #c0392b);



            box-shadow: 0 4px 15px rgba(231, 76, 60, 0.3);



        }



        .random-call-controls button:nth-child(2):hover {



            box-shadow: 0 6px 20px rgba(231, 76, 60, 0.4);



        }



        .random-call-controls button:nth-child(3) {



            background: linear-gradient(135deg, #2ecc71, #27ae60);



            box-shadow: 0 4px 15px rgba(46, 204, 113, 0.3);



        }



        .random-call-controls button:nth-child(3):hover {



            box-shadow: 0 6px 20px rgba(46, 204, 113, 0.4);



        }



        .random-call-score-controls {



            margin-top: 20px;



            padding: 18px 24px;



            background: rgba(255,255,255,0.85);

            backdrop-filter: blur(8px);



            border-radius: 16px;



            box-shadow: 0 8px 32px rgba(0,0,0,0.1), 0 2px 8px rgba(0,0,0,0.06);



            border: 1.5px solid rgba(255,255,255,0.6);

            border-top: 1.5px solid rgba(255,255,255,0.9);



            transition: all 0.3s ease;



        }



        .score-controls-title {



            font-size: 1.4em;



            font-weight: 700;



            color: #2c3e50;



            margin-bottom: 14px;



            letter-spacing: 0.5px;



        }



        .score-controls-actions {



            display: flex;



            flex-direction: row;



            align-items: center;



            justify-content: center;



            gap: 10px;



            flex-wrap: wrap;



        }



        .score-controls-actions select,

        .score-controls-actions label {



            font-size: 15px;



        }



        .score-controls-actions select {



            padding: 10px 14px;



            font-size: 15px;



            border-radius: 8px;



            border: 2px solid #dee2e6;



            outline: none;



            min-width: 140px;



        }



        .score-controls-actions input {



            padding: 10px 14px;



            font-size: 15px;



            border-radius: 8px;



            border: 2px solid #dee2e6;



            outline: none;



            width: 100px;



        }



        .score-controls-actions select:focus,

        .score-controls-actions input:focus {



            border-color: #339af0;



            box-shadow: 0 0 5px rgba(51, 154, 240, 0.3);



        }



        .score-controls-actions .score-btn {



            padding: 10px 22px;



            font-size: 15px;



            font-weight: 600;



            border-radius: 8px;



            border: none;



            color: white;



            cursor: pointer;



            transition: all 0.2s ease;



        }



        .score-controls-actions .score-btn:hover {



            transform: translateY(-1px);



            box-shadow: 0 4px 12px rgba(0,0,0,0.2);



        }



        .score-controls-actions .score-btn-add {



            background: linear-gradient(135deg, #51cf66, #40c057);



            box-shadow: 0 2px 8px rgba(64,192,87,0.3);



        }



        .score-controls-actions .score-btn-subtract {



            background: linear-gradient(135deg, #ff6b6b, #f03e3e);



            box-shadow: 0 2px 8px rgba(240,62,62,0.3);



        }



        .score-controls-actions .score-btn-close {



            background: linear-gradient(135deg, #adb5bd, #868e96);



        }



        .score-controls-actions .score-btn-history {



            background: linear-gradient(135deg, #ff922b, #fd7e14);



            box-shadow: 0 2px 8px rgba(253,126,20,0.3);



        }



        /* 全屏浮动显示样式 - 优化 */



        .fullscreen-floating {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background: radial-gradient(ellipse at center, rgba(142,68,173,0.95) 0%, rgba(52,152,219,0.95) 40%, rgba(26,26,46,0.97) 100%);

            backdrop-filter: blur(12px);



            display: flex;



            flex-direction: column;



            align-items: center;



            justify-content: center;



            z-index: 10000;



            animation: floatIn 1s ease-out;



        }



        .fullscreen-floating .title {



            font-size: 2.6em;



            font-weight: 800;



            background: linear-gradient(135deg, #ffd700, #ffed4e, #fff9c4);



            -webkit-background-clip: text;



            -webkit-text-fill-color: transparent;



            background-clip: text;



            text-shadow: 0 0 40px rgba(255,215,0,0.8);



            margin-bottom: 30px;



            animation: bounce 1s ease-in-out;



        }



        



        .fullscreen-floating .name {



            font-size: 8em;



            font-weight: bold;



            background: linear-gradient(135deg, #9b59b6, #3498db, #2ecc71);



            -webkit-background-clip: text;



            -webkit-text-fill-color: transparent;



            background-clip: text;



            text-shadow: 0 0 40px rgba(142, 68, 173, 0.6);



            animation: pulse 2s infinite, colorShift 4s ease-in-out infinite alternate;



        }



        @keyframes colorShift {



            0% {



                background: linear-gradient(135deg, #9b59b6, #3498db, #2ecc71);



                -webkit-background-clip: text;



                -webkit-text-fill-color: transparent;



                background-clip: text;



            }



            50% {



                background: linear-gradient(135deg, #3498db, #2ecc71, #f39c12);



                -webkit-background-clip: text;



                -webkit-text-fill-color: transparent;



                background-clip: text;



            }



            100% {



                background: linear-gradient(135deg, #2ecc71, #f39c12, #9b59b6);



                -webkit-background-clip: text;



                -webkit-text-fill-color: transparent;



                background-clip: text;



            }



        }



        @keyframes floatIn {



            0% {



                opacity: 0;



                transform: scale(0.5);



            }



            100% {



                opacity: 1;



                transform: scale(1);



            }



        }



        



        /* 编辑小组成员样式 */



        .edit-group-modal {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background: rgba(0,0,0,0.5);



            display: flex;



            align-items: center;



            justify-content: center;



            z-index: 1000;



        }



        .edit-group-content {



            background: white;



            padding: 20px;



            border-radius: 15px;



            width: 500px;



            max-width: 90%;



            max-height: 80vh;



            overflow-y: auto;



        }



        .member-list {



            max-height: 300px;



            overflow-y: auto;



            margin: 15px 0;



            border: 1px solid #d1e9ff;



            border-radius: 10px;



            padding: 10px;



        }



        .member-item {



            display: flex;



            justify-content: space-between;



            padding: 8px;



            margin: 5px 0;



            background: #f0f8ff;



            border-radius: 8px;



        }



        /* 批量添加规则样式 */



        .batch-add-rules {



            margin-top: 20px;



        }



        .batch-add-textarea {



            width: 100%;



            height: 150px;



            padding: 10px;



            border: 2px solid var(--primary-color);



            border-radius: 10px;



            margin-bottom: 10px;



            font-family: inherit;



        }



        /* 批量编辑积分模态框样式 */



        .batch-edit-modal {

            position: fixed;

            top: 0;

            left: 0;

            width: 100%;

            height: 100%;

            background: rgba(0,0,0,0.45);

            backdrop-filter: blur(3px);

            display: flex;

            align-items: center;

            justify-content: center;

            z-index: 10000;

        }

        .batch-edit-content {

            background: white;

            border-radius: 16px;

            width: 520px;

            max-width: 92vw;

            max-height: 85vh;

            overflow-y: auto;

            box-shadow: 0 16px 48px rgba(0,0,0,0.18);

            animation: scoreModalSlideUp 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);

        }

        .batch-edit-header {

            display: flex;

            align-items: center;

            justify-content: space-between;

            padding: 20px 24px 0;

        }

        .batch-edit-header h3 {

            margin: 0;

            font-size: 17px;

            font-weight: 700;

            color: #1a1a2e;

        }

        .batch-edit-close {

            width: 32px;

            height: 32px;

            border-radius: 50%;

            border: none;

            background: #f0f0f0;

            font-size: 16px;

            cursor: pointer;

            color: #888;

            transition: background 0.2s;

        }

        .batch-edit-close:hover {

            background: #e0e0e0;

        }

        .batch-edit-body {

            padding: 12px 24px 4px;

        }

        .batch-edit-section {

            margin: 12px 0;

        }

        .batch-edit-label {

            font-size: 13px;

            font-weight: 600;

            color: #666;

            margin-bottom: 6px;

        }

        .batch-edit-options {

            display: flex;

            gap: 8px;

        }

        .batch-type-btn {

            flex: 1;

            padding: 10px 0;

            border: 1px solid #e0e0e0;

            border-radius: 10px;

            background: #fafafa;

            font-size: 14px;

            font-weight: 600;

            color: #666;

            cursor: pointer;

            transition: all 0.2s;

        }

        .batch-type-btn.active {

            background: linear-gradient(135deg, #667eea, #764ba2);

            color: white;

            border-color: transparent;

            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.35);

        }

        .member-list {

            display: flex;

            flex-wrap: wrap;

            gap: 8px;

            margin: 8px 0;

        }

        .member-item-card {

            display: flex;

            align-items: center;

            gap: 8px;

            padding: 8px 12px;

            background: #f8f9fb;

            border: 1.5px solid #e8ecf0;

            border-radius: 10px;

            cursor: pointer;

            transition: all 0.2s;

            user-select: none;

        }

        .member-item-card:hover {

            border-color: #667eea;

            background: #f0f2ff;

        }

        .member-item-card:has(input:checked) {

            border-color: #667eea;

            background: linear-gradient(135deg, #eef0ff, #f3e8ff);

            box-shadow: 0 2px 8px rgba(102,126,234,0.15);

        }

        .member-item-name {

            font-size: 14px;

            font-weight: 600;

            color: #333;

        }

        .member-item-score {

            font-size: 12px;

            color: #999;

            margin-left: auto;

        }

        .member-item-card input[type="checkbox"] {

            display: none;

        }

        .member-item-checkmark {

            width: 18px;

            height: 18px;

            border: 2px solid #ccc;

            border-radius: 4px;

            display: inline-block;

            position: relative;

            flex-shrink: 0;

            transition: all 0.2s;

        }

        .member-item-card:has(input:checked) .member-item-checkmark {

            background: #667eea;

            border-color: #667eea;

        }

        .member-item-card:has(input:checked) .member-item-checkmark::after {

            content: '';

            position: absolute;

            left: 5px;

            top: 1px;

            width: 5px;

            height: 10px;

            border: solid white;

            border-width: 0 2px 2px 0;

            transform: rotate(45deg);

        }

        .batch-edit-actions {

            display: flex;

            gap: 8px;

            margin-top: 6px;

        }

        .batch-action-btn {

            padding: 6px 16px;

            border: 1px solid #e0e0e0;

            border-radius: 8px;

            background: white;

            font-size: 12px;

            color: #666;

            cursor: pointer;

            transition: all 0.2s;

        }

        .batch-action-btn:hover {

            border-color: #667eea;

            color: #667eea;

        }

        .batch-edit-select {

            width: 100%;

            padding: 10px 12px;

            font-size: 14px;

            border: 1.5px solid #e0e0e0;

            border-radius: 10px;

            background: #fafafa;

            color: #333;

            outline: none;

            cursor: pointer;

            transition: border-color 0.2s;

        }

        .batch-edit-select:focus {

            border-color: #667eea;

        }

        .batch-edit-input-row {

            display: flex;

            align-items: center;

            gap: 10px;

        }

        .batch-edit-input {

            width: 140px;

            height: 44px;

            text-align: center;

            font-size: 24px;

            font-weight: 700;

            color: #e67e22;

            border: none;

            border-bottom: 2px solid #e0e0e0;

            outline: none;

            background: transparent;

        }

        .batch-edit-input:focus {

            border-color: #667eea;

        }

        .batch-edit-hint {

            font-size: 12px;

            color: #999;

        }

        .batch-edit-footer {

            display: flex;

            gap: 10px;

            padding: 16px 24px 20px;

        }

        .batch-edit-confirm {

            flex: 1;

            padding: 12px 0;

            border: none;

            border-radius: 12px;

            background: linear-gradient(135deg, #667eea, #764ba2);

            color: white;

            font-size: 15px;

            font-weight: 700;

            cursor: pointer;

            transition: transform 0.15s, box-shadow 0.2s;

        }

        .batch-edit-confirm:hover {

            transform: translateY(-1px);

            box-shadow: 0 6px 20px rgba(102,126,234,0.4);

        }

        .batch-edit-cancel {

            flex: 1;

            padding: 12px 0;

            border: 1.5px solid #e0e0e0;

            border-radius: 12px;

            background: white;

            color: #888;

            font-size: 15px;

            font-weight: 600;

            cursor: pointer;

            transition: all 0.2s;

        }

        .batch-edit-cancel:hover {

            border-color: #bbb;

            color: #555;

        }

        /* 兑换奖品模态框样式 */



    /* 宠物模态框样式 */



    .pet-modal-info {



        display: flex;



        align-items: center;



        gap: 20px;



        margin-bottom: 20px;



    }



    .pet-modal-icon {

        width: 100%;

        font-size: 64px;



    }



    .pet-stage-icon {

        max-width: 100%;

        height: auto;

    }



    .pet-modal-details h3 {



        margin: 0 0 10px 0;



        font-size: 24px;



    }



    .pet-modal-details p {



        margin: 5px 0;



        font-size: 16px;



    }



    .pet-modal-actions {



        display: flex;



        gap: 10px;



        flex-wrap: wrap;



    }



    .pet-modal-actions button {



        padding: 10px 15px;



        border: none;



        border-radius: 5px;



        background-color: #4CAF50;



        color: white;



        cursor: pointer;



        font-size: 14px;



        transition: background-color 0.3s;



    }



    .pet-modal-actions button:hover {



        background-color: #45a049;



    }



        .redeem-modal {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background: rgba(0,0,0,0.5);



            display: flex;



            align-items: center;



            justify-content: center;



            z-index: 1000;



        }



        .redeem-content {



            background: white;



            padding: 20px;



            border-radius: 15px;



            width: 500px;



            max-width: 90%;



            max-height: 80vh;



            overflow-y: auto;



        }



        .redeem-items {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));



            gap: 15px;



            margin: 15px 0;



            max-height: 400px;



            overflow-y: auto;



        }



        .redeem-item {



            background: linear-gradient(145deg, #f0f8ff 0%, #e6f7ff 100%);



            border-radius: 10px;



            padding: 15px;



            text-align: center;



            border: 2px solid #d1e9ff;



            cursor: pointer;



            transition: all 0.3s;



        }



        .redeem-item:hover {



            transform: translateY(-5px);



            box-shadow: 0 5px 15px rgba(0,0,0,0.1);



        }



        .redeem-item.selected {



            border-color: #339af0;



            background: linear-gradient(145deg, #e6f7ff 0%, #d1e9ff 100%);



        }



        /* 密码验证样式 */



        .password-modal {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background: rgba(0,0,0,0.5);



            display: flex;



            align-items: center;



            justify-content: center;



            z-index: 1000;



        }



        .password-content {



            background: white;



            padding: 20px;



            border-radius: 15px;



            width: 300px;



            max-width: 90%;



            text-align: center;



        }



        /* 五星学生历史记录样式 */



        .star-history-container {



            margin-top: 20px;



            padding: 20px;



            background: linear-gradient(145deg, #f0f8ff 0%, #e6f7ff 100%);



            border-radius: 15px;



            border: 2px solid #d1e9ff;



        }



        .star-history-toggle {



            display: flex;



            justify-content: center;



            margin-bottom: 15px;



        }



        .star-history-list {



            max-height: 400px;



            overflow-y: auto;



        }



        .star-history-item {



            padding: 10px;



            margin: 8px 0;



            background: white;



            border-radius: 10px;



            display: flex;



            justify-content: space-between;



            align-items: center;



        }



        /* 积分历史样式 - 修改 */



        .score-history-list {



            max-height: 500px;



            overflow-y: auto;



        }



        .score-history-item {



            padding: 12px;



            margin: 8px 0;



            background: white;



            border-radius: 10px;



            display: flex;



            justify-content: space-between;



            align-items: center;



            border: 1px solid #e1f0ff;



        }



        .score-history-item .time {



            color: #868e96;



            font-size: 0.9em;



        }



        .score-history-item .checkbox {



            margin-right: 10px;



        }



        /* 待调整区样式 */



        .adjustment-area-container {



            margin-top: 30px;



            padding: 20px;



            background: linear-gradient(145deg, #f0f8ff 0%, #e6f7ff 100%);



            border-radius: 15px;



            border: 2px solid #d1e9ff;



            box-shadow: var(--cute-shadow);



            transition: all 0.3s;



        }



        .adjustment-area-container.collapsed {



            display: none;



        }



        .adjustment-area-header {



            display: flex;



            justify-content: space-between;



            align-items: center;



            margin-bottom: 15px;



        }



        .adjustment-area-header h4 {



            color: #339af0;



            margin: 0;



            font-size: 1.4em;



        }



        .adjustment-area-toggle {



            background: #4dabf7;



            color: white;



            border: none;



            border-radius: 20px;



            padding: 6px 12px;



            cursor: pointer;



            font-size: 0.9em;



        }



        .adjustment-area {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));



            gap: 10px;



            min-height: 100px;



            padding: 15px;



            border: 2px dashed #4dabf7;



            border-radius: 10px;



            background: rgba(255, 255, 255, 0.7);



        }



        /* 调整待调整区学生样式与座位相同 */



        .adjustment-student {



            background: linear-gradient(145deg, #ff6b6b 0%, #ff8e8e 100%) !important;



            border-radius: 10px;



            padding: 15px;



            text-align: center;



            box-shadow: var(--cute-shadow);



            border: 2px solid #ff4757;



            cursor: move;



            transition: all 0.3s;



            position: relative;



            min-height: 60px;



            display: flex;



            align-items: center;



            justify-content: center;



            font-weight: bold;



            color: white;



            text-shadow: 1px 1px 2px rgba(0,0,0,0.3);



        }



        .adjustment-student:hover {



            transform: translateY(-3px);



            box-shadow: 0 5px 10px rgba(0,0,0,0.1);



        }



        .adjustment-student .remove-btn {



            position: absolute;



            top: -5px;



            right: -5px;



            background: #ff6b6b;



            color: white;



            border: none;



            border-radius: 50%;



            width: 20px;



            height: 20px;



            font-size: 12px;



            cursor: pointer;



            display: none;



        }



        .adjustment-student:hover .remove-btn {



            display: block;



        }



        .adjustment-actions {



            display: flex;



            justify-content: center;



            gap: 10px;



            margin-top: 15px;



        }



        .adjustment-actions button {



            padding: 8px 15px;



            font-size: 0.9em;



        }



        /* 整体换座按钮区域 */



        .seating-move-controls {



            display: flex;



            justify-content: center;



            gap: 10px;



            margin-top: 20px;



            flex-wrap: wrap;



        }



        .seating-move-controls h5 {



            width: 100%;



            text-align: center;



            margin-bottom: 10px;



            color: #339af0;



        }



        /* 学生卡片网格布局样式 */



        .students-grid {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));



            gap: 24px;



            margin-top: 20px;





            content-visibility: auto;

            contain-intrinsic-size: 0 480px;



        }



        /* 3D多宠物排列布局 */



        .students-grid.pet-3d-layout {



            display: flex;



            flex-wrap: wrap;



            justify-content: center;



            align-items: flex-start;



            perspective: 1500px;



            transform-style: preserve-3d;



            gap: 15px;



            padding: 20px;



        }



        /* 3D学生卡片容器 */



        .student-card-3d-container {



            position: relative;



            transform-style: preserve-3d;



            width: 300px;



            height: auto;



            transition: all 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);



            cursor: pointer;



        }



        /* 3D学生卡片基础变换 */



        .student-card-3d-container .student-card {



            transform: translateZ(0) rotateX(5deg) rotateY(-2deg);



            transition: all 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);



            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.2);



        }



        /* 3D宠物图标排列层 */



        .pet-3d-arrangement {



            position: absolute;



            top: -10px;



            left: -10px;



            right: -10px;



            bottom: -10px;



            transform-style: preserve-3d;



            pointer-events: none;



            z-index: 1;



        }



        /* 3D排列中的宠物图标 */



        .student-card-3d-container .pet-icon-3d,



        .student-card-3d-container .pet-icon {



            position: absolute;



            transition: all 0.8s cubic-bezier(0.4, 0.0, 0.2, 1);



            filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));



        }



        /* 3D排列中的宠物图片强制尺寸约束（防止sacred/supreme大图原生分辨率渲染） */



        .student-card-3d-container .pet-icon-3d img {



            max-width: 50px;



            max-height: 50px;



            object-fit: contain;



            display: block;



        }



        /* 中心宠物图标 */



        .student-card-3d-container .pet-icon-3d:nth-child(1),



        .student-card-3d-container .pet-icon:nth-child(1) {



            top: 15px;



            left: 50%;



            transform: translateX(-50%) translateZ(120px) scale(1.8);



            transform-origin: center top;



            z-index: 10;



        }



        /* 左上角宠物图标 */



        .student-card-3d-container .pet-icon-3d:nth-child(2),



        .student-card-3d-container .pet-icon:nth-child(2) {



            top: 15px;



            left: 20px;



            transform: translateZ(80px) scale(1.1) rotateY(-45deg) rotateZ(-10deg);



            z-index: 8;



        }



        /* 右上角宠物图标 */



        .student-card-3d-container .pet-icon-3d:nth-child(3),



        .student-card-3d-container .pet-icon:nth-child(3) {



            top: 15px;



            right: 20px;



            transform: translateZ(90px) scale(1.15) rotateY(45deg) rotateZ(10deg);



            z-index: 9;



        }



        /* 左下角宠物图标 */



        .student-card-3d-container .pet-icon-3d:nth-child(4),



        .student-card-3d-container .pet-icon:nth-child(4) {



            bottom: 60px;



            left: 25px;



            transform: translateZ(60px) scale(1.0) rotateY(-30deg) rotateZ(-15deg);



            z-index: 7;



        }



        /* 右下角宠物图标 */



        .student-card-3d-container .pet-icon-3d:nth-child(5),



        .student-card-3d-container .pet-icon:nth-child(5) {



            bottom: 60px;



            right: 25px;



            transform: translateZ(70px) scale(1.05) rotateY(30deg) rotateZ(15deg);



            z-index: 8;



        }



        /* 悬浮时的3D排列动画 */



        .student-card-3d-container:hover .student-card {



            transform: translateZ(20px) rotateX(0deg) rotateY(0deg) scale(1.02);



        }



        .student-card-3d-container:hover .pet-icon-3d:nth-child(1),



        .student-card-3d-container:hover .pet-icon:nth-child(1) {



            transform: translateX(-50%) translateZ(120px) scale(1.8) rotateY(360deg);



        }



        .student-card-3d-container:hover .pet-icon-3d:nth-child(2),



        .student-card-3d-container:hover .pet-icon:nth-child(2) {



            transform: translateZ(80px) scale(1.1) rotateY(-45deg) rotateZ(-10deg);



        }



        .student-card-3d-container:hover .pet-icon-3d:nth-child(3),



        .student-card-3d-container:hover .pet-icon:nth-child(3) {



            transform: translateZ(90px) scale(1.15) rotateY(45deg) rotateZ(10deg);



        }



        .student-card-3d-container:hover .pet-icon-3d:nth-child(4),



        .student-card-3d-container:hover .pet-icon:nth-child(4) {



            transform: translateZ(60px) scale(1.0) rotateY(-30deg) rotateZ(-15deg);



        }



        .student-card-3d-container:hover .pet-icon-3d:nth-child(5),



        .student-card-3d-container:hover .pet-icon:nth-child(5) {



            transform: translateZ(70px) scale(1.05) rotateY(30deg) rotateZ(15deg);



        }



        /* 点击时的3D旋转动画 */



        .student-card-3d-container:active .student-card {



            transform: translateZ(-10px) rotateX(-10deg) rotateY(10deg) scale(0.98);



        }



        .student-card-3d-container:active .pet-icon-3d:nth-child(1),



        .student-card-3d-container:active .pet-icon:nth-child(1) {



            transform: translateX(-50%) translateZ(30px) scale(1.1) rotateY(-180deg);



        }



        /* 移除3D排列背景光效 - 避免显示异常 */



        .student-card-3d-container::before {



            display: none;



        }



        /* 宠物3D排列控制按钮 */



        .pet-3d-layout-toggle {



            position: fixed;



            top: 50%;



            right: 20px;



            transform: translateY(-50%);



            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);



            color: white;



            border: none;



            padding: 15px 10px;



            border-radius: 50px 0 0 50px;



            cursor: pointer;



            font-size: 12px;



            font-weight: bold;



            writing-mode: vertical-rl;



            text-orientation: mixed;



            box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);



            transition: all 0.3s ease;



            z-index: 1000;



            font-family: 'ZCOOL QingKe HuangYou', cursive;



        }



        .pet-3d-layout-toggle:hover {



            padding-right: 15px;



            transform: translateY(-50%) translateX(-5px);



            box-shadow: 0 6px 25px rgba(102, 126, 234, 0.6);



        }



        .pet-3d-layout-toggle.active {



            background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);



            right: 0;



            padding: 15px;



            border-radius: 50px 0 0 50px;



        }



        /* 响应式3D布局 */



        @media (max-width: 768px) {



            .students-grid.pet-3d-layout {



                gap: 10px;



                padding: 10px;



                perspective: 1000px;



            }



            .student-card-3d-container {



                width: 280px;



            }



            .pet-3d-layout-toggle {



                top: auto;



                bottom: 20px;



                right: 10px;



                transform: none;



                writing-mode: horizontal-tb;



                text-orientation: initial;



                padding: 12px 15px;



                font-size: 11px;



            }



        }



        @media (max-width: 480px) {



            .students-grid.pet-3d-layout {



                gap: 8px;



            }



            .student-card-3d-container {



                width: 260px;



            }



        }



        /* 场景模式积分容器 */



        .scene-points-container {



            margin-top: 8px;



            padding: 6px;



            background: rgba(255, 255, 255, 0.8);



            border-radius: 8px;



            box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);



        }



        /* 场景积分项目 */



        .scene-points-item {



            margin-bottom: 6px;



            padding: 8px;



            background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);



            border-radius: 6px;



            border: 1px solid rgba(0, 0, 0, 0.1);



            transition: all 0.2s ease;



        }



        .scene-points-item:last-child {



            margin-bottom: 0;



        }



        .scene-points-item:hover {



            transform: translateY(-1px);



            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);



        }



        /* 场景头部 */



        .scene-header {



            display: flex;



            align-items: center;



            justify-content: space-between;



            margin-bottom: 4px;



        }



        .scene-icon {



            font-size: 18px;



            margin-right: 6px;



        }



        .scene-title {



            flex: 1;



            font-size: 12px;



            font-weight: bold;



            color: #333;



        }



        .scene-status {



            font-size: 10px;



            padding: 1px 6px;



            border-radius: 10px;



            font-weight: bold;



        }



        .status-normal {



            background: #e3f2fd;



            color: #1976d2;



        }



        .status-full {



            background: #ffebee;



            color: #d32f2f;



        }



        /* 进度条包装器 */



        .progress-wrapper {



            position: relative;



            margin-bottom: 2px;



        }



        .progress-background {



            height: 8px;



            background: #e0e0e0;



            border-radius: 4px;



            overflow: hidden;



            box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);



        }



        .progress-bar {



            height: 100%;



            border-radius: 4px;



            box-shadow: 0 0 6px rgba(76, 175, 80, 0.4);



        }



        /* 进度信息 */



        .progress-info {



            display: flex;



            align-items: center;



            justify-content: space-between;



            font-size: 10px;



            margin-top: 2px;



        }



        .current-points {



            font-weight: bold;



            color: #333;



            font-size: 11px;



        }



        .total-points {



            color: #666;



            font-size: 9px;



        }



        .limit-badge {



            background: #F44336;



            color: white;



            padding: 1px 4px;



            border-radius: 8px;



            font-size: 9px;



            font-weight: bold;



        }



        /* 积分提示 */



        .points-hint {



            font-size: 9px;



            color: #666;



            text-align: center;



            margin-top: 2px;



            font-style: italic;



            display: none; /* 默认隐藏，节省空间 */



        }



        /* 晨读和自习积分条样式 */



        .morning-reading-bar {



            background: linear-gradient(90deg, #4CAF50 0%, #8BC34A 100%);



        }



        .self-study-bar {



            background: linear-gradient(90deg, #2196F3 0%, #4FC3F7 100%);



        }



        .student-card-header {



            display: flex;



            justify-content: space-between;



            align-items: center;



            margin-bottom: 10px;



            padding: 10px 12px;



            background: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 50%, rgba(255, 255, 255, 0.5) 100%);



            border-radius: 12px;



            border: 1px solid rgba(255, 255, 255, 0.6);



            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.8);



            backdrop-filter: blur(10px);



            position: relative;



            overflow: hidden;



        }



        /* 头部渐变装饰线 */



        .student-card-header::before {



            content: '';



            position: absolute;



            top: 0;



            left: 0;



            right: 0;



            height: 3px;



            background: linear-gradient(90deg, #00d4ff 0%, #0099ff 20%, #0066ff 40%, #00ccff 60%, #00ffcc 80%, #00d4ff 100%);



            background-size: 200% 100%;



            animation: header-gradient 2s linear infinite;



        }



        @keyframes header-gradient {



            0% { background-position: 0% 50%; }



            100% { background-position: 200% 50%; }



        }



        /* 学生头像样式 */



        .student-avatar {



            width: 40px;



            height: 40px;



            background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 50%, #1e3a8a 100%);



            font-size: 15px;



            font-weight: 700;



            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);



            border: 3px solid rgba(255, 255, 255, 0.5);



            overflow: hidden;



            box-shadow: 0 4px 10px rgba(29, 78, 216, 0.45);



            animation: avatar-glow 2s ease-in-out infinite alternate, avatar-float 5s ease-in-out infinite;



            display: flex;



            align-items: center;



            justify-content: center;



            color: white;



            cursor: pointer;



            margin-right: 10px;



            position: relative;



            border-radius: 50%;



        }



        .student-avatar::before {



            content: '';



            position: absolute;



            top: -50%;



            left: -50%;



            width: 200%;



            height: 200%;



            background: linear-gradient(45deg, transparent 45%, rgba(255,255,255,0.18) 50%, transparent 55%);



            animation: avatar-marquee 2s linear infinite;



        }



        @keyframes avatar-marquee {



            0% { transform: translateX(-100%) rotate(0deg); }



            100% { transform: translateX(100%) rotate(360deg); }



        }



        @keyframes avatar-float {



            0%, 100% { transform: translateY(0px); }



            50% { transform: translateY(-3px); }



        }



        @keyframes avatar-glow {



            0% { box-shadow: 0 4px 10px rgba(29, 78, 216, 0.45); }



            100% { box-shadow: 0 6px 20px rgba(0, 212, 255, 0.7); }



        }



        .student-avatar:hover {



            border-color: #4ecdc4;



            transform: scale(1.1) rotate(5deg);



            box-shadow: 0 6px 20px rgba(78, 205, 196, 0.5);



            background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 50%, #dda0dd 100%);



            animation: avatar-hover-glow 1s ease-in-out infinite alternate, avatar-marquee 2s linear infinite;



        }



        .student-avatar:hover::before {



            animation: avatar-marquee 2s linear infinite;



        }



        @keyframes avatar-hover-glow {



            0% { box-shadow: 0 6px 20px rgba(78, 205, 196, 0.5); }



            100% { box-shadow: 0 10px 30px rgba(78, 205, 196, 0.8); }



        }



        .student-avatar img {



            width: 100%;



            height: 100%;



            object-fit: cover;



            border-radius: 50%;



        }



        .student-avatar .avatar-placeholder {



            font-size: 16px;



            font-weight: bold;



        }



        .student-avatar .upload-icon {



            position: absolute;



            bottom: -2px;



            right: -2px;



            width: 16px;



            height: 16px;



            background: #FFD700;



            border-radius: 50%;



            display: flex;



            align-items: center;



            justify-content: center;



            font-size: 10px;



            opacity: 0;



            transition: opacity 0.3s ease;



        }



        .student-avatar:hover .upload-icon {



            opacity: 1;



        }



        .student-name-with-avatar {



            display: flex;



            align-items: center;



            flex: 1;



        }



        /* 头像右键菜单样式 */



        .avatar-context-menu {



            background: white;



            border: 1px solid #ddd;



            border-radius: 8px;



            box-shadow: 0 4px 12px rgba(0,0,0,0.15);



            z-index: 1000;



            min-width: 150px;



            overflow: hidden;



        }



        .avatar-context-menu .menu-item {



            padding: 10px 15px;



            cursor: pointer;



            transition: background-color 0.2s ease;



            border-bottom: 1px solid #f0f0f0;



        }



        .avatar-context-menu .menu-item:hover {



            background-color: #f8f9fa;



        }



        .avatar-context-menu .menu-item:last-child {



            border-bottom: none;



        }



        .student-name {



            /* [v25.1.2 视觉升级] 默认深石板色，对比度 13.5:1 (WCAG AAA)；
               hover 切换到天空蓝，配合透明下划线即可读、可点。
               移除原因：金色描边/3D 旋转/彩色渐变在浅色玻璃背景上几乎不可见，
               且持续动画带来无意义的重绘。 */
            font-size: 1.1em;



            font-weight: 700;



            cursor: pointer;



            display: inline-block;



            color: #1e293b;



            letter-spacing: 0.5px;



            text-decoration: underline;



            text-decoration-color: rgba(30, 41, 59, 0.28);



            text-decoration-thickness: 1.5px;



            text-underline-offset: 4px;



            transition: color 0.2s ease, text-decoration-color 0.2s ease;



        }



        .student-name:hover {



            color: #0ea5e9;



            text-decoration-color: #0ea5e9;



        }



        /* 柔和的发光动画 */



        @keyframes subtle-glow {



            0% {



                text-shadow:



                    0.5px 0.5px 0 #D4AF37,



                    1px 1px 0 #C39A2D,



                    1.5px 1.5px 0 #B28B21,



                    2px 2px 0 #A07C15,



                    2.5px 2.5px 0 #926D09,



                    3px 3px 0 #845E00,



                    3px 3px 6px rgba(0, 0, 0, 0.3);



            }



            100% {



                text-shadow:



                    0.5px 0.5px 0 #FFD700,



                    1px 1px 0 #FFC107,



                    1.5px 1.5px 0 #FFB300,



                    2px 2px 0 #FF9800,



                    2.5px 2.5px 0 #FF8F00,



                    3px 3px 0 #FF6F00,



                    3px 3px 10px rgba(255, 150, 0, 0.4);



            }



        }



        @keyframes gradient-shift {



            0% {



                background-position: 0% 50%;



            }



            100% {



                background-position: 100% 50%;



            }



        }



        .student-name:hover {



            /* 增强悬停效果的平铺3D文字 */



            color: #fff;



            text-shadow:



                0.5px 0.5px 0 #FFD700,



                1px 1px 0 #FFC107,



                1.5px 1.5px 0 #FFB300,



                2px 2px 0 #FF9800,



                2.5px 2.5px 0 #FF8F00,



                3px 3px 0 #FF6F00,



                3px 3px 12px rgba(255, 150, 0, 0.5);



            /* 轻微悬停时的3D旋转效果 */



            transform: perspective(800px) rotateX(3deg) rotateY(0deg) scale(1.03);



            /* 增强悬停时的渐变背景 */



            background: linear-gradient(45deg, #FFD700, #FFB6C1, #DA70D6);



            -webkit-background-clip: text;



            -webkit-text-fill-color: transparent;



            background-clip: text;



        }



        /* 学生卡片内的学生姓名样式 */



        .student-card .student-name {



            /* [v25.1.2 视觉升级] 与 .student-name 一致，但作为 .student-card 后代
               特异性更高会胜出，因此这里必须独立定义；padding/border-radius 保留
               以维持原卡片点击热区大小，避免重构影响布局。 */
            position: relative;



            color: #1e293b;



            font-weight: 700;



            font-size: 1.1em;



            letter-spacing: 0.5px;



            padding: 2px 8px;



            border-radius: 8px;



            transition: background-color 0.2s ease, color 0.2s ease;



        }



        .student-card:hover .student-name {



            color: #0ea5e9;



            background-color: rgba(14, 165, 233, 0.08);



        }



        .student-card .student-name::after {



            content: '✨';



            position: absolute;



            right: -20px;



            top: 50%;



            transform: translateY(-50%);



            font-size: 0.8em;



            opacity: 0;



            transition: opacity 0.3s ease;



        }



        .student-card:hover .student-name::after {



            opacity: 1;



        }



        @keyframes name-gradient {



            0% { background-position: 0% 50%; }



            50% { background-position: 100% 50%; }



            100% { background-position: 0% 50%; }



        }



        @keyframes name-glow {



            0% { filter: drop-shadow(0 0 2px rgba(0, 212, 255, 0.5)); }



            100% { filter: drop-shadow(0 0 8px rgba(0, 212, 255, 0.9)); }



        }



            }



        }



        /* 学生姓名 - 无额外装饰 */



        .delete-student-btn {



            background: linear-gradient(45deg, #ff6b6b, #ff8787);



            color: white;



            border: none;



            border-radius: 10px;



            padding: 5px 10px;



            cursor: pointer;



            font-size: 0.9em;



            transition: all 0.3s;



        }



        .delete-student-btn:hover {



            transform: scale(1.1);



        }



        .student-scores {



            margin: 10px 0;



            padding: 12px;



            background: linear-gradient(135deg,



                rgba(255, 255, 255, 0.95) 0%,



                rgba(255, 255, 255, 0.85) 100%);



            border-radius: 12px;



            border: 1px solid rgba(255, 255, 255, 0.8);



            box-shadow:



                0 4px 15px rgba(0, 0, 0, 0.08),



                inset 0 1px 0 rgba(255, 255, 255, 1);



            backdrop-filter: blur(10px);



            position: relative;



            overflow: hidden;



        }



        /* 积分区域装饰 - 科技蓝色 */



        .student-scores::before {



            content: '💎';



            position: absolute;



            top: 5px;



            right: 10px;



            font-size: 18px;



            opacity: 0.3;



            animation: score-icon-float 3s ease-in-out infinite;



            filter: drop-shadow(0 0 5px rgba(0, 212, 255, 0.5));



        }



        @keyframes score-icon-float {



            0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.3; }



            50% { transform: translateY(-5px) rotate(10deg); opacity: 0.5; }



        }



        .score-adjustment-container {



            margin-bottom: 10px;



        }



        .score-item-select {



            width: 100%;



            padding: 8px 12px;



            border: 2px solid #d1e9ff;



            border-radius: 10px;



            background: white;



            font-family: 'Comic Neue', Arial, sans-serif;



            font-size: 0.9em;



            margin-bottom: 10px;



            cursor: pointer;



            transition: all 0.3s;



        }



        .score-item-select:focus {



            outline: none;



            border-color: #4dabf7;



            box-shadow: 0 0 5px rgba(77, 171, 247, 0.3);



        }



        /* 小组下拉菜单美化样式 */



        .group-select {



            padding: 6px 10px;



            border: 2px solid #d1e9ff;



            border-radius: 8px;



            background: white;



            font-family: 'Comic Neue', Arial, sans-serif;



            font-size: 0.85em;



            cursor: pointer;



            transition: all 0.3s;



        }



        .group-select:focus {



            outline: none;



            border-color: #4dabf7;



            box-shadow: 0 0 5px rgba(77, 171, 247, 0.3);



        }



        .score-input-group {



            display: flex;



            gap: 8px;



            align-items: center;



            margin-top: 8px;



            padding: 10px;



            background: rgba(77, 171, 247, 0.1);



            border-radius: 8px;



        }



        .score-value-input {



            flex: 1;



            padding: 6px 10px;



            border: 2px solid #4dabf7;



            border-radius: 6px;



            font-size: 0.9em;



            text-align: center;



        }



        .score-value-input:focus {



            outline: none;



            border-color: #339af0;



            box-shadow: 0 0 5px rgba(51, 154, 240, 0.3);



        }



        .current-scores-display {



            margin-top: 15px;



            padding: 10px;



            background: rgba(255, 255, 255, 0.8);



            border-radius: 8px;



        }



        .current-scores-display h5 {



            margin: 0 0 8px 0;



            color: #339af0;



            font-size: 0.95em;



            text-align: center;



        }



        .mini-score-item {



            display: flex;



            justify-content: space-between;



            align-items: center;



            padding: 6px 12px;



            margin: 4px 0;



            background: linear-gradient(135deg,



                rgba(0, 212, 255, 0.15) 0%,



                rgba(0, 153, 255, 0.15) 100%);



            border-radius: 8px;



            font-size: 0.85em;



            border: 1px solid rgba(255, 255, 255, 0.5);



            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);



            transition: all 0.3s ease;



        }



        .mini-score-item:hover {



            background: linear-gradient(135deg,



                rgba(0, 212, 255, 0.25) 0%,



                rgba(0, 153, 255, 0.25) 100%);



            transform: translateX(5px);



            box-shadow: 0 4px 12px rgba(0, 212, 255, 0.2);



        }



        .mini-score-label {



            color: #339af0;



            font-weight: 500;



        }



        .mini-score-value {



            font-weight: bold;



            color: #1971c2;



            background: rgba(77, 171, 247, 0.1);



            padding: 2px 6px;



            border-radius: 3px;



            min-width: 25px;



            text-align: center;



        }



        .score-row {



            display: flex;



            justify-content: space-between;



            align-items: center;



            margin: 8px 0;



            padding: 8px;



            background: rgba(255, 255, 255, 0.7);



            border-radius: 8px;



            font-size: 0.9em;



        }



        .score-label {



            font-weight: bold;



            color: #339af0;



            min-width: 80px;



        }



        .score-value {



            font-weight: bold;



            color: #333;



            min-width: 30px;



            text-align: center;



        }



        .score-buttons {



            display: flex;



            gap: 5px;



        }



        .score-btn {



            background: linear-gradient(45deg, #51cf66, #69db7c);



            color: white;



            border: none;



            border-radius: 5px;



            padding: 2px 8px;



            cursor: pointer;



            font-size: 0.8em;



            transition: all 0.2s;



        }



        .score-btn:hover {



            transform: scale(1.1);



        }



        .score-btn.negative {



            background: linear-gradient(45deg, #ff6b6b, #ff8787);



        }



        .student-info {



            margin: 10px 0;



            padding: 8px;



            background: rgba(255, 255, 255, 0.8);



            border-radius: 8px;



            display: flex;



            justify-content: space-between;



            align-items: center;



        }



        .total-score {



            font-size: 1.3em;



            font-weight: 700;



            background: linear-gradient(45deg, #D4AF37, #FF6B9D, #DA70D6);



            background-size: 200% 100%;



            -webkit-background-clip: text;



            -webkit-text-fill-color: transparent;



            background-clip: text;



            text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);



            display: inline-block;



            padding: 2px 6px;



            border-radius: 4px;



            position: relative;



            animation: score-gradient 3s ease infinite;



        }



        @keyframes score-gradient {



            0% {



                background-position: 0% 50%;



            }



            50% {



                background-position: 100% 50%;



            }



            100% {



                background-position: 0% 50%;



            }



        }



        .group-info {



            font-size: 1em;



            color: #868e96;



            font-weight: bold;



        }



        .student-actions {



            display: flex;



            justify-content: space-between;



            margin-top: 10px;



            gap: 8px;



        }



        .redeem-btn {



            background: linear-gradient(45deg, #ff922b, #ffa94d);



            color: white;



            border: none;



            border-radius: 10px;



            padding: 8px 15px;



            cursor: pointer;



            font-weight: bold;



            transition: all 0.3s;



            flex: 1;



        }



        .redeem-btn:hover {



            transform: translateY(-2px);



            box-shadow: 0 4px 10px rgba(255, 146, 43, 0.3);



        }



        .notification-btn {



            background: linear-gradient(45deg, #ff6b6b, #ff8e53);



            color: white;



            border: none;



            border-radius: 10px;



            padding: 8px 15px;



            cursor: pointer;



            font-weight: bold;



            transition: all 0.3s;



            flex: 1;



            position: relative;



        }



        .notification-btn:hover {



            transform: translateY(-2px);



            box-shadow: 0 4px 10px rgba(255, 107, 107, 0.3);



        }



        /* 无消息的通知按钮样式 */



        /* 无消息的通知按钮样式 */



        .notification-btn.no-messages {



            background: linear-gradient(45deg, #95a5a6, #7f8c8d);



            opacity: 0.7;



        }



        /* 有未读消息的通知按钮样式 - 闪烁效果 */



        .notification-btn.has-unread {



            background: linear-gradient(45deg, #ff4757, #ff3838);



            box-shadow: 0 0 15px rgba(255, 71, 87, 0.7), 0 4px 10px rgba(255, 71, 87, 0.3);



            animation: notificationPulse 2s ease-in-out infinite;



            opacity: 1;



        }



        /* 有已读消息的通知按钮样式 - 静态显示 */



        .notification-btn.has-read-only {



            background: linear-gradient(45deg, #3498db, #2980b9);



            box-shadow: 0 2px 8px rgba(52, 152, 219, 0.3);



            opacity: 0.9;



        }



        /* 消息数量徽章 */



        .notification-btn::after {



            content: attr(data-count);



            position: absolute;



            top: -8px;



            right: -8px;



            background: #ff4757;



            color: white;



            border-radius: 50%;



            width: 20px;



            height: 20px;



            font-size: 12px;



            font-weight: bold;



            display: none;



            align-items: center;



            justify-content: center;



            border: 2px solid white;



        }



        /* 未读消息徽章样式 */



        .notification-btn.has-unread::after {



            display: flex;



            background: #ff4757;



            box-shadow: 0 0 8px rgba(255, 71, 87, 0.8);



        }



        /* 已读消息徽章样式 */



        .notification-btn.has-read-only::after {



            display: flex;



            background: #3498db;



            box-shadow: 0 0 8px rgba(52, 152, 219, 0.6);



        }



        @keyframes notificationPulse {



            0%, 100% {



                box-shadow: 0 0 15px rgba(255, 71, 87, 0.7), 0 4px 10px rgba(255, 71, 87, 0.3);



            }



            50% {



                box-shadow: 0 0 25px rgba(255, 71, 87, 0.9), 0 6px 15px rgba(255, 71, 87, 0.5);



            }



        }



        /* 通知按钮更新动画 */



        @keyframes notification-update-animation {



            0% { transform: scale(1); }



            50% { transform: scale(1.05); box-shadow: 0 0 20px rgba(255, 215, 0, 0.8); }



            100% { transform: scale(1); }



        }



        .notification-update-animation {



            animation: notification-update-animation 1s ease-in-out;



        }



        /* 通知模态窗口样式 */



        .notification-modal-overlay {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background: rgba(0, 0, 0, 0.7);



            backdrop-filter: blur(5px);



            z-index: 10000;



            display: flex;



            align-items: center;



            justify-content: center;



            animation: fadeIn 0.3s ease;



        }



        .notification-modal {



            background: white;



            border-radius: 15px;



            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);



            max-width: 600px;



            width: 90%;



            max-height: 80vh;



            overflow: hidden;



            animation: slideInUp 0.3s ease;



        }



        .notification-modal .modal-header {



            background: linear-gradient(45deg, #ff6b6b, #ff8e53);



            color: white;



            padding: 20px;



            display: flex;



            justify-content: space-between;



            align-items: center;



        }



        .notification-modal .modal-header h3 {



            margin: 0;



            font-size: 1.3em;



        }



        /* 通知统计信息 */



        .notification-stats {



            display: flex;



            gap: 15px;



            align-items: center;



        }



        .stats-item {



            background: rgba(255, 255, 255, 0.2);



            padding: 4px 8px;



            border-radius: 12px;



            font-size: 0.9em;



            font-weight: 500;



        }



        .stats-item.unread {



            background: rgba(255, 255, 255, 0.3);



            color: #fff;



            animation: unreadPulse 2s ease-in-out infinite;



        }



        @keyframes unreadPulse {



            0%, 100% { background: rgba(255, 255, 255, 0.3); }



            50% { background: rgba(255, 255, 255, 0.5); }



        }



        .notification-modal .close-btn {



            background: none;



            border: none;



            color: white;



            font-size: 24px;



            cursor: pointer;



            padding: 5px;



            border-radius: 50%;



            width: 35px;



            height: 35px;



            display: flex;



            align-items: center;



            justify-content: center;



            transition: background-color 0.3s ease;



        }



        .notification-modal .close-btn:hover {



            background-color: rgba(255, 255, 255, 0.2);



        }



        .notification-modal .modal-body {



            padding: 20px;



            max-height: 50vh;



            overflow-y: auto;



        }



        .notification-modal .modal-footer {



            padding: 15px 20px;



            border-top: 1px solid #eee;



            display: flex;



            gap: 10px;



            justify-content: flex-end;



        }



        .no-notifications {



            text-align: center;



            padding: 40px 20px;



            color: #666;



        }



        .empty-icon {



            font-size: 48px;



            margin-bottom: 15px;



            opacity: 0.5;



        }



        .notifications-list {



            display: flex;



            flex-direction: column;



            gap: 15px;



        }



        .notification-item {



            border: 1px solid #e0e0e0;



            border-radius: 10px;



            padding: 15px;



            background: #f9f9f9;



            transition: all 0.3s ease;



        }



        .notification-item.unread {



            background: #fff3e0;



            border-color: #ff9800;



            box-shadow: 0 2px 8px rgba(255, 152, 0, 0.2);



        }



        .notification-item.read {



            background: #f0f0f0;



            opacity: 0.6;



            color: #999;



            cursor: not-allowed;



            pointer-events: none;



        }



        .notification-item.read .notification-time,



        .notification-item.read .notification-type,



        .notification-item.read .notification-content,



        .notification-item.read .notification-master,



        .notification-item.read .notification-student {



            color: #999;



        }



        .notification-item.read .notification-type {



            background: #bdc3c7;



        }



        .notification-item.unread:hover {



            transform: translateY(-2px);



            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);



        }



        .notification-item.read:hover {



            transform: none;



            box-shadow: none;



        }



        .notification-header {



            display: flex;



            justify-content: space-between;



            align-items: flex-start;



            margin-bottom: 10px;



            font-size: 0.9em;



        }



        .notification-meta {



            display: flex;



            flex-direction: column;



            gap: 5px;



        }



        .notification-status {



            display: flex;



            align-items: center;



        }



        .unread-badge {



            background: #ff4757;



            color: white;



            padding: 2px 6px;



            border-radius: 10px;



            font-size: 0.7em;



            font-weight: bold;



            animation: badgePulse 2s ease-in-out infinite;



        }



        



            /* ========== 阶段徽章样式 ========== */



            .stage-badge {



                display: inline-block;



                padding: 3px 12px;



                border-radius: 20px;



                font-size: 0.78em;



                font-weight: 700;



                color: #fff;



                text-shadow: 0 1px 2px rgba(0,0,0,0.25);



                letter-spacing: 0.3px;



                box-shadow: 0 2px 6px rgba(0,0,0,0.10);



                transition: transform 0.2s ease, box-shadow 0.2s ease;



            }



            .stage-badge-egg { background: linear-gradient(135deg, #dfe6e9, #b2bec3); color: #333; }



            .stage-badge-baby { background: linear-gradient(135deg, #a8e6cf, #88d8b0); }



            .stage-badge-awakened { background: linear-gradient(135deg, #74b9ff, #0984e3); }



            .stage-badge-formed { background: linear-gradient(135deg, #a29bfe, #6c5ce7); }



            .stage-badge-spiritual { background: linear-gradient(135deg, #fd79a8, #e84393); }



            .stage-badge-evolved { background: linear-gradient(135deg, #fdcb6e, #f39c12); }



            .stage-badge-sacred { background: linear-gradient(135deg, #f9ca24, #e1b12c); color: #333; }



            .stage-badge-mythical { background: linear-gradient(135deg, #9b59b6, #8e44ad); }



            .stage-badge-celestial { background: linear-gradient(135deg, #00cec9, #00b894); }



            .stage-badge-primordial { background: linear-gradient(135deg, #d63031, #b71c1c); }



            .stage-badge-chaos { background: linear-gradient(135deg, #636e72, #2d3436); }



            .stage-badge-supreme {



                background: linear-gradient(135deg, #ffd700, #ff6b6b, #ffd700);



                background-size: 200% 200%;



                animation: supremeBadgeShine 2s ease-in-out infinite;



            }



            @keyframes supremeBadgeShine {



                0%, 100% { background-position: 0% 50%; }



                50% { background-position: 100% 50%; }



            }



            /* ========== 阶段动画特效 ========== */



            .stage-baby { animation: petBounce 2s ease-in-out infinite; }



            .stage-awakened { animation: petPulseGlow 2s ease-in-out infinite; }



            .stage-formed { animation: petRotateHalo 3s linear infinite; }



            .stage-spiritual { animation: petFloatParticles 2.5s ease-in-out infinite; }



            .stage-evolved { animation: petBreathScale 3s ease-in-out infinite; }



            .stage-sacred { animation: petGoldenGlow 2s ease-in-out infinite; }



            .stage-mythical { animation: petPurplePulse 2s ease-in-out infinite; }



            .stage-celestial { animation: petStarShine 2.5s ease-in-out infinite; }



            .stage-primordial { animation: petDarkThunder 2s ease-in-out infinite; }



            .stage-chaos { animation: petRainbowShift 3s ease-in-out infinite; }



            .stage-supreme { animation: petSupremeGlow 1.5s ease-in-out infinite; }



            @keyframes petBounce {



                0%, 100% { transform: translateY(0); }



                50% { transform: translateY(-4px); }



            }



            @keyframes petPulseGlow {



                0%, 100% { filter: brightness(1.1) drop-shadow(0 0 6px gold); }



                50% { filter: brightness(1.2) drop-shadow(0 0 12px gold); }



            }



            @keyframes petRotateHalo {



                0% { transform: rotate(0deg); }



                100% { transform: rotate(360deg); }



            }



            @keyframes petBreathScale {



                0%, 100% { filter: brightness(1) saturate(1); }



                50% { filter: brightness(1.1) saturate(1.2); }



            }



            @keyframes petGoldenGlow {



                0%, 100% { filter: brightness(1) drop-shadow(0 0 18px gold); }



                50% { filter: brightness(1.1) drop-shadow(0 0 30px gold); }



            }



            @keyframes petSupremeGlow {



                0%, 100% { filter: brightness(1.1) drop-shadow(0 0 40px gold); }



                50% { filter: brightness(1.3) drop-shadow(0 0 60px gold) drop-shadow(0 0 20px #ff6b6b); }



            }



            @keyframes petFloatParticles {



                0%, 100% { transform: translateY(0) rotate(0deg); }



                25% { transform: translateY(-3px) rotate(1deg); }



                75% { transform: translateY(3px) rotate(-1deg); }



            }



            @keyframes petStarShine {



                0%, 100% { filter: brightness(1.1) drop-shadow(0 0 24px white); }



                50% { filter: brightness(1.2) drop-shadow(0 0 36px white) drop-shadow(0 0 12px cyan); }



            }



            @keyframes petDarkThunder {



                0%, 100% { filter: brightness(1) drop-shadow(0 0 30px #c0392b); }



                10% { filter: brightness(1.4) drop-shadow(0 0 50px #e74c3c); }



                20% { filter: brightness(1) drop-shadow(0 0 30px #c0392b); }



            }



            @keyframes petRainbowShift {



                0% { filter: hue-rotate(0deg) saturate(1.5); }



                100% { filter: hue-rotate(360deg) saturate(1.5); }



            }



            @keyframes petPurplePulse {



                0%, 100% { filter: brightness(1.1) drop-shadow(0 0 24px #9b59b6); }



                50% { filter: brightness(1.2) drop-shadow(0 0 36px #8e44ad); }



            }



            /* ========== 宠物PNG大图卡片样式（桌面端） ========== */



            .pet-hero-container {

                width: 85%;

                aspect-ratio: 4 / 3;



                margin: 0 auto 8px auto;



                cursor: pointer;



                border-radius: 14px;



                overflow: hidden;



                box-shadow: 0 4px 20px rgba(80,40,120,0.10), 0 2px 8px rgba(0,0,0,0.06);



                transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.3s ease;



                position: relative;



                box-sizing: border-box;



                /* [v25.2.1] 容器背景改透明，避免宠物图白底残留时显示硬白边 */ background: transparent;



            }



            .pet-hero-container:hover {

                transform: translateY(-3px) scale(1.02);

                box-shadow: 0 8px 28px rgba(0,0,0,0.15);

            }



            .pet-hero-png {

                display: block;

                width: 100%;

                height: 100%;

                object-fit: contain;



                transition: transform 0.3s ease;



                filter: drop-shadow(0 2px 6px rgba(80,40,120,0.12));

            }



            .pet-hero-container:hover .pet-hero-png {

                transform: scale(1.08);

                filter: drop-shadow(0 4px 10px rgba(80,40,120,0.18));

            }

                font-size: 64px;

            }



            .pet-hero-gradient {

                position: absolute;

                bottom: 0;

                left: 0;

                right: 0;

                height: 38%;

                background: linear-gradient(to top, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.08) 55%, transparent 100%);

                pointer-events: none;

                border-radius: 0 0 18px 18px;

            }



            /* 宠物呼吸动画 - 主界面宠物PNG大图 */

            @keyframes pet-hero-breathe {

                0%, 100% { transform: scale(1); filter: drop-shadow(0 0 4px rgba(255, 215, 0, 0.3)); }

                50% { transform: scale(1.04); filter: drop-shadow(0 0 10px rgba(255, 215, 0, 0.6)); }

            }



            /* ========== 水印遮罩优化 ========== */



            .pet-hero-image-wrapper {



                position: absolute;



                top: 0;



                left: 0;



                width: 100%;



                height: 100%;



                overflow: hidden;



                animation: pet-hero-breathe 3.5s ease-in-out infinite;



            }



            /* 积分主界面统一呼吸动效 */

            @keyframes pet-level-breathe {

                0%, 100% { transform: scale(1); box-shadow: 0 2px 6px rgba(255, 107, 0, 0.35); }

                50% { transform: scale(1.06); box-shadow: 0 3px 12px rgba(255, 140, 0, 0.5); }

            }



            @keyframes pet-name-breathe {

                0%, 100% { text-shadow: 0 0 0 transparent; }

                50% { text-shadow: 0 0 8px rgba(0, 180, 220, 0.35); }

            }



            @keyframes pet-score-breathe {

                0%, 100% { filter: brightness(1) saturate(1); }

                50% { filter: brightness(1.12) saturate(1.1); }

            }



            @keyframes pet-grad-icon-breathe {

                0%, 100% { transform: scale(1); filter: brightness(1); }

                50% { transform: scale(1.08); filter: brightness(1.08); }

            }



            .pet-hero-image-wrapper::after {



                content: '';



                position: absolute;



                top: 0;



                left: 0;



                right: 0;



                height: 28px;



                background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%, transparent 100%);



                pointer-events: none;



                z-index: 2;



            }



        /* 删除通知按钮样式 */



        .delete-notification-btn {



            background: rgba(231, 76, 60, 0.1);



            color: #e74c3c;



            border: none;



            border-radius: 4px;



            padding: 2px 5px;



            font-size: 0.9em;



            cursor: pointer;



            margin-left: 5px;



            transition: all 0.2s ease;



        }



        .delete-notification-btn:hover {



            background: rgba(231, 76, 60, 0.2);



            transform: scale(1.1);



        }



        /* 重要通知样式 */



        .notification-item.important-notification {



            border-left: 4px solid #ff4757;



            background: linear-gradient(135deg, #fff3e0, #ffffff);



        }



        .notification-item.important-notification.unread {



            background: linear-gradient(135deg, #ffe0e0, #fff3e0);



            border-left-color: #e74c3c;



        }



        /* 通知详情区域 */



        .notification-details {



            margin: 8px 0;



            padding: 8px;



            background: rgba(0, 0, 0, 0.03);



            border-radius: 6px;



        }



        .notification-master, .notification-student {



            margin: 3px 0;



            font-size: 0.9em;



        }



        .notification-master {



            color: #7f8c8d;



        }



        .notification-student {



            color: #2c3e50;



            font-weight: 600;



        }



        /* 操作按钮区域 */



        .notification-actions {



            display: flex;



            gap: 10px;



            margin-top: 12px;



            padding-top: 10px;



            border-top: 1px solid rgba(0, 0, 0, 0.1);



        }



        .action-btn {



            padding: 6px 12px;



            border: none;



            border-radius: 6px;



            cursor: pointer;



            font-size: 0.85em;



            font-weight: 600;



            transition: all 0.3s ease;



            flex: 1;



        }



        .accept-btn {



            background: linear-gradient(45deg, #27ae60, #2ecc71);



            color: white;



        }



        .accept-btn:hover {



            background: linear-gradient(45deg, #229954, #27ae60);



            transform: translateY(-1px);



            box-shadow: 0 3px 8px rgba(39, 174, 96, 0.3);



        }



        .reject-btn {



            background: linear-gradient(45deg, #e74c3c, #c0392b);



            color: white;



        }



        .reject-btn:hover {



            background: linear-gradient(45deg, #c0392b, #a93226);



            transform: translateY(-1px);



            box-shadow: 0 3px 8px rgba(231, 76, 60, 0.3);



        }



        .action-btn:disabled {



            opacity: 0.6;



            cursor: not-allowed;



            transform: none !important;



        }



        /* 操作提示 */



        .notification-action-hint {



            margin-top: 8px;



            padding: 6px 8px;



            background: rgba(52, 152, 219, 0.1);



            border-radius: 4px;



            border-left: 3px solid #3498db;



        }



        .notification-action-hint small {



            color: #2980b9;



            font-style: italic;



        }



        /* 标记已读动画 */



        .notification-item.marked-read {



            animation: markedReadAnimation 0.5s ease;



        }



        @keyframes markedReadAnimation {



            0% { transform: scale(1); background: #fff3e0; }



            50% { transform: scale(1.02); background: #e8f5e8; }



            100% { transform: scale(1); background: #f0f0f0; opacity: 0.6; }



        }



        /* 点击交互反馈 */



        .notification-item.clicked {



            animation: clickFeedback 0.3s ease;



        }



        @keyframes clickFeedback {



            0% { transform: scale(1); }



            50% { transform: scale(0.98); }



            100% { transform: scale(1); }



        }



        /* 模态窗口动画 */



        .notification-modal-overlay.show {



            animation: modalFadeIn 0.3s ease;



        }



        .notification-modal-overlay.hide {



            animation: modalFadeOut 0.2s ease;



        }



        @keyframes modalFadeIn {



            from { opacity: 0; }



            to { opacity: 1; }



        }



        @keyframes modalFadeOut {



            from { opacity: 1; }



            to { opacity: 0; }



        }



        /* 无通知页面的增强样式 */



        .no-notifications small {



            display: block;



            margin-top: 10px;



            color: #999;



            font-style: italic;



        }



        .mark-all-read-btn.completed {



            background: #95a5a6;



            cursor: not-allowed;



        }



        .notification-time {



            color: #666;



            font-weight: 500;



        }



        .notification-type {



            background: #ff6b6b;



            color: white;



            padding: 2px 8px;



            border-radius: 12px;



            font-size: 0.8em;



            font-weight: bold;



        }



        .notification-content {



            color: #333;



            line-height: 1.5;



            margin-bottom: 5px;



        }



        .notification-master {



            color: #666;



            font-style: italic;



            font-size: 0.9em;



        }



        .notification-student {



            color: #333;



            font-weight: bold;



            font-size: 1em;



        }



        .notification-type-row {



            display: flex;



            align-items: center;



            gap: 10px;



            margin-bottom: 8px;



        }



        .mark-all-read-btn {



            background: #4CAF50;



            color: white;



            border: none;



            padding: 8px 16px;



            border-radius: 6px;



            cursor: pointer;



            font-size: 14px;



            transition: background-color 0.3s ease;



        }



        .mark-all-read-btn:hover {



            background: #45a049;



        }



        /* 通知操作按钮样式 */



        .notification-actions {



            margin-top: 12px;



            display: flex;



            gap: 10px;



            justify-content: center;



        }



        .action-btn {



            padding: 6px 12px;



            border: none;



            border-radius: 6px;



            cursor: pointer;



            font-size: 12px;



            font-weight: bold;



            transition: all 0.3s ease;



        }



        .accept-btn {



            background: linear-gradient(45deg, #4CAF50, #45a049);



            color: white;



        }



        .accept-btn:hover {



            background: linear-gradient(45deg, #45a049, #3d8b40);



            transform: translateY(-1px);



        }



        .reject-btn {



            background: linear-gradient(45deg, #f44336, #d32f2f);



            color: white;



        }



        .reject-btn:hover {



            background: linear-gradient(45deg, #d32f2f, #c62828);



            transform: translateY(-1px);



        }



        /* 空状态样式 */



        .no-pairs-message {



            text-align: center;



            padding: 40px 20px;



            color: #666;



            font-size: 1.1em;



        }



        .no-pairs-message .empty-icon {



            font-size: 3em;



            margin-bottom: 15px;



            opacity: 0.5;



        }



        .close-modal-btn {



            background: #9E9E9E;



            color: white;



            border: none;



            padding: 8px 16px;



            border-radius: 6px;



            cursor: pointer;



            font-size: 14px;



            transition: background-color 0.3s ease;



        }



        .close-modal-btn:hover {



            background: #757575;



        }



        @keyframes fadeIn {



            from { opacity: 0; }



            to { opacity: 1; }



        }



        @keyframes petInfoBounce {



            0% { transform: scale(0.8); opacity: 0; }



            50% { transform: scale(1.05); }



            100% { transform: scale(1); opacity: 1; }



        }



        @keyframes slideInUp {



            from {



                opacity: 0;



                transform: translateY(50px) scale(0.9);



            }



            to {



                opacity: 1;



                transform: translateY(0) scale(1);



            }



        }



        .available-coins {



            text-align: center;



            margin-top: 10px;



            font-size: 0.9em;



            color: #ff922b;



            font-weight: bold;



        }



        /* 响应式布局调整 */



        @media (max-width: 1200px) {



            .students-grid {



                grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));



            }



            /* 成就系统响应式 */



            .achievement-grid {



                grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));



            }



            /* 积分目标系统响应式 */



            .progress-stats {



                grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));



            }



        }



        /* 平板设备专用优化 (768px-1024px) */



        @media (max-width: 1024px) and (min-width: 769px) {



            .nav-modules {



                grid-template-columns: repeat(2, 1fr);



                gap: 15px;



            }



            .group-cards {



                grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));



            }



            .store-items {



                grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));



            }



            .random-call-display {



                font-size: 4em;



            }



            /* 宠物游戏界面 */



            .pet-game-container {



                padding: 20px;



            }



            .game-area {



                width: 80%;



                height: 60vh;



            }



        }



        @media (max-width: 768px) {



            /* 成就系统响应式 */



            .achievement-grid {



                grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));



                gap: 12px;



            }



            .achievement-item {



                padding: 12px;



            }



            /* 积分目标系统响应式 */



            #scoreGoals {



                padding: 15px;



            }



            .goal-filters {



                flex-wrap: wrap;



                gap: 8px;



            }



            .goal-filters button {



                padding: 6px 12px;



                font-size: 13px;



            }



            .goal-meta {



                flex-direction: column;



                gap: 8px;



            }



            .progress-stats {



                grid-template-columns: repeat(2, 1fr);



                gap: 10px;



            }



            .stat-item {



                padding: 10px;



            }



            .stat-value {



                font-size: 20px;



            }



            .students-grid {



                grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));



                gap: 12px;



            }



            /* 宠物信息样式 */



            /* 宠物信息样式 */



            /* ======== 宠物PNG大图卡片样式 (banchong.cn风格) ======== */



            .pet-hero-section {

                display: block;

                width: 100%;

            }



            .pet-hero-container {

                width: 85%;

                aspect-ratio: 4 / 3;

                margin: 0 auto 8px auto;

                cursor: pointer;

                border-radius: 14px;

                overflow: hidden;

                box-shadow: 0 4px 20px rgba(80,40,120,0.10), 0 2px 8px rgba(0,0,0,0.06);

                transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.3s ease;

                position: relative;

                box-sizing: border-box;

                flex-shrink: 0;

                min-height: 0;

                height: auto;

                /* [v25.2.1] 容器背景改透明，避免宠物图白底残留时显示硬白边 */ background: transparent;

            }



            .pet-hero-container:hover {

                transform: translateY(-3px) scale(1.02);

                box-shadow: 0 8px 28px rgba(0,0,0,0.15);

            }













































































                position: absolute;



                top: 0;



                left: 0;



                width: 100%;



                height: 100%;



                overflow: hidden;



            }



            .pet-hero-png {



                display: block;



                width: 100%;



                height: 100%;



                object-fit: contain;



                transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);



                filter: drop-shadow(0 4px 10px rgba(80,40,120,0.15));



            }



            .pet-hero-container:hover .pet-hero-png {



                transform: scale(1.08);



                filter: drop-shadow(0 6px 16px rgba(80,40,120,0.22));



            }



            .pet-hero-fallback-emoji {



                position: absolute;



                top: 0;



                left: 0;



                width: 100%;



                height: 100%;



                display: flex;



                align-items: center;



                justify-content: center;



                font-size: 64px;



            }



            .pet-hero-gradient {



                position: absolute;



                bottom: 0;



                left: 0;



                right: 0;



                height: 38%;



                background: linear-gradient(to top, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.08) 55%, transparent 100%);



                pointer-events: none;



                border-radius: 0 0 18px 18px;



            }







            /* ======== 新宠物信息行与进度条样式 ======== */



            .pet-info-row {



                display: flex;



                align-items: center;



                justify-content: center;



                gap: 10px;



                margin-top: 4px;



                width: 100%;



                padding: 0 4px;



            }



            .pet-type-name {



                font-size: 15px;



                font-weight: 700;



                color: #222;



                text-shadow: 0 1px 2px rgba(255,255,255,0.6);



            }



            .pet-level-badge {



                display: inline-block;



                background: linear-gradient(135deg, #FF8C00 0%, #FF6B00 100%);



                color: #fff;



                font-size: 13px;



                font-weight: 800;



                padding: 3px 12px;



                border-radius: 14px;



                box-shadow: 0 2px 6px rgba(255,107,0,0.35);



                animation: pet-level-breathe 3s ease-in-out infinite;



                letter-spacing: 0.5px;



            }







            /* ========================================== */



            .pet-hero-info-bar {



                position: absolute;



                bottom: 8px;



                left: 8px;



                right: 8px;



                display: flex;



                align-items: center;



                justify-content: space-between;



                z-index: 2;



                gap: 4px;



            }



            .pet-hero-name {



                color: #fff;



                font-size: 12px;



                font-weight: 700;



                text-shadow: 0 1px 3px rgba(0,0,0,0.7);



                max-width: 55%;



                overflow: hidden;



                text-overflow: ellipsis;



                white-space: nowrap;



                letter-spacing: 0.2px;



            }



            .pet-hero-level {



                color: #ffd700;



                font-size: 11px;



                font-weight: 700;



                background: rgba(0,0,0,0.50);



                padding: 2px 10px;



                border-radius: 20px;



                text-shadow: 0 1px 2px rgba(0,0,0,0.5);



                letter-spacing: 0.3px;



                white-space: nowrap;



            }



            .pet-hero-badge {



                position: absolute;



                top: 8px;



                right: 8px;



                z-index: 3;



                padding: 3px 10px;



                border-radius: 12px;



                font-size: 11px;



                font-weight: 700;



                color: #fff;



                text-shadow: 0 1px 2px rgba(0,0,0,0.3);



            }



            .pet-hero-badge.ultimate {



                background: linear-gradient(135deg, #ff6b35, #ffd700);



                animation: badgePulse 2s ease-in-out infinite;



            }



            .pet-hero-badge.advanced {



                background: linear-gradient(135deg, #667eea, #764ba2);



            }



            @keyframes badgePulse {



                0%, 100% { transform: scale(1); }



                50% { transform: scale(1.08); }



            }



            /* 小尺寸PNG图标（排行榜等场景） */



            .pet-png-icon-small {



                display: inline-block;



                vertical-align: middle;



                box-shadow: 0 2px 6px rgba(0,0,0,0.15);



                transition: transform 0.2s ease;



            }



            .pet-png-icon-small:hover {



                transform: scale(1.15);



            }



            /* 响应式调整 */



            @media (max-width: 768px) {



                .pet-hero-container {

                    width: 85%;

                    aspect-ratio: 4 / 3;

                    margin: 0 auto 8px auto;

                    border-radius: 14px;

                    box-sizing: border-box;

                    overflow: hidden;

                    /* [v25.2.1] 移除残留旧版蓝色跑马灯（避免显示蓝色背景） */ background: transparent;

                }





































                .pet-hero-image-wrapper {



                    position: absolute;



                    top: 0;



                    left: 0;



                    width: 100%;



                    height: 100%;



                }



                .pet-hero-png {



                    display: block;



                    width: 100%;



                    height: 100%;



                    object-fit: contain;



                }



                .pet-hero-name {



                    font-size: 11px;



                }



                .pet-hero-level {



                    font-size: 10px;



                }



            }



            /* 宠物领养中心 - 幼年期PNG图片样式 */



            .pet-adopt-image {



                object-fit: contain;



            }



            .pet-adopt-fallback {



                display: flex;



                align-items: center;



                justify-content: center;



                font-size: 64px;



            }



              .student-pet {



                  position: relative;



                  margin-top: 0;



                  padding: 0;



                  border-top: none;



                  display: flex;



                  flex-direction: column;



                  justify-content: center;



                  align-items: center;



                  gap: 0;



                  cursor: pointer;



                  transition: transform 0.25s ease, box-shadow 0.25s ease;



              }



              .student-pet:hover {



                  transform: translateY(-2px);



                  box-shadow: 0 6px 20px rgba(0,0,0,0.10);



              }



            .pet-name-overlay {

              position: absolute;

              top: 6px;

              left: 6px;

              z-index: 99;

              display: flex;

              align-items: center;

              gap: 6px;

              padding: 5px 10px 5px 6px;

              background: rgba(0, 0, 0, 0.72);

              border-radius: 22px;

              pointer-events: none;

              backdrop-filter: blur(4px);

              -webkit-backdrop-filter: blur(4px);

              box-shadow: 0 2px 8px rgba(0,0,0,0.35);

            }

            .pet-name-overlay-pet {

              position: absolute;

              bottom: 6px;

              right: 6px;

              z-index: 99;

              display: flex;

              align-items: center;

              gap: 6px;

              padding: 5px 10px;

              background: rgba(0, 0, 0, 0.72);

              border-radius: 22px;

              pointer-events: none;

              backdrop-filter: blur(4px);

              -webkit-backdrop-filter: blur(4px);

              box-shadow: 0 2px 8px rgba(0,0,0,0.35);

            }

            .pet-name-overlay-pet .pet-name-text {

              color: #fff;

              font-size: 13px;

              font-weight: 700;

              text-shadow: 0 1px 2px rgba(0,0,0,0.6);

              white-space: nowrap;

            }

            .pet-name-avatar {

              width: 24px; height: 24px;

              border-radius: 50%;

              background: linear-gradient(135deg, #667eea, #764ba2);

              color: #fff;

              font-size: 12px;

              font-weight: 700;

              display: flex; align-items: center; justify-content: center;

              flex-shrink: 0;

            }

            .pet-name-text {

              color: #fff;

              font-size: 13px;

              font-weight: 700;

              text-shadow: 0 1px 2px rgba(0,0,0,0.6);

              white-space: nowrap;

            }



            .pet-info {



                display: flex;



                flex-direction: column;



                align-items: center;



                justify-content: center;



                gap: 8px;



                cursor: pointer;



                padding: 10px;



                border-radius: 8px;



                transition: background-color 0.3s;



                width: 100%;



            }



            .pet-info:hover {



                background-color: #f0f0f0;



            }



            /* 宠物基本信息样式 */



            .pet-basic-info {



                text-align: center;



                width: 100%;



                padding: 0 4px;



            }



            /* 宠物展开/收起指示器样式 */



            .pet-toggle-indicator {



                font-size: 0.75em;



                color: #888;



                transition: transform 0.35s ease;



                margin: 3px auto 0;



                display: block;



                opacity: 0.7;



            }



            /* 宠物详细信息容器样式 */



            .pet-details-container {



                margin-top: 6px;



                padding: 10px 8px;



                background: linear-gradient(135deg, #faf8ff, #f4f0fa);



                border-radius: 10px;



                border: 1px solid #e8e0f0;



                box-shadow: inset 0 1px 3px rgba(0,0,0,0.03);



            }



            /* 口粮购买下拉菜单样式 */



            .quick-buy-section {



                position: relative;



                margin-top: 10px;



            }



            .quick-buy-btn.quick {



                width: 100%;



                display: block;



            }



            .quick-buy-dropdown {



                position: absolute;



                top: 100%;



                left: 0;



                right: 0;



                background-color: white;



                border: 1px solid #eee;



                border-radius: 8px;



                box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);



                z-index: 100;



            }



            .quick-buy-dropdown .quick-buy-btn {



                display: block;



                width: 100%;



                text-align: left;



                margin: 2px 0;



                padding: 8px 12px;



                border-radius: 4px;



            }



            .pet-icon {



                font-size: 55px;



                transition: transform 0.3s ease, font-size 0.3s ease;



                cursor: pointer;



                display: block;



                margin: 0 auto;



            }



            .pet-icon:hover {



                transform: scale(1.1);



            }



            .pet-icon.baby-pet-animation {



                font-size: 24px;



                animation: bounce 1s infinite;



            }



            .pet-icon.teen-pet-animation {



                font-size: 32px;



                animation: bounce 0.8s infinite;



            }



            .pet-icon.adult-pet-animation {



                font-size: 40px;



                animation: bounce 0.6s infinite;



            }



            .pet-icon.ultimate-pet-animation {



                font-size: 48px;



                animation: bounce 0.5s infinite;



                color: #ffd700;



                text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);



            }



            @keyframes bounce {



                0%, 20%, 50%, 80%, 100% {



                    transform: translateY(0);



                }



                40% {



                    transform: translateY(-5px);



                }



                60% {



                    transform: translateY(-3px);



                }



            }



            /* 宠物3D效果 */



            .pet-icon-3d {



                position: relative;



                display: inline-block;



                perspective: 1000px;



                transition: transform 0.3s ease;



            }



            .pet-icon-3d:hover {



                transform: scale(1.3) rotateY(15deg) rotateX(10deg);



            }



            /* 翅膀效果 */



            .pet-wings {



                position: absolute;



                top: 50%;



                width: 80px;



                height: 40px;



                background: linear-gradient(45deg, rgba(255,255,255,0.5), rgba(255,255,255,0.2));



                border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;



                transform-origin: center center;



                opacity: 0.8;



                animation: wingFlap 1.5s infinite ease-in-out;



            }



            .pet-wings.left {



                left: -60px;



                transform: translateY(-50%) rotateY(0deg) rotateZ(20deg);



            }



            .pet-wings.right {



                right: -60px;



                transform: translateY(-50%) rotateY(180deg) rotateZ(20deg);



            }



            @keyframes wingFlap {



                0%, 100% { transform: translateY(-50%) rotateZ(20deg) scaleY(1); }



                50% { transform: translateY(-50%) rotateZ(-10deg) scaleY(1.2); }



            }



            /* 特效粒子 */



            .pet-particles {



                position: absolute;



                width: 2px;



                height: 2px;



                border-radius: 50%;



                pointer-events: none;



                animation: particleFloat 3s infinite linear;



            }



            @keyframes particleFloat {



                0% {



                    opacity: 0;



                    transform: translateY(0) scale(0);



                }



                10% {



                    opacity: 1;



                    transform: translateY(-10px) scale(1);



                }



                90% {



                    opacity: 1;



                    transform: translateY(-50px) scale(1);



                }



                100% {



                    opacity: 0;



                    transform: translateY(-60px) scale(0);



                }



            }



            /* 不同宠物品种的翅膀颜色 */



            /* 星云翅膀 - 垂耳兔 */



            .wings-nebula {



                background: linear-gradient(45deg, #ff00ff, #00ffff, #ff00ff);



                box-shadow: 0 0 15px rgba(255, 0, 255, 0.5);



            }



            /* 钻石翅膀 - 黄金仓鼠 */



            .wings-diamond {



                background: linear-gradient(45deg, #ffffff, #e0e0e0, #ffffff);



                box-shadow: 0 0 15px rgba(255, 255, 255, 0.8);



            }



            /* 天鹅翅膀 - 柯尔鸭 */



            .wings-swan {



                background: linear-gradient(45deg, #ffffff, #f0f0f0, #ffffff);



                box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);



            }



            /* 彩虹翅膀 - 玄凤鹦鹉 */



            .wings-rainbow {



                background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet);



                box-shadow: 0 0 20px rgba(255, 165, 0, 0.8);



            }



            /* 天使翅膀 - 英短猫 */



            .wings-angel {



                background: linear-gradient(45deg, #ffffff, #f0f8ff, #ffffff);



                box-shadow: 0 0 15px rgba(240, 248, 255, 0.8);



            }



            /* 蝙蝠翅膀 - 蜜袋鼯 */



            .wings-bat {



                background: linear-gradient(45deg, #333333, #555555, #333333);



                box-shadow: 0 0 15px rgba(51, 51, 51, 0.8);



            }



            /* 水纹翅膀 - 金鱼 */



            .wings-water {



                background: linear-gradient(45deg, #00bfff, #87ceeb, #00bfff);



                box-shadow: 0 0 15px rgba(0, 191, 255, 0.8);



            }



            /* 树叶翅膀 - 考拉 */



            .wings-leaf {



                background: linear-gradient(45deg, #00ff00, #98fb98, #00ff00);



                box-shadow: 0 0 15px rgba(0, 255, 0, 0.6);



            }



            /* 海浪翅膀 - 海豚 */



            .wings-wave {



                background: linear-gradient(45deg, #4682b4, #87ceeb, #4682b4);



                box-shadow: 0 0 15px rgba(70, 130, 180, 0.8);



            }



            /* 冰晶翅膀 - 小刺猬 */



            .wings-ice {



                background: linear-gradient(45deg, #b0e0e6, #e0ffff, #b0e0e6);



                box-shadow: 0 0 15px rgba(176, 224, 230, 0.8);



            }



            /* 枫叶翅膀 - 小松鼠 */



            .wings-maple {



                background: linear-gradient(45deg, #ff4500, #ff6347, #ff4500);



                box-shadow: 0 0 15px rgba(255, 69, 0, 0.8);



            }



            /* 冰翼翅膀 - 小企鹅 */



            .wings-icewing {



                background: linear-gradient(45deg, #87cefa, #b0e0e6, #87cefa);



                box-shadow: 0 0 15px rgba(135, 206, 250, 0.8);



            }



            /* 竹叶片翅膀 - 大熊猫 */



            .wings-bamboo {



                background: linear-gradient(45deg, #32cd32, #90ee90, #32cd32);



                box-shadow: 0 0 15px rgba(50, 205, 50, 0.8);



            }



            /* 火焰翅膀 - 小熊崽 */



            .wings-flame {



                background: linear-gradient(45deg, #ff4500, #ff6347, #ff4500);



                box-shadow: 0 0 15px rgba(255, 69, 0, 0.9);



            }



            /* 贝壳翅膀 - 小乌龟 */



            .wings-shell {



                background: linear-gradient(45deg, #ffdead, #f5deb3, #ffdead);



                box-shadow: 0 0 15px rgba(255, 222, 173, 0.8);



            }



            /* 星光翅膀 - 独角兽 */



            .wings-starlight {



                background: linear-gradient(45deg, #ffd700, #ffed4e, #ffd700);



                box-shadow: 0 0 15px rgba(255, 215, 0, 0.8);



            }



            /* 火焰龙翼 - 小龙 */



            .wings-dragon {



                background: linear-gradient(45deg, #ff0000, #ff6347, #ff0000);



                box-shadow: 0 0 20px rgba(255, 0, 0, 0.9);



            }



            /* 波浪翅膀 - 糊虎鲸 */



            .wings-sea {



                background: linear-gradient(45deg, #1e90ff, #87ceeb, #1e90ff);



                box-shadow: 0 0 15px rgba(30, 144, 255, 0.8);



            }



            /* 凤凰金翼 - 凤达凰 */



            .wings-phoenix {



                background: linear-gradient(45deg, #ffd700, #ff8c00, #ffd700);



                box-shadow: 0 0 20px rgba(255, 215, 0, 0.9);



            }



            /* 不同宠物的特效动画 */



            @keyframes gentleFloat {



                0%, 100% { transform: translateY(0) rotateZ(0deg); }



                50% { transform: translateY(-15px) rotateZ(5deg); }



            }



            



            @keyframes elegantSwim {



                0%, 100% { transform: translateX(0) translateY(0) rotateY(0deg); }



                50% { transform: translateX(10px) translateY(-5px) rotateY(10deg); }



            }



            



            /* 弹跳动画类 */



            .bounce-animation {



                animation: bounce 1s infinite;



            }



            /* 为标题添加动画效果 */



            .pet-center-title {



                animation: floatIn 0.8s ease-out forwards, pulse 2s infinite;



            }



            /* 为按钮添加更多互动效果 */



            .adopt-btn:hover {



                transform: translate(-50%, -50%) scale(1.05);



            }



            /* 为宠物性格和细节添加渐入效果 */



            .pet-personality, .pet-details {



                animation: floatIn 1s ease-out forwards;



            }



            /* 宠物名称样式 */



            .pet-name {



                font-size: 15px;



                font-weight: 700;



                color: #1a1a2e;



            }



            .pet-details {



                margin-bottom: 12px;



            }



            .student-name {



                font-size: 1.1em;



            }



        }



        @media (max-width: 480px) {



            /* 成就系统响应式 */



            .achievement-grid {



                grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));



                gap: 10px;



            }



            .achievement-item {



                padding: 10px;



            }



            .achievement-item h4 {



                font-size: 14px;



            }



            /* 积分目标系统响应式 */



            .goal-header {



                flex-direction: column;



                align-items: flex-start;



                gap: 8px;



            }



            .progress-stats {



                grid-template-columns: 1fr;



            }



            .overall-progress {



                flex-direction: column;



                align-items: stretch;



            }



            .students-grid {



                grid-template-columns: 1fr;



            }



            .student-card-header {



                flex-direction: column;



                align-items: flex-start;



                gap: 10px;



            }



        }



        /* 新增：学生积分历史浮动窗口样式 */



        .student-history-modal {



            position: fixed;



            top: 0;



            left: 0;



            width: 100%;



            height: 100%;



            background: rgba(0,0,0,0.5);



            display: flex;



            align-items: center;



            justify-content: center;



            z-index: 1000;



        }



        .student-history-content {



            background: white;



            padding: 20px;



            border-radius: 15px;



            width: 700px;



            max-width: 90%;



            max-height: 80vh;



            overflow-y: auto;



            box-shadow: 0 4px 20px rgba(0,0,0,0.2);



        }



        .student-history-header {



            display: flex;



            justify-content: space-between;



            align-items: center;



            margin-bottom: 15px;



            padding-bottom: 10px;



            border-bottom: 2px solid #d1e9ff;



        }



        .student-history-header h3 {



            margin: 0;



            color: #339af0;



        }



        .student-history-list {



            max-height: 400px;



            overflow-y: auto;



            margin: 15px 0;



        }



        .student-history-item {



            padding: 10px;



            margin: 8px 0;



            background: #f0f8ff;



            border-radius: 10px;



            display: flex;



            justify-content: space-between;



            align-items: center;



        }



        .student-history-item.positive {



            border-left: 4px solid #51cf66;



        }



        .student-history-item.negative {



            border-left: 4px solid #ff6b6b;



        }



        .student-history-item.redeem {



            border-left: 4px solid #ff922b;



        }



        .history-change {



            font-weight: bold;



            margin-right: 10px;



        }



        .history-change.positive {



            color: #51cf66;



        }



        .history-change.negative {



            color: #ff6b6b;



        }



        .history-change.redeem {



            color: #ff922b;



        }



        /* 响应式布局 */



        @media (max-width: 1024px) {



            .main-container {



                flex-direction: column;



            }



            .sidebar {



                width: 100%;



                position: relative;



                top: 0;



                max-height: none;



            }



            .content-area {



                flex-direction: column;



            }



            .main-content {



                min-width: auto;



            }



            .rankings {



                max-height: none;



                position: relative;



                top: 0;



            }



        }



        @media (max-width: 768px) {



            body {



                margin: 10px;



                gap: 10px;



            }



            .header {



                font-size: 1.8em;



                margin: 0 10px 10px;



                padding: 10px;



            }



            .sidebar {



                padding: 15px;



            }



            .nav-btn {



                padding: 8px 12px;



                font-size: 0.9em;



            }



            .main-content {



                padding: 15px;



            }



            .controls {



                flex-direction: column;



                align-items: stretch;



            }



            .controls button, .controls input {



                width: 100%;



                margin: 5px 0;



            }



            table {



                font-size: 0.9em;



            }



            th, td {



                padding: 8px 5px;



            }



            .random-call-display {



                font-size: 3em;



            }



            .group-cards, .star-cards, .store-items {



                grid-template-columns: 1fr;



            }



            .fullscreen-floating .name {



                font-size: 4em;



            }



            .fullscreen-floating .title {



                font-size: 2em;



            }



            .adjustment-area {



                grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));



            }



        }



        @media (max-width: 480px) {



            .header {



                font-size: 1.5em;



            }



            .nav-module h3 {



                font-size: 1.1em;



            }



            .main-content, .sidebar, .rankings {



                padding: 10px;



            }



            table {



                font-size: 0.8em;



            }



            th, td {



                padding: 6px 3px;



            }



            button {



                padding: 6px 12px;



                font-size: 0.9em;



            }



            .random-call-display {



                font-size: 2em;



            }



            .fullscreen-floating .name {



                font-size: 3em;



            }



            .fullscreen-floating .title {



                font-size: 1.5em;



            }



            .adjustment-area {



                grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));



            }



        }



        /* 按钮点击脉冲动画 */



        .button-pulse {



            animation: buttonPulse 0.6s ease-out;



        }



        @keyframes buttonPulse {



            0% {



                transform: scale(1);



            }



            50% {



                transform: scale(1.05);



            }



            100% {



                transform: scale(1);



            }



        }



        /* 烟花爆炸动画 */



        @keyframes fireworkExplode {



            0% {



                transform: scale(0) rotate(0deg);



                opacity: 1;



            }



            50% {



                transform: scale(2) rotate(180deg);



                opacity: 0.8;



            }



            100% {



                transform: scale(3) rotate(360deg);



                opacity: 0;



            }



        }



        /* 星星闪烁动画 */



        



        /* 心跳动画 */



        .heartbeat {



            animation: heartbeat 1.5s ease-in-out infinite;



        }



        @keyframes heartbeat {



            0% {



                transform: scale(1);



            }



            14% {



                transform: scale(1.3);



            }



            28% {



                transform: scale(1);



            }



            42% {



                transform: scale(1.3);



            }



            70% {



                transform: scale(1);



            }



        }



        /* 旋转木马动画 */



        .carousel-rotate {



            animation: carouselRotate 4s linear infinite;



        }



        @keyframes carouselRotate {



            0% {



                transform: rotateY(0deg);



            }



            100% {



                transform: rotateY(360deg);



            }



        }



        .student-application, .master-selection {



            margin: 20px 0;



            padding: 20px;



            background: var(--bg-secondary);



            border-radius: var(--radius-md);



            border: 2px solid var(--border-color);



        }



        .student-application h4, .master-selection h4 {



            margin: 0 0 20px 0;



            color: var(--primary-color);



            font-size: 1.3em;



            display: flex;



            align-items: center;



            gap: 8px;



        }



        .application-enhanced, .selection-enhanced {



            display: flex;



            flex-direction: column;



            gap: 25px;



        }



        .student-selection-cards h5, .master-recommendations h5,



        .master-selection-area h5, .applicant-display h5,



        .direct-recruitment h5 {



            margin: 0 0 15px 0;



            color: var(--text-secondary);



            font-size: 1.1em;



            font-weight: 600;



        }



        .cards-container {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));



            gap: 15px;



            margin-bottom: 10px;



        }



        .student-card, .master-card, .applicant-card, .available-student-card {



            background: var(--card-bg);



            border: 2px solid var(--border-color);



            border-radius: var(--radius-md);



            padding: 15px;



            cursor: pointer;



            transition: all 0.3s ease;



            position: relative;



            overflow: hidden;



        }



        .student-card:hover, .master-card:hover,



        .applicant-card:hover, .available-student-card:hover {



            transform: translateY(-2px);



            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);



            border-color: var(--primary-color);



        }



        .student-card.selected, .master-card.selected,



        .applicant-card.selected, .available-student-card.selected {



            border-color: var(--primary-color);



            background: var(--primary-light);



            color: white;



        }



        .card-avatar {



            width: 60px;



            height: 60px;



            border-radius: 50%;



            margin: 0 auto 10px;



            display: flex;



            align-items: center;



            justify-content: center;



            font-size: 24px;



            background: var(--primary-light);



            color: white;



        }



        .card-name {



            font-size: 1.1em;



            font-weight: 600;



            text-align: center;



            margin-bottom: 5px;



        }



        .card-info {



            font-size: 0.9em;



            color: var(--text-secondary);



            text-align: center;



            line-height: 1.4;



        }



        .card-stats {



            display: flex;



            justify-content: space-between;



            margin-top: 10px;



            padding-top: 10px;



            border-top: 1px solid var(--border-color);



            font-size: 0.85em;



        }



        .master-type-tag {



            display: inline-block;



            padding: 3px 8px;



            background: var(--success-color);



            color: white;



            border-radius: 12px;



            font-size: 0.8em;



            margin-top: 8px;



        }



        .quick-application-form, .direct-recruitment-form {



            background: var(--bg-tertiary);



            border-radius: var(--radius-md);



            padding: 20px;



            margin-top: 15px;



            border: 1px solid var(--border-color);



        }



        .selected-info {



            display: grid;



            grid-template-columns: 1fr 1fr;



            gap: 15px;



            margin-bottom: 20px;



        }



        .student-info, .master-info {



            background: var(--card-bg);



            padding: 15px;



            border-radius: var(--radius-sm);



            border: 1px solid var(--border-color);



        }



        .form-group {



            margin-bottom: 15px;



        }



        .form-group label {



            display: block;



            margin-bottom: 5px;



            font-weight: 600;



            color: var(--text-primary);



        }



        .form-group textarea, .form-group select {



            width: 100%;



            padding: 10px;



            border: 1px solid var(--border-color);



            border-radius: var(--radius-sm);



            background: var(--bg-primary);



            color: var(--text-primary);



            font-size: 14px;



            transition: border-color 0.3s ease;



        }



        .form-group textarea:focus, .form-group select:focus {



            outline: none;



            border-color: var(--primary-color);



            box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);



        }



        .form-actions {



            display: flex;



            gap: 10px;



            justify-content: flex-end;



            margin-top: 20px;



        }



        .btn-submit, .btn-cancel {



            padding: 10px 20px;



            border: none;



            border-radius: var(--radius-sm);



            font-size: 14px;



            font-weight: 600;



            cursor: pointer;



            transition: all 0.3s ease;



        }



        .btn-submit {



            background: var(--success-color);



            color: white;



        }



        .btn-submit:hover {



            background: #45a049;



            transform: translateY(-1px);



        }



        .btn-cancel {



            background: var(--text-secondary);



            color: white;



        }



        .btn-cancel:hover {



            background: #666;



            transform: translateY(-1px);



        }



        .applicants-list {



            display: grid;



            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));



            gap: 15px;



        }



        .applicant-card {



            position: relative;



        }



        .application-status {



            position: absolute;



            top: 10px;



            right: 10px;



            padding: 4px 8px;



            border-radius: 12px;



            font-size: 0.8em;



            font-weight: 600;



        }



        .status-pending {



            background: #ffc107;



            color: #000;



        }



        .status-approved {



            background: var(--success-color);



            color: white;



        }



        .status-rejected {



            background: var(--danger-color);



            color: white;



        }



        .action-buttons {



            display: flex;



            gap: 8px;



            margin-top: 10px;



        }



        .btn-approve, .btn-reject, .btn-recruit {



            padding: 6px 12px;



            border: none;



            border-radius: var(--radius-sm);



            font-size: 12px;



            font-weight: 600;



            cursor: pointer;



            transition: all 0.3s ease;



        }



        .btn-approve {



            background: var(--success-color);



            color: white;



        }



        .btn-approve:hover {



            background: #45a049;



        }



        .btn-reject {



            background: var(--danger-color);



            color: white;



        }



        .btn-reject:hover {



            background: #da190b;



        }



        .btn-recruit {



            background: var(--primary-color);



            color: white;



        }



        .btn-recruit:hover {



            background: #0056b3;



        }



        .section-desc {



            color: var(--text-secondary);



            font-style: italic;



            margin-bottom: 15px;



        }



        .selected-master-info {



            background: var(--bg-tertiary);



            padding: 15px;



            border-radius: var(--radius-md);



            margin-bottom: 20px;



            border: 1px solid var(--border-color);



        }



        .no-applicants, .no-students {



            text-align: center;



            color: var(--text-secondary);



            font-style: italic;



            padding: 30px;



            background: var(--bg-tertiary);



            border-radius: var(--radius-md);



            border: 1px dashed var(--border-color);



        }



        /* 响应式设计 */



        @media (max-width: 768px) {



            .cards-container {



                grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));



                gap: 10px;



            }



            .selected-info {



                grid-template-columns: 1fr;



            }



            .form-actions {



                flex-direction: column;



            }



            .applicants-list {



                grid-template-columns: 1fr;



            }



        }



        /* 100级宠物高贵效果关键帧动画 */



        



        /* 已删除未使用的 premium 动画效果 (premiumRaysSpin, premiumStarTwinkle, premiumFloat, premiumBorderGlow) */



        /* 移除所有宠物图标的动态阴影效果 */



        .pet-icon-3d::before {



            display: none !important;



        }



        /* 全面禁用所有 pet-icon-3d 特效 */



        div.pet-icon-3d,



        div.pet-icon-3d:hover,



        div.pet-icon-3d:active,



        div.pet-icon-3d:focus,



        div.pet-icon-3d.clicked {



            /* 移除所有变换和3D效果 */



            transform: none !important;



            transform-style: flat !important;



            perspective: none !important;



            perspective-origin: center center !important;



            /* 移除所有过渡效果 */



            transition: none !important;



            animation: none !important;



            /* 移除所有阴影和滤镜效果 */



            text-shadow: none !important;



            filter: none !important;



            box-shadow: none !important;



            /* 移除所有边框和背景效果 */



            border: none !important;



            background: none !important;



            /* 移除所有伪元素 */



            &::before,



            &::after {



                display: none !important;



                content: none !important;



            }



        }



        /* 优化学生卡片中宠物布局的样式 */



        



        .pet-info:hover {



            background-color: #f0f0f0;



        }



        /* 宠物图标样式保持13.8版本一致 */



        /* 宠物名称样式保持13.8版本一致 */



        /* 宠物等级和经验样式保持13.8版本一致 */



        .pet-toggle-indicator {



            font-size: 0.8em !important;



            color: #666 !important;



            transition: transform 0.3s ease !important;



            margin-left: auto !important;



            display: flex !important;



            align-items: center !important;



            justify-content: center !important;



            width: 24px !important;



            height: 24px !important;



            border-radius: 50% !important;



            background-color: #f0f0f0 !important;



        }



        .pet-toggle-indicator:hover {



            background-color: #e0e0e0 !important;



        }



        .pet-details-container {



            margin-top: 8px !important;



            padding: 15px !important;



            background-color: white !important;



            border-radius: 10px !important;



            border: 1px solid #e0e0e0 !important;



            transition: all 0.3s ease !important;



            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;



        }



        .pet-details {



            display: flex !important;



            flex-direction: column !important;



            gap: 12px !important;



        }



        .pet-nickname-container {



            display: flex !important;



            align-items: center !important;



            gap: 10px !important;



            flex-wrap: wrap !important;



            padding: 8px 0 !important;



        }



        .pet-nickname-label {



            font-weight: bold !important;



            color: #555 !important;



            font-size: 0.95em !important;



        }



        .pet-nickname {



            background-color: #f0f8ff !important;



            padding: 6px 12px !important;



            border-radius: 15px !important;



            border: 1px dashed #b3d4fc !important;



            color: #3182ce !important;



            font-size: 0.95em !important;



            cursor: pointer !important;



            transition: all 0.3s ease !important;



        }



        .pet-nickname:hover {



            background-color: #e6f2ff !important;



            border-color: #63b3ed !important;



        }



        .pet-nickname-input {



            padding: 6px 12px !important;



            border: 1px solid #b3d4fc !important;



            border-radius: 15px !important;



            font-size: 0.95em !important;



            width: 150px !important;



            outline: none !important;



        }



        .pet-nickname-input:focus {



            border-color: #63b3ed !important;



            box-shadow: 0 0 0 2px rgba(99, 179, 237, 0.2) !important;



        }



        .pet-nickname-changes {



            font-size: 0.8em !important;



            color: #888 !important;



            margin-left: auto !important;



        }



        .pet-growth {



            display: flex !important;



            flex-direction: column !important;



            gap: 6px !important;



            padding: 8px 0 !important;



        }



        .growth-progress-bar {



            height: 8px !important;



            background-color: #e0e0e0 !important;



            border-radius: 4px !important;



            overflow: hidden !important;



            width: 100% !important;



        }



        .growth-progress {



            height: 100% !important;



            background: linear-gradient(90deg, #4caf50 0%, #81c784 100%) !important;



            border-radius: 4px !important;



            transition: width 0.5s ease !important;



        }



        .growth-text {



            font-size: 0.85em !important;



            color: #666 !important;



            text-align: right !important;



        }



        .growth-status {



            padding: 6px 12px !important;



            border-radius: 15px !important;



            font-size: 0.85em !important;



            font-weight: bold !important;



            text-align: center !important;



            margin: 8px 0 !important;



        }



        .growth-status.normal {



            background-color: #e8f5e9 !important;



            color: #2e7d32 !important;



        }



        .growth-status.paused {



            background-color: #fff3e0 !important;



            color: #ef6c00 !important;



        }



        .growth-status.accelerated {



            background-color: #f3e5f5 !important;



            color: #7b1fa2 !important;



        }







        .pet-info {



            display: flex;



            flex-direction: column;



            align-items: center;



            justify-content: center;



            gap: 8px;



            cursor: pointer;



            padding: 10px;



            border-radius: 8px;



            transition: background-color 0.3s;



            width: 100%;



        }



        .pet-info:hover {



            background-color: #f0f0f0;



        }



        .pet-basic-info {



            text-align: center !important;



            width: 100% !important;



        }



        .pet-info .pet-name {



            font-size: 1.15em !important;



            font-weight: 700 !important;



            color: #2d2d2d !important;



            margin: 0 0 2px 0 !important;



            letter-spacing: 0.3px;



        }



        .pet-level {



            font-size: 0.85em !important;



            color: #777 !important;



            margin: 0 !important;



            font-weight: 500;



        }



        .pet-exp {



            font-size: 0.78em !important;



            color: #999 !important;



            margin: 1px 0 0 0;



        }



        .pet-toggle-indicator {



            font-size: 0.8em !important;



            color: #666 !important;



            transition: transform 0.3s ease !important;



            margin: 5px auto 0 !important;



            display: block !important;



        }



        .pet-details-container {



            margin-top: 5px !important;



            padding: 12px !important;



            background-color: #f9f9f9 !important;



            border-radius: 8px !important;



            border: 1px solid #eee !important;



            width: 100% !important;



        }



        .pet-details {



            display: flex !important;



            flex-direction: column !important;



            gap: 10px !important;



        }



        .pet-nickname-container {



            display: flex !important;



            align-items: center !important;



            gap: 8px !important;



            flex-wrap: wrap !important;



            justify-content: center !important;



        }



        .pet-nickname-label {



            font-weight: bold !important;



            color: #555 !important;



            font-size: 0.9em !important;



        }



        .pet-nickname {



            background-color: #fff !important;



            padding: 4px 10px !important;



            border-radius: 12px !important;



            border: 1px solid #ddd !important;



            color: #333 !important;



            font-size: 0.9em !important;



            cursor: pointer !important;



        }



        .pet-nickname-input {



            padding: 4px 10px !important;



            border: 1px solid #ddd !important;



            border-radius: 12px !important;



            font-size: 0.9em !important;



            width: 120px !important;



            outline: none !important;



        }



        .pet-nickname-changes {



            font-size: 0.8em !important;



            color: #888 !important;



            margin-left: 8px !important;



        }



        .pet-growth {



            display: flex !important;



            flex-direction: column !important;



            gap: 5px !important;



            margin: 8px 0 !important;



        }



        .growth-progress-bar {



            height: 6px !important;



            background-color: #e0e0e0 !important;



            border-radius: 3px !important;



            overflow: hidden !important;



            width: 100% !important;



        }



        .growth-progress {



            height: 100% !important;



            background-color: #4caf50 !important;



            border-radius: 3px !important;



        }



        .growth-text {



            font-size: 0.8em !important;



            color: #666 !important;



            text-align: center !important;



            margin: 0 !important;



        }



        .growth-status {



            padding: 4px 10px !important;



            border-radius: 12px !important;



            font-size: 0.8em !important;



            font-weight: bold !important;



            text-align: center !important;



            margin: 5px 0 !important;



        }



        .growth-status.normal {



            background-color: #e8f5e9 !important;



            color: #2e7d32 !important;



        }



        .growth-status.paused {



            background-color: #fff3e0 !important;



            color: #ef6c00 !important;



        }



        .growth-status.accelerated {



            background-color: #f3e5f5 !important;



            color: #7b1fa2 !important;



        }



        /* v2 风格宠物进度条 */



        .student-pet .card-progress-bar {



            width: 100%;



            height: 8px;



            background: #F0F0F0;



            border-radius: 4px;



            overflow: hidden;



            margin: 6px 0;



        }



        .student-pet .card-progress-fill {



            height: 100%;



            border-radius: 3px;



            transition: width 0.3s ease;



        }



        /* 稀有度分色 */



        .card-progress-fill.rarity-common { background: #B0BEC5; }



        .card-progress-fill.rarity-uncommon { background: #66BB6A; }



        .card-progress-fill.rarity-rare { background: #42A5F5; }



        .card-progress-fill.rarity-epic { background: #AB47BC; }



        .card-progress-fill.rarity-legendary { background: #FF8C00; }



        /* 宠物信息行：类型名 + LV等级 */

        .pet-info-row {

            display: flex;

            justify-content: space-between;

            align-items: center;

            margin-bottom: 6px;

            padding: 0 8px;

        }



        .pet-type-name {

            font-size: 13px;

            font-weight: 600;

            color: #5D4037;

        }



        .pet-level-badge {

            font-size: 12px;

            font-weight: 700;

            color: #fff;

            background: linear-gradient(135deg, #FF7043, #FF5722);

            padding: 2px 8px;

            border-radius: 10px;

        }







        /* 优化宠物小名样式 */



        .pet-nickname-small {



            font-size: 0.8em !important;



            color: #666 !important;



            cursor: pointer !important;



            margin-left: auto !important;



            margin-right: 10px !important;



        }



        /* 隐藏成长进度部分 */



        .pet-growth {



            display: none !important;



        }



        /* 调整学生头像位置，向右移动一点 */



        .student-avatar {



            margin-left: 8px !important;



        }



        /* 期末考试倒计时样式 */



        .exam-countdown {



            background: linear-gradient(45deg, #ff6b6b, #ee5a52);



            color: white;



            padding: 8px 15px;



            border-radius: 20px;



            font-size: 14px;



            font-weight: bold;



            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);



            animation: pulse 1.5s ease-in-out infinite;



            font-family: 'Comic Neue', Arial, sans-serif;



            display: none;



            align-items: center;



            gap: 5px;



            margin-right: 10px;



        }



        .exam-countdown .countdown-number {



            font-size: 16px;



            color: #ffeaa7;



            font-weight: bold;



        }



        .exam-countdown .countdown-label {



            font-size: 12px;



            opacity: 0.9;



        }



                    /* 期末考试倒计时样式 - 优化版 */



        .exam-countdown {



            background: linear-gradient(45deg, #ff6b6b, #ee5a52) !important;



            color: white !important;



            padding: 15px 25px !important;



            border-radius: 30px !important;



            font-size: 22px !important;



            font-weight: bold !important;



            box-shadow: 0 8px 22px rgba(255, 107, 107, 0.7), 0 0 30px rgba(255, 107, 107, 0.4) !important;



            animation: pulse 1s ease-in-out infinite !important;



            font-family: 'Comic Neue', Arial, sans-serif !important;



            display: none !important;



            align-items: center !important;



            gap: 10px !important;



            margin-right: 15px !important;



            text-transform: uppercase !important;



            letter-spacing: 2px !important;



            border: 2px solid rgba(255, 255, 255, 0.3) !important;



        }



        .exam-countdown .countdown-number {



            font-size: 28px !important;



            color: #fff9c4 !important;



            font-weight: bold !important;



            text-shadow: 0 3px 6px rgba(0, 0, 0, 0.4) !important;



        }



        .exam-countdown .countdown-label {



            font-size: 16px !important;



            opacity: 1 !important;



            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;



        }



        /* 增强的脉冲动画 */



        



        @keyframes pulse {



            0% { transform: scale(1); }



            50% {



                transform: scale(1.05);



                box-shadow: 0 8px 22px rgba(255, 107, 107, 0.8), 0 0 35px rgba(255, 107, 107, 0.5);



            }



            100% { transform: scale(1); }



        }



        /* 平板端 */



        @media (max-width: 1024px) {



            .main-container { flex-direction: column; }



            .sidebar { width: 100%; position: static; }



            .rankings { position: static; max-height: none; }



        }



        /* 手机端 */



        @media (max-width: 768px) {



            .pet-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }



            .scene-mode-panel { width: 95vw; height: 80vh; }



            #startButton { bottom: 20px; right: 20px; padding: 15px 30px; font-size: 1.2em; }



        }





/* ===== 积分操作弹窗样式（合并宠物信息） ===== */

.score-modal-overlay {

    position: fixed;

    top: 0; left: 0; width: 100%; height: 100%;

    background: rgba(0,0,0,0.45);

    backdrop-filter: blur(3px);

    z-index: 10000;

    display: flex;

    align-items: center;

    justify-content: center;

    animation: scoreModalFadeIn 0.2s ease;

}

@keyframes scoreModalFadeIn {

    from { opacity: 0; }

    to { opacity: 1; }

}



.score-modal-new {

    background: #ffffff;

    border-radius: 16px;

    width: 360px;

    max-width: 92vw;

    max-height: 90vh;

    overflow-y: auto;

    padding: 0;

    box-shadow: 0 16px 48px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.04);

    animation: scoreModalSlideUp 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);

}

@keyframes scoreModalSlideUp {

    from { transform: translateY(30px) scale(0.96); opacity: 0; }

    to { transform: translateY(0) scale(1); opacity: 1; }

}



.score-modal-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 0 16px 6px;

    margin: 0 0 8px;

    border-bottom: 1px solid #f0f0f0;

}

.score-modal-student {

    display: flex;

    align-items: center;

    gap: 8px;

}

.score-modal-avatar {

    width: 32px;

    height: 32px;

    border-radius: 50%;

    background: linear-gradient(135deg, #667eea, #764ba2);

    color: #fff;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 14px;

    font-weight: 700;

    flex-shrink: 0;

}

.score-modal-student-name {

    font-size: 15px;

    font-weight: 700;

    color: #1a1a2e;

}

.score-modal-close {

    width: 28px;

    height: 28px;

    border-radius: 50%;

    background: #f0f0f0;

    border: none;

    cursor: pointer;

    font-size: 14px;

    color: #999;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

    position: static;

}

.score-modal-close:hover {

    background: #e0e0e0;

    color: #333;

}



.score-modal-body {

    padding: 16px 24px;

}



.score-modal-pet-block {

    text-align: center;

    margin-bottom: 0;

    position: relative;

    padding-top: 38px;

}



/* Pet overlay header — student avatar + name + close button overlaid on pet image */

.score-modal-pet-overlay-header {

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 8px 12px;

    z-index: 2;

    background: linear-gradient(to bottom, rgba(0,0,0,0.35), transparent);

    border-radius: 12px 12px 0 0;

}

.score-modal-pet-overlay-header .score-modal-student-name {

    color: #fff;

    text-shadow: 0 1px 3px rgba(0,0,0,0.5);

}

.score-modal-pet-overlay-header .score-modal-close {

    background: rgba(255,255,255,0.2);

    color: #fff;

    text-shadow: 0 1px 3px rgba(0,0,0,0.5);

}

.score-modal-pet-overlay-header .score-modal-close:hover {

    background: rgba(255,255,255,0.35);

    color: #fff;

}



.score-modal-pet-img {

    width: 180px;

    height: auto;

    aspect-ratio: 1/1;

    border-radius: 16px;

    object-fit: cover;

    margin: 0 auto;

    display: block;

    box-shadow: 0 4px 20px rgba(0,0,0,0.15);

}

.score-modal-pet-name {

    font-size: 18px;

    font-weight: 700;

    text-align: center;

    color: #1a1a2e;

    margin: 12px 0 2px;

}

.score-modal-pet-owner {

    font-size: 13px;

    color: #999;

    text-align: center;

    margin-bottom: 8px;

}

.score-modal-pet-level {

    text-align: center;

    font-size: 14px;

    font-weight: 600;

    color: #f0a500;

    margin-bottom: 8px;

}

.score-modal-pet-level .star-icon {

    font-size: 16px;

    margin-right: 2px;

}

.score-modal-pet-exp-bg {

    height: 8px;

    border-radius: 4px;

    background: #e8e8e8;

    margin: 4px auto 0;

    width: 220px;

}

.score-modal-pet-exp {

    height: 100%;

    border-radius: 4px;

    background: linear-gradient(90deg, #f7d774, #e8a840);

    transition: width 0.3s ease;

}

.score-modal-pet-exp-text {

    font-size: 11px;

    color: #aaa;

    text-align: center;

    margin: 4px 0 0;

}

.score-modal-pet-divider {

    border-top: 1px dashed #e0e0e0;

    margin: 14px auto;

    max-width: 280px;

}



.score-modal-section-title {

    text-align: center;

    font-size: 13px;

    color: #999;

    margin: 0 0 8px;

}



.score-modal-current {

    text-align: center;

    margin-bottom: 16px;

}

.score-modal-coin {

    font-size: 20px;

    vertical-align: middle;

}

.score-modal-total {

    font-size: 42px;

    font-weight: 800;

    color: #e67e22;

    margin-left: 6px;

    vertical-align: middle;

    text-shadow: 0 2px 8px rgba(230,126,34,0.3);

}



.score-modal-select-row {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    margin-bottom: 14px;

}

.score-modal-select-label {

    font-size: 13px;

    color: #666;

    white-space: nowrap;

}

.score-modal-select {

    flex: 1;

    max-width: 220px;

    padding: 7px 10px;

    font-size: 13px;

    border: 1px solid #ddd;

    border-radius: 6px;

    background: #fff;

    color: #333;

    outline: none;

    cursor: pointer;

    transition: border-color 0.2s;

}

.score-modal-select:focus {

    border-color: #667eea;

}



.score-modal-ops {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 16px;

    margin-bottom: 16px;

}

.score-modal-circle {

    width: 44px;

    height: 44px;

    border-radius: 50%;

    border: none;

    font-size: 22px;

    font-weight: 700;

    cursor: pointer;

    transition: transform 0.15s;

    display: flex;

    align-items: center;

    justify-content: center;

    line-height: 1;

}

.score-modal-circle:hover {

    transform: scale(1.05);

}

.score-modal-minus {

    background: #fde8e8;

    color: #e74c3c;

}

.score-modal-plus {

    background: #e8f8f0;

    color: #2ecc71;

}

.score-modal-input {

    width: 120px;

    height: 44px;

    text-align: center;

    font-size: 24px;

    font-weight: 700;

    color: #1a1a2e;

    border: none;

    border-bottom: 2px solid #e0e0e0;

    outline: none;

    background: transparent;

    -moz-appearance: textfield;

}

.score-modal-input::-webkit-outer-spin-button,

.score-modal-input::-webkit-inner-spin-button {

    -webkit-appearance: none;

    margin: 0;

}

.score-modal-input:focus {

    border-color: #667eea;

}



.score-modal-footer {

    display: flex;

    gap: 12px;

    padding: 0 24px 20px;

}

.score-modal-btn {

    flex: 1;

    padding: 12px 0;

    border: none;

    border-radius: 12px;

    font-size: 15px;

    font-weight: 700;

    cursor: pointer;

    transition: transform 0.15s, box-shadow 0.2s;

}

.score-modal-confirm {

    background: linear-gradient(135deg, #667eea, #764ba2);

    color: white;

}

.score-modal-confirm:hover {

    transform: translateY(-1px);

    box-shadow: 0 6px 20px rgba(102,126,234,0.4);

}

.score-modal-cancel {

    background: #f0f0f0;

    color: #888;

}

.score-modal-cancel:hover {

    background: #e0e0e0;

}



.score-action-btn:hover {

    transform: translateY(-2px);

    box-shadow: 0 4px 10px rgba(0, 153, 255, 0.4);

}



        /* ===== v30 加分扣分快捷升级样式 ===== */

        .score-modal-projects {

            display: flex;

            flex-wrap: wrap;

            gap: 8px;

            padding: 4px 18px 10px;

            justify-content: center;

        }

        .score-pill {

            border: 1.5px solid #e0e6ef;

            background: #f5f8ff;

            color: #2b3a55;

            border-radius: 999px;

            padding: 7px 14px;

            font-size: 13px;

            cursor: pointer;

            transition: all .15s ease;

            font-family: inherit;

        }

        .score-pill:hover { border-color: #4dabf7; }

        .score-pill.active {

            background: linear-gradient(135deg, #4dabf7, #3b8eea);

            color: #fff;

            border-color: #3b8eea;

            box-shadow: 0 3px 10px rgba(77,171,247,.4);

        }

        .score-modal-presets {

            display: flex;

            justify-content: center;

            gap: 14px;

            padding: 6px 18px 4px;

        }

        .score-preset {

            border: none;

            border-radius: 12px;

            padding: 14px 0;

            min-width: 110px;

            font-size: 18px;

            font-weight: 700;

            cursor: pointer;

            font-family: inherit;

            transition: transform .12s ease, box-shadow .12s ease;

        }

        .score-preset.neg { background: #fff0f0; color: #e03131; }

        .score-preset.pos { background: #ecfdf3; color: #2f9e44; }

        .score-preset.dft { border: 2px solid currentColor; }

        .score-preset .dft-tag {

            display: block;

            font-size: 10px;

            font-weight: 500;

            line-height: 1;

            margin-top: 2px;

            opacity: .75;

        }

        .score-preset:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(0,0,0,.12); }

        .score-preset:active { transform: scale(.95); }

        .score-modal-custom {

            display: flex;

            align-items: center;

            gap: 8px;

            padding: 8px 18px 4px;

        }

        .score-modal-custom .score-modal-input { flex: 1; }

        .score-modal-custom .score-modal-confirm { flex: 0 0 auto; padding: 8px 18px; }

        .quick-score-row {

            display: flex;

            align-items: center;

            justify-content: center;

            gap: 10px;

            margin: 8px 12px 2px;

        }

        .quick-score-btn {

            width: 38px;

            height: 38px;

            border-radius: 50%;

            border: none;

            font-size: 22px;

            font-weight: 700;

            cursor: pointer;

            color: #fff;

            transition: transform .12s ease, box-shadow .12s ease;

            font-family: inherit;

        }

        .quick-score-btn.qs-plus { background: linear-gradient(135deg,#51cf66,#37b24d); }

        .quick-score-btn.qs-minus { background: linear-gradient(135deg,#ff8787,#fa5252); }

        .quick-score-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(0,0,0,.18); }

        .quick-score-btn:active { transform: scale(.92); }

        .quick-score-hint { font-size: 12px; color: #9aa5b8; }

        .student-actions .quick-score-btn { width: 34px; height: 34px; font-size: 19px; }



        /* ===== 随机点名趣味升级样式 ===== */



        .random-call-container-inner {

            position: relative;

            width: 100%;

        }



        /* 名牌卡片槽位 */

        .random-name-slot {

            display: inline-flex;

            align-items: center;

            justify-content: center;

            min-width: 120px;

            min-height: 70px;

            margin: 8px;

            font-size: 1.8em;

            font-weight: bold;

            border-radius: 20px;

            transition: all 0.15s ease;

        }



        .random-name-slot .slot-text {

            transition: transform 0.08s ease;

        }



        /* 滚动中的槽位 */

        .rolling-slot {

            background: linear-gradient(135deg, #667eea, #764ba2);

            color: #fff;

            box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);

            animation: slotShake 0.1s infinite alternate;

        }



        @keyframes slotShake {

            0% { transform: translateY(-2px); }

            100% { transform: translateY(2px); }

        }



        /* 滚动激活时的显示容器 */

        .random-call-display.rolling-active {

            animation: bgPulse 0.5s ease-in-out infinite alternate;

        }



        @keyframes bgPulse {

            0% { background: rgba(142, 68, 173, 0.05); }

            100% { background: rgba(142, 68, 173, 0.15); }

        }



        /* 选中后的名牌卡片 */

        .selected-name-card {

            background: linear-gradient(135deg, #ff6b6b, #ff922b);

            color: #fff;

            padding: 12px 24px;

            border-radius: 18px;

            font-size: 1.6em;

            font-weight: bold;

            box-shadow: 0 8px 25px rgba(255, 107, 107, 0.5);

            display: inline-flex;

            align-items: center;

            gap: 10px;

            border: 3px solid #fff;

            position: relative;

        }



        .selected-name-card .card-avatar {

            width: 36px;

            height: 36px;

            border-radius: 50%;

            background: rgba(255,255,255,0.3);

            color: #fff;

            font-size: 16px;

            font-weight: 700;

            display: flex;

            align-items: center;

            justify-content: center;

            flex-shrink: 0;

        }



        .selected-name-card .card-name {

            text-shadow: 0 2px 4px rgba(0,0,0,0.3);

        }



        /* 根据选中人数自适应缩放 */

        .random-call-display[data-selected="2"] .selected-name-card {

            font-size: 1.2em;

            padding: 8px 18px;

            border-radius: 14px;

        }

        .random-call-display[data-selected="3"] .selected-name-card,

        .random-call-display[data-selected="4"] .selected-name-card {

            font-size: 1.0em;

            padding: 6px 14px;

            border-radius: 12px;

        }

        .random-call-display[data-selected="5"] .selected-name-card,

        .random-call-display[data-selected="6"] .selected-name-card,

        .random-call-display[data-selected="7"] .selected-name-card,

        .random-call-display[data-selected="8"] .selected-name-card {

            font-size: 0.85em;

            padding: 5px 10px;

            border-radius: 10px;

        }

        .random-call-display[data-selected="2"] .selected-name-card .card-avatar,

        .random-call-display[data-selected="3"] .selected-name-card .card-avatar,

        .random-call-display[data-selected="4"] .selected-name-card .card-avatar {

            width: 28px;

            height: 28px;

            font-size: 13px;

        }

        .random-call-display[data-selected="5"] .selected-name-card .card-avatar,

        .random-call-display[data-selected="6"] .selected-name-card .card-avatar,

        .random-call-display[data-selected="7"] .selected-name-card .card-avatar,

        .random-call-display[data-selected="8"] .selected-name-card .card-avatar {

            width: 24px;

            height: 24px;

            font-size: 11px;

        }



        /* 弹跳入场动画 */

        @keyframes nameBounceIn {

            0% { transform: scale(0.3); opacity: 0; }

            50% { transform: scale(1.15); }

            70% { transform: scale(0.95); }

            100% { transform: scale(1); opacity: 1; }

        }



        /* 边框闪烁动画 */

        @keyframes borderGlow {

            0%, 100% { box-shadow: 0 8px 25px rgba(255, 107, 107, 0.5); }

            50% { box-shadow: 0 8px 35px rgba(255, 107, 107, 0.9), 0 0 30px rgba(255, 215, 0, 0.6); }

        }



        /* 彩带粒子容器 */

        .confetti-container {

            position: absolute;

            top: 0;

            left: 0;

            width: 100%;

            height: 100%;

            pointer-events: none;

            overflow: hidden;

            z-index: 10;

        }



        .confetti-particle {

            position: absolute;

            top: -10px;

            opacity: 0.9;

            animation: confettiFall linear forwards;

        }



        @keyframes confettiFall {

            0% { transform: translateY(0) rotate(0deg); opacity: 1; }

            100% { transform: translateY(400px) rotate(720deg); opacity: 0; }

        }



        /* 点名历史记录 */

        .call-history-section {

            margin-top: 25px;

            padding: 15px;

            background: rgba(255,255,255,0.9);

            border-radius: 15px;

            border: 2px solid #dee2e6;

            max-height: 250px;

            overflow-y: auto;

        }



        .history-title {

            font-size: 16px;

            font-weight: bold;

            color: #495057;

            margin-bottom: 10px;

            text-align: left;

            padding-bottom: 8px;

            border-bottom: 1px solid #e9ecef;

        }



        .call-history-list .history-item {

            display: flex;

            align-items: center;

            gap: 12px;

            padding: 8px 12px;

            margin: 4px 0;

            background: linear-gradient(90deg, #f8f9fa, #fff);

            border-radius: 8px;

            font-size: 14px;

            animation: historySlideIn 0.3s ease-out forwards;

            opacity: 0;

        }



        @keyframes historySlideIn {

            0% { transform: translateX(-20px); opacity: 0; }

            100% { transform: translateX(0); opacity: 1; }

        }



        .history-time {

            color: #868e96;

            font-family: monospace;

            font-size: 12px;

            min-width: 60px;

        }



        .history-names {

            color: #495057;

            font-weight: 600;

            flex: 1;

        }



        .history-type {

            background: linear-gradient(135deg, #667eea, #764ba2);

            color: #fff;

            padding: 2px 8px;

            border-radius: 10px;

            font-size: 11px;

            font-weight: bold;

            white-space: nowrap;

        }



        /* 响应式调整 */

        @media (max-width: 768px) {

            .random-name-slot {

                min-width: 90px;

                min-height: 55px;

                font-size: 1.3em;

                margin: 5px;

            }

            .selected-name-card {

                font-size: 1.2em;

                padding: 8px 16px;

            }

            .selected-name-card .card-avatar {

                width: 28px;

                height: 28px;

                font-size: 13px;

            }

        }





/* ========== 积分主界面UI优化 ========== */



/* 顶部操作按钮美化 */

.controls button {

    padding: 10px 24px;

    border: none;

    border-radius: 10px;

    cursor: pointer;

    font-weight: 700;

    font-size: 14px;

    color: #fff;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);

    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);

    margin: 0 4px;

}

.controls button:hover {

    transform: translateY(-3px);

    box-shadow: 0 8px 25px rgba(102, 126, 234, 0.6);

}

.controls button:active {

    transform: translateY(-1px);

    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);

}



/* 批量清除按钮保持红色警示色调 */

.controls button.delete-btn {

    background: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%) !important;

    box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4) !important;

}

.controls button.delete-btn:hover {

    box-shadow: 0 8px 25px rgba(255, 107, 107, 0.6) !important;

}

/* 删除按钮 - 卡片右上角 */

.pet-delete-topright {

    position: absolute;

    top: 10px;

    right: 10px;

    z-index: 10;

    width: 30px;

    height: 30px;

    border: none;

    border-radius: 8px;

    background: rgba(255, 255, 255, 0.25);

    backdrop-filter: blur(4px);

    color: #fff;

    font-size: 15px;

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

    transition: all 0.25s ease;

    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);

}

.pet-delete-topright:hover {

    background: rgba(255, 71, 87, 0.7);

    box-shadow: 0 4px 14px rgba(255, 71, 87, 0.4);

    transform: scale(1.1);

}



/* ===== 宠物卡片信息区布局优化 ===== */

.pet-card-info {

    position: relative;

    padding-bottom: 40px; /* 为右下角小组区留空间 */

}



/* Row1: 学生姓名 — 居中，可点击查看积分历史 */

.pet-info-name-row {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 100%;

    padding: 6px 0 2px 0;

    cursor: pointer;

}



.pet-student-name {

    font-weight: 700;

    font-size: 1.1em;

    color: #2c3e50;

    transition: color 0.2s;

}



.pet-info-name-row:hover .pet-student-name {

    color: #4a6cf7;

    text-decoration: underline;

}



/* Row2: 种族 + 名称 + LV — 居中 */

.pet-info-race-row {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    width: 100%;

    padding: 4px 0 2px 0;

}



.pet-race-label {

    font-size: 0.82em;

    color: #7a8ba6;

    font-weight: 500;

}



.pet-race-name {

    font-weight: 700;

    font-size: 1.05em;

    color: #2c3e50;

    animation: pet-name-breathe 3s ease-in-out infinite;

}



.pet-level-badge {

    font-size: 0.78em;

    background: linear-gradient(135deg, #667eea, #764ba2);

    color: #fff;

    padding: 2px 8px;

    border-radius: 10px;

    font-weight: 700;

    letter-spacing: 0.5px;

    animation: pet-level-breathe 3s ease-in-out infinite;

}



/* Row3: 积分 — 醒目居中，金色渐变 */

.pet-score-row {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    width: 100%;

    margin: 6px 0 4px 0;

}



.pet-score-icon {

    font-size: 1.3em;

}



.pet-score-value {

    font-size: 1.6em;

    font-weight: 800;

    background: linear-gradient(135deg, #f6d365 0%, #fda085 50%, #f093fb 100%);

    -webkit-background-clip: text;

    -webkit-text-fill-color: transparent;

    background-clip: text;

    position: relative;

    animation: pet-score-breathe 3s ease-in-out infinite;

}



/* 积分下划线装饰 */

.pet-score-value::after {

    content: '';

    position: absolute;

    bottom: -4px;

    left: 50%;

    transform: translateX(-50%);

    width: 70%;

    height: 3px;

    background: linear-gradient(90deg, #f6d365, #fda085, #f6d365);

    border-radius: 2px;

}



/* Row4: 小组 — 右下角定位 */

.pet-group-row {

    position: absolute;

    bottom: 10px;

    right: 14px;

    display: flex;

    align-items: center;

    gap: 6px;

    font-size: 0.85em;

}



.pet-group-label {

    font-size: 0.85em;

    color: #7a8ba6;

    font-weight: 500;

}





        /* ===== 随机点名增强 CSS ===== */



        /* 已点/未点计数 */



        .random-call-counter {



            text-align: center;



            font-size: 13px;



            color: #666;



            margin: 8px 0 4px;



            padding: 4px 12px;



            background: rgba(255,215,79,0.15);



            border-radius: 12px;



            display: inline-block;



            width: 100%;



            box-sizing: border-box;



            min-height: 20px;



        }



        /* 锁定按钮 */



        .lock-slot-btn {



            position: absolute;



            top: -6px;



            right: -4px;



            background: #ff9800;



            color: white;



            font-size: 10px;



            padding: 2px 6px;



            border-radius: 8px;



            cursor: pointer;



            z-index: 2;



            opacity: 0;



            transition: opacity 0.2s;



        }



        .rolling-slot:hover .lock-slot-btn,



        .selected-name-card:hover .lock-slot-btn {



            opacity: 1;



        }



        .rolling-slot.locked {



            border-color: #ff9800 !important;



            background: rgba(255,152,0,0.08) !important;



        }



        /* 换一个按钮 */



        .swap-btn {



            position: absolute;



            top: 4px;



            right: 4px;



            width: 22px;



            height: 22px;



            background: #2196F3;



            color: white;



            border-radius: 50%;



            font-size: 14px;



            line-height: 22px;



            text-align: center;



            cursor: pointer;



            z-index: 2;



            opacity: 0;



            transition: opacity 0.2s, transform 0.2s;



        }



        .selected-name-card:hover .swap-btn {



            opacity: 1;



        }



        .swap-btn:hover {



            transform: rotate(180deg);



            background: #1565C0;



        }



        /* 跳过按钮 */



        .random-skip-btn {



            display: none;



            background: #ff5722;



            color: white;



            border: none;



            padding: 6px 16px;



            border-radius: 15px;



            font-size: 13px;



            cursor: pointer;



            margin: 8px 4px;



            transition: background 0.2s;



        }



        .random-skip-btn:hover {



            background: #e64a19;



        }



        .random-skip-btn:disabled {



            background: #ccc;



            cursor: not-allowed;



        }



        /* 全部点完提示 */



        .random-call-all-called {



            display: none;



            text-align: center;



            padding: 12px;



            margin: 8px 0;



            background: linear-gradient(135deg, #fff3e0, #ffe0b2);



            border: 2px dashed #ff9800;



            border-radius: 12px;



            color: #e65100;



            font-size: 14px;



            animation: pulseWarning 2s ease-in-out infinite;



        }



        @keyframes pulseWarning {



            0%, 100% { opacity: 1; }



            50% { opacity: 0.7; }



        }



        /* 重新点名按钮区 */



        .random-reset-area {



            text-align: center;



            margin-top: 8px;



        }



        /* 积分控件已选名称 */



        .random-score-controls {



            display: none;



            padding: 12px;



            margin: 10px 0;



            background: #f9f9f9;



            border-radius: 10px;



        }



        .score-selected-names {



            font-size: 13px;



            color: #555;



            margin-bottom: 8px;



            padding: 6px 10px;



            background: #fff;



            border-radius: 6px;



            border-left: 3px solid #ffd54f;



        }





/* ===== 班级选择器（活泼可爱风） ===== */

.class-selector {

    position: relative;

    display: inline-flex;

    align-items: center;

    margin-right: 16px;

    z-index: 1200;

}

.class-selector-trigger {

    display: flex;

    align-items: center;

    gap: 6px;

    padding: 8px 14px;

    background: linear-gradient(135deg, #4dabf7 0%, #748ffc 100%);

    border-radius: 12px;

    color: #fff;

    font-weight: bold;

    cursor: pointer;

    box-shadow: 0 3px 10px rgba(77, 171, 247, 0.4);

    transition: transform 0.15s ease, box-shadow 0.15s ease;

    user-select: none;

    white-space: nowrap;

}

.class-selector-trigger:hover {

    transform: translateY(-2px);

    box-shadow: 0 6px 16px rgba(77, 171, 247, 0.55);

}

.class-selector .class-icon { font-size: 18px; }

.class-selector .class-name { font-size: 15px; max-width: 160px; overflow: hidden; text-overflow: ellipsis; }

.class-selector .class-arrow { font-size: 11px; opacity: 0.85; }



.class-dropdown {

    position: absolute;

    top: calc(100% + 8px);

    left: 0;

    min-width: 220px;

    background: #fff;

    border-radius: 12px;

    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);

    padding: 10px;

    z-index: 1300;

}

.class-list { max-height: 320px; overflow-y: auto; }

.class-list-item {

    display: flex;

    align-items: center;

    gap: 8px;

    padding: 9px 10px;

    border-radius: 10px;

    cursor: pointer;

    transition: background 0.12s ease;

    color: #333;

}

.class-list-item:hover { background: #e7f1ff; }

.class-list-item.active {

    background: linear-gradient(135deg, #d0ebff 0%, #b2d8ff 100%);

    font-weight: bold;

    color: #1971c2;

}

.class-list-item .ci-icon { font-size: 18px; }

.class-list-item .ci-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.class-list-item .ci-edit {

    font-size: 12px;

    color: #868e96;

    padding: 2px 6px;

    border-radius: 6px;

}

.class-list-item .ci-edit:hover { background: #ffd8d8; color: #e03131; }

.class-add-btn {

    width: 100%;

    margin-top: 8px;

    padding: 9px;

    border: none;

    border-radius: 10px;

    background: linear-gradient(135deg, #51cf66 0%, #37b24d 100%);

    color: #fff;

    font-weight: bold;

    cursor: pointer;

    box-shadow: 0 3px 10px rgba(55, 178, 77, 0.35);

    transition: transform 0.15s ease;

}

.class-add-btn:hover { transform: translateY(-2px); }



/* 班级模态框 */

.class-modal-content { max-width: 460px; }

.class-modal-content .form-group { margin-bottom: 14px; }

.class-modal-content label { display: block; margin-bottom: 5px; font-weight: bold; color: #495057; }

.class-modal-content input[type="text"] {

    width: 100%;

    padding: 9px 12px;

    border: 2px solid #dee2e6;

    border-radius: 10px;

    font-size: 14px;

    box-sizing: border-box;

}

.class-modal-content input[type="text"]:focus { border-color: #4dabf7; outline: none; }

.icon-picker, .color-picker { display: flex; flex-wrap: wrap; gap: 8px; }

.icon-option {

    font-size: 22px;

    width: 42px;

    height: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 10px;

    background: #f1f3f5;

    cursor: pointer;

    border: 2px solid transparent;

    transition: all 0.12s ease;

}

.icon-option:hover { background: #e7f1ff; }

.icon-option.selected { border-color: #4dabf7; background: #d0ebff; }

.color-option {

    width: 34px;

    height: 34px;

    border-radius: 50%;

    cursor: pointer;

    border: 3px solid transparent;

    transition: transform 0.12s ease;

}

.color-option:hover { transform: scale(1.12); }

.color-option.selected { border-color: #343a40; }

.modal-actions { display: flex; gap: 10px; margin-top: 18px; }

.class-save-btn, .class-cancel-btn, .class-delete-confirm-btn {

    flex: 1;

    padding: 10px;

    border: none;

    border-radius: 10px;

    font-weight: bold;

    cursor: pointer;

    transition: transform 0.15s ease;

}

.class-save-btn { background: linear-gradient(135deg, #4dabf7 0%, #748ffc 100%); color: #fff; }

.class-cancel-btn { background: #e9ecef; color: #495057; }

.class-delete-confirm-btn { background: linear-gradient(135deg, #ff6b6b 0%, #f03e3e 100%); color: #fff; }

.class-save-btn:hover, .class-cancel-btn:hover, .class-delete-confirm-btn:hover { transform: translateY(-2px); }



/* 暗色模式兼容 */

.dark-mode .class-dropdown { background: #2b2b3a; }

.dark-mode .class-list-item { color: #e9ecef; }

.dark-mode .class-list-item:hover { background: #3a3a4d; }

.dark-mode .class-modal-content label { color: #ced4da; }

.dark-mode .class-modal-content input[type="text"] { background: #2b2b3a; color: #fff; border-color: #495057; }

.dark-mode .icon-option { background: #3a3a4d; }

.dark-mode .class-cancel-btn { background: #495057; color: #e9ecef; }



/* ===== 平板 & 手机性能优化 ===== */



/* 全局：用户偏好减少动效时关闭所有非必要动画 */

@media (prefers-reduced-motion: reduce) {

  *, *::before, *::after {

    animation-duration: 0.01ms !important;

    animation-iteration-count: 1 !important;

    transition-duration: 0.01ms !important;

  }

}



/* 平板及以下 (≤1024px) — 简化过渡 */

@media (max-width: 1024px) {

  .student-card, .master-card {

    transition: transform 0.2s ease, box-shadow 0.2s ease;

  }

  .student-card:hover, .master-card:hover {

    transform: translateY(-2px);

  }

}



/* 手机 & 小平板 (≤768px) — 关闭装饰性动画，优化渲染 */

@media (max-width: 768px) {

  /* 卡片装饰光效 — 关闭 */

  .student-card::before,

  .student-card::after {

    animation: none !important;

    display: none;

  }



  /* 宠物呼吸动画 — 降频为 8s 大幅减少 repaint */

  .pet-hero-image-wrapper {

    animation: pet-hero-breathe 8s ease-in-out infinite;

  }



  /* 卡片内文字/徽标动画 — 关闭 */

  .pet-race-name,

  .pet-level-badge,

  .pet-score-value,

  .pet-grad-icon-breathe {

    animation: none !important;

  }



  /* 卡片过渡 — 只用 transform */

  .student-card {

    transition: transform 0.2s ease;

  }



  /* GPU 合成提示 — 卡片本体 */

  .student-card,

  .pet-hero-container,

  .pet-hero-image-wrapper {

    will-change: transform;

  }



  /* 卡片网格 — 减少间距 */

  .students-grid {

    gap: 8px;

    padding: 4px;

  }

  .student-card {

    padding: 10px;

  }



  /* 宠物容器移动端微调 */

  .pet-hero-container {

    width: 75%;

    aspect-ratio: 5 / 4;

  }



  /* 信息区紧凑化 */

  .pet-student-name { font-size: 0.95em; }

  .pet-race-name { font-size: 0.88em; }

  .pet-level-badge { font-size: 0.7em; }

  .pet-score-value { font-size: 1.3em; }

  .pet-score-row { margin: 3px 0 2px 0; }

}



/* 小手机 (≤480px) — 极致精简 */

@media (max-width: 480px) {

  .students-grid {

    grid-template-columns: repeat(2, 1fr);

    gap: 6px;

  }

  .student-card {

    padding: 6px;

    border-radius: 10px;

  }

  .pet-hero-container {

    width: 80%;

    aspect-ratio: 4 / 3;

    margin-bottom: 4px;

  }

  .pet-hero-image-wrapper {

    animation: none;

  }

  .pet-student-name { font-size: 0.85em; }

  .pet-race-name { font-size: 0.78em; }

  .pet-info-race-row { gap: 4px; }

  .pet-score-value { font-size: 1.15em; }

  .pet-group-row { display: none; }

  .pet-card-info { padding-bottom: 0; }



  /* 关闭所有非必要的 box-shadow */

  .student-card {

    box-shadow: 0 1px 4px rgba(0,0,0,0.06);

  }

  .student-card:hover {

    box-shadow: 0 2px 8px rgba(0,0,0,0.08);

  }

}

 * v39 萌宠领养中心 — 专业重设


 * 顶部 hero + 工具栏 + 卡片网格；按钮固定在卡片底部居中


 * 全部以 #petAdoptionModal.v39-adoption 包裹，避免影响其它页


 * =================================================== */





#petAdoptionModal.v39-adoption { font-family: var(--font-sans, -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif); }





/* === 容器重设：去阴影 + 圆角，padding 清零（hero 自带） === */


#petAdoptionModal.v39-adoption .modal-content.fullscreen{


    background: #f4f6fb !important;


    box-shadow: 0 30px 80px rgba(15,23,42,.45) !important;


    padding: 0 !important;


    overflow: hidden;


    display: flex; flex-direction: column;


    max-height: 92vh;


}


#petAdoptionModal.v39-adoption .modal-body{


    padding: 0 !important;


    background: #f4f6fb;


    flex: 1; overflow: auto;


}





/* === 顶部 Hero 头 === */


.v39-hero{


    position: relative;


    margin: 0;


    padding: 32px 40px 60px;


    color: #fff;


    background:


        radial-gradient(circle at 18% 20%, rgba(255,255,255,0.22) 0, transparent 38%),


        radial-gradient(circle at 82% 80%, rgba(255,255,255,0.16) 0, transparent 42%),


        linear-gradient(135deg, #5b6cf0 0%, #7c3aed 55%, #a855f7 100%);


    box-shadow: 0 14px 40px rgba(91,108,240,0.30);


    flex-shrink: 0;


}


.v39-hero::after{


    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 30px;


    background: linear-gradient(to bottom, transparent, #f4f6fb);


    pointer-events: none;


}


.v39-hero-row{ display: flex; align-items: center; justify-content: space-between; gap: 24px; position: relative; z-index: 2; }


.v39-hero-title{ margin: 0; font-size: 30px; font-weight: 700; letter-spacing: 1px; }


.v39-hero-sub{ margin: 8px 0 0; font-size: 14px; opacity: 0.92; letter-spacing: 0.5px; }


.v39-hero-close{


    width: 40px; height: 40px; border-radius: 50%; border: none;


    background: rgba(255,255,255,0.18); color: #fff; font-size: 22px; line-height: 1; cursor: pointer;


    transition: all 0.2s;


    display: inline-flex; align-items: center; justify-content: center;


}


.v39-hero-close:hover{ background: rgba(255,255,255,0.32); transform: rotate(90deg); }





/* === 提示条 === */


.v39-hint{


    margin: 16px 32px 0; padding: 12px 16px; border-radius: 12px;


    background: linear-gradient(135deg, #fff7ed, #ffedd5);


    color: #9a3412; font-size: 13px; font-weight: 600; text-align: center;


    border: 1px solid #fed7aa;


    box-shadow: 0 2px 10px rgba(251,146,60,0.08);


    position: relative; z-index: 3;


}





/* === 工具栏 === */


.v39-toolbar{


    display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0;


    margin: 18px 32px 0;


    background: #fff;


    border-radius: 16px;


    box-shadow: 0 10px 30px rgba(15,23,42,0.10);


    position: relative; z-index: 3;


    overflow: hidden;


}


.v39-toolbar-cell{


    padding: 16px 20px;


    display: flex; align-items: center; gap: 12px;


    border-right: 1px solid #eef0f6;


    min-width: 0;


}


.v39-toolbar-cell:last-child{ border-right: none; }


.v39-toolbar-cell .v39-icon{


    width: 36px; height: 36px; border-radius: 10px;


    background: linear-gradient(135deg, #eef2ff, #e0e7ff);


    color: #4f46e5; font-size: 18px;


    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;


}


.v39-toolbar-cell .v39-val{ flex: 1; min-width: 0; }


.v39-toolbar-cell .v39-label{ font-size: 11px; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.6px; font-weight: 700; margin-bottom: 2px; }


.v39-toolbar-cell select,


.v39-toolbar-cell input{


    width: 100%; border: none; background: transparent; outline: none;


    font-size: 15px; color: #1f2937; font-weight: 700;


    font-family: inherit; padding: 0;


    appearance: none;


    text-overflow: ellipsis;


}


.v39-toolbar-cell select{ cursor: pointer;


    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3e%3cpath fill='%2394a3b8' d='M0 0l5 6 5-6z'/%3e%3c/svg%3e");


    background-repeat: no-repeat; background-position: right 2px center; padding-right: 16px;


}





/* === 稀有度筛选条 === */


.v39-rarity{


    display: flex; gap: 8px; flex-wrap: wrap;


    padding: 18px 32px 0;


}


.v39-rarity button{


    border: 1px solid #d8dde8; background: #fff; color: #475569;


    padding: 6px 14px; border-radius: 999px;


    font-size: 13px; font-weight: 600; cursor: pointer;


    transition: all 0.2s; font-family: inherit;


}


.v39-rarity button:hover{ border-color: #6366f1; color: #4338ca; }


.v39-rarity button.active{ color: #fff; }


.v39-rarity button.active.all{ background: #4f46e5; border-color: #4f46e5; }


.v39-rarity button.active.common{ background: #64748b; border-color: #64748b; }


.v39-rarity button.active.uncommon{ background: #22c55e; border-color: #22c55e; }


.v39-rarity button.active.rare{ background: #0ea5e9; border-color: #0ea5e9; }


.v39-rarity button.active.epic{ background: #8b5cf6; border-color: #8b5cf6; }


.v39-rarity button.active.legendary{ background: #f59e0b; border-color: #f59e0b; }





/* === 网格 === */


.v39-grid{


    display: grid;


    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));


    gap: 22px;


    padding: 18px 32px 36px;


}





/* === 单卡 === */


.v39-card{


    background: #fff;


    border-radius: 16px;


    box-shadow: 0 2px 8px rgba(15,23,42,0.06);


    overflow: hidden;


    display: flex; flex-direction: column;


    border: 1px solid #eef0f6;


    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;


    position: relative;


    animation: v39-fadeIn 0.35s ease-out both;


}


@keyframes v39-fadeIn { from { opacity: 0; transform: translateY(10px);} to { opacity: 1; transform: translateY(0);} }


.v39-card:hover{


    box-shadow: 0 18px 40px rgba(15,23,42,0.14);


    border-color: #c7d2fe;


    transform: none;


}


.v39-card-bar{ height: 4px; flex-shrink: 0; }


.v39-card.common .v39-card-bar{ background: linear-gradient(90deg, #94a3b8, #64748b); }


.v39-card.uncommon .v39-card-bar{ background: linear-gradient(90deg, #86efac, #22c55e); }


.v39-card.rare .v39-card-bar{ background: linear-gradient(90deg, #7dd3fc, #0ea5e9); }


.v39-card.epic .v39-card-bar{ background: linear-gradient(90deg, #c4b5fd, #8b5cf6); }


.v39-card.legendary .v39-card-bar{ background: linear-gradient(90deg, #fcd34d, #f59e0b); }





.v39-card-badge{


    position: absolute; top: 12px; right: 12px; z-index: 3;


    font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px;


    background: rgba(255,255,255,0.95); color: #1f2937;


    box-shadow: 0 2px 6px rgba(15,23,42,0.10);


    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);


    pointer-events: none;


}


.v39-card-evo{


    position: absolute; top: 12px; left: 12px; z-index: 3;


    font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 999px;


    background: rgba(15,23,42,0.68); color: #fff;


    pointer-events: none;


}


.v39-card-image{


    height: 180px; display: flex; align-items: center; justify-content: center;


    font-size: 96px;


    position: relative; overflow: hidden;


    flex-shrink: 0;


}


.v39-card.common .v39-card-image{ background: linear-gradient(135deg, #f1f5f9, #e2e8f0); }


.v39-card.uncommon .v39-card-image{ background: linear-gradient(135deg, #dcfce7, #bbf7d0); }


.v39-card.rare .v39-card-image{ background: linear-gradient(135deg, #e0f2fe, #bae6fd); }


.v39-card.epic .v39-card-image{ background: linear-gradient(135deg, #ede9fe, #ddd6fe); }


.v39-card.legendary .v39-card-image{ background: linear-gradient(135deg, #fef3c7, #fde68a); }


.v39-card-image img{ max-width: 70%; max-height: 70%; object-fit: contain; filter: drop-shadow(0 8px 18px rgba(15,23,42,0.18)); }


.v39-card-image .v39-emoji{ line-height: 1; filter: drop-shadow(0 8px 18px rgba(15,23,42,0.18)); }





.v39-card-body{ padding: 16px 18px 12px; flex: 1; }


.v39-card-name{ margin: 0 0 8px; font-size: 18px; font-weight: 700; color: #1f2937; letter-spacing: 0.3px; }


.v39-card-meta{ display: flex; gap: 6px; align-items: center; margin-bottom: 10px; }


.v39-card-chip{


    font-size: 11px; padding: 3px 10px; border-radius: 6px;


    background: #eef2ff; color: #4338ca; font-weight: 600;


}


.v39-card-text{


    font-size: 13px; line-height: 1.55; color: #64748b;


    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;


    overflow: hidden; min-height: 40px;


    margin: 0;


}





/* === 关键：底部固定按钮区，按钮居中 === */


.v39-card-footer{


    padding: 14px 18px 18px;


    margin-top: 8px;


    border-top: 1px solid #f1f3f9;


    background: #fafbfc;


    display: flex; justify-content: center; align-items: center;


}


.v39-adopt-btn{


    display: inline-flex; align-items: center; justify-content: center; gap: 8px;


    min-width: 180px; padding: 11px 32px;


    border: none; border-radius: 999px;


    font-size: 14px; font-weight: 700; letter-spacing: 1px;


    color: #fff; cursor: pointer;


    background: linear-gradient(135deg, #6366f1, #8b5cf6);


    box-shadow: 0 6px 18px rgba(99,102,241,0.35);


    transition: transform 0.2s ease, box-shadow 0.2s ease;


    font-family: inherit;


    user-select: none;


    -webkit-tap-highlight-color: transparent;
    position: static !important;
    top: auto !important; left: auto !important;
    transform: none !important;



}


.v39-adopt-btn:hover{


    transform: none;


    box-shadow: 0 10px 24px rgba(99,102,241,0.55);


    filter: brightness(1.08);


}


.v39-adopt-btn:active{ transform: none !important; }


.v39-card.common .v39-adopt-btn{ background: linear-gradient(135deg, #64748b, #475569); box-shadow: 0 6px 18px rgba(100,116,139,0.30); }


.v39-card.uncommon .v39-adopt-btn{ background: linear-gradient(135deg, #22c55e, #16a34a); box-shadow: 0 6px 18px rgba(34,197,94,0.35); }


.v39-card.rare .v39-adopt-btn{ background: linear-gradient(135deg, #0ea5e9, #0284c7); box-shadow: 0 6px 18px rgba(14,165,233,0.35); }


.v39-card.epic .v39-adopt-btn{ background: linear-gradient(135deg, #8b5cf6, #6d28d9); box-shadow: 0 6px 18px rgba(139,92,246,0.35); }


.v39-card.legendary .v39-adopt-btn{ background: linear-gradient(135deg, #f59e0b, #d97706); box-shadow: 0 6px 18px rgba(245,158,11,0.40); }


.v39-adopt-btn:disabled{


    background: #cbd5e1 !important; box-shadow: none !important; cursor: not-allowed; color: #fff;


}





/* 已领养状态 */


.v39-status-empty{


    padding: 60px 20px; text-align: center; color: #64748b;


}


.v39-status-empty h3{ margin: 0 0 8px; font-size: 22px; font-weight: 700; color: #1f2937; }


.v39-status-empty p{ margin: 0; font-size: 14px; }





/* 响应式：窄屏下工具栏堆叠 */


@media (max-width: 860px) {


    #petAdoptionModal.v39-adoption .modal-content.fullscreen{ max-height: 100vh; }


    .v39-hero{ padding: 24px 20px 50px; }


    .v39-hero-title{ font-size: 24px; }


    .v39-toolbar{ grid-template-columns: 1fr; margin: 14px 16px 0; }


    .v39-toolbar-cell{ border-right: none; border-bottom: 1px solid #eef0f6; }


    .v39-toolbar-cell:last-child{ border-bottom: none; }


    .v39-hint{ margin: 14px 16px 0; }


    .v39-rarity{ padding: 14px 16px 0; }


    .v39-grid{ padding: 14px 16px 24px; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }


}



/* ===== 毕业收藏模块（21版补丁，对齐19/20版小图标样式） ===== */
.pet-graduated-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-top: 6px;
    padding: 5px 8px;
    background: linear-gradient(135deg, #f3ecff 0%, #e8dcff 100%);
    border-radius: 10px;
    border: 1px solid #d9c8f5;
}
.pet-graduated-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    color: #8b5cf6;
    white-space: nowrap;
}
.pet-graduate-adopt-btn {
    padding: 4px 10px;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: transform 0.15s;
}
.pet-graduate-adopt-btn:hover {
    transform: scale(1.05);
}
.pet-graduated-gallery {
    margin-top: 6px;
    padding: 6px 8px;
    background: #faf8ff;
    border: 1px solid #ece5fa;
    border-radius: 10px;
}
.pet-graduated-gallery-label {
    font-size: 10px;
    font-weight: 700;
    color: #8b5cf6;
    margin-bottom: 4px;
}
.pet-graduated-icons {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}
.pet-graduated-icon {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 36px;
    cursor: default;
    transition: transform 0.15s;
    animation: pet-grad-icon-breathe 3.5s ease-in-out infinite;
}
.pet-graduated-icon:hover {
    transform: scale(1.2);
    z-index: 2;
}
.pet-graduated-icon img {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #c4b0e8;
    background: #fff;
}
.pet-graduated-icon-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 2px solid #c4b0e8;
    background: #fff;
    font-size: 16px;
}
.pet-graduated-icon-label {
    font-size: 8px;
    color: #7c5cbf;
    text-align: center;
    max-width: 36px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-top: 2px;
    font-family: 'Comic Neue', 'ZCOOL KuaiLe', cursive, sans-serif;
}
@keyframes pet-grad-icon-breathe {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.08); }
}
