*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f5f5;color:#333}.ant-btn-primary:not(:disabled):hover{background:#7c3aed!important;border-color:#7c3aed!important;color:#fff!important;box-shadow:0 2px 8px #7c3aed33!important}.ant-btn-default:not(:disabled):hover{border-color:#d4c4f8!important;color:#7c3aed!important;background:#faf5ff!important}.ant-btn-text:not(:disabled):hover{background:#7c3aed0f!important;color:#7c3aed!important}.ant-btn-link:not(:disabled):hover{color:#7c3aed!important}.ant-btn-primary.ant-btn-background-ghost:not(:disabled):hover{color:#7c3aed!important;border-color:#7c3aed!important;background:transparent!important}.ant-btn-dangerous:not(:disabled):hover{border-color:#fca5a5!important;color:#f87171!important;background:#fff5f5!important}.ant-btn-primary.ant-btn-dangerous:not(:disabled):hover{background:#f87171!important;border-color:#f87171!important;color:#fff!important}.btn-add-student:not(:disabled):hover{background:linear-gradient(135deg,#db2777,#9333ea)!important;border-color:transparent!important;color:#fff!important}.btn-batch-import:not(:disabled):hover{background:linear-gradient(135deg,#db2777,#9333ea)!important;border-color:transparent!important;color:#fff!important}.btn-create:not(:disabled):hover{background:linear-gradient(135deg,#a855f7,#8b5cf6)!important;border-color:transparent!important;color:#fff!important}.btn-cancel:not(:disabled):hover{border-color:#d4c4f8!important;color:#7c3aed!important;background:#faf5ff!important}.btn-cancel-import:not(:disabled):hover{border-color:#d4c4f8!important;color:#7c3aed!important;background:#faf5ff!important}.top-header{background:#7c3aed;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#fff}.top-header-left{display:flex;align-items:center;gap:12px}.top-header-title{font-size:18px;font-weight:600;white-space:nowrap}.top-header-search{flex:1;max-width:400px;margin:0 40px}.top-header-search input{width:100%;height:32px;border:none;border-radius:4px;padding:0 12px;font-size:14px;outline:none}.top-header-right{display:flex;align-items:center;gap:12px}.top-header-nav{display:flex;align-items:center;gap:2px;background:#ffffff1a;border-radius:8px;padding:3px}.top-header-nav-item{display:flex;align-items:center;gap:5px;background:transparent;border:none;color:#ffffffb3;padding:5px 14px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;white-space:nowrap;position:relative}.top-header-nav-item:hover{color:#fff;background:#ffffff1f}.top-header-nav-item--active{color:#7c3aed;background:#fff;box-shadow:0 1px 3px #0000001a;font-weight:600}.top-header-nav-item--active:hover{color:#6d28d9;background:#fff}.top-header-actions{display:flex;align-items:center;gap:4px;margin-left:4px;padding-left:12px;border-left:1px solid rgba(255,255,255,.2)}.top-header-action-btn{display:flex;align-items:center;gap:4px;background:transparent;border:none;color:#ffffffb3;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s ease;white-space:nowrap}.top-header-action-btn:hover{color:#fff;background:#ffffff26}.top-header-action-btn--logout:hover{color:#fca5a5;background:#fca5a51a}.orange-notice-bar{background:linear-gradient(90deg,#fbbf24,#f59e0b);color:#fff;text-align:center;padding:8px 16px;font-size:14px;display:flex;align-items:center;justify-content:center;gap:16px}.orange-notice-bar strong{font-size:15px;letter-spacing:.5px}.orange-notice-bar a{color:#7c3aed;text-decoration:none;cursor:pointer;font-weight:600;padding:2px 12px;background:#ffffffe6;border-radius:12px;transition:all .2s;white-space:nowrap}.orange-notice-bar a:hover{background:#fff;box-shadow:0 2px 8px #7c3aed33}.orange-notice-bar--expired{background:linear-gradient(90deg,#ef4444,#dc2626)}.orange-notice-bar--expired a{background:#ffffffe6;color:#dc2626}.orange-notice-bar--expired a:hover{background:#fff}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-content{flex:1;padding:0}.class-selector-btn{height:32px;border-radius:16px;padding:0 16px;border:1px solid rgba(255,255,255,.3);background:#ffffff26;color:#fff;font-size:14px;font-weight:500;transition:background .2s}.class-selector-btn:hover{background:#fff3;border-color:#ffffff59;color:#fff}.class-selector-btn .anticon{margin-right:4px}.pet-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;padding:20px;background:#fff;border-radius:0 0 8px 8px;margin:0 20px 20px}@media(max-width:1400px){.pet-grid{grid-template-columns:repeat(6,1fr)}}@media(max-width:1024px){.pet-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:768px){.pet-grid{grid-template-columns:repeat(3,1fr);padding:12px;gap:12px}}@media(max-width:480px){.pet-grid{grid-template-columns:repeat(2,1fr);padding:8px;gap:8px}}.pet-grid--mini{grid-template-columns:repeat(9,1fr);gap:8px;padding:12px}.pet-grid--mini .pet-card{padding:6px 4px;border-radius:8px}.pet-grid--mini .pet-card-image{width:100px;height:100px;margin-bottom:4px}.pet-grid--mini .pet-card-student-name{font-size:11px;font-weight:600}.pet-grid--mini .pet-card-pet-name{font-size:10px}.pet-grid--mini .pet-card-info-row,.pet-grid--mini .pet-card-progress{display:none}.pet-grid--mini .pet-card-footer{font-size:10px;padding-top:4px}.pet-grid--mini .pet-card-score,.pet-grid--mini .pet-card-gold{font-size:10px}.pet-grid--mini .pet-card-group{font-size:9px;padding:1px 4px}.pet-grid--mini .pet-card-group-empty{font-size:9px}.pet-grid--mini .pet-card-level{font-size:10px;padding:1px 6px}.pet-grid--mini .pet-card-badge-btn{font-size:10px;padding:3px 0;margin-top:3px}.pet-grid--mini .pet-card-top-action-btn{font-size:10px;padding:1px 4px}@media(max-width:1400px){.pet-grid--mini{grid-template-columns:repeat(7,1fr)}}@media(max-width:1024px){.pet-grid--mini{grid-template-columns:repeat(5,1fr)}}@media(max-width:768px){.pet-grid--mini{grid-template-columns:repeat(4,1fr)}}@media(max-width:480px){.pet-grid--mini{grid-template-columns:repeat(3,1fr)}}.pet-card{position:relative;background:#fff;border-radius:12px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;transition:box-shadow .2s;border:1px solid #eee;overflow:hidden}.pet-card:hover{box-shadow:0 2px 8px #0000000f}.pet-card--moving{border:2px solid #7c3aed;box-shadow:0 0 0 3px #7c3aed33;animation:pet-card-pulse 1.2s ease-in-out infinite}@keyframes pet-card-pulse{0%,to{box-shadow:0 0 0 3px #7c3aed33}50%{box-shadow:0 0 0 6px #7c3aed1a}}.pet-card--move-target{border:2px dashed #7c3aed;cursor:pointer}.pet-card--move-target:hover{box-shadow:0 0 0 4px #7c3aed26}.pet-card-level{position:absolute;top:8px;left:8px;background:#4ade80;color:#fff;font-size:12px;padding:2px 8px;border-radius:4px;font-weight:500;z-index:2}.pet-card-top-actions{position:absolute;top:8px;right:8px;display:flex;gap:4px;z-index:2}.pet-card-top-action-btn{background:#fffffff2;border:none;color:#7c3aed;padding:2px 8px;border-radius:4px;cursor:pointer;font-size:11px;transition:background .2s;display:flex;align-items:center;gap:2px;box-shadow:0 1px 4px #0000001a}.pet-card-top-action-btn:hover{background:#fff}.pet-card-actions{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;z-index:10}.pet-card-action-btn{background:#fff;border:none;color:#333;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px;transition:opacity .2s}.pet-card-action-btn:hover{opacity:.85}.pet-card-image{width:270px;height:270px;margin-bottom:8px;overflow:hidden;position:relative}.pet-card-image img{width:100%;height:100%;object-fit:contain;transition:opacity .3s ease,transform .3s ease}.pet-card-img--fade-out{opacity:0;transform:scale(.9)}.pet-card-img--fade-in{opacity:1;transform:scale(1)}@keyframes levelUpPulse{0%{box-shadow:0 0 #4ade8099}50%{box-shadow:0 0 20px 8px #4ade804d}to{box-shadow:0 0 #4ade8000}}@keyframes levelUpBadge{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}60%{transform:translate(-50%,-50%) scale(1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.pet-card--levelup{animation:levelUpPulse 1.5s ease-out}.pet-card-levelup-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:18px;font-weight:700;padding:8px 20px;border-radius:20px;box-shadow:0 4px 15px #f59e0b80;animation:levelUpBadge .6s ease-out;pointer-events:none;white-space:nowrap}.pet-card--hungry{border-color:#fbbf24!important;box-shadow:0 0 0 1px #fbbf244d,0 2px 8px #fbbf2426!important}.pet-card--hungry .pet-card-progress-fill{background:linear-gradient(90deg,#fbbf24,#f59e0b)!important}.pet-card-hungry-badge{position:absolute;top:8px;right:8px;z-index:10;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:11px;font-weight:600;padding:3px 10px;border-radius:10px;box-shadow:0 2px 8px #f59e0b66;white-space:nowrap;animation:hungryPulse 2s ease-in-out infinite}@keyframes hungryPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}.pet-card-name-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 4px;margin-bottom:4px}.pet-card-student-name{font-size:16px;font-weight:600}.pet-card-pet-name{font-size:13px;color:#7c3aed;display:flex;align-items:center;gap:4px;font-weight:500}.pet-card-edit-icon{font-size:12px;cursor:pointer;color:#7c3aed;transition:opacity .2s}.pet-card-edit-icon:hover{opacity:.7}.pet-card-name-input{width:80px;font-size:12px;font-weight:600;color:#7c3aed;border:1px solid #c4b5fd;border-radius:4px;padding:1px 4px;outline:none;background:#7c3aed0d}.pet-card-name-input:focus{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed26}.pet-card-info-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 4px;margin-bottom:6px}.pet-card-growth-stage{font-size:12px;color:#999}.pet-card-upgrade{font-size:12px;color:#666}.pet-card-upgrade-score{color:#7c3aed;font-weight:600}.pet-card-progress{width:100%;padding:0 4px;margin-bottom:8px}.pet-card-progress-bar{width:100%;height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden}.pet-card-progress-fill{height:100%;background:linear-gradient(90deg,#c084fc,#a78bfa);border-radius:3px;transition:width .3s ease}.pet-card-footer{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:12px;padding-top:8px;border-top:1px solid #eee}.pet-card-score,.pet-card-gold{display:flex;align-items:center;gap:4px;color:#92400e;font-weight:600}.pet-card-group{border:1px solid #ff4d4f;color:#ff4d4f;padding:2px 6px;border-radius:4px;font-size:11px}.pet-card-group-empty{color:#999;font-size:11px;padding:2px 6px}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:40px;background:linear-gradient(180deg,#fff,#fdf2f8);border-radius:12px;margin:20px}.dashboard-empty .empty-icon{margin-bottom:16px;opacity:.8}.dashboard-empty .empty-title{font-size:16px;font-weight:600;color:#374151;margin-bottom:8px}.dashboard-empty .empty-desc{font-size:14px;color:#9ca3af;margin-bottom:20px}.btn-add-student{height:40px;border-radius:20px;background:linear-gradient(135deg,#ec4899,#a855f7);border:none;font-size:15px;padding:0 24px;color:#fff}.btn-add-student:disabled,.btn-add-student.ant-btn-disabled{background:#d1d5db!important;color:#9ca3af!important;cursor:not-allowed!important;opacity:.65;pointer-events:none!important;border:none!important;background-image:none!important}.pet-grid-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fff;margin:20px 20px 0;border-radius:8px 8px 0 0;flex-wrap:wrap;gap:12px}.pet-grid-stats{font-size:14px;color:#666}.pet-grid-stats span{font-weight:500;color:#333}.pet-grid-actions{display:flex;gap:8px;align-items:center}.action-btn-undo{border-radius:6px!important;font-size:12px!important;color:#f87171!important;border-color:#fecaca!important;background:#fef2f2!important;transition:all .2s ease!important}.action-btn-undo:hover:not(:disabled){color:#ef4444!important;border-color:#f87171!important;background:#fee2e2!important}.action-view-toggle{display:flex;background:#f3f4f6;border-radius:6px;padding:2px;gap:0}.action-btn-view{border:none!important;background:transparent!important;color:#6b7280!important;font-size:12px!important;border-radius:4px!important;box-shadow:none!important;transition:all .2s ease!important}.action-btn-view:hover:not(.action-btn-view--active){color:#7c3aed!important;background:#7c3aed0a!important}.action-btn-view--active{background:#fff!important;color:#7c3aed!important;font-weight:600!important;box-shadow:0 1px 2px #0000000f!important}.action-btn-group-toggle{border:1px solid #e5e7eb!important;background:#fff!important;color:#6b7280!important;font-size:12px!important;border-radius:6px!important;box-shadow:none!important;transition:all .2s ease!important;font-weight:500!important}.action-btn-group-toggle:hover:not(.action-btn-group-toggle--active):not(:disabled){color:#7c3aed!important;border-color:#c4b5fd!important;background:#faf5ff!important}.action-btn-group-toggle--active{background:linear-gradient(135deg,#7c3aed,#6d28d9)!important;color:#fff!important;border-color:transparent!important;font-weight:600!important;box-shadow:0 2px 6px #7c3aed4d!important}.action-btn-group-toggle--active:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6)!important;color:#fff!important}.action-btn-group-toggle:disabled{opacity:.5!important;cursor:not-allowed!important}.action-btn-primary,.action-btn-ghost{border-radius:6px!important;font-size:12px!important}.action-btn-rollcall{border-radius:16px!important;font-size:13px!important;font-weight:600!important;padding:0 16px!important;height:30px!important;border:none!important;background:linear-gradient(135deg,#f59e0b,#f97316)!important;color:#fff!important;box-shadow:0 2px 8px #f59e0b59!important;transition:all .2s ease!important}.action-btn-rollcall:hover:not(:disabled){background:linear-gradient(135deg,#fbbf24,#fb923c)!important;box-shadow:0 4px 14px #f59e0b73!important;transform:translateY(-1px)!important}.action-btn-rollcall:active:not(:disabled){transform:translateY(0)!important;box-shadow:0 2px 6px #f59e0b4d!important}.action-btn-rollcall .anticon{color:#fff!important}.batch-selected-count{color:#7c3aed;font-weight:600;font-size:13px}.action-btn-select-all{border-radius:6px!important;font-size:12px!important;border-color:#c4b5fd!important;color:#7c3aed!important}.action-btn-select-all:hover{background:#faf5ff!important;border-color:#7c3aed!important}.action-btn-score-add{border-radius:6px!important;font-size:12px!important;background:#22c55e!important;border-color:#22c55e!important}.action-btn-score-add:hover:not(:disabled){background:#16a34a!important;border-color:#16a34a!important}.action-btn-score-add:disabled{background:#d1d5db!important;border-color:#d1d5db!important;color:#9ca3af!important;opacity:.65}.action-btn-score-sub{border-radius:6px!important;font-size:12px!important}.action-btn-score-sub:disabled{background:#d1d5db!important;border-color:#d1d5db!important;color:#9ca3af!important;opacity:.65}.action-btn-group-assign{border-radius:6px!important;font-size:12px!important;background:#7c3aed!important;border-color:#7c3aed!important}.action-btn-group-assign:hover:not(:disabled){background:#6d28d9!important;border-color:#6d28d9!important}.action-btn-group-assign:disabled{background:#d1d5db!important;border-color:#d1d5db!important;color:#9ca3af!important;opacity:.65}.action-btn-leave-group{border-radius:6px!important;font-size:12px!important;border:1px solid #fca5a5!important;color:#ef4444!important;background:#fff!important}.action-btn-leave-group:hover:not(:disabled){background:#fef2f2!important;border-color:#f87171!important;color:#dc2626!important}.action-btn-leave-group:disabled{background:#d1d5db!important;border-color:#d1d5db!important;color:#9ca3af!important;opacity:.65}.action-btn-exit-batch{border-radius:6px!important;font-size:12px!important;color:#f87171!important;border-color:#fecaca!important}.action-btn-exit-batch:hover{color:#ef4444!important;border-color:#f87171!important;background:#fef2f2!important}.pet-card--selected{border-color:#7c3aed!important;box-shadow:0 0 0 2px #7c3aed40!important}.pet-card-checkbox{position:absolute;top:8px;left:8px;z-index:5;cursor:pointer}.pet-card--selectable .pet-card-level{left:36px}.pet-card-checkbox-box{width:20px;height:20px;border-radius:4px;border:2px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.pet-card-checkbox-box--checked{background:#7c3aed;border-color:#7c3aed}.pet-card-checkbox-tick{color:#fff;font-size:12px;font-weight:700;line-height:1}.pet-grid-grouped{background:#fff;margin:0 20px 20px;border-radius:0 0 8px 8px}.pet-group-section{margin-bottom:8px}.pet-group-section:last-child{margin-bottom:0}.pet-group-header{display:flex;align-items:center;gap:12px;padding:12px 20px 8px}.pet-group-name{font-size:15px;font-weight:700;padding:3px 14px;border-left:4px solid;border-radius:0 6px 6px 0;background:#f9fafb}.pet-group-count{font-size:13px;color:#9ca3af;font-weight:500}.pet-group-actions{display:flex;gap:6px;margin-left:auto}.pet-group-action-btn{border-radius:12px!important;font-size:12px!important;font-weight:500!important;padding:0 12px!important;height:26px!important;border:none!important}.pet-group-action-add{background:#dcfce7!important;color:#16a34a!important}.pet-group-action-add:hover{background:#bbf7d0!important;color:#15803d!important}.pet-group-action-sub{background:#fee2e2!important;color:#dc2626!important}.pet-group-action-sub:hover{background:#fecaca!important;color:#b91c1c!important}.group-modal-content{display:flex;flex-direction:column;gap:16px}.group-search-row{margin-bottom:0}.group-search-input{border-radius:8px!important}.group-add-row{display:flex;gap:8px}.group-add-input{flex:1;border-radius:8px!important}.group-list{max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.group-list-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:8px;border:1px solid #f0f0f0;transition:background .2s}.group-list-item:hover{background:#faf5ff}.group-list-item-edit{display:flex;align-items:center;gap:4px;flex:1}.group-edit-input{flex:1;border-radius:6px!important}.group-edit-confirm{color:#22c55e!important}.group-edit-cancel{color:#f87171!important}.group-list-item-info{display:flex;align-items:center;gap:10px}.group-list-item-name{font-size:14px;font-weight:600}.group-list-item-count{font-size:12px;color:#9ca3af;background:#f3f4f6;padding:2px 8px;border-radius:10px}.group-list-item-actions{display:flex;align-items:center;gap:4px}.group-list-empty{text-align:center;padding:32px;color:#9ca3af;font-size:14px}.group-select-modal .ant-modal-content{border-radius:20px;padding:0;overflow:hidden}.group-select-modal .ant-modal-header{padding:24px 28px 16px;border-bottom:none}.group-select-modal .ant-modal-title{font-size:22px!important;font-weight:700!important;color:#1f2937!important}.group-select-modal .ant-modal-close{top:20px;right:20px}.group-select-content{padding:0 28px 28px}.group-select-warning{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:13px;color:#92400e;line-height:1.5}.group-select-warning-title{font-weight:600;margin-bottom:6px}.group-select-warning-item{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px}.group-select-warning-group{font-weight:700;min-width:40px}.group-select-warning-names{flex:1;color:#78716c}.group-select-warning-skip{font-size:11px;color:#d97706;background:#fef3c7;padding:1px 8px;border-radius:4px;font-weight:500}.group-select-warning-item--assignable{background:#f0fdf4;margin:0 -8px;padding:4px 8px;border-radius:6px}.group-select-warning-label{font-size:11px;color:#16a34a;background:#dcfce7;padding:1px 8px;border-radius:4px;font-weight:600;min-width:40px}.group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.group-grid-card{position:relative;height:72px;border-radius:12px;border:2px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:all .2s ease;background:#fff}.group-grid-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.group-grid-card:active{transform:translateY(0)}.group-grid-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 20px;border-radius:18px;color:#fff;font-size:15px;font-weight:600;letter-spacing:.5px;box-shadow:0 2px 6px #00000026}.group-grid-count{font-size:12px;color:#9ca3af;font-weight:500}.group-grid-card--ungrouped{border-color:#d1d5db;background:#f9fafb}.group-grid-badge--ungrouped{background:#9ca3af;box-shadow:none}.group-select-footer{text-align:center;margin-top:20px;padding-top:16px;border-top:1px solid #f0f0f0;font-size:15px;color:#6b7280}.group-select-footer strong{color:#7c3aed;font-weight:700;font-size:17px}@media(max-width:520px){.group-select-modal .ant-modal-body{padding:0 16px 16px}.group-select-content{padding:0 16px 20px}.group-grid{grid-template-columns:repeat(2,1fr);gap:10px}.group-grid-card{height:64px}.group-grid-badge{font-size:13px;padding:5px 16px}}.batch-score-modal .ant-modal-content{border-radius:20px;padding:0;overflow:hidden}.batch-score-modal .ant-modal-header{padding:24px 28px 16px;border-bottom:none}.batch-score-modal .ant-modal-title{font-size:20px!important;font-weight:700!important}.batch-score-modal .ant-modal-body{padding:0 28px 28px}.batch-score-content{display:flex;flex-direction:column;gap:16px}.batch-score-info{font-size:14px;color:#6b7280;background:#f9fafb;padding:10px 16px;border-radius:8px;text-align:center}.batch-score-info strong{color:#7c3aed;font-size:18px}.batch-score-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.batch-score-empty{grid-column:1 / -1;text-align:center;padding:24px;color:#9ca3af;font-size:13px}.batch-score-item{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:10px 14px!important;border-radius:10px!important;height:auto!important;border:1px solid #e5e7eb!important;background:#fff!important;transition:all .15s ease!important}.batch-score-item:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.batch-score-item--add:hover:not(:disabled){border-color:#86efac!important;background:#f0fdf4!important}.batch-score-item--sub:hover:not(:disabled){border-color:#fca5a5!important;background:#fef2f2!important}.batch-score-item-left{display:flex;align-items:center;gap:8px;min-width:0}.batch-score-item-icon{font-size:22px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px;line-height:1}.batch-score-item--add .batch-score-item-icon{background:#dcfce7}.batch-score-item--sub .batch-score-item-icon{background:#fee2e2}.batch-score-item-name{font-size:13px;font-weight:500;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-score-item-value{font-size:15px;font-weight:700;flex-shrink:0;margin-left:8px}.batch-score-item--add .batch-score-item-value{color:#16a34a}.batch-score-item--sub .batch-score-item-value{color:#dc2626}@media(max-width:520px){.batch-score-grid{grid-template-columns:1fr}}@media(max-width:768px){.pet-grid-header{flex-direction:column;align-items:flex-start}.pet-grid-actions{flex-wrap:wrap}}.page-container{margin:20px}.page-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-radius:8px 8px 0 0;gap:16px;flex-wrap:wrap}@media(max-width:768px){.page-toolbar{flex-direction:column;align-items:stretch}.page-toolbar>div{justify-content:center}}.table-container{background:#fff;padding:16px 20px;border-radius:0 0 8px 8px}.pet-manage-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;margin:20px 20px 0;border-radius:8px 8px 0 0;gap:16px;flex-wrap:wrap}@media(max-width:768px){.pet-manage-toolbar{flex-direction:column;align-items:stretch}.pet-manage-toolbar>div{justify-content:center}}.login-container{display:flex;justify-content:center;align-items:center;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{width:500px;padding:40px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #00000026}.login-title{text-align:center;margin-bottom:32px}.login-title h1{font-size:28px;color:#1890ff;margin-bottom:8px}.login-title p{color:#999;font-size:14px}.class-manage-modal .ant-modal-content{border-radius:20px;padding:0;overflow:hidden}.class-manage-modal .ant-modal-body{padding:0}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f0f0f0}.modal-title{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:600;color:#1f2937}.modal-title-icon{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#fce7f3,#f3e8ff);display:flex;align-items:center;justify-content:center;font-size:18px;color:#ec4899}.modal-close-btn{font-size:24px;color:#9ca3af;padding:4px 8px;transition:opacity .2s}.modal-close-btn:hover{opacity:.6;background:transparent}.class-list{padding:16px;display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto}.class-item{display:flex;align-items:center;gap:12px;padding:16px;border-radius:16px;border:2px solid #e5e7eb;background:#fff;cursor:pointer;transition:box-shadow .2s}.class-item:hover{box-shadow:0 2px 8px #0000000a}.class-item-current{border-color:#c084fc;background:linear-gradient(135deg,#fdf2f8,#faf5ff)}.class-item-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#a78bfa,#c084fc);display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:600;flex-shrink:0}.class-item-info{flex:1;min-width:0}.class-item-name{font-size:17px;font-weight:600;color:#1f2937;margin-bottom:4px}.class-item-name-input{font-size:15px;font-weight:600;color:#1f2937;border:1px solid #7c3aed;border-radius:6px;padding:2px 8px;outline:none;background:#7c3aed0a;width:100%;margin-bottom:4px}.class-item-name-input:focus{box-shadow:0 0 0 2px #7c3aed26}.class-item-count{font-size:14px;color:#6b7280}.class-item-actions{display:flex;align-items:center;gap:4px}.class-item-current-badge{display:inline-block;padding:4px 14px;border-radius:14px;background:linear-gradient(135deg,#c084fc,#a78bfa);color:#fff;font-size:13px;font-weight:500;margin-right:4px}.class-item-edit-btn{color:#9ca3af;transition:opacity .2s}.class-item-edit-btn:hover{opacity:.6}.class-item-delete-btn{color:#f87171;transition:opacity .2s}.class-item-delete-btn:hover{opacity:.6}.class-add-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;border-radius:16px;border:2px dashed #d1d5db;color:#9ca3af;font-size:16px;cursor:pointer;transition:border-color .2s,color .2s}.class-add-btn:hover{border-color:#c4b5fd;color:#a78bfa}.class-add-btn .anticon{font-size:20px}.add-student-modal .ant-modal-content{border-radius:20px;padding:0;overflow:hidden}.add-student-modal .ant-modal-body{padding:0}.add-student-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f0f0f0}.add-student-modal-title{font-size:18px;font-weight:600;color:#1f2937}.add-student-modal-close{font-size:24px;color:#9ca3af;padding:4px 8px;transition:opacity .2s}.add-student-modal-close:hover{opacity:.6;background:transparent}.add-student-form{padding:24px}.add-mode-segmented{display:flex;background:#f3f4f6;border-radius:10px;padding:3px;margin-bottom:20px}.add-mode-segmented-item{flex:1;text-align:center;padding:9px 16px;border-radius:8px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .25s ease;-webkit-user-select:none;user-select:none}.add-mode-segmented-item:hover{color:#7c3aed}.add-mode-segmented-item.active{background:#fff;color:#7c3aed;box-shadow:0 1px 3px #00000014;font-weight:600}.add-student-input{border-radius:12px!important;border:2px solid #e5e7eb!important;font-size:15px!important;height:48px!important;margin-bottom:16px!important}.add-student-input:focus{border-color:#c084fc!important;box-shadow:0 0 0 2px #c084fc1a!important}.add-student-input::placeholder{color:#9ca3af}.add-student-textarea{border-radius:12px;border:2px solid #e5e7eb;font-size:15px;resize:vertical;margin-bottom:16px}.add-student-textarea:focus{border-color:#c084fc;box-shadow:0 0 0 2px #c084fc1a}.add-student-textarea::placeholder{color:#9ca3af;white-space:pre}.add-student-actions{display:flex;gap:12px}.btn-batch-import{height:48px;border-radius:12px;font-size:16px;font-weight:500;background:linear-gradient(135deg,#ec4899,#a855f7);border:none}.btn-batch-import:disabled,.btn-batch-import.ant-btn-disabled{background:#d1d5db!important;color:#9ca3af!important;cursor:not-allowed!important;opacity:.65;pointer-events:none!important;border:none!important;background-image:none!important}.btn-cancel-import{height:48px;border-radius:12px;font-size:16px;border:2px solid #e5e7eb;background:#fff}.modal-footer{padding:16px;border-top:1px solid #f0f0f0}.class-name-input{height:48px;border-radius:12px;border:2px solid #e5e7eb;font-size:15px;margin-bottom:12px}.class-name-input:focus{border-color:#c084fc;box-shadow:0 0 0 2px #c084fc1a}.class-name-input::placeholder{color:#9ca3af}.modal-buttons{display:flex;gap:12px}.btn-create{height:48px;border-radius:12px;font-size:16px;font-weight:500;background:linear-gradient(135deg,#c084fc,#a78bfa);border:none}.btn-cancel{height:48px;border-radius:12px;font-size:16px;border:2px solid #e5e7eb;background:#fff}.class-modal .ant-modal-content{border-radius:16px}.class-modal .ant-modal-header{border-radius:16px 16px 0 0}.class-modal .ant-form-item-label>label{font-weight:500}@-moz-document url-prefix(){.pet-card-image img{object-fit:contain}}@supports (-webkit-touch-callout: none){.pet-card{-webkit-transform:translateY(-2px)}}@supports (-ms-ime-align: auto){.pet-grid{display:-ms-grid}}.settings-modal .ant-modal-content{border-radius:16px;padding:0;overflow:hidden}.settings-modal .ant-modal-body{padding:0}.settings-modal-inner{max-height:75vh;display:flex;flex-direction:column}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f0f0f0}.settings-modal-title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;color:#1f2937}.settings-modal-title .anticon{color:#7c3aed}.settings-modal-close{font-size:20px;color:#9ca3af;padding:4px 8px;border:none;background:none;cursor:pointer;transition:opacity .2s;line-height:1}.settings-modal-close:hover{opacity:.6}.settings-tabs{flex:1;overflow-y:auto}.settings-tabs .ant-tabs-nav{padding:0 24px;margin:0!important}.settings-tabs .ant-tabs-tab{padding:12px 16px!important;font-size:14px!important;color:#9ca3af!important;transition:color .2s!important}.settings-tabs .ant-tabs-tab:hover,.settings-tabs .ant-tabs-tab-active{color:#7c3aed!important}.settings-tabs .ant-tabs-ink-bar{background:#7c3aed!important;height:3px!important}.settings-tabs .ant-tabs-content-holder{padding:0 24px 24px}.settings-tab-content{padding-top:16px;padding-bottom:30px}.settings-section{margin-bottom:24px}.settings-section-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:12px}.settings-section-desc{font-size:13px;color:#9ca3af;margin-bottom:4px}.settings-section-desc-small{font-size:12px;color:#d1d5db;margin-bottom:4px}.settings-section-example{font-size:13px;color:#6b7280;margin-left:16px}.settings-tip{font-size:12px;color:#9ca3af;margin-top:8px}.settings-link{font-size:13px;color:#7c3aed;cursor:pointer}.settings-link:hover{text-decoration:underline}.settings-warning{margin-top:12px;padding:8px 12px;background:#fffbeb;border-radius:8px;font-size:12px;color:#92400e}.student-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.settings-student-table .ant-table-thead>tr>th{background:transparent;font-weight:500;color:#9ca3af;font-size:13px;border-bottom:1px solid #f3f4f6}.settings-student-table .ant-table-tbody>tr>td{border-bottom:1px solid #f9fafb}.settings-student-table .ant-table-tbody>tr:hover>td{background:#faf5ff}.settings-section-pet-assign{background:linear-gradient(135deg,#fdf2f8,#faf5ff);border-radius:12px;padding:16px;margin-bottom:24px}.pet-assign-header{display:flex;align-items:center;justify-content:space-between}.pet-assign-header h3{margin-bottom:4px}.level-section-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.level-section-header .btn-save-level{width:auto;height:36px;border-radius:18px;font-size:13px;padding:0 20px;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;box-shadow:0 2px 8px #7c3aed4d;flex-shrink:0}.level-section-header .btn-save-level:hover{box-shadow:0 4px 12px #7c3aed66;transform:translateY(-1px)}.level-chart{background:#fff;border-radius:16px;padding:20px 16px 12px;margin-bottom:16px;border:1px solid #f3f0ff;box-shadow:0 1px 4px #8b5cf60f}.level-chart-svg{width:100%;height:auto}.level-scores-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:4px}.level-score-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;background:#faf5ff;border-radius:10px;border:1px solid #ede9fe;transition:all .2s}.level-score-card:hover{border-color:#c4b5fd;box-shadow:0 2px 6px #8b5cf61a}.level-score-label{font-size:11px;color:#7c3aed;font-weight:700;letter-spacing:.5px}.level-score-input{width:100%}.level-score-input .ant-input-number-input{text-align:center;font-weight:600}.btn-save-level{width:100%;height:44px;border-radius:22px;font-size:15px;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;box-shadow:0 2px 8px #7c3aed40}.btn-save-level:hover{box-shadow:0 4px 12px #7c3aed59}.settings-section-lifecycle{background:#fff;border-radius:16px;padding:20px;border:1px solid #f3f0ff;box-shadow:0 1px 4px #8b5cf60f}.lifecycle-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.lifecycle-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#fef3c7,#fde68a);display:flex;align-items:center;justify-content:center;color:#d97706;font-size:18px;flex-shrink:0}.lifecycle-content{margin-top:16px;padding-top:16px;border-top:1px solid #f3f0ff}.lifecycle-inputs{margin:0 0 16px}.lifecycle-input-suffix{font-size:13px;color:#9ca3af;margin-top:4px}.lifecycle-tips{margin:0 0 16px;padding:14px 16px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border-radius:12px;border:1px solid #fde68a}.lifecycle-tip-item{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#6b7280;line-height:1.6}.lifecycle-tip-item:not(:last-child){margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed #fde68a}.lifecycle-tip-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0;box-shadow:0 0 0 3px #0000000a}.lifecycle-tip-dot-hungry{background:#f59e0b}.lifecycle-tip-title{font-size:13px;font-weight:600;color:#374151;margin-bottom:2px}.lifecycle-tip-desc{font-size:12px;color:#6b7280;line-height:1.5}.lifecycle-tip-dot-recover{background:#22c55e}.lifecycle-tip-dot-warning{background:#9ca3af}.score-section-title{display:flex;align-items:center;gap:8px}.score-section-deduct{color:#f87171}.score-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.score-item{display:flex;align-items:center;gap:8px;padding:12px;border-radius:10px;transition:box-shadow .2s}.score-item:hover{box-shadow:0 2px 8px #0000000f}.score-item-icon{font-size:22px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px;line-height:1}.score-item-add .score-item-icon{color:#22c55e;background:#dcfce7}.score-item-deduct .score-item-icon{color:#f87171;background:#fee2e2}.score-item-name{font-size:13px;color:#374151;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.score-item-scope{font-size:10px;line-height:1;padding:1px 4px;border-radius:3px;width:fit-content}.scope-global{color:#7c3aed;background:#f3e8ff}.score-item-value{font-size:14px;font-weight:600;flex-shrink:0}.score-item-add{background:#f0fdf4;border:1px solid #bbf7d0}.score-item-add .score-item-value{color:#22c55e}.score-item-deduct{background:#fef2f2;border:1px solid #fecaca}.score-item-deduct .score-item-value{color:#f87171}.score-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.btn-add-score-item{border-radius:8px;font-weight:500;padding:4px 12px;height:28px;font-size:12px}.btn-add-score-item:hover{opacity:.9!important}.add-score-item-modal .ant-modal-content{border-radius:16px;padding:0;overflow:hidden}.add-score-item-modal .ant-modal-header{padding:20px 24px 16px;border-bottom:1px solid #f0f0f0;margin-bottom:0}.add-score-item-form{padding:20px 24px}.form-label{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:8px}.type-selector{display:flex;gap:12px}.type-btn{flex:1;padding:10px 16px;border:2px solid #e5e7eb;border-radius:10px;background:#fff;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s;text-align:center}.type-btn:hover{border-color:#d1d5db}.type-btn-active{border-width:2px}.type-btn-add.type-btn-active{border-color:#22c55e;background:#f0fdf4;color:#22c55e}.type-btn-sub.type-btn-active{border-color:#f87171;background:#fef2f2;color:#f87171}.scope-selector{display:flex;gap:12px;margin-bottom:4px}.scope-btn{flex:1;padding:10px 16px;border:2px solid #e5e7eb;border-radius:10px;background:#fff;font-size:13px;color:#6b7280;cursor:pointer;transition:all .2s;text-align:center}.scope-btn:hover{border-color:#d1d5db}.scope-btn-active{border-color:#3b82f6;background:#eff6ff;color:#3b82f6}.scope-tip{font-size:12px;color:#9ca3af;margin-bottom:16px}.icon-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;max-height:200px;overflow-y:auto;padding:8px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafa}.icon-picker::-webkit-scrollbar{width:4px}.icon-picker::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.icon-picker-item{width:100%;aspect-ratio:1;border:2px solid transparent;border-radius:10px;background:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:4px;min-height:40px;line-height:1}.icon-picker-item:hover{border-color:#c084fc;background:#faf5ff;transform:scale(1.08)}.icon-picker-item-active{border-color:#c084fc;background:#faf5ff;box-shadow:0 0 0 2px #c084fc33}.add-score-item-footer{display:flex;gap:12px;padding:16px 24px 24px;border-top:1px solid #f0f0f0}.add-score-item-footer .ant-btn{flex:1;height:44px;border-radius:10px;font-size:15px;font-weight:500}.btn-confirm-add{background:linear-gradient(135deg,#c084fc,#a78bfa)!important;border:none!important;color:#fff!important;box-shadow:0 4px 12px #c084fc4d}.btn-confirm-add:hover{opacity:.9!important;background:linear-gradient(135deg,#b479f5,#9b7df0)!important}.settings-tab-profile{display:flex;flex-direction:column;gap:16px}.profile-hero{position:relative;border-radius:16px;overflow:hidden;display:flex;align-items:center;gap:16px;padding:24px 20px}.profile-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#7c3aed,#a78bfa,#c084fc);z-index:0}.profile-avatar-wrapper{position:relative;z-index:1;flex-shrink:0}.profile-avatar{width:56px;height:56px;border-radius:50%;background:#ffffff40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff}.profile-hero-info{position:relative;z-index:1;min-width:0}.profile-name{font-size:18px;font-weight:700;color:#fff;margin:0 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-contact{font-size:13px;color:#fffc;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-cards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.profile-stat-card{display:flex;align-items:center;gap:10px;padding:14px 12px;background:#fff;border-radius:12px;border:1px solid #f0f0f0;transition:box-shadow .2s}.profile-stat-card:hover{box-shadow:0 2px 12px #7c3aed14}.profile-stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-stat-info{min-width:0}.profile-stat-value{font-size:16px;font-weight:700;color:#1f2937;line-height:1.2}.profile-status-badge{font-size:12px;font-weight:600;color:#d97706;background:#fef3c7;padding:2px 8px;border-radius:6px;display:inline-block}.profile-stat-label{font-size:11px;color:#9ca3af;margin-top:2px}.profile-section{background:#fff;border-radius:12px;border:1px solid #f0f0f0;overflow:hidden}.profile-section-header{display:flex;align-items:center;padding:14px 16px;font-size:14px;font-weight:600;color:#1f2937;border-bottom:1px solid #f5f5f5}.profile-section-body{padding:16px}.profile-password-form .ant-form-item-label>label{font-size:13px;color:#6b7280}.profile-password-form .ant-input-password{border-radius:8px}.btn-save-password{height:40px;border-radius:10px;font-weight:600;background:linear-gradient(135deg,#7c3aed,#a78bfa);border:none}.btn-save-password:hover{background:linear-gradient(135deg,#6d28d9,#8b5cf6)!important}.profile-section-about{border:none;background:transparent}.profile-about-row{display:flex;justify-content:space-between;padding:0 4px}.profile-about-item{display:flex;align-items:center;gap:6px}.profile-about-label{font-size:12px;color:#9ca3af}.profile-about-value{font-size:12px;color:#6b7280;font-weight:500}.btn-logout{height:44px;border-radius:12px;font-size:14px;font-weight:500;margin-top:4px}.pet-detail-modal .ant-modal-content{border-radius:16px;padding:0;overflow:hidden;max-height:calc(100vh - 80px);display:flex;flex-direction:column}.pet-detail-modal .ant-modal-body{padding:0;overflow:hidden;flex:1;min-height:0}.pet-detail-scroll-area{max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden}.pet-detail-scroll-area::-webkit-scrollbar{width:6px}.pet-detail-scroll-area::-webkit-scrollbar-track{background:transparent}.pet-detail-scroll-area::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.pet-detail-scroll-area::-webkit-scrollbar-thumb:hover{background:#9ca3af}.pet-detail-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:#f3f4f6;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;font-size:14px;z-index:10;transition:background .2s}.pet-detail-close:hover{background:#e5e7eb}.pet-detail-header{display:flex;align-items:center;gap:20px;padding:24px 24px 16px}.pet-detail-avatar{width:80px;height:80px;flex-shrink:0;position:relative;overflow:hidden}.pet-detail-avatar img{width:100%;height:100%;object-fit:contain;transition:opacity .3s ease,transform .3s ease}.pet-detail-avatar-img--fade-out{opacity:0;transform:scale(.85)}.pet-detail-avatar-img--fade-in{opacity:1;transform:scale(1)}@keyframes detailLevelUpOverlay{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}60%{transform:translate(-50%,-50%) scale(1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.pet-detail-levelup-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:14px;font-weight:700;padding:4px 12px;border-radius:12px;box-shadow:0 2px 10px #f59e0b80;animation:detailLevelUpOverlay .5s ease-out;pointer-events:none;white-space:nowrap}.pet-detail-info{flex:1;padding-right:40px}.pet-detail-name{font-size:20px;font-weight:700;color:#1f2937}.pet-detail-name-row{display:flex;align-items:center;gap:12px}.pet-detail-hungry-tag{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:600;color:#d97706;background:#fef3c7;padding:2px 8px;border-radius:6px;animation:hungryPulse 2s ease-in-out infinite}.pet-detail-pet-name{font-size:14px;color:#7c3aed;font-weight:500;margin-top:2px}.pet-detail-gold-score{display:flex;align-items:center;gap:4px;padding:4px 12px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:16px;white-space:nowrap}.gold-coin-icon{font-size:15px}.gold-coin-value{font-size:16px;font-weight:700;color:#b45309}.gold-coin-label{font-size:12px;color:#92400e;font-weight:500}.pet-detail-level-row{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.pet-detail-level{background:#4ade80;color:#fff;font-size:12px;padding:2px 10px;border-radius:4px;font-weight:600}.pet-detail-progress-text{font-size:13px;color:#6b7280}.pet-detail-progress-score{color:#7c3aed;font-weight:600}.pet-detail-progress-bar{width:100%;height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden;margin-top:6px}.pet-detail-progress-fill{height:100%;background:linear-gradient(90deg,#c084fc,#a78bfa);border-radius:4px;transition:width .3s ease}.pet-detail-section{padding:8px 24px 16px}.pet-detail-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.pet-detail-section-title{font-size:15px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:6px;margin:0}.pet-detail-section-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.pet-detail-section-dot.add{background:#22c55e}.pet-detail-section-dot.deduct{background:#f87171}.btn-add-project{border:1px solid #d1d5db;background:#fff;color:#6b7280;border-radius:16px;font-size:12px;height:28px;padding:0 12px}.btn-add-project:hover{color:#7c3aed;border-color:#c084fc}.pet-detail-score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pet-detail-score-item{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:12px 14px!important;border-radius:12px!important;border:none!important;cursor:pointer;transition:all .2s;text-align:left;background:none!important;box-shadow:none!important;color:inherit;font-family:inherit;height:auto!important;min-height:auto!important;line-height:normal!important;width:100%!important;max-width:100%!important;overflow:hidden!important;white-space:normal!important;word-break:break-word}.pet-detail-score-item>.ant-btn-loading-icon{display:none!important}.pet-detail-score-left{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;flex:1;overflow:hidden}.pet-detail-score-add{background:#f0fdf4!important}.pet-detail-score-add:hover{background:#dcfce7!important;box-shadow:0 0 0 2px #22c55e!important}.pet-detail-score-deduct{background:#fef2f2!important}.pet-detail-score-deduct:hover{background:#fee2e2!important;box-shadow:0 0 0 2px #f87171!important}.pet-detail-score-icon{font-size:22px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px;line-height:1}.pet-detail-score-add .pet-detail-score-icon{background:#dcfce7}.pet-detail-score-deduct .pet-detail-score-icon{background:#fee2e2}.pet-detail-score-name{font-size:13px;color:#374151;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.pet-detail-score-value{font-size:18px;font-weight:700;flex-shrink:0;margin-left:8px;line-height:1}.pet-detail-score-add .pet-detail-score-value{color:#22c55e}.pet-detail-score-deduct .pet-detail-score-value{color:#f87171}.honor-page-full{min-height:100vh;background:linear-gradient(180deg,#1a0a2e,#16082a 30%,#0f0620);padding:20px;position:relative;overflow:hidden}.honor-page-full:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 600px 300px at 50% 10%,rgba(251,191,36,.08) 0%,transparent 70%),radial-gradient(ellipse 400px 200px at 20% 60%,rgba(124,58,237,.06) 0%,transparent 70%),radial-gradient(ellipse 400px 200px at 80% 60%,rgba(124,58,237,.06) 0%,transparent 70%);pointer-events:none;z-index:0}.honor-page-full>*{position:relative;z-index:1}.honor-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;margin-bottom:20px}.honor-header-left{display:flex;align-items:center;gap:12px}.honor-header-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;box-shadow:0 4px 16px #fbbf2459}.honor-header-title{font-size:24px;font-weight:800;background:linear-gradient(135deg,#fbbf24,#fde68a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px}.honor-badge-btn{background:linear-gradient(135deg,#7c3aed,#a78bfa)!important;border-color:#7c3aed!important;border-radius:20px!important;height:36px!important;font-size:14px!important;box-shadow:0 4px 12px #7c3aed4d!important}.honor-badge-btn:hover{background:linear-gradient(135deg,#6d28d9,#8b5cf6)!important;box-shadow:0 6px 20px #7c3aed66!important}.honor-body{max-width:960px;margin:0 auto}.honor-tabs{display:flex;gap:8px;margin-bottom:20px}.honor-tab{display:inline-flex;align-items:center;padding:10px 24px;border-radius:24px;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:#fff9;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.honor-tab:hover{background:#ffffff1a;color:#fffc}.honor-tab--active{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff!important;border-color:transparent;box-shadow:0 4px 16px #7c3aed66}.honor-tab--active:hover{background:linear-gradient(135deg,#6d28d9,#8b5cf6)}.honor-content{display:flex;flex-direction:column;gap:20px}.honor-empty{text-align:center;padding:80px 20px;color:#fff6;font-size:15px;background:#ffffff0a;border-radius:16px;border:1px solid rgba(255,255,255,.06)}.honor-champion-wall{position:relative;background:linear-gradient(180deg,rgba(255,215,0,.06) 0%,rgba(255,165,0,.02) 50%,transparent 100%);border-radius:24px;padding:32px 24px 0;border:1px solid rgba(255,215,0,.12);overflow:hidden}.honor-champion-bg-decor{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.honor-champion-star{position:absolute;width:4px;height:4px;border-radius:50%;background:gold;animation:honorStarTwinkle 3s ease-in-out infinite}.honor-champion-star--1{top:15%;left:10%;animation-delay:0s}.honor-champion-star--2{top:25%;right:15%;animation-delay:1s}.honor-champion-star--3{top:10%;left:50%;animation-delay:2s}.honor-champion-sparkle{position:absolute;width:6px;height:6px;border-radius:50%;background:#ffd70099;animation:honorSparkle 4s ease-in-out infinite}.honor-champion-sparkle--1{top:20%;left:25%;animation-delay:.5s}.honor-champion-sparkle--2{top:8%;right:30%;animation-delay:1.5s}.honor-champion-sparkle--3{top:30%;left:70%;animation-delay:2.5s}@keyframes honorStarTwinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}@keyframes honorSparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:.8;transform:scale(1.2)}}.honor-champion-title-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.honor-champion-title-icon{font-size:20px;color:gold;animation:honorCrownFloat 3s ease-in-out infinite}@keyframes honorCrownFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.honor-champion-title-text{font-size:22px;font-weight:800;background:linear-gradient(135deg,gold,#fff8dc,gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:4px}.honor-champion-tie-hint{text-align:center;font-size:12px;color:#ffd70099;margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:4px}.honor-podium-row{display:flex;justify-content:center;align-items:flex-end;gap:12px}.honor-podium-slot{display:flex;flex-direction:column;align-items:center;flex:1;max-width:260px;min-width:0}.honor-podium-slot--1{order:2}.honor-podium-slot--2{order:1}.honor-podium-slot--3{order:3}.honor-podium-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px 16px;width:100%;border-radius:20px 20px 0 0;border:1px solid rgba(255,255,255,.08);border-bottom:none;overflow:hidden}.honor-podium-slot--1 .honor-podium-card{padding:28px 20px 20px;border-color:#ffd70026}.honor-podium-rank-watermark{position:absolute;top:-8px;right:-4px;font-size:80px;font-weight:900;opacity:.06;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none}.honor-podium-slot--1 .honor-podium-rank-watermark{font-size:100px;opacity:.08}.honor-podium-medal-area{display:flex;align-items:center;gap:8px}.honor-podium-medal{font-size:28px;line-height:1}.honor-podium-slot--1 .honor-podium-medal{font-size:32px}.honor-podium-tie-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;border:1px solid;background:#ffffff0f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.5px}.honor-podium-crown{font-size:24px;line-height:1;animation:honorCrownBounce 2.5s ease-in-out infinite;filter:drop-shadow(0 2px 6px rgba(255,215,0,.6))}@keyframes honorCrownBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.08)}}.honor-podium-avatars{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.honor-podium-avatars--multi{gap:8px}.honor-podium-avatar-item{display:flex;flex-direction:column;align-items:center;gap:6px}.honor-podium-avatar-ring{position:relative;border-radius:50%;padding:3px;transition:transform .3s ease}.honor-podium-slot--1 .honor-podium-avatar-ring{padding:4px;animation:honorRingRotate 6s linear infinite}@keyframes honorRingRotate{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(0deg)}}.honor-podium-avatar-ring:hover{transform:scale(1.08)}.honor-podium-avatar-inner{border-radius:50%;overflow:hidden;background:#0f0620e6;display:flex;align-items:center;justify-content:center}.honor-podium-avatar-egg{display:flex;align-items:center;justify-content:center}.honor-podium-name{font-size:13px;font-weight:700;color:#ffffffe6;white-space:nowrap;text-shadow:0 1px 4px rgba(0,0,0,.6);max-width:80px;overflow:hidden;text-overflow:ellipsis}.honor-podium-slot--1 .honor-podium-name{font-size:15px;max-width:100px}.honor-podium-score{display:flex;align-items:baseline;gap:3px;margin-top:2px}.honor-podium-score-value{font-size:22px;font-weight:800;text-shadow:0 2px 10px currentColor}.honor-podium-slot--1 .honor-podium-score-value{font-size:28px}.honor-podium-score-unit{font-size:15px;opacity:.8}.honor-podium-base{width:100%;border-radius:8px 8px 12px 12px;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 4px 12px #0000004d,inset 0 1px #fff3,inset 0 -2px #00000026}.honor-podium-base:after{content:"";position:absolute;bottom:-6px;left:4px;right:4px;height:6px;background:inherit;border-radius:0 0 8px 8px;opacity:.5;filter:brightness(.7)}.honor-podium-base-num{color:#ffffffe6;font-size:18px;font-weight:800;text-shadow:0 2px 4px rgba(0,0,0,.3)}.honor-rank-list{background:#ffffff0a;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}.honor-rank-group{border-bottom:1px solid rgba(255,255,255,.04)}.honor-rank-group:last-child{border-bottom:none}.honor-rank-group-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:linear-gradient(90deg,#7c3aed1f,#7c3aed0a);border-bottom:1px solid rgba(124,58,237,.1)}.honor-rank-group-tie-badge{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:#c084fc;padding:2px 12px;background:#7c3aed26;border-radius:12px;border:1px solid rgba(124,58,237,.2)}.honor-rank-group-score{font-size:14px;font-weight:700;color:#a78bfa}.honor-rank-row{display:flex;align-items:center;padding:14px 20px;gap:16px;border-bottom:1px solid rgba(255,255,255,.03);transition:background .2s}.honor-rank-row:last-child{border-bottom:none}.honor-rank-row--alt{background:#ffffff05}.honor-rank-row--tied{padding-left:24px}.honor-rank-row:hover{background:#7c3aed14}.honor-rank-left{display:flex;align-items:center;gap:10px;flex-shrink:0;min-width:180px}.honor-rank-num-badge{width:28px;height:28px;border-radius:50%;background:#ffffff14;color:#ffffff80;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.honor-rank-avatar-small{flex-shrink:0}.honor-rank-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:#ffffff0f;display:flex;align-items:center;justify-content:center;font-size:18px}.honor-rank-info{display:flex;flex-direction:column;gap:2px;min-width:0}.honor-rank-name{font-size:14px;font-weight:600;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.honor-rank-level-tag{font-size:11px;color:#a78bfa;font-weight:500}.honor-rank-progress-area{flex:1;min-width:0}.honor-rank-progress-track{width:100%;height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.honor-rank-progress-fill{height:100%;border-radius:4px;transition:width .8s ease;min-width:4px}.honor-rank-score{flex-shrink:0;font-size:16px;font-weight:700;min-width:50px;text-align:right;color:#a78bfa}.level-distribution{padding:0}.level-chart-header{display:grid;grid-template-columns:70px 1fr 50px;gap:12px;align-items:center;padding:10px 16px;font-size:13px;font-weight:600;color:#fff6;background:#ffffff0a;border-radius:8px;margin-bottom:8px}.level-chart-row{display:grid;grid-template-columns:70px 1fr 50px;gap:12px;align-items:center;padding:10px 16px;border-radius:8px;margin-bottom:4px;background:#ffffff0a;transition:background .2s}.level-chart-row:hover{background:#7c3aed14}.level-chart-bar-track{width:100%;height:20px;background:#ffffff0f;border-radius:10px;overflow:hidden}.level-chart-bar-fill{height:100%;border-radius:10px;transition:width .8s ease;min-width:8px}.level-chart-count{font-size:14px;font-weight:600;color:#ffffffb3;text-align:right}.level-student-lists{margin-top:20px;display:flex;flex-direction:column;gap:12px}.level-card{background:#ffffff0a;border-radius:12px;padding:16px;border:1px solid rgba(255,255,255,.06)}.level-card-title{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:14px;color:#fffc}.level-student-grid{display:flex;flex-wrap:wrap;gap:8px}.level-student-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:#ffffff0f;border-radius:16px;font-size:13px}.level-student-pet{color:#34d399;font-weight:500}.level-student-name{color:#ffffffb3}@media(max-width:768px){.honor-page-full{padding:12px}.honor-header{padding:4px 8px;margin-bottom:12px}.honor-header-icon{width:36px;height:36px;font-size:18px;border-radius:10px}.honor-header-title{font-size:20px;letter-spacing:1px}.honor-champion-wall{padding:20px 12px 16px;border-radius:16px}.honor-champion-title-text{font-size:18px;letter-spacing:2px}.honor-podium-row{gap:8px}.honor-podium-card{padding:16px 10px 12px;gap:8px}.honor-podium-slot--1 .honor-podium-card{padding:20px 14px 16px}.honor-podium-rank-watermark{font-size:60px}.honor-podium-slot--1 .honor-podium-rank-watermark{font-size:80px}.honor-podium-medal{font-size:22px}.honor-podium-slot--1 .honor-podium-medal{font-size:26px}.honor-podium-crown{font-size:20px}.honor-podium-score-value{font-size:18px}.honor-podium-slot--1 .honor-podium-score-value{font-size:22px}.honor-podium-name{font-size:12px;max-width:60px}.honor-podium-slot--1 .honor-podium-name{font-size:13px;max-width:80px}.honor-rank-row{padding:10px 12px;gap:8px}.honor-rank-row--tied{padding-left:16px}.honor-rank-left{min-width:140px}.honor-rank-score{min-width:44px;font-size:14px}.honor-rank-group-header{padding:8px 12px}.level-chart-header,.level-chart-row{grid-template-columns:60px 1fr 50px;gap:8px;padding:10px 12px}}@media(max-width:480px){.honor-podium-row{flex-direction:column;align-items:center;gap:12px}.honor-podium-slot--1{order:1}.honor-podium-slot--2{order:2}.honor-podium-slot--3{order:3}.honor-podium-slot{max-width:100%;flex-direction:row;gap:12px;align-items:stretch}.honor-podium-card{flex-direction:row;gap:12px;padding:12px 16px;border-radius:16px;border-bottom:1px solid rgba(255,255,255,.08)}.honor-podium-avatars{flex-direction:row}.honor-podium-base{width:48px;min-width:48px;height:auto!important;border-radius:12px}.honor-podium-base:after{display:none}.honor-rank-progress-area{display:none}.honor-rank-left{min-width:120px}}.pet-card-badge-btn{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:6px 0;margin-top:6px;border:none;border-radius:6px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #f59e0b4d}.pet-card-badge-btn:hover{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 12px #f59e0b66;transform:translateY(-1px)}.pet-card-badge-btn:active{transform:translateY(0)}.pet-card-level--max{background:linear-gradient(135deg,#fbbf24,#f59e0b)!important;animation:maxLevelPulse 2s ease-in-out infinite}@keyframes maxLevelPulse{0%,to{box-shadow:0 0 #fbbf2466}50%{box-shadow:0 0 8px 2px #fbbf2433}}.badge-room-page{min-height:100vh;background:linear-gradient(180deg,#1a1a2e,#16213e,#0f3460);padding:24px;position:relative;overflow:hidden}.badge-room-bg-pattern{position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 50%,rgba(251,191,36,.06) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(245,158,11,.04) 0%,transparent 50%),radial-gradient(circle at 50% 80%,rgba(192,132,252,.04) 0%,transparent 50%);pointer-events:none}.badge-room-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;margin-bottom:32px;background:#ffffff0d;border-radius:16px;border:1px solid rgba(251,191,36,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.badge-room-back-btn{display:flex;align-items:center;gap:6px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#ffffffb3;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px;transition:all .2s}.badge-room-back-btn:hover{background:#ffffff1f;color:#fff}.badge-room-title-area{display:flex;align-items:center;gap:14px}.badge-room-title-icon{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;box-shadow:0 4px 16px #fbbf2466}.badge-room-title{font-size:26px;font-weight:800;color:#fbbf24;margin:0;letter-spacing:2px;text-shadow:0 2px 8px rgba(251,191,36,.3)}.badge-room-subtitle{font-size:13px;color:#ffffff80;margin:2px 0 0}.badge-room-count{display:flex;flex-direction:column;align-items:center;padding:8px 20px;background:#fbbf241a;border-radius:12px;border:1px solid rgba(251,191,36,.2)}.badge-room-count-num{font-size:28px;font-weight:800;color:#fbbf24;line-height:1}.badge-room-count-label{font-size:12px;color:#ffffff80;margin-top:4px}.badge-room-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1200px;margin:0 auto}@media(max-width:1200px){.badge-room-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.badge-room-grid{grid-template-columns:repeat(2,1fr);gap:16px}.badge-room-header{flex-wrap:wrap;gap:12px;padding:12px 16px}.badge-room-title{font-size:20px}}@media(max-width:480px){.badge-room-grid{grid-template-columns:1fr}.badge-room-page{padding:12px}}.badge-card{position:relative;animation:badgeCardFadeIn .6s ease-out both}@keyframes badgeCardFadeIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.badge-card-glow{position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:20px;background:linear-gradient(135deg,#fbbf244d,#f59e0b1a,#c084fc33);z-index:0;opacity:0;transition:opacity .3s ease}.badge-card:hover .badge-card-glow{opacity:1}.badge-card-inner{position:relative;z-index:1;background:linear-gradient(180deg,#1e1e3cf2,#14142dfa);border-radius:18px;padding:24px 16px 20px;display:flex;flex-direction:column;align-items:center;border:1px solid rgba(251,191,36,.2);transition:all .3s ease;overflow:hidden}.badge-card:hover .badge-card-inner{border-color:#fbbf2480;transform:translateY(-4px);box-shadow:0 12px 32px #0000004d,0 0 20px #fbbf2426}.badge-card-crown{position:absolute;top:8px;right:12px;font-size:18px;color:#fbbf24;opacity:.6;transition:opacity .3s}.badge-card:hover .badge-card-crown{opacity:1;animation:crownBounce .6s ease}@keyframes crownBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.badge-card-image-wrap{position:relative;width:120px;height:120px;margin-bottom:12px}.badge-card-image-ring{position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:50%;border:2px solid rgba(251,191,36,.3);transition:border-color .3s}.badge-card:hover .badge-card-image-ring{border-color:#fbbf24b3;box-shadow:0 0 16px #fbbf2433}.badge-card-image{width:100%;height:100%;object-fit:contain;border-radius:50%;background:#fbbf240d}.badge-card-pet-name{font-size:18px;font-weight:700;color:#fff;margin-bottom:6px;text-align:center}.badge-card-pet-count{font-size:13px;font-weight:500;color:#fbbf24;margin-left:2px}.badge-card-level-badge{display:inline-flex;align-items:center;padding:3px 12px;border-radius:12px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:12px;font-weight:600;margin-bottom:10px}.badge-card-owner{display:flex;align-items:center;gap:6px;margin-bottom:10px}.badge-card-owner-label{font-size:11px;color:#fff6}.badge-card-owner-name{font-size:14px;font-weight:600;color:#ffffffd9}.badge-card-stats{display:flex;gap:16px;margin-bottom:8px}.badge-card-stat{display:flex;align-items:center;gap:4px}.badge-card-stat-icon{font-size:14px}.badge-card-stat-value{font-size:14px;font-weight:700;color:#fbbf24}.badge-card-group{font-size:11px;color:#c084fccc;border:1px solid rgba(192,132,252,.3);padding:2px 10px;border-radius:10px;margin-top:4px}.badge-card-view-hint{margin-top:8px;font-size:11px;color:#fbbf2480;transition:color .2s}.badge-card:hover .badge-card-view-hint{color:#fbbf24e6}.badge-card{cursor:pointer}.badge-room-empty{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center;background:#ffffff08;border-radius:20px;border:1px dashed rgba(251,191,36,.2);max-width:600px;margin:60px auto}.badge-room-empty-icon{width:80px;height:80px;border-radius:50%;background:#fbbf241a;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fbbf24;margin-bottom:20px;opacity:.6}.badge-room-empty-title{font-size:20px;font-weight:700;color:#fffc;margin-bottom:10px}.badge-room-empty-desc{font-size:14px;color:#fff6;line-height:1.6;margin-bottom:24px;max-width:400px}.badge-room-empty-btn{padding:10px 28px;border-radius:20px;border:1px solid rgba(251,191,36,.4);background:#fbbf241a;color:#fbbf24;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.badge-room-empty-btn:hover{background:#fbbf2433;border-color:#fbbf2499}.cert-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:certOverlayFadeIn .3s ease}@keyframes certOverlayFadeIn{0%{opacity:0}to{opacity:1}}.cert-modal-container{position:relative;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;animation:certModalSlideIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes certModalSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.cert-modal-container::-webkit-scrollbar{width:4px}.cert-modal-container::-webkit-scrollbar-thumb{background:#fbbf244d;border-radius:2px}.cert-modal-close{position:absolute;top:-40px;right:0;width:36px;height:36px;border-radius:50%;border:none;background:#ffffff1a;color:#ffffffb3;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.cert-modal-close:hover{background:#fff3;color:#fff}.cert-modal-body{display:flex;flex-direction:column;align-items:center}.cert-certificate{width:100%}.cert-border-outer{background:linear-gradient(135deg,#fbbf24,#f59e0b,#fbbf24,#f59e0b,#fbbf24);background-size:200% 200%;animation:certBorderShimmer 4s ease infinite;border-radius:20px;padding:4px}@keyframes certBorderShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.cert-border-inner{background:linear-gradient(180deg,#1a1a2e,#16213e,#0f3460);border-radius:17px;padding:32px 28px 24px;position:relative;overflow:hidden}.cert-corner{position:absolute;font-size:20px;color:#fbbf244d;line-height:1}.cert-corner--tl{top:16px;left:16px}.cert-corner--tr{top:16px;right:16px}.cert-corner--bl{bottom:16px;left:16px}.cert-corner--br{bottom:16px;right:16px}.cert-header{text-align:center;margin-bottom:20px}.cert-header-icon{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:inline-flex;align-items:center;justify-content:center;font-size:24px;color:#fff;margin-bottom:12px;box-shadow:0 4px 20px #fbbf2466}.cert-title{font-size:28px;font-weight:800;color:#fbbf24;margin:0;letter-spacing:6px;text-shadow:0 2px 10px rgba(251,191,36,.3)}.cert-subtitle{font-size:11px;color:#fbbf2466;letter-spacing:4px;margin-top:4px;font-weight:500}.cert-title-divider{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px}.cert-title-divider-line{width:60px;height:1px;background:linear-gradient(90deg,transparent,rgba(251,191,36,.5),transparent)}.cert-title-divider-star{color:#fbbf24;font-size:10px}.cert-content{text-align:center;margin-bottom:20px}.cert-declaration{font-size:14px;color:#fffc;line-height:2;text-align:justify;padding:0 4px;margin-bottom:16px;text-indent:2em}.cert-achievements{margin-bottom:16px;text-align:left}.cert-achievements-title{font-size:14px;font-weight:600;color:#fbbf24;margin-bottom:10px;text-align:center}.cert-achievements-list{display:flex;flex-direction:column;gap:8px}.cert-achievement-item{background:#fbbf240f;border:1px solid rgba(251,191,36,.12);border-radius:10px;padding:10px 12px}.cert-achievement-left{display:flex;align-items:center;gap:6px;margin-bottom:4px}.cert-achievement-dot{color:#fbbf24;font-size:12px}.cert-achievement-text{font-size:14px;font-weight:600;color:#ffffffe6}.cert-achievement-count{font-size:12px;color:#fbbf24;font-weight:700;margin-left:2px}.cert-achievement-msg{font-size:12px;color:#ffffff8c;line-height:1.6;padding-left:18px}.cert-parent-message{background:#fbbf2414;border:1px solid rgba(251,191,36,.15);border-radius:12px;padding:14px 16px;text-align:left;margin-top:4px}.cert-parent-message-title{font-size:13px;font-weight:600;color:#fbbf24;margin-bottom:6px}.cert-parent-message-body{font-size:13px;color:#ffffffb3;line-height:1.8}.cert-stats-row{display:flex;align-items:center;justify-content:center;gap:20px;padding:12px 0;border-top:1px solid rgba(251,191,36,.1);border-bottom:1px solid rgba(251,191,36,.1);margin-bottom:4px}.cert-stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}.cert-stat-value{font-size:22px;font-weight:800;color:#fbbf24;line-height:1}.cert-stat-label{font-size:11px;color:#fff6}.cert-stat-divider{width:1px;height:28px;background:#fbbf2426}.cert-pet-image-area{position:relative;display:flex;flex-direction:column;align-items:center;margin:16px 0}.cert-pet-image-ring{position:absolute;top:-8px;width:172px;height:172px;border-radius:50%;border:2px solid rgba(251,191,36,.3);box-shadow:0 0 20px #fbbf2426}.cert-pet-image{width:156px;height:156px;object-fit:contain;border-radius:50%;background:#fbbf240d}.cert-pet-image-label{margin-top:6px;font-size:12px;font-weight:600;color:#fbbf24;padding:2px 14px;border-radius:10px;background:#fbbf241a;border:1px solid rgba(251,191,36,.2)}.cert-pet-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:8px 0}.cert-pet-gallery-item{display:flex;flex-direction:column;align-items:center;position:relative}.cert-pet-gallery-ring{position:absolute;top:-4px;width:112px;height:112px;border-radius:50%;border:2px solid rgba(251,191,36,.3);box-shadow:0 0 16px #fbbf241f}.cert-pet-gallery-image{width:100px;height:100px;object-fit:contain;border-radius:50%;background:#fbbf240d}.cert-pet-gallery-label{margin-top:4px;font-size:11px;font-weight:600;color:#fbbf24;padding:1px 10px;border-radius:8px;background:#fbbf241a;border:1px solid rgba(251,191,36,.2);max-width:120px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cert-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px}.cert-date{font-size:12px;color:#fff6}.cert-seal{width:52px;height:52px;border-radius:50%;border:2px solid rgba(251,191,36,.4);display:flex;align-items:center;justify-content:center}.cert-seal-inner{display:flex;flex-direction:column;align-items:center;gap:1px;color:#fbbf24;font-size:10px;font-weight:700}.cert-actions{margin-top:20px;display:flex;justify-content:center}.cert-download-btn{display:flex;align-items:center;justify-content:center;padding:12px 32px;border-radius:24px;border:none;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1a2e;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px #fbbf2466}.cert-download-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #fbbf2480}.cert-download-btn:active{transform:translateY(0)}.cert-download-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:768px){.cert-modal-container{max-width:100%}.cert-border-inner{padding:24px 16px 20px}.cert-title{font-size:22px;letter-spacing:4px}.cert-declaration{font-size:13px}.cert-stats-row{gap:12px}.cert-stat-value{font-size:18px}.cert-pet-image{width:130px;height:130px}.cert-pet-image-ring{width:142px;height:142px}.cert-pet-gallery-image{width:80px;height:80px}.cert-pet-gallery-ring{width:90px;height:90px}}@media(max-width:480px){.cert-modal-overlay{padding:12px}.cert-border-inner{padding:20px 12px 16px}.cert-title{font-size:20px;letter-spacing:2px}.cert-corner{font-size:14px}}.store-page{min-height:100vh;background:#f8f9fb;padding:32px 24px}.store-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;max-width:1200px;margin-left:auto;margin-right:auto}.store-title{font-size:26px;font-weight:700;color:#111827;letter-spacing:-.5px}.store-actions{display:flex;gap:10px;align-items:center}.manage-btn-active{background:#7c3aed!important;color:#fff!important;border-color:#7c3aed!important}.add-goods-btn{background:#7c3aed!important;border:none!important;border-radius:8px!important;padding:8px 20px!important;height:auto!important;font-weight:600!important}.add-goods-btn:hover{background:#6d28d9!important}.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:16px;max-width:1200px;margin:0 auto}.store-item-card{background:#fff;border-radius:14px;padding:20px 16px 16px;position:relative;transition:box-shadow .25s ease,transform .25s ease;border:1px solid #f0f0f0;box-shadow:0 1px 3px #0000000a}.store-item-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.store-item-icon{font-size:48px;text-align:center;margin-bottom:14px;line-height:1}.store-item-info{margin-bottom:14px}.store-item-name-row{display:flex;justify-content:space-between;align-items:center;gap:6px}.store-item-name{font-size:14px;font-weight:600;color:#111827;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.store-item-desc{font-size:12px;color:#9ca3af;line-height:1.5;margin-top:6px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.store-item-stock-editable{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:#f3f4f6;border-radius:6px;cursor:pointer;transition:background .2s;flex-shrink:0}.store-item-stock-editable:hover{background:#e5e7eb}.store-item-stock{font-size:12px;color:#6b7280;font-weight:500}.stock-edit-icon{font-size:10px!important;color:#9ca3af}.store-item-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #f5f5f5}.store-item-price{display:flex;align-items:center;gap:4px}.price-icon{font-size:14px}.price-value{font-size:16px;font-weight:700;color:#d97706}.redeem-btn{background:#7c3aed;color:#fff;border:none;border-radius:6px;font-weight:600;padding:5px 14px;font-size:13px;cursor:pointer;transition:background .2s;line-height:1.4}.redeem-btn:hover{background:#6d28d9}.redeem-btn:active{background:#5b21b6}.store-item-manage{position:absolute;top:8px;right:8px}.store-empty{grid-column:1 / -1;text-align:center;padding:80px 20px;color:#9ca3af;font-size:16px;background:#fff;border-radius:14px;border:2px dashed #e5e7eb}.add-goods-modal .ant-modal-content{border-radius:16px!important;overflow:hidden;box-shadow:0 16px 48px #0000001f!important}.add-goods-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid #f0f0f0}.add-goods-header h2{font-size:20px;font-weight:700;color:#111827;margin:0}.close-btn{width:32px;height:32px;border-radius:8px;border:none;background:#f3f4f6;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;color:#6b7280;font-size:14px}.close-btn:hover{background:#e5e7eb;color:#111827}.add-goods-body{padding:20px 24px;max-height:60vh;overflow-y:auto}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.icon-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px}.icon-option{width:44px;height:44px;border:2px solid #e5e7eb;border-radius:10px;background:#fff;font-size:22px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.icon-option:hover{border-color:#c4b5fd}.icon-option-active{border-color:#7c3aed;background:#f5f3ff;box-shadow:0 0 0 2px #7c3aed14}.stock-setting{padding:12px;background:#f9fafb;border-radius:8px}.stock-input-row{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.stock-input-label{font-size:14px;color:#374151;font-weight:500}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#374151}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#7c3aed;vertical-align:sub}.add-goods-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #f0f0f0}.confirm-add-btn{background:#7c3aed!important;border:none!important;border-radius:8px!important;padding:8px 24px!important;height:auto!important;font-weight:600!important;min-width:110px}.confirm-add-btn:hover{background:#6d28d9!important}.redeem-modal .ant-modal-content{border-radius:16px!important;overflow:hidden;box-shadow:0 16px 48px #0000001f!important}.redeem-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid #f0f0f0}.redeem-header h3{font-size:18px;font-weight:700;color:#111827;margin:0}.redeem-body{padding:20px 24px}.redeem-goods-card{display:flex;align-items:center;gap:16px;background:#fefce8;padding:16px;border-radius:12px;border:1px solid #fef08a}.redeem-goods-icon{font-size:40px;line-height:1;flex-shrink:0}.redeem-goods-detail{flex:1;min-width:0}.redeem-goods-name{font-size:16px;font-weight:700;color:#111827;margin-bottom:4px}.redeem-goods-desc{font-size:13px;color:#9ca3af;line-height:1.5;margin-bottom:4px}.redeem-goods-price{display:flex;align-items:center;gap:4px;font-size:15px;color:#d97706;font-weight:600}.student-select-antd{width:100%}.student-select-antd .ant-select-selector{border-radius:8px!important;border-color:#e5e7eb!important}.student-select-antd .ant-select-selector:hover{border-color:#9ca3af!important}.student-select-antd .ant-select-focused .ant-select-selector{border-color:#7c3aed!important;box-shadow:0 0 0 2px #7c3aed0f!important}.redeem-summary{background:#f9fafb;padding:16px;border-radius:10px;border:1px solid #e5e7eb;margin-top:16px}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;color:#6b7280}.summary-deduct{color:#dc2626}.summary-row.summary-total{border-top:1px solid #e5e7eb;margin-top:8px;padding-top:10px;font-size:15px;color:#111827}.summary-row.summary-total.insufficient,.summary-row.summary-total.insufficient strong{color:#dc2626}.insufficient-warning{margin-top:10px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:13px;font-weight:600;text-align:center}.redeem-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #f0f0f0}.confirm-redeem-btn{background:#111827!important;border:none!important;border-radius:8px!important;padding:8px 24px!important;height:auto!important;font-weight:600!important;min-width:110px}.confirm-redeem-btn:hover:not(:disabled){background:#1f2937!important}.confirm-redeem-btn:disabled{background:#d1d5db!important;color:#9ca3af!important;cursor:not-allowed!important}@media(max-width:768px){.store-page{padding:16px}.store-title{font-size:22px}.store-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.store-item-icon{font-size:40px}}.top-header-action-btn--activate{background:#fbbf2426!important;border:1px solid rgba(251,191,36,.3)!important;border-radius:12px!important;padding:4px 12px!important}.top-header-action-btn--activate:hover{background:#fbbf2440!important;border-color:#fbbf2480!important}.top-header-action-btn--activate span{color:#fbbf24;font-weight:600}.payment-modal .ant-modal-content{border-radius:20px;padding:0;overflow:hidden}.payment-modal .ant-modal-body{padding:0}.payment-modal-inner{display:flex;flex-direction:column}.payment-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f0f0f0}.payment-modal-title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;color:#1f2937}.payment-modal-close{font-size:20px;color:#9ca3af;padding:4px 8px;border:none;background:none;cursor:pointer;transition:opacity .2s;line-height:1}.payment-modal-close:hover{opacity:.6}.payment-modal-body{padding:24px}.payment-select-step{text-align:center}.payment-step-title{font-size:20px;font-weight:700;color:#1f2937;margin-bottom:4px}.payment-step-desc{font-size:14px;color:#9ca3af;margin-bottom:24px}.payment-plans{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.payment-plan-card{position:relative;border-radius:16px;padding:24px 20px;border:2px solid;cursor:pointer;transition:all .25s ease;text-align:center;overflow:hidden}.payment-plan-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.payment-plan-card--selected{box-shadow:0 4px 20px #0000001a;transform:translateY(-2px)}.payment-plan-badge{position:absolute;top:0;right:0;padding:4px 14px;border-radius:0 0 0 12px;color:#fff;font-size:12px;font-weight:600}.payment-plan-icon{margin-bottom:12px}.payment-plan-name{font-size:16px;font-weight:700;color:#1f2937;margin-bottom:8px}.payment-plan-price{margin-bottom:4px}.payment-plan-price-symbol{font-size:16px;font-weight:600;color:#1f2937;vertical-align:top;line-height:1.6}.payment-plan-price-value{font-size:36px;font-weight:800;color:#1f2937;line-height:1}.payment-plan-duration{font-size:13px;color:#6b7280;margin-bottom:16px}.payment-plan-features{text-align:left;display:flex;flex-direction:column;gap:8px}.payment-plan-feature{font-size:13px;color:#374151;display:flex;align-items:center}.payment-plan-check{position:absolute;bottom:12px;right:12px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center}.payment-actions{display:flex;gap:12px;justify-content:center;margin-top:8px}.payment-cancel-btn{border-radius:12px;font-size:15px;height:44px;min-width:100px}.payment-pay-btn{border-radius:12px!important;font-size:15px!important;height:44px!important;min-width:160px;background:#7c3aed!important;border:none!important;box-shadow:0 4px 12px #7c3aed4d!important}.payment-pay-btn:hover{opacity:.9!important}.payment-paying-step{text-align:center;padding:20px 0}.payment-paying-amount{font-size:40px;font-weight:800;color:#1f2937;margin:12px 0 4px}.payment-paying-plan{font-size:14px;color:#7c3aed;font-weight:500;margin-bottom:24px}.payment-qrcode{margin-bottom:24px}.payment-qrcode-wrapper{display:inline-block;padding:16px;background:#fff;border:2px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 16px #0000000f}.payment-qrcode-img{width:200px;height:200px;object-fit:contain}.payment-qrcode-tip{font-size:14px;color:#6b7280;margin-top:12px}.payment-paying-status{display:flex;align-items:center;justify-content:center;gap:4px;font-size:15px;color:#374151;font-weight:500;margin-bottom:8px}.payment-paying-hint{font-size:13px;color:#9ca3af;margin-bottom:20px}.payment-success-step,.payment-fail-step{text-align:center;padding:32px 0}.payment-result-icon{font-size:56px;margin-bottom:16px}.payment-result-icon--success{color:#22c55e}.payment-result-icon--fail{color:#f87171}.payment-result-desc{font-size:14px;color:#6b7280;margin-bottom:24px}.login-trial-expired{background:linear-gradient(135deg,#fef3c7,#fff7ed);border:1px solid #fde68a;border-radius:12px;padding:20px;text-align:center;margin-bottom:16px}.login-trial-expired-icon{margin-bottom:8px}.login-trial-expired-text{font-size:16px;font-weight:600;color:#92400e;margin-bottom:4px}.login-trial-expired-desc{font-size:13px;color:#b45309;margin-bottom:16px}.login-activate-btn{height:40px!important;border-radius:20px!important;font-size:15px!important;font-weight:600!important;background:linear-gradient(135deg,#fbbf24,#f59e0b)!important;border:none!important;color:#fff!important;box-shadow:0 4px 12px #f59e0b4d!important}.login-activate-btn:hover{background:linear-gradient(135deg,#f59e0b,#d97706)!important}.login-activate-link{text-align:center;margin-bottom:12px}.login-activate-link a{color:#d97706;font-size:14px;font-weight:500;cursor:pointer;transition:color .2s}.login-activate-link a:hover{color:#b45309}.forgot-password-card{width:440px}.forgot-password-tip{font-size:12px;color:#9ca3af;margin-bottom:12px;line-height:1.6}@media(max-width:600px){.payment-plans{grid-template-columns:1fr}.payment-plan-price-value{font-size:28px}.payment-modal-body{padding:16px}.payment-qrcode-img{width:160px;height:160px}}.roll-call-modal .ant-modal-content{border-radius:20px;padding:0;overflow:hidden}.roll-call-modal .ant-modal-body{padding:0}.roll-call-container{min-height:320px;position:relative;overflow:hidden}.roll-call-rolling{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 32px 40px;background:linear-gradient(180deg,#faf5ff,#fdf2f8,#fff);min-height:320px;position:relative}.roll-call-sparkles{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.roll-call-sparkle{position:absolute;font-size:24px;animation:rollCallSparkle 1.5s ease-in-out infinite}.roll-call-sparkle-1{top:15%;left:12%;animation-delay:0s}.roll-call-sparkle-2{top:10%;right:15%;animation-delay:.4s}.roll-call-sparkle-3{bottom:25%;left:18%;animation-delay:.8s}.roll-call-sparkle-4{bottom:20%;right:12%;animation-delay:1.2s}@keyframes rollCallSparkle{0%,to{opacity:.3;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(15deg)}}.roll-call-icon-wrap{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#c084fc,#a78bfa);display:flex;align-items:center;justify-content:center;margin-bottom:20px;box-shadow:0 4px 16px #7c3aed4d;animation:rollCallIconBounce 1s ease-in-out infinite}.roll-call-icon{font-size:28px;color:#fff}@keyframes rollCallIconBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.roll-call-title{font-size:18px;font-weight:600;color:#7c3aed;margin-bottom:24px;letter-spacing:2px}.roll-call-name-display{width:100%;height:80px;display:flex;align-items:center;justify-content:center;background:#fffc;border-radius:16px;border:2px solid #e9d5ff;margin-bottom:20px;position:relative;overflow:hidden}.roll-call-name-display:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(192,132,252,.15),transparent);animation:rollCallShimmer 1.5s ease-in-out infinite}@keyframes rollCallShimmer{0%{left:-100%}to{left:100%}}.roll-call-name-text{font-size:36px;font-weight:800;color:#7c3aed;z-index:1}.roll-call-name-rolling{animation:rollCallNameFlip .15s ease-in-out}@keyframes rollCallNameFlip{0%{transform:translateY(-8px);opacity:.3}to{transform:translateY(0);opacity:1}}.roll-call-dots{display:flex;gap:8px}.roll-call-dot{width:10px;height:10px;border-radius:50%;background:#c084fc;animation:rollCallDotBounce 1.2s ease-in-out infinite}.roll-call-dot:nth-child(2){animation-delay:.2s}.roll-call-dot:nth-child(3){animation-delay:.4s}@keyframes rollCallDotBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1.2);opacity:1}}.roll-call-result{display:flex;flex-direction:column;align-items:center;padding:40px 32px 32px;background:linear-gradient(180deg,#fffbeb,#faf5ff 30%,#fff);min-height:320px;position:relative;animation:rollCallResultFadeIn .5s ease-out}@keyframes rollCallResultFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.roll-call-confetti{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.roll-call-confetti-piece{position:absolute;font-size:28px;animation:rollCallConfettiFloat 2s ease-out forwards}.roll-call-confetti-1{top:8%;left:10%;animation-delay:0s}.roll-call-confetti-2{top:5%;right:12%;animation-delay:.2s}.roll-call-confetti-3{top:15%;left:25%;animation-delay:.4s;font-size:22px}.roll-call-confetti-4{top:12%;right:25%;animation-delay:.1s;font-size:22px}@keyframes rollCallConfettiFloat{0%{opacity:0;transform:translateY(-10px) scale(.5) rotate(0)}30%{opacity:1;transform:translateY(0) scale(1.1) rotate(10deg)}to{opacity:.6;transform:translateY(20px) scale(.9) rotate(-5deg)}}.roll-call-result-badge{display:inline-flex;align-items:center;padding:6px 24px;border-radius:20px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:16px;font-weight:700;margin-bottom:16px;box-shadow:0 4px 12px #f59e0b4d;animation:rollCallBadgePop .5s cubic-bezier(.34,1.56,.64,1);letter-spacing:1px}@keyframes rollCallBadgePop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.roll-call-result-name{font-size:40px;font-weight:800;color:#7c3aed;margin-bottom:24px;text-shadow:0 2px 8px rgba(124,58,237,.15);animation:rollCallNamePop .6s cubic-bezier(.34,1.56,.64,1)}@keyframes rollCallNamePop{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.roll-call-pet-info{display:flex;align-items:center;gap:20px;background:#fff;border-radius:16px;padding:20px;border:1px solid #f0e6ff;box-shadow:0 2px 12px #7c3aed14;width:100%;margin-bottom:24px;animation:rollCallPetSlideUp .5s ease-out .2s both}@keyframes rollCallPetSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.roll-call-pet-image-wrap{width:100px;height:100px;flex-shrink:0;border-radius:12px;overflow:hidden;background:#faf5ff;border:2px solid #e9d5ff}.roll-call-pet-image{width:100%;height:100%;object-fit:contain}.roll-call-pet-details{flex:1;min-width:0}.roll-call-pet-name-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.roll-call-pet-name{font-size:18px;font-weight:700;color:#1f2937}.roll-call-pet-level{font-size:12px;font-weight:600;color:#fff;background:#4ade80;padding:2px 8px;border-radius:4px}.roll-call-pet-stage{font-size:13px;color:#9ca3af;margin-bottom:10px}.roll-call-pet-stats{display:flex;gap:16px;margin-bottom:10px}.roll-call-pet-stat{display:flex;flex-direction:column;gap:2px}.roll-call-pet-stat-label{font-size:11px;color:#9ca3af;font-weight:500}.roll-call-pet-stat-value{font-size:15px;font-weight:700;color:#374151}.roll-call-pet-progress{margin-top:4px}.roll-call-pet-progress-bar{width:100%;height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden;margin-bottom:4px}.roll-call-pet-progress-fill{height:100%;background:linear-gradient(90deg,#c084fc,#a78bfa);border-radius:3px;transition:width .5s ease}.roll-call-pet-progress-text{font-size:12px;color:#6b7280}.roll-call-pet-progress-text strong{color:#7c3aed}.roll-call-no-pet{display:flex;align-items:center;gap:8px;padding:16px 24px;background:#fef3c7;border-radius:12px;border:1px solid #fde68a;color:#92400e;font-size:14px;font-weight:500;margin-bottom:24px;animation:rollCallPetSlideUp .5s ease-out .2s both}.roll-call-no-pet-icon{font-size:22px}.roll-call-actions{display:flex;gap:12px;width:100%;animation:rollCallPetSlideUp .5s ease-out .3s both}.roll-call-reroll-btn{flex:1;height:44px;border-radius:12px;font-size:15px;font-weight:600;background:linear-gradient(135deg,#7c3aed,#a78bfa)!important;border:none!important;box-shadow:0 4px 12px #7c3aed40}.roll-call-reroll-btn:hover{box-shadow:0 6px 16px #7c3aed59!important;transform:translateY(-1px)}.roll-call-close-btn{flex:1;height:44px;border-radius:12px;font-size:15px;font-weight:500;border:2px solid #e5e7eb}.roll-call-close-btn:hover{border-color:#c4b5fd!important;color:#7c3aed!important;background:#faf5ff!important}@media(max-width:520px){.roll-call-modal .ant-modal-content{margin:12px}.roll-call-rolling{padding:32px 20px}.roll-call-result{padding:28px 20px 24px}.roll-call-name-text{font-size:28px}.roll-call-result-name{font-size:32px}.roll-call-pet-info{flex-direction:column;align-items:center;text-align:center}.roll-call-pet-stats,.roll-call-pet-name-row{justify-content:center}}@keyframes pwa-slide-up{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}
