:root{--pink-main:#ff5c9f;--pink-dark:#d62972;--pink-light:#ffc1d9;--pink-pale:#fff1f6;--pink-border:#ffd4e5;--purple-main:#7c5cff;--purple-light:#eee8ff;--text-dark:#32233a;--text-mid:#6f6178;--text-light:#978ca0;--text-pale:#c9bfce;--bg-page:#fff7e9;--bg-card:#fffdf8;--bg-nav:#fffdf8f0;--color-success:#43a047;--color-warning:#fb8c00;--color-danger:#e53935;--color-info:#1e88e5;--radius-sm:6px;--radius-md:14px;--radius-lg:22px;--radius-xl:28px;--radius-full:999px;--shadow-card:0 10px 0 #f0d6b5, 0 18px 34px #7c5cff1f;--shadow-hover:0 14px 0 #eacaa0, 0 24px 42px #ff5c9f38;--shadow-modal:0 18px 0 #f0d6b5bf, 0 30px 70px #32233a2e;--shadow-nav:0 8px 0 #f0d6b5bf, 0 18px 36px #32233a14;--clay-bg-1:#fff7e9;--clay-bg-2:#ffeef7;--clay-bg-3:#edf7ff;--clay-surface:#fffdf8;--clay-line:#f2d8ba;--clay-peach:#ffb8a6;--clay-mint:#9be7c5;--clay-sky:#9fd7ff;--clay-lilac:#c7b7ff;--clay-gold:#ffd66b;--clay-ink:#32233a;--clay-press:cubic-bezier(.34,1.56,.64,1);--clay-border:3px solid var(--clay-line)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{touch-action:manipulation;-webkit-overflow-scrolling:touch;overflow-y:scroll}body{background:radial-gradient(circle at 12% 6%,#ffd66b59,transparent 28%),radial-gradient(circle at 88% 10%,#9fd7ff6b,transparent 30%),linear-gradient(135deg,var(--clay-bg-1) 0%,var(--clay-bg-2) 52%,var(--clay-bg-3) 100%);color:var(--text-dark);touch-action:manipulation;min-height:100vh;font-family:PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:15px;line-height:1.5}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}button,input,textarea{touch-action:manipulation}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #7c5cff73}input,textarea{font-family:inherit;font-size:inherit;border:2px solid var(--clay-line);border-radius:var(--radius-md);color:var(--text-dark);background:#fffdf8;outline:none;padding:10px 13px;transition:border-color .2s,box-shadow .2s,background .2s}input:focus,textarea:focus{border-color:var(--pink-main);box-shadow:0 0 0 4px #ff5c9f1f}.page-main{min-height:calc(100vh - 72px);margin-top:72px;padding:30px 26px 56px;overflow-x:hidden}.welcome-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:calc(100vh - 154px);display:flex}.welcome-emoji{filter:drop-shadow(0 12px #f0d6b5b8);font-size:82px;animation:2.2s ease-in-out infinite bounceFloat}@keyframes bounceFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.welcome-title{color:var(--clay-ink);font-size:30px;font-weight:900}.welcome-subtitle{color:var(--text-mid);font-size:15px;line-height:1.9}.welcome-create-btn{background:linear-gradient(135deg,var(--pink-main),#ff8dbb);color:#fff;border-radius:var(--radius-full);cursor:pointer;min-height:48px;transition:transform .2s var(--clay-press),box-shadow .2s var(--clay-press);border:3px solid #fff;align-items:center;gap:8px;margin-top:4px;padding:13px 34px;font-size:16px;font-weight:800;display:flex;box-shadow:0 8px #d62972,0 16px 28px #ff5c9f52}.welcome-create-btn:hover{transform:translateY(-3px);box-shadow:0 11px #d62972,0 20px 30px #ff5c9f5c}.welcome-create-btn:active{transform:translateY(4px);box-shadow:0 3px #d62972,0 10px 18px #ff5c9f3d}.dashboard{max-width:1400px;margin:0 auto}.class-info-bar{border:var(--clay-border);border-radius:var(--radius-xl);background:#fffdf8c7;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:22px;padding:14px 18px;display:flex;box-shadow:0 8px #f0d6b5d1}.class-info-title{color:var(--clay-ink);font-size:21px;font-weight:900}.class-info-count{color:var(--text-mid);border-radius:var(--radius-full);background:#fff7d7;border:2px solid #ffe69a;padding:5px 14px;font-size:13px;font-weight:700}.class-info-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.btn-outline-pink{border:2px solid var(--pink-main);min-height:40px;color:var(--pink-dark);border-radius:var(--radius-full);cursor:pointer;transition:all .2s var(--clay-press);background:#fff;align-items:center;gap:5px;padding:8px 15px;font-size:13px;font-weight:800;display:flex;box-shadow:0 4px #ffc1d9b3}.btn-outline-pink:hover{background:var(--pink-pale)}.btn-solid-pink{background:linear-gradient(135deg,var(--pink-main),#ff8dbb);color:#fff;border-radius:var(--radius-full);cursor:pointer;min-height:40px;transition:all .2s var(--clay-press);border:2px solid #fff;align-items:center;gap:5px;padding:8px 15px;font-size:13px;font-weight:800;display:flex;box-shadow:0 5px #d62972}.btn-solid-pink:hover{transform:translateY(-2px)}.btn-solid-pink:active{transform:translateY(3px);box-shadow:0 2px #d62972}.student-grid{grid-template-columns:repeat(var(--card-cols,6),1fr);gap:calc(20px * var(--card-scale,1));touch-action:pan-x pan-y pinch-zoom;display:grid}.find-zoom-group{align-items:center;gap:8px;margin-left:auto;display:flex}.zoom-ctrl{align-items:center;gap:4px;display:flex}.zoom-btn{border-radius:var(--radius-full);border:2px solid var(--clay-line);height:34px;color:var(--text-mid);cursor:pointer;transition:all .2s var(--clay-press);white-space:nowrap;background:#fff;justify-content:center;align-items:center;padding:5px 12px;font-size:12px;font-weight:800;display:flex;box-shadow:0 4px #f0d6b5c7}.zoom-btn:hover{border-color:var(--pink-main);color:var(--pink-main)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 20px;display:flex}.empty-state-icon{opacity:.55;font-size:52px}.empty-state-text{color:var(--text-light);font-size:16px;font-weight:500}.empty-state-sub{color:var(--text-pale);font-size:13px}@media (width<=640px){.page-main{padding:12px 8px 48px}.sort-batch-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}}.nav-bar{background:var(--bg-nav);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);height:60px;box-shadow:var(--shadow-nav);z-index:100;border-radius:var(--radius-xl);border:3px solid #ffffffdb;align-items:center;gap:10px;padding:0 16px;display:flex;position:fixed;top:10px;left:16px;right:16px}.nav-logo{color:var(--pink-dark);white-space:nowrap;border:2px solid var(--pink-border);border-radius:var(--radius-full);background:#fff1f6;flex-shrink:0;align-items:center;gap:8px;padding:7px 12px;font-size:17px;font-weight:900;text-decoration:none;display:flex;box-shadow:0 4px #ffc1d9a8}.nav-logo-icon{filter:drop-shadow(0 3px #ffc1d9cc);font-size:22px}.nav-divider{background:var(--clay-line);border-radius:var(--radius-full);flex-shrink:0;width:2px;height:28px}.nav-class-selector{flex-shrink:0;position:relative}.nav-class-btn{border-radius:var(--radius-full);color:#9f5a00;cursor:pointer;min-height:40px;transition:all .2s var(--clay-press);white-space:nowrap;background:#fff7d7;border:2px solid #ffe69a;align-items:center;gap:6px;padding:7px 14px;font-size:14px;font-weight:800;display:flex;box-shadow:0 4px #ffd66bb8}.nav-class-btn:hover{transform:translateY(-2px);box-shadow:0 6px #ffd66bb8}.nav-class-btn:active{transform:translateY(2px);box-shadow:0 2px #ffd66bb8}.nav-class-arrow{font-size:10px;transition:transform .25s;display:inline-block}.nav-class-arrow.open{transform:rotate(180deg)}.class-dropdown{background:var(--clay-surface);border-radius:var(--radius-lg);min-width:220px;box-shadow:var(--shadow-modal);border:3px solid var(--clay-line);z-index:300;padding:8px;display:none;position:absolute;top:calc(100% + 10px);left:0}.class-dropdown.show{display:block}.class-dropdown-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-dark);justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;font-size:14px;transition:background .15s;display:flex}.class-dropdown-item:hover{background:#fff1f6}.class-dropdown-item.active{color:var(--pink-dark);background:#fff1f6;font-weight:800}.class-dropdown-item-count{color:var(--text-light);border-radius:var(--radius-full);background:#f5f5f5;flex-shrink:0;padding:2px 8px;font-size:12px}.class-dropdown-create{border-radius:var(--radius-sm);cursor:pointer;color:var(--pink-main);border-top:1px solid #f5f5f5;align-items:center;gap:8px;margin-top:4px;padding:9px 11px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.class-dropdown-create:hover{background:var(--pink-pale)}.class-dropdown-action{cursor:pointer;color:var(--text-dark);border-radius:var(--radius-sm);border-top:1px solid #f5f5f5;padding:9px 11px;font-size:14px;transition:background .15s}.class-dropdown-action.danger{color:#e53935}.class-dropdown-action:hover{background:var(--pink-pale)}.nav-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.nav-action-btn{border-radius:var(--radius-full);min-height:38px;transition:transform .2s var(--clay-press),box-shadow .2s var(--clay-press),background .2s;white-space:nowrap;cursor:pointer;border:2px solid #ffffffd6;align-items:center;gap:5px;padding:7px 14px;font-size:13px;font-weight:800;display:flex;box-shadow:0 4px #f0d6b5c7}.nav-action-btn:hover{transform:translateY(-2px)}.nav-action-btn:active{transform:translateY(2px);box-shadow:0 2px #f0d6b5c7}.nav-btn-interact{color:var(--purple-main);background:linear-gradient(135deg,#eee8ff,#d8ccff)}.nav-btn-settings{color:#5d4d70;background:#f5f4ff}.nav-btn-undo{color:#a36300;background:#fff7d7;transition:all .2s}.nav-btn-undo:hover:not(:disabled){background:#ffefad}.nav-btn-undo:disabled{opacity:.38;cursor:not-allowed}.nav-btn-pk{color:#fff;border-radius:var(--radius-full);min-height:40px;transition:all .2s var(--clay-press);background:linear-gradient(135deg,#ff8a4c,#ffbd59);border:2px solid #fff;padding:8px 18px;font-size:13px;font-weight:900;box-shadow:0 6px #d86b23,0 12px 22px #ff8a4c52}.nav-btn-pk:hover{transform:translateY(-2px);box-shadow:0 8px #d86b23,0 16px 24px #ff8a4c5c}.nav-btn-pk:active{transform:translateY(3px);box-shadow:0 3px #d86b23,0 8px 16px #ff8a4c47}.find-student-btn{border-radius:var(--radius-full);border:2px solid var(--clay-line);min-height:34px;color:var(--text-mid);cursor:pointer;transition:all .2s var(--clay-press);white-space:nowrap;background:#fffdf8;padding:6px 12px;font-size:12px;font-weight:800;box-shadow:0 4px #f0d6b5b8}.find-student-btn:hover{border-color:var(--pink-main);color:var(--pink-main)}.find-student-btn.active{background:var(--pink-pale);border-color:var(--pink-main);color:var(--pink-main);font-weight:600}.find-student-panel{background:var(--clay-surface);border:3px solid var(--clay-line);border-radius:var(--radius-xl);width:238px;height:calc(100vh - 104px);box-shadow:var(--shadow-modal);z-index:200;transition:transform .3s var(--clay-press);flex-direction:column;display:flex;position:fixed;top:84px;right:16px;overflow:hidden;transform:translate(calc(100% + 24px))}.find-student-panel.open{transform:translate(0)}.find-panel-header{color:var(--text-dark);border-bottom:1px solid #f5f5f5;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 14px 10px;font-size:14px;font-weight:700;display:flex}.find-panel-header button{cursor:pointer;color:var(--text-light);background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.find-panel-header button:hover{color:var(--text-dark)}.find-panel-body{flex-direction:column;flex:1;gap:14px;padding:14px;display:flex;overflow-y:auto}.find-all-chip{width:100%}#findPanelGroups{flex-direction:column;gap:6px;display:flex}.find-letter-group{align-items:flex-start;gap:8px;display:flex}.find-letter-label{color:var(--text-pale);flex-shrink:0;width:16px;margin-top:7px;font-size:11px;font-weight:700}.find-letter-surnames{flex-wrap:wrap;gap:5px 8px;display:flex}.find-surname-chip{border-radius:var(--radius-full);border:2px solid var(--clay-line);min-height:34px;color:var(--text-mid);cursor:pointer;transition:all .15s var(--clay-press);white-space:nowrap;background:#fffdf8;padding:6px 12px;font-size:14px;font-weight:800}.find-surname-chip:hover{border-color:var(--pink-main);color:var(--pink-main)}.find-surname-chip.selected{background:var(--pink-pale);border-color:var(--pink-main);color:var(--pink-main);font-weight:600}.filter-chip{border-radius:var(--radius-full);border:2px solid var(--clay-line);min-height:32px;color:var(--text-mid);cursor:pointer;transition:all .2s var(--clay-press);white-space:nowrap;background:#fffdf8;padding:5px 12px;font-size:12px;font-weight:800}.filter-chip:hover{border-color:var(--pink-main);color:var(--pink-main)}.filter-chip.active{background:var(--pink-pale);border-color:var(--pink-main);color:var(--pink-main);font-weight:600}.search-no-result{text-align:center;color:var(--text-light);grid-column:1/-1;padding:48px 0;font-size:15px}.nav-btn-download{border-radius:var(--radius-full);color:#236899;white-space:nowrap;min-height:38px;transition:all .18s var(--clay-press);background:linear-gradient(135deg,#e8f5ff,#c6e6ff);border:2px solid #fff;flex-shrink:0;align-items:center;gap:4px;padding:7px 12px;font-size:13px;font-weight:800;text-decoration:none;display:flex;box-shadow:0 4px #9fd7ff}.nav-btn-download:hover{color:#283593;background:linear-gradient(135deg,#c5cae9,#9fa8da)}.nav-username-btn{border-radius:var(--radius-full);min-height:34px;color:var(--text-dark);border:2px solid var(--clay-line);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#fffdf8;max-width:120px;padding:5px 10px;font-size:13px;font-weight:800;transition:all .2s;overflow:hidden}.nav-username-btn:hover{border-color:var(--pink-main);color:var(--pink-main);background:var(--pink-pale)}.nav-username-btn.nav-username-empty{color:var(--text-pale);font-weight:400}.nav-sync-status{flex-shrink:0;align-items:center;width:20px;height:20px;display:flex;position:relative}.sync-icon{border-radius:50%;width:14px;height:14px;transition:all .3s;display:block}.sync-icon.idle{background:#e0e0e0}.sync-icon.syncing{border:2px solid var(--pink-main);background:0 0;border-top-color:#0000;border-radius:50%;animation:.8s linear infinite syncSpin}.sync-icon.success{background:var(--color-success)}.sync-icon.error{background:var(--color-danger)}@keyframes syncSpin{to{transform:rotate(360deg)}}@media (width<=640px){.nav-bar{gap:6px;padding:0 12px}.nav-logo span:not(.nav-logo-icon),.nav-divider,.nav-btn-pk,#navLeaderboardBtn,.nav-btn-shop,.nav-btn-undo,.nav-btn-download{display:none}.nav-action-btn{padding:5px 9px;font-size:12px}#currentClassNameText{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:80px;display:inline-block;overflow:hidden}.nav-class-btn{padding:5px 10px;font-size:13px}}@media (height<=500px){.nav-bar{gap:6px;height:50px;padding:0 10px}.nav-logo span:not(.nav-logo-icon),.nav-divider,.nav-btn-pk,#navLeaderboardBtn,.nav-btn-shop,.nav-btn-undo,.nav-btn-download,.nav-btn-settings{display:none}.nav-action-btn{padding:4px 8px;font-size:12px}#currentClassNameText{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:70px;display:inline-block;overflow:hidden}.nav-class-btn{padding:4px 8px;font-size:12px}.page-main{margin-top:50px}}.nav-user-dropdown{position:relative}.nav-user-dropdown-menu{border-radius:var(--radius-md);box-shadow:var(--shadow-modal);z-index:300;background:#fff;border:1px solid #f0f0f0;min-width:130px;padding:6px;display:none;position:absolute;top:calc(100% + 8px);right:0}.nav-user-dropdown-menu.show{display:block}.nav-game-dropdown{position:relative}.nav-game-dropdown-menu{border-radius:var(--radius-md);box-shadow:var(--shadow-modal);z-index:300;background:#fff;border:1px solid #f0f0f0;min-width:130px;padding:6px;display:none;position:absolute;top:calc(100% + 8px);left:0}.nav-game-dropdown-menu.show{display:block}.nav-dropdown-item{cursor:pointer;border-radius:var(--radius-sm);color:var(--text-dark);white-space:nowrap;padding:9px 11px;font-size:14px;transition:background .15s}.nav-dropdown-item:hover{background:var(--pink-pale)}.nav-dropdown-item.danger{color:#e53935}@media (width<=1280px){.nav-bar{gap:6px;padding:0 12px}.nav-actions{gap:5px}.nav-logo span:not(.nav-logo-icon){display:none}.nav-action-btn{padding:5px 10px;font-size:12px}.nav-class-btn{padding:5px 10px;font-size:13px}.nav-btn-pk{padding:5px 12px;font-size:12px}.nav-btn-battle,.nav-btn-download{padding:5px 10px;font-size:12px}.nav-username-btn{padding:3px 8px;font-size:12px}.nav-user-area{gap:5px}.nav-user-badge{padding:2px 6px;font-size:10px}}@media (width<=960px){.nav-bar{gap:3px;padding:0 8px}.nav-actions{gap:3px}.nav-action-btn{padding:4px 7px;font-size:11px}.nav-class-btn{padding:4px 8px;font-size:12px}.nav-btn-pk{padding:4px 10px;font-size:11px}.nav-btn-battle{padding:4px 8px;font-size:11px}.nav-btn-download{display:none}.nav-username-btn{max-width:80px;padding:2px 6px;font-size:11px}.nav-user-badge{display:none}}.score-icon{object-fit:contain;vertical-align:middle;width:20px;height:20px;display:inline-block}.student-card{border-radius:var(--radius-xl);box-shadow:var(--shadow-card);border:3px solid var(--clay-line);padding:calc(16px * var(--card-scale,1));cursor:pointer;transition:transform .22s var(--clay-press),box-shadow .22s var(--clay-press),border-color .22s,background .22s;-webkit-user-select:none;user-select:none;background:linear-gradient(#fffdf8 0%,#fff7ef 100%);min-width:0;position:relative;overflow:hidden}.student-card:before{content:"";pointer-events:none;background:#ffffffbf;border-radius:50%;width:42px;height:42px;position:absolute;inset:8px 8px auto auto}.student-card:hover{box-shadow:var(--shadow-hover);border-color:#ffc1d9;transform:translateY(-7px)}.student-card:active{transform:translateY(2px);box-shadow:0 6px #f0d6b5,0 12px 24px #7c5cff1a}.student-card.card-max-level{border-color:#ffd66b;box-shadow:0 10px #e5b84d,0 18px 34px #ffd66b47}.student-card.card-max-level:hover{box-shadow:0 14px #e5b84d,0 24px 42px #ffd66b5c}.card-top-bar{margin-bottom:calc(10px * var(--card-scale,1));justify-content:space-between;align-items:center;display:flex}.card-level-badge{align-items:center;gap:calc(5px * var(--card-scale,1));font-size:calc(12px * var(--card-scale,1));color:var(--text-mid);border-radius:var(--radius-full);background:#fff7d7;border:2px solid #ffe69a;padding:3px 8px;font-weight:900;display:flex;box-shadow:0 3px #ffd66b94}.card-level-badge-img{width:calc(26px * var(--card-scale,1));height:calc(26px * var(--card-scale,1));object-fit:contain;flex-shrink:0}.card-level-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.card-heart-btn{min-width:32px;min-height:32px;font-size:calc(14px * var(--card-scale,1));color:var(--text-pale);cursor:pointer;border:2px solid var(--clay-line);border-radius:var(--radius-full);transition:all .2s var(--clay-press);background:#fffdf8;justify-content:center;align-items:center;gap:2px;padding:2px;line-height:1;display:flex;box-shadow:0 3px #f0d6b5b8}.card-heart-btn:hover{color:var(--pink-main);transform:scale(1.2)}.card-heart-btn.liked{color:var(--pink-main)}.card-pet-area{height:calc(182px * var(--card-scale,1));margin-bottom:calc(10px * var(--card-scale,1));background:radial-gradient(circle at 50% 68%,#ffd66b57,#0000 42%);justify-content:center;align-items:center;animation:3s ease-in-out infinite petFloat;display:flex;position:relative}.student-card:nth-child(2) .card-pet-area{animation-delay:-.5s}.student-card:nth-child(3) .card-pet-area{animation-delay:-1s}.student-card:nth-child(4) .card-pet-area{animation-delay:-1.5s}.student-card:nth-child(5) .card-pet-area{animation-delay:-2s}.student-card:nth-child(6) .card-pet-area{animation-delay:-2.5s}.student-card:nth-child(7) .card-pet-area{animation-delay:-.8s}.student-card:nth-child(8) .card-pet-area{animation-delay:-1.8s}.card-pet-emoji{width:calc(163px * var(--card-scale,1));height:calc(163px * var(--card-scale,1));object-fit:contain;cursor:pointer;transition:transform .2s;display:block}.card-pet-egg-wrap{cursor:pointer;display:inline-flex;position:relative}.card-pet-egg{width:calc(196px * var(--card-scale,1));height:calc(196px * var(--card-scale,1));object-fit:contain;transition:transform .2s;display:block}.student-card:hover .card-pet-egg{transform:scale(1.08)}.card-egg-adopt-label{bottom:calc(22px * var(--card-scale,1));background:linear-gradient(135deg,var(--pink-main),#ff8dbb);color:#fff;font-size:calc(11px * var(--card-scale,1));white-space:nowrap;pointer-events:none;border:2px solid #fff;border-radius:20px;padding:4px 12px;font-weight:900;animation:1.4s ease-in-out infinite eggAdoptPulse;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px #d62972}.card-egg-progress-label{bottom:calc(22px * var(--card-scale,1));color:#fff;font-size:calc(10px * var(--card-scale,1));white-space:nowrap;pointer-events:none;background:#00000073;border-radius:20px;padding:2px 8px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.student-card:hover .card-pet-emoji{transform:scale(1.08)}.card-second-pet-badge{width:calc(28px * var(--card-scale,1));height:calc(28px * var(--card-scale,1));object-fit:contain;cursor:help;background:#fff;border:2px solid gold;border-radius:50%;position:absolute;bottom:0;right:0;box-shadow:0 2px 6px #ffd70066}.card-bubble-pet{width:calc(40px * var(--card-scale,1));height:calc(40px * var(--card-scale,1));object-fit:contain;cursor:help;background:#fff;border:2px solid #ffd700cc;border-radius:50%;animation:2.8s ease-in-out infinite bubblePetFloat;position:absolute;box-shadow:0 2px 10px #ffd70073}.card-stat-pet-name{font-size:calc(11px * var(--card-scale,1));color:var(--text-light);text-align:center}.card-pet-dormant{filter:grayscale();opacity:.75}.card-stat-dormant{font-size:calc(11px * var(--card-scale,1));color:#ef5350;font-weight:700}.card-stat-medals{font-size:calc(11px * var(--card-scale,1));color:#b8860b;text-align:right;justify-content:flex-end;font-weight:700}.card-medal-icon{width:calc(16px * var(--card-scale,1));height:calc(16px * var(--card-scale,1));object-fit:contain;vertical-align:middle}.card-adopt-prompt{border:2px dashed var(--pink-light);border-radius:var(--radius-md);color:var(--pink-main);font-size:calc(12px * var(--card-scale,1));cursor:pointer;background:var(--pink-pale);text-align:center;flex-direction:column;align-items:center;gap:6px;width:100%;padding:12px 16px;font-weight:600;transition:all .2s;display:flex}.student-card:hover .card-adopt-prompt{border-color:var(--pink-main);background:#fce4ec}.card-adopt-prompt-icon{font-size:calc(24px * var(--card-scale,1))}.card-name-row{margin-bottom:calc(6px * var(--card-scale,1));justify-content:space-between;align-items:baseline;gap:4px;display:flex}.card-student-name{font-size:calc(16px * var(--card-scale,1));color:var(--text-dark);font-weight:900}.card-pet-type{font-size:calc(11px * var(--card-scale,1));color:var(--text-light);flex-shrink:0}.card-progress-area{margin-bottom:calc(10px * var(--card-scale,1))}.card-progress-label{font-size:calc(11px * var(--card-scale,1));color:var(--text-light);margin-bottom:calc(5px * var(--card-scale,1));justify-content:space-between;display:flex}.card-progress-bar-bg{height:calc(8px * var(--card-scale,1));border-radius:var(--radius-full);background:#f2e2cd;border:1px solid #f0d6b5e6;overflow:hidden}.card-progress-bar-fill{background:linear-gradient(90deg,var(--pink-main),var(--clay-gold));border-radius:var(--radius-full);min-width:0;height:100%;transition:width .5s}.card-stats-row{padding-top:calc(10px * var(--card-scale,1));font-size:calc(12px * var(--card-scale,1));border-top:2px dashed #f0d6b5e6;justify-content:space-between;align-items:center;display:flex}.card-stat-item{color:var(--text-mid);align-items:center;gap:3px;display:flex}.card-stat-value{color:var(--text-dark);font-weight:700}.pet-stage-lv6{filter:drop-shadow(0 0 10px #ffc80099);animation:2.5s ease-in-out infinite petGlow6}.pet-stage-lv7{filter:drop-shadow(0 0 14px #ffd700cc);animation:2s ease-in-out infinite petLegendary}.pet-stage-lv8{filter:drop-shadow(0 0 12px #ff5000a6);animation:2s ease-in-out infinite petGlow6}.pet-stage-lv9{filter:drop-shadow(0 0 16px #dc1e00cc);animation:1.8s ease-in-out infinite petLegendary}.pet-stage-lv10{filter:drop-shadow(0 0 22px gold);animation:1.4s ease-in-out infinite petMaxLv}.sort-batch-bar{border-radius:var(--radius-xl);background:#fffdf8b8;border:3px solid #f2d8bad1;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:22px;padding:10px 12px;display:flex;box-shadow:0 7px #f0d6b58c}.sort-label{color:var(--text-light);white-space:nowrap;font-size:13px;font-weight:600}.sort-btn{border-radius:var(--radius-full);cursor:pointer;border:2px solid var(--clay-line);min-height:34px;color:var(--text-mid);transition:all .2s var(--clay-press);background:#fff;padding:6px 13px;font-size:12px;font-weight:800;box-shadow:0 4px #f0d6b5a8}.sort-btn:hover{border-color:var(--pink-main);color:var(--pink-main)}.sort-btn.active{background:linear-gradient(135deg,var(--pink-main),#ff8dbb);color:#fff;border-color:#fff;box-shadow:0 4px #d62972}.sort-bar-divider{background:var(--clay-line);border-radius:var(--radius-full);flex-shrink:0;width:2px;height:22px}.batch-enter-btn{border-radius:var(--radius-full);cursor:pointer;min-height:34px;color:var(--text-mid);border:2px solid var(--clay-line);transition:all .2s var(--clay-press);background:#fff;padding:6px 13px;font-size:12px;font-weight:800;box-shadow:0 4px #f0d6b5a8}.batch-enter-btn:hover{color:#1976d2;border-color:#90caf9}.batch-enter-btn.batch-mode-active{color:#1976d2;background:#e3f2fd;border-color:#90caf9;box-shadow:0 4px #9fd7ff}.batch-modal-hint{color:var(--text-mid);margin:0 0 12px;font-size:13px}.group-view-container{flex-wrap:wrap;grid-column:1/-1;gap:12px;width:100%;display:flex}.group-section{min-width:0;display:block}.group-section[data-layout=half]{flex:0 0 calc(50% - 8px)}.group-section[data-layout=full]{flex:0 0 100%}.group-row{align-items:stretch;gap:10px;display:flex}.group-pet-card{border-left:3px solid #0000}.gps-grid{grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 16px;display:grid}.gps-pet-item{cursor:pointer;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;transition:all .15s;display:flex}.gps-pet-item:hover{background:#f5f5f5;border-color:#e0e0e0}.gps-pet-item img{object-fit:contain;width:52px;height:52px}.gps-pet-name{color:var(--text-dark);font-size:11px;font-weight:600}.gps-pet-tier{color:var(--text-light);font-size:10px}.group-members-grid{grid-template-columns:repeat(auto-fit,minmax(calc(160px * var(--card-scale,1)),1fr));gap:calc(16px * var(--card-scale,1));flex:1;align-content:start;min-width:0;display:grid}.group-section[data-layout=half] .group-members-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px}.group-section-header{border-radius:var(--radius-md);background:#fff;border:1px solid #f0f0f0;align-items:center;gap:10px;margin:8px 0 4px;padding:8px 12px;display:flex}.group-section-name{font-size:15px;font-weight:700}.group-section-meta{color:var(--text-light);font-size:13px}.group-section-score-btn{border-radius:var(--radius-full);cursor:pointer;background:#fff;border:1.5px solid;margin-left:auto;padding:4px 12px;font-size:12px;font-weight:600;transition:all .2s}.group-section-score-btn:hover{opacity:.8}.group-item{border-radius:var(--radius-md);background:#fafafa;border:1px solid #f0f0f0;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.group-item-name{color:var(--text-dark);flex:1;font-size:14px;font-weight:600}.group-item-count{color:var(--text-light);font-size:12px}.group-item-delete{color:#bdbdbd;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px}.group-item-delete:hover{color:var(--color-danger)}.group-empty-hint{text-align:center;color:var(--text-light);padding:16px 0;font-size:13px}.group-assign-section-title{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;padding:8px 4px 4px;font-size:12px;font-weight:700}.group-assign-item{border-bottom:1px solid #f5f5f5;align-items:center;gap:8px;padding:6px 4px;display:flex}.group-assign-name{color:var(--text-dark);flex:1;font-size:13px}.group-assign-current{font-size:11px;font-weight:600}.group-assign-select{border-radius:var(--radius-sm);color:var(--text-dark);cursor:pointer;border:1.5px solid #e0e0e0;padding:3px 6px;font-size:12px}.task-item{border-radius:var(--radius-md);background:#fafafa;border:1px solid #f0f0f0;margin-bottom:8px;padding:12px}.task-item-archived{opacity:.6;align-items:center;gap:8px;display:flex}.task-item-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.task-item-name{color:var(--text-dark);flex:1;font-size:14px;font-weight:700}.task-item-points{color:var(--color-success);font-size:13px;font-weight:700}.task-item-archive{border-radius:var(--radius-full);cursor:pointer;color:var(--text-mid);background:#f5f5f5;border:1px solid #e0e0e0;padding:3px 8px;font-size:11px}.task-item-archive:hover{color:var(--color-danger);background:#ffebee;border-color:#ef9a9a}.task-item-meta{color:var(--text-light);margin-bottom:6px;font-size:12px}.task-progress-bar-bg{background:#f0f0f0;border-radius:2px;height:4px;margin-bottom:8px}.task-progress-bar-fill{background:var(--color-success);border-radius:2px;height:100%;transition:width .3s}.task-student-grid{flex-wrap:wrap;gap:6px;display:flex}.task-student-btn{border-radius:var(--radius-full);cursor:pointer;color:var(--text-mid);background:#fff;border:1.5px solid #e0e0e0;padding:4px 10px;font-size:12px;font-weight:500;transition:all .2s}.task-student-btn:hover{border-color:var(--color-success);color:var(--color-success)}.task-student-btn.done{color:var(--color-success);background:#e8f5e9;border-color:#a5d6a7;font-weight:700}.task-empty{text-align:center;color:var(--text-light);padding:20px 0;font-size:13px}.task-create-form{background:var(--pink-pale);border:1px solid var(--pink-border);border-radius:var(--radius-md);padding:12px}.modal-overlay{z-index:500;opacity:0;visibility:hidden;background:#00000075;justify-content:center;align-items:center;padding:20px;transition:opacity .25s,visibility .25s;display:flex;position:fixed;inset:0}.modal-overlay.show{opacity:1;visibility:visible}.modal-box{border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);background:#fff;width:100%;max-width:960px;max-height:90vh;transition:transform .25s;overflow:hidden auto;transform:scale(.94)translateY(12px)}.modal-overlay.show .modal-box{transform:scale(1)translateY(0)}.modal-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:22px 28px 18px;display:flex}.modal-title{color:var(--text-dark);font-size:19px;font-weight:700}.modal-close-btn{width:36px;height:36px;color:var(--text-light);cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;transition:all .2s;display:flex}.modal-close-btn:hover{color:var(--text-dark);background:#eee}.modal-header-gradient{background:linear-gradient(135deg,var(--purple-main) 0%,var(--pink-main) 100%);border-radius:var(--radius-xl) var(--radius-xl) 0 0;color:#fff;justify-content:space-between;align-items:flex-start;gap:12px;padding:24px 28px;display:flex}.modal-header-gradient .modal-title{color:#fff;font-size:21px}.modal-header-subtitle{color:#fffc;margin-top:3px;font-size:13px}.modal-close-btn-white{color:#ffffffd9;cursor:pointer;background:#ffffff2e;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:all .2s;display:flex}.modal-close-btn-white:hover{color:#fff;background:#ffffff47}.modal-body{padding:22px 28px}.modal-footer{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:12px;padding:16px 28px 22px;display:flex}.btn-cancel{border:2px solid var(--clay-line);border-radius:var(--radius-full);min-height:44px;color:var(--text-mid);cursor:pointer;transition:all .2s var(--clay-press);background:#fff;padding:11px 28px;font-size:15px;font-weight:800;box-shadow:0 5px #f0d6b5b3}.btn-cancel:hover{background:#fff7ef;transform:translateY(-2px)}.btn-cancel:active{transform:translateY(3px);box-shadow:0 2px #f0d6b5b3}.btn-confirm{background:linear-gradient(135deg,var(--pink-main),#ff8dbb);color:#fff;border-radius:var(--radius-full);cursor:pointer;min-height:44px;transition:all .2s var(--clay-press);border:2px solid #fff;padding:11px 28px;font-size:15px;font-weight:900;box-shadow:0 6px #d62972}.btn-confirm:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px #d62972,0 14px 24px #ff5c9f42}.btn-confirm:active:not(:disabled){transform:translateY(3px);box-shadow:0 3px #d62972}.btn-confirm:disabled{opacity:.45;cursor:not-allowed}.form-group{margin-bottom:16px}.form-label{color:var(--text-mid);margin-bottom:7px;font-size:14px;font-weight:600;display:block}.form-input{border-radius:var(--radius-md);width:100%;color:var(--text-dark);border:1.5px solid #e0e0e0;padding:11px 15px;font-size:15px;transition:border-color .2s}.form-input:focus{border-color:var(--pink-main)}.form-textarea{border-radius:var(--radius-md);resize:vertical;width:100%;min-height:160px;color:var(--text-dark);border:1.5px solid #e0e0e0;padding:10px 14px;font-size:14px;line-height:1.7;transition:border-color .2s}.form-textarea:focus{border-color:var(--pink-main)}.form-hint{color:var(--text-light);margin-top:5px;font-size:12px}.modal-tip{border-radius:var(--radius-md);color:#795548;background:#fff8e1;margin-bottom:16px;padding:11px 14px;font-size:13px;line-height:1.7}.sync-status-modal{z-index:1200}.sync-status-box{text-align:center;max-width:360px;padding:28px 24px;overflow:visible}.sync-status-mark{border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin:0 auto 14px;font-size:30px;font-weight:900;display:flex}.sync-status-mark.syncing{border:4px solid #f0f0f0;border-top-color:var(--pink-main);animation:.8s linear infinite syncSpin}.sync-status-mark.success{background:var(--color-success);color:#fff}.sync-status-mark.error{background:var(--color-danger);color:#fff}.sync-status-title{color:var(--text-dark);margin-bottom:6px;font-size:18px;font-weight:800}.sync-status-text{color:var(--text-mid);margin-bottom:16px;font-size:13px;line-height:1.6}.sync-status-actions{justify-content:center;gap:10px;display:flex}.sync-status-close,.sync-status-retry{padding:10px 24px;display:none}.import-preview{border-radius:var(--radius-md);background:#f9f9f9;max-height:140px;margin-top:10px;padding:12px 14px;overflow-y:auto}.import-preview-title{color:var(--text-mid);margin-bottom:8px;font-size:12px;font-weight:600}.import-preview-tag{border:1px solid var(--pink-border);border-radius:var(--radius-full);color:var(--text-dark);background:#fff;align-items:center;margin:3px;padding:3px 10px;font-size:12px;display:inline-flex}.pet-selection-grid{flex-direction:column;gap:4px;padding:4px 0;display:flex}.pet-tier-section{margin-bottom:12px}.pet-tier-label{color:var(--text-mid);margin-bottom:6px;padding-left:2px;font-size:11px;font-weight:700}.pet-tier-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.pet-selection-item{border-radius:var(--radius-md);cursor:pointer;background:#f9f9f9;border:2px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;transition:all .18s;display:flex}.pet-selection-item:hover{background:var(--pink-pale);border-color:var(--pink-light)}.pet-selection-item.selected{background:var(--pink-pale);border-color:var(--pink-main)}.pet-tier-locked-wrapper{border:2px solid #e74c3c;border-radius:10px;margin-bottom:12px;padding:16px 10px 10px;position:relative}.pet-tier-locked-wrapper .pet-tier-section{margin-bottom:0}.pet-tier-unlock-label{color:#e74c3c;white-space:nowrap;background:#fff;padding:0 8px;font-size:12px;font-weight:700;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.pet-tier-locked-wrapper .pet-selection-item{cursor:not-allowed}.pet-tier-locked-wrapper .pet-selection-item:hover{background:#f9f9f9;border-color:#0000;transform:none}.pet-tier-lock-badge{color:#999;margin-left:6px;font-size:10px;font-weight:400}.pet-selection-emoji{object-fit:contain;width:104px;height:104px}.pet-selection-name{color:var(--text-mid);text-align:center;font-size:11px;font-weight:600}.adopt-student-card{background:var(--pink-pale);border-radius:var(--radius-md);border:1px solid var(--pink-border);align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.adopt-student-avatar{background:var(--pink-main);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:17px;font-weight:700;display:flex}.adopt-student-name{color:var(--text-dark);font-size:15px;font-weight:700}.adopt-student-hint{color:var(--text-mid);margin-top:2px;font-size:12px}.scoring-header{border-bottom:1px solid #f0f0f0;align-items:center;gap:14px;padding:12px 24px 10px;display:flex}.scoring-header-pet{flex-shrink:0;font-size:38px;line-height:1}.scoring-header-pet-img{object-fit:contain;border-radius:8px;flex-shrink:0;width:48px;height:48px}.scoring-header-info{flex:1;min-width:0}.scoring-header-name{color:var(--text-dark);font-size:18px;font-weight:700}.scoring-header-level{color:var(--text-mid);margin-top:2px;font-size:12px}.scoring-header-points{text-align:right;flex-shrink:0}.scoring-points-big{color:var(--pink-main);font-size:28px;font-weight:900;line-height:1}.scoring-points-unit{color:var(--text-light);font-size:11px}.scoring-progress-wrap{border-bottom:1px solid #f0f0f0;padding:7px 22px 10px}.scoring-progress-bar-bg{border-radius:var(--radius-full);background:#f0f0f0;height:6px;overflow:hidden}.scoring-progress-bar-fill{background:linear-gradient(90deg,var(--pink-main),#ff6b9d);border-radius:var(--radius-full);height:100%;transition:width .4s}.scoring-progress-label{color:var(--text-light);text-align:right;margin-top:4px;font-size:11px}.scoring-section{margin-bottom:10px}.scoring-section-title{align-items:center;gap:5px;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.scoring-section-title-add{color:var(--color-success)}.scoring-section-title-deduct{color:var(--color-danger)}.scoring-section-title-custom{color:var(--text-mid)}.scoring-rules-grid{grid-template-columns:repeat(8,1fr);gap:8px;display:grid}.scoring-rule-btn{border-radius:var(--radius-md);cursor:pointer;text-align:left;border:1.5px solid;justify-content:space-between;align-items:center;gap:6px;min-height:50px;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.scoring-rules-grid .scoring-rule-btn{aspect-ratio:3/4;min-height:unset;text-align:center;flex-flow:column;justify-content:space-evenly;align-items:center;gap:0;padding:8px 6px}.scoring-rule-btn-add{color:#2e7d32;background:#f0faf0;border-color:#c8e6c9}.scoring-rule-btn-add:hover{border-color:var(--color-success);background:#dcedc8;transform:translateY(-1px)}.scoring-rule-btn-deduct{color:#c62828;background:#fff5f5;border-color:#ffcdd2}.scoring-rule-btn-deduct:hover{border-color:var(--color-danger);background:#ffebee;transform:translateY(-1px)}.scoring-rule-btn-icon{flex-shrink:0;margin-right:0;font-size:24px;line-height:1}.scoring-rule-btn-name{word-break:break-all;min-width:0;font-size:12px;line-height:1.3}.scoring-rule-btn-val{border-radius:var(--radius-full);flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:700}.scoring-rule-btn-add .scoring-rule-btn-val{color:#1b5e20;background:#c8e6c9}.scoring-rule-btn-deduct .scoring-rule-btn-val{color:#b71c1c;background:#ffcdd2}.scoring-custom-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.scoring-custom-adjuster{border-radius:var(--radius-md);border:1.5px solid #e0e0e0;align-items:center;display:flex;overflow:hidden}.scoring-custom-adjuster-btn{cursor:pointer;width:36px;height:38px;color:var(--text-dark);background:#f5f5f5;border:none;justify-content:center;align-items:center;font-size:18px;font-weight:700;transition:background .15s;display:flex}.scoring-custom-adjuster-btn:hover{background:#e0e0e0}.scoring-custom-amount{text-align:center;width:68px;height:38px;color:var(--text-dark);-moz-appearance:textfield;background:#fff;border:none;border-left:1.5px solid #e0e0e0;border-right:1.5px solid #e0e0e0;outline:none;padding:0;font-size:17px;font-weight:700}.scoring-custom-amount::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.scoring-custom-amount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.scoring-custom-action-btn{border-radius:var(--radius-full);cursor:pointer;border:none;padding:9px 16px;font-size:14px;font-weight:600;transition:all .15s}.scoring-custom-add-btn{color:#2e7d32;background:#e8f5e9;border:1.5px solid #c8e6c9}.scoring-custom-add-btn:hover{background:#c8e6c9}.scoring-custom-deduct-btn{color:#c62828;background:#ffebee;border:1.5px solid #ffcdd2}.scoring-custom-deduct-btn:hover{background:#ffcdd2}.scoring-footer{border-top:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:12px 22px 18px;display:flex}.scoring-undo-btn{border-radius:var(--radius-full);color:#f57f17;cursor:pointer;background:#fff8e1;border:1.5px solid #ffe082;align-items:center;gap:5px;padding:9px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.scoring-undo-btn:hover:not(:disabled){background:#fff3cd}.scoring-undo-btn:disabled{opacity:.38;cursor:not-allowed}.scoring-done-btn{background:var(--pink-main);color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;padding:9px 24px;font-size:14px;font-weight:600;transition:all .2s}.scoring-done-btn:hover{opacity:.9}.scoring-adopt-pet-btn{background:linear-gradient(135deg,var(--purple-main),var(--pink-main));color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;padding:9px 18px;font-size:14px;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #7c4dff4d}.scoring-adopt-pet-btn:hover{opacity:.9;transform:translateY(-1px)}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:76px;right:20px}.toast{border-radius:var(--radius-md);color:#fff;align-items:center;gap:8px;min-width:200px;max-width:320px;padding:11px 18px;font-size:14px;font-weight:500;animation:.3s toastIn;display:flex;box-shadow:0 4px 16px #00000024}.toast-success{background:var(--color-success)}.toast-error{background:var(--color-danger)}.toast-info{background:var(--color-info)}.toast-warning{background:var(--color-warning)}.interact-tabs{border-bottom:2px solid #f0f0f0;gap:0;margin-bottom:0;display:flex}.interact-tab-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:14px;font-size:15px;font-weight:600;transition:all .2s}.interact-tab-btn.active{color:var(--pink-main);border-bottom-color:var(--pink-main)}.interact-tab-btn:hover:not(.active){color:var(--text-mid);background:#fafafa}.interact-tab-content{padding:22px 28px;display:none}.interact-tab-content.active{display:block}.slot-count-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.slot-count-label{color:var(--text-mid);font-size:14px;font-weight:600}.slot-count-hint{color:var(--text-pale);font-size:12px}.slot-count-adjuster{border-radius:var(--radius-md);border:1.5px solid #e0e0e0;align-items:center;display:flex;overflow:hidden}.slot-count-btn{cursor:pointer;width:34px;height:34px;color:var(--text-dark);background:#f5f5f5;border:none;justify-content:center;align-items:center;font-size:17px;font-weight:700;transition:background .15s;display:flex}.slot-count-btn:hover{background:#e0e0e0}.slot-count-val{text-align:center;width:40px;height:34px;color:var(--text-dark);pointer-events:none;background:#fff;border:none;border-left:1.5px solid #e0e0e0;border-right:1.5px solid #e0e0e0;outline:none;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.slot-display-box{border:2px solid var(--pink-border);border-radius:var(--radius-lg);text-align:center;background:linear-gradient(135deg,#f5f0ff,#fff0f8);flex-direction:column;justify-content:center;align-items:center;gap:6px;height:200px;margin-bottom:16px;padding:0 16px;transition:border-color .2s;display:flex;overflow:hidden}.slot-display-box.is-rolling{border-color:var(--pink-main)}.slot-candidate-wrap{flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;animation:.13s ease-out slotScrollIn;display:flex}.slot-display-box.has-result{background:linear-gradient(135deg,#fffde7,#fff8e1);border-color:gold;justify-content:flex-start;max-height:360px;padding-top:16px;overflow-y:auto}.slot-display-pet-img{object-fit:contain;width:110px;height:110px}.slot-display-results-title{color:var(--text-mid);text-align:center;width:100%;margin-bottom:10px;font-size:14px;font-weight:700}.slot-display-result-grid{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.slot-display-result-item{flex-direction:column;align-items:center;gap:5px;width:calc(20% - 8px);animation:.4s cubic-bezier(.34,1.56,.64,1) both resultPop;display:flex}.slot-result-pet-img{object-fit:contain;width:68px;height:68px}.slot-display-pet{font-size:62px;line-height:1;transition:filter 50ms}.slot-display-name{color:var(--text-dark);font-size:22px;font-weight:700}.slot-display-sub{color:var(--text-light);font-size:13px}.slot-display-idle{opacity:.3;font-size:48px}.slot-display-idle-text{color:var(--text-pale);font-size:15px}.slot-start-btn{background:linear-gradient(135deg,var(--purple-main),var(--pink-main));color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;width:100%;padding:14px;font-size:16px;font-weight:700;transition:all .2s;box-shadow:0 3px 12px #7c4dff4d}.slot-start-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 18px #7c4dff66}.slot-start-btn:disabled{opacity:.55;cursor:not-allowed}.slot-results-area{margin-top:14px}.slot-results-title{color:var(--text-light);text-align:center;margin-bottom:8px;font-size:12px;font-weight:600}.slot-results-grid{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.slot-result-card{border:1.5px solid var(--pink-border);border-radius:var(--radius-md);background:#fff;flex-direction:column;align-items:center;gap:4px;min-width:76px;padding:10px 14px;animation:.4s cubic-bezier(.34,1.56,.64,1) both resultPop;display:flex}.slot-result-pet{font-size:26px}.slot-result-name{color:var(--text-dark);text-align:center;font-size:16px;font-weight:700}.slot-reroll-btn{border:1.5px solid var(--pink-border);border-radius:var(--radius-full);width:100%;color:var(--pink-main);cursor:pointer;background:#fff;margin-top:10px;padding:8px;font-size:13px;font-weight:500;transition:all .2s;display:block}.slot-reroll-btn:hover{background:var(--pink-pale)}.countdown-display-big{color:var(--text-dark);text-align:center;letter-spacing:2px;font-variant-numeric:tabular-nums;padding:20px 0 14px;font-size:96px;font-weight:900;line-height:1;transition:color .3s}.countdown-display-big.warning{color:var(--color-danger);animation:.9s ease-in-out infinite timerPulse}.countdown-display-big.finished{color:var(--color-danger)}.timer-set-row{justify-content:center;align-items:center;gap:12px;margin:14px 0 24px;display:flex}.timer-unit-group{align-items:center;gap:5px;display:flex}.timer-unit-adjuster{border-radius:var(--radius-md);border:1.5px solid #e0e0e0;align-items:center;display:flex;overflow:hidden}.timer-adj-btn{cursor:pointer;width:38px;height:38px;color:var(--text-dark);background:#f5f5f5;border:none;justify-content:center;align-items:center;font-size:18px;font-weight:700;transition:background .15s;display:flex}.timer-adj-btn:hover{background:#e0e0e0}.timer-unit-val{text-align:center;width:50px;height:38px;color:var(--text-dark);pointer-events:none;background:#fff;border:none;border-left:1.5px solid #e0e0e0;border-right:1.5px solid #e0e0e0;outline:none;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.timer-unit-label{color:var(--text-mid);font-size:15px;font-weight:500}.timer-colon{color:var(--text-mid);margin:0 2px;font-size:26px;font-weight:700}.timer-controls{justify-content:center;gap:12px;display:flex}.timer-ctrl-btn{border-radius:var(--radius-full);cursor:pointer;border:none;flex:1;max-width:140px;padding:13px 10px;font-size:16px;font-weight:600;transition:all .2s}.timer-btn-start{background:var(--color-success);color:#fff}.timer-btn-start:hover{opacity:.88}.timer-btn-pause{color:#f57f17;background:#fff8e1;border:1.5px solid #ffe082}.timer-btn-pause:hover{background:#fff3cd}.timer-btn-reset{color:var(--text-mid);background:#f5f5f5;border:1.5px solid #e0e0e0}.timer-btn-reset:hover{background:#eee}.timer-finished-tip{text-align:center;color:var(--color-danger);margin-top:8px;font-size:13px;font-weight:600;animation:.9s ease-in-out infinite timerPulse}.history-list{flex-direction:column;gap:6px;max-height:480px;display:flex;overflow-y:auto}.history-empty{text-align:center;color:var(--text-light);padding:32px 0;font-size:14px}.history-item{border-radius:var(--radius-md);background:#fafafa;border:1px solid #f0f0f0;align-items:center;gap:10px;padding:10px 12px;display:flex}.history-item-delta{text-align:right;flex-shrink:0;min-width:44px;font-size:16px;font-weight:800}.history-item-delta.positive{color:var(--color-success)}.history-item-delta.negative{color:var(--color-danger)}.history-item-delta.zero{color:var(--text-light)}.history-item-info{flex:1;min-width:0}.history-item-reason{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.history-item-shield{color:var(--color-info);margin-top:1px;font-size:12px}.history-item-time{color:var(--text-light);flex-shrink:0;font-size:11px}.settings-tabs{border-bottom:2px solid #f0f0f0;gap:0;margin-bottom:0;display:flex}.settings-tab-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:11px;font-size:14px;font-weight:600;transition:all .2s}.settings-tab-btn.active-add{color:var(--color-success);border-bottom-color:var(--color-success)}.settings-tab-btn.active-deduct{color:var(--color-danger);border-bottom-color:var(--color-danger)}.settings-tab-btn.active-level{color:#ff8f00;border-bottom-color:#ff8f00}.settings-tab-btn:hover:not(.active-add):not(.active-deduct):not(.active-level){color:var(--text-mid);background:#fafafa}.settings-tab-content{padding:14px 22px;display:none}.settings-tab-content.active{display:block}.settings-rule-row{border-bottom:1px solid #f5f5f5;align-items:center;gap:8px;padding:8px 0;display:flex}.settings-rule-row:last-of-type{border-bottom:none}.settings-icon-input{text-align:center;border-radius:var(--radius-sm);width:44px;padding:6px 4px;font-size:18px}.settings-name-input{border-radius:var(--radius-sm);flex:1;padding:7px 10px}.settings-points-wrap{flex-shrink:0;align-items:center;gap:3px;display:flex}.settings-points-prefix{color:var(--color-success);font-size:13px;font-weight:700}.settings-points-prefix.deduct-prefix{color:var(--color-danger)}.settings-points-input{text-align:center;border-radius:var(--radius-sm);width:46px;padding:7px 4px}.settings-delete-btn{border-radius:var(--radius-sm);cursor:pointer;width:30px;height:30px;color:var(--color-danger);background:#fff5f5;border:1px solid #ffcdd2;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;transition:all .15s;display:flex}.settings-delete-btn:hover{background:#ffebee}.settings-add-rule-btn{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--text-light);background:0 0;border:1.5px dashed #e0e0e0;justify-content:center;align-items:center;gap:6px;margin-top:10px;padding:9px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.settings-add-rule-btn:hover{border-color:var(--pink-main);color:var(--pink-main);background:var(--pink-pale)}.settings-hint{color:var(--text-light);padding:10px 0 2px;font-size:12px}.level-config-table{width:100%}.level-config-row{border-bottom:1px solid #f5f5f5;align-items:center;gap:8px;padding:8px 0;display:flex}.level-config-row:last-child{border-bottom:none}.lv-badge{border-radius:var(--radius-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:28px;font-size:11px;font-weight:700;display:flex}.lv-stage-name{color:var(--text-light);flex-shrink:0;width:44px;font-size:12px}.lv-name{color:var(--text-dark);flex-shrink:0;width:46px;font-size:13px;font-weight:600}.lv-emoji{text-align:center;flex-shrink:0;width:24px;font-size:16px}.lv-badge-img{object-fit:contain;flex-shrink:0;width:28px;height:28px}.lv-exp-label{color:var(--text-light);white-space:nowrap;font-size:12px}.lv-exp-input{text-align:center;border-radius:var(--radius-sm);width:66px;padding:5px 6px;font-size:13px;font-weight:700}.lv-max-badge{color:#f57f17;border-radius:var(--radius-full);background:#fff8e1;border:1px solid #ffe082;padding:4px 10px;font-size:11px;font-weight:700}.settings-level-reset-btn{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--text-light);background:0 0;border:1.5px dashed #e0e0e0;justify-content:center;align-items:center;gap:5px;margin-top:10px;padding:8px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.settings-level-reset-btn:hover{border-color:var(--color-warning);color:var(--color-warning);background:#fff8e1}.settings-post-max-row{border-radius:var(--radius-md);border:1px solid var(--pink-border);background:#fdf5f9;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;display:flex}.settings-post-max-label{color:var(--text-mid);white-space:nowrap;font-size:13px}.settings-post-max-input{text-align:center;width:64px;padding:5px 8px}.tier-config-row{border-radius:var(--radius-md);background:#fafafa;border:1px solid #f0f0f0;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;display:flex}.tier-icon{flex-shrink:0;font-size:20px}.tier-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tier-label{color:var(--text-dark);font-size:13px;font-weight:600}.tier-pets{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.tier-pts-label{color:var(--text-light);white-space:nowrap;font-size:12px}.tier-pts-input{text-align:center;flex-shrink:0;width:60px;padding:5px 6px;font-size:13px;font-weight:700}.lb-medal-icon{object-fit:contain;vertical-align:middle;width:18px;height:18px}.modal-medal-icon{object-fit:contain;vertical-align:middle;width:24px;height:24px}.maxlevel-pet-wrap{justify-content:center;margin-bottom:10px;display:flex}.maxlevel-pet-img{object-fit:contain;width:130px;height:130px;animation:.5s cubic-bezier(.34,1.56,.64,1) levelupPop,2s ease-in-out .5s infinite levelupPetFloat}.maxlevel-badge-row{justify-content:center;align-items:center;gap:8px;margin-bottom:10px;display:flex}.maxlevel-badge-icon{object-fit:contain;width:36px;height:36px}.maxlevel-level-text{color:#b8860b;font-size:16px;font-weight:700}.icon-picker-panel{z-index:9999;border-radius:var(--radius-lg);background:#fff;border:1.5px solid #e0e0e0;width:280px;max-height:360px;padding:12px 14px;position:absolute;overflow-y:auto;box-shadow:0 8px 28px #00000024}.icon-picker-cat-label{color:var(--text-light);letter-spacing:.5px;margin:8px 0 4px;font-size:11px;font-weight:700}.icon-picker-cat-label:first-child{margin-top:0}.icon-picker-grid{grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:4px;display:grid}.icon-picker-item{text-align:center;border-radius:var(--radius-sm);cursor:pointer;padding:5px 2px;font-size:22px;line-height:1.3;transition:background .12s}.icon-picker-item:hover{background:var(--pink-pale)}.mathpk-overlay{z-index:9999;background:#1a1a2e;flex-direction:column;display:none;position:fixed;inset:0}.mathpk-overlay.show{display:flex}.mathpk-topbar{background:linear-gradient(135deg,#fff8df 0%,#fff1d5 54%,#ffe9ef 100%);border-bottom:4px solid #f0cc85;flex-shrink:0;justify-content:space-between;align-items:center;gap:18px;min-height:76px;padding:12px 22px;display:flex;box-shadow:0 8px #f0cc85b8,0 16px 34px #32233a29}.mathpk-topbar-info{align-items:center;gap:14px;min-width:0;display:flex}.mathpk-topbar-logo{color:var(--clay-ink);white-space:nowrap;font-size:18px;font-weight:900}.mathpk-topbar-class{color:var(--clay-ink);border-radius:var(--radius-full);white-space:nowrap;background:#fffdf8;border:3px solid #f0cc85;padding:7px 14px;font-size:14px;box-shadow:0 5px #f0cc85b8}.mathpk-topbar-hint{color:#6f6178;white-space:nowrap;font-size:13px;font-weight:800}.mathpk-grade-picker,.mathpk-back-btn{border-radius:var(--radius-full);background:var(--clay-ink);color:#fff8df;text-shadow:0 2px #00000042;min-height:54px;transition:transform .16s var(--clay-press),box-shadow .16s var(--clay-press),background .16s;white-space:nowrap;border:5px solid #fff;justify-content:center;align-items:center;font-family:inherit;font-size:18px;font-weight:900;line-height:1;text-decoration:none;display:inline-flex;box-shadow:0 8px #d87400,0 16px 26px #32233a2e}.mathpk-grade-picker{gap:10px;padding:0 14px 0 20px}.mathpk-grade-select{border-radius:var(--radius-full);min-height:38px;color:var(--clay-ink);cursor:pointer;background:#fff8df;border:0;outline:none;padding:4px 30px 4px 12px;font-family:inherit;font-size:16px;font-weight:900}.mathpk-grade-select option{color:var(--clay-ink);background:#fff8df}.mathpk-back-btn{cursor:pointer;padding:0 24px}.mathpk-grade-picker:hover,.mathpk-back-btn:hover{transform:translateY(-3px);box-shadow:0 10px #d87400,0 18px 30px #32233a33}.mathpk-grade-picker:active,.mathpk-back-btn:active{transform:translateY(3px);box-shadow:0 4px #d87400,0 10px 20px #32233a29}.mathpk-iframe{border:none;flex:1;width:100%;display:block}#adoptPetModal .modal-box{flex-direction:column;display:flex;overflow:hidden}#adoptPetModal .modal-body{flex:1;overflow-y:auto}#adoptPetModal .modal-footer{flex-shrink:0}@media (width<=640px){.modal-overlay{align-items:flex-start;padding:16px 8px}.modal-box{border-radius:16px;max-width:calc(100vw - 16px)!important}}.noise-mode-row{gap:8px;margin-bottom:8px;display:flex}.noise-mode-btn{border-radius:var(--radius-md);color:var(--text-mid);cursor:pointer;background:#f5f5f5;border:1.5px solid #e0e0e0;flex:1;padding:7px 0;font-size:13px;font-weight:600;transition:all .15s}.noise-mode-btn.active{border-color:var(--pink-main);background:var(--pink-light,#fff0f5);color:var(--pink-main)}.noise-mode-hint{color:var(--text-light);text-align:center;min-height:16px;margin-bottom:12px;font-size:12px}.noise-level-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.noise-section-label{color:var(--text-mid);font-size:13px;font-weight:600}.noise-level-num{color:var(--text-dark);text-align:right;min-width:40px;font-size:22px;font-weight:900}.noise-bar-wrap{margin-bottom:16px}.noise-bar-bg{border-radius:var(--radius-full);background:#e8e8e8;height:28px;position:relative;overflow:visible}.noise-bar-fill{border-radius:var(--radius-full);background:var(--color-success);height:100%;transition:width 60ms linear,background .2s}.noise-bar-fill.above{background:var(--color-danger)}.noise-bar-fill.above-reading{background:var(--color-success)}.noise-threshold-line{background:var(--pink-main);pointer-events:none;border-radius:2px;width:3px;position:absolute;top:-5px;bottom:-5px;transform:translate(-50%);box-shadow:0 0 4px #e91e8c80}.noise-acc-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.noise-acc-val{color:var(--text-mid);font-size:13px;font-weight:600}.noise-acc-bar-bg{border-radius:var(--radius-full);background:#e8e8e8;height:12px;margin-bottom:20px;overflow:hidden}.noise-acc-bar-fill{border-radius:var(--radius-full);background:var(--color-warning);height:100%;transition:width .1s linear}.noise-acc-bar-fill.reading{background:var(--color-success)}.noise-settings{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.noise-setting-row{align-items:center;gap:10px;display:flex}.noise-setting-label{color:var(--text-mid);flex-shrink:0;width:60px;font-size:13px;font-weight:600}.noise-slider{height:4px;accent-color:var(--pink-main);cursor:pointer;flex:1}.noise-setting-val{color:var(--text-dark);text-align:right;min-width:28px;font-size:15px;font-weight:700}.noise-setting-unit{color:var(--text-mid);font-size:13px}.noise-status-row{text-align:center;min-height:20px;margin-top:10px}.noise-status-text{color:var(--color-danger);font-size:13px;font-weight:600}.reading-status-text{color:var(--color-success);font-size:13px;font-weight:600}#noiseStartBtn.is-stopping{background:linear-gradient(135deg,#e53935,#ef5350)}#readingStartBtn.is-stopping{background:linear-gradient(135deg,#2e7d32,#43a047)}.reading-duration-adj{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.reading-dur-display{color:var(--text-dark);text-align:center;min-width:44px;font-size:15px;font-weight:700}.reading-dur-btn{border-radius:var(--radius-sm);cursor:pointer;height:28px;color:var(--text-dark);white-space:nowrap;background:#f5f5f5;border:1.5px solid #e0e0e0;padding:0 8px;font-size:12px;font-weight:600}.reading-dur-btn:hover{background:#e0e0e0}.import-scores-file-btn{border:1.5px dashed var(--pink-main);border-radius:var(--radius-full);color:var(--pink-main);cursor:pointer;text-align:center;background:var(--pink-pale);padding:9px 18px;font-size:13px;font-weight:600;transition:all .2s}.import-scores-file-btn:hover{background:var(--pink-light)}#importScoresTable th,#importScoresTable td{text-align:left;border-bottom:1px solid #f0f0f0;padding:6px 10px;font-size:13px}#importScoresTable tr:last-child td{border-bottom:none}#importScoresTable td:nth-child(2),#importScoresTable td:nth-child(3){color:var(--pink-main);font-weight:600}.group-maxlevel-adopt-banner{color:#e65100;background:linear-gradient(135deg,#fff8e1,#fff3e0);border:1.5px solid #ffd54f;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin:8px 16px 0;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.group-maxlevel-adopt-banner button{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#ff9800,#f57c00);border:none;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:600;transition:opacity .15s}.group-maxlevel-adopt-banner button:hover{opacity:.85}.batch-checkbox{z-index:2;cursor:pointer;background:#fff;border:2px solid #ccc;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;transition:all .18s;display:flex;position:absolute;top:9px;left:9px}.batch-checkbox.checked{background:var(--pink-main);border-color:var(--pink-main);color:#fff}.student-card.batch-on{cursor:pointer}.batch-float-bar{border-radius:var(--radius-full);z-index:400;border:1.5px solid var(--pink-border);background:#fff;align-items:center;gap:10px;padding:10px 20px;display:none;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 28px #00000029}.batch-float-bar.show{display:flex}.batch-float-info{color:var(--text-mid);white-space:nowrap;font-size:13px;font-weight:700}.batch-float-info span{color:var(--pink-main)}.batch-select-all-btn{border-radius:var(--radius-full);cursor:pointer;border:1.5px solid var(--pink-border);background:var(--pink-pale);color:var(--pink-main);white-space:nowrap;padding:6px 13px;font-size:12px;font-weight:600;transition:all .2s}.batch-select-all-btn:hover{background:var(--pink-light)}.batch-add-btn{border-radius:var(--radius-full);cursor:pointer;color:#2e7d32;white-space:nowrap;background:#e8f5e9;border:1.5px solid #c8e6c9;padding:6px 15px;font-size:12px;font-weight:700;transition:all .2s}.batch-add-btn:hover{background:#c8e6c9}.batch-reset-btn{border-radius:var(--radius-full);cursor:pointer;color:#c62828;white-space:nowrap;background:#fff5f5;border:1.5px solid #ffcdd2;padding:6px 15px;font-size:12px;font-weight:700;transition:all .2s}.batch-reset-btn:hover{background:#ffcdd2}.batch-exit-btn{border-radius:var(--radius-full);cursor:pointer;color:var(--text-mid);white-space:nowrap;background:#f5f5f5;border:1.5px solid #e0e0e0;padding:6px 13px;font-size:12px;font-weight:600;transition:all .2s}.batch-exit-btn:hover{background:#eee}.batch-add-modal .modal-box{max-width:380px}.lb-table{border-collapse:collapse;width:100%}.lb-row{border-bottom:1px solid #f5f5f5;align-items:center;gap:14px;padding:14px 20px;transition:background .15s;display:flex}.lb-row:hover{background:#fdf5f9}.lb-row:last-child{border-bottom:none}.lb-rank{text-align:center;width:42px;color:var(--text-light);flex-shrink:0;font-size:24px;font-weight:700}.lb-rank.top1{color:gold;font-size:26px}.lb-rank.top2{color:silver}.lb-rank.top3{color:#cd7f32}.lb-pet-avatar{object-fit:contain;flex-shrink:0;width:72px;height:72px}.lb-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lb-name{color:var(--text-dark);font-size:17px;font-weight:700}.lb-level{align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.lb-level-badge{object-fit:contain;flex-shrink:0;width:20px;height:20px}.lb-medals{color:#b8860b;white-space:nowrap;font-size:15px;font-weight:700}.lb-points{color:var(--pink-main);white-space:nowrap;text-align:right;min-width:60px;font-size:17px;font-weight:700}.lb-empty{text-align:center;color:var(--text-pale);padding:40px;font-size:14px}@keyframes petFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes eggAdoptPulse{0%,to{opacity:1;transform:translate(-50%)scale(1)}50%{opacity:.85;transform:translate(-50%)scale(1.1)}}@keyframes bubblePetFloat{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.06)}}@keyframes petGlow6{0%,to{filter:drop-shadow(0 0 10px #ffc8008c)}50%{filter:drop-shadow(0 0 20px #ffc800d9)}}@keyframes petLegendary{0%,to{filter:drop-shadow(0 0 14px #ffd700bf);transform:scale(1)}50%{filter:drop-shadow(0 0 26px gold);transform:scale(1.07)}}@keyframes petMaxLv{0%,to{filter:drop-shadow(0 0 20px #ffd700d9);transform:scale(1)}50%{filter:drop-shadow(0 0 36px gold);transform:scale(1.1)}}.score-float-text{pointer-events:none;z-index:2000;transform-origin:50%;font-size:22px;font-weight:900;animation:1.1s ease-out forwards scoreFloat;position:fixed}@keyframes scoreFloat{0%{opacity:1;transform:translateY(0)scale(1)}60%{opacity:1;transform:translateY(-44px)scale(1.25)}to{opacity:0;transform:translateY(-76px)scale(.8)}}.card-deduct-shake{animation:.45s cardDeductShake}@keyframes cardDeductShake{0%,to{box-shadow:var(--shadow-card);transform:translate(0)}20%{transform:translate(-6px);box-shadow:0 0 0 2px #c6282880}40%{transform:translate(6px);box-shadow:0 0 0 2px #c6282866}60%{transform:translate(-4px);box-shadow:0 0 0 2px #c628284d}80%{transform:translate(3px)}}.card-levelup-flash{animation:.6s cardLevelupFlash}@keyframes cardLevelupFlash{0%{box-shadow:var(--shadow-card)}30%{box-shadow:0 0 0 4px #ffd70099,0 8px 28px #ffd70066}70%{box-shadow:0 0 0 6px #ffd7004d,0 8px 28px #ffd7004d}to{box-shadow:var(--shadow-card)}}.levelup-modal-body{text-align:center;padding:32px 24px}.levelup-pet-wrap{margin-bottom:6px;display:inline-block;position:relative}.levelup-pet-img{object-fit:contain;width:140px;height:140px;animation:.5s cubic-bezier(.34,1.56,.64,1) levelupPop,2s ease-in-out .5s infinite levelupPetFloat}@keyframes levelupPop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes levelupPetFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.levelup-stars{pointer-events:none;position:absolute;top:50%;left:50%}.lu-star{animation:.8s ease-out forwards luStarFly;position:absolute;top:0;left:0}@keyframes luStarFly{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}}.levelup-title{color:var(--text-dark);margin:14px 0 6px;font-size:22px;font-weight:700}.levelup-subtitle{color:var(--text-mid);font-size:14px;line-height:1.7}.levelup-level-badge{border-radius:var(--radius-full);align-items:center;gap:6px;margin:10px 0 0;padding:6px 18px;font-size:13px;font-weight:700;display:inline-flex}.levelup-badge-img{object-fit:contain;vertical-align:middle;width:20px;height:20px;margin-right:2px}.levelup-confirm-btn{background:var(--pink-main);color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;margin-top:20px;padding:10px 32px;font-size:15px;font-weight:700;transition:all .2s;box-shadow:0 3px 12px #e91e8c59}.levelup-confirm-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #e91e8c66}.maxlevel-modal-body{text-align:center;padding:30px 24px}.maxlevel-crown{font-size:52px;animation:2s ease-in-out infinite crownFloat}@keyframes crownFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.maxlevel-medal{font-size:72px;animation:.7s cubic-bezier(.34,1.56,.64,1) .2s both medalDrop}@keyframes medalDrop{0%{opacity:0;transform:translateY(-40px)scale(.5)}to{opacity:1;transform:translateY(0)scale(1)}}.maxlevel-title{color:#b8860b;margin:12px 0 6px;font-size:22px;font-weight:700}.maxlevel-subtitle{color:var(--text-mid);margin-bottom:18px;font-size:14px;line-height:1.7}.maxlevel-btns{flex-direction:column;align-items:center;gap:10px;display:flex}.btn-adopt-second-pet{background:linear-gradient(135deg,var(--purple-main),var(--pink-main));color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;width:100%;padding:11px 28px;font-size:15px;font-weight:700;transition:all .2s;box-shadow:0 3px 12px #7c4dff59}.btn-adopt-second-pet:hover{opacity:.9;transform:translateY(-2px)}.btn-skip-adopt{border-radius:var(--radius-full);color:var(--text-mid);cursor:pointer;background:#fff;border:1.5px solid #e0e0e0;padding:8px 24px;font-size:14px;transition:all .2s}.btn-skip-adopt:hover{background:#f5f5f5}.btn-decline-adopt{border-radius:var(--radius-full);color:var(--text-mid);cursor:pointer;background:#fff;border:1.5px solid #e0e0e0;width:100%;padding:8px 24px;font-size:14px;transition:all .2s}.btn-decline-adopt:hover{background:#f5f5f5}@keyframes toastIn{0%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(110%)}}@keyframes slotScrollIn{0%{opacity:0;transform:translateY(-48px)}to{opacity:1;transform:translateY(0)}}@keyframes resultPop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.55}}.nav-btn-shop{color:#9f5a00;border-radius:var(--radius-full);cursor:pointer;min-height:40px;transition:all .2s var(--clay-press);white-space:nowrap;background:linear-gradient(135deg,#fff7d7,#ffd66b);border:2px solid #fff;align-items:center;gap:5px;padding:8px 16px;font-size:13px;font-weight:900;display:flex;box-shadow:0 6px #e5b84d,0 12px 22px #ffd66b47}.nav-btn-shop:hover{transform:translateY(-2px);box-shadow:0 8px #e5b84d,0 16px 24px #ffd66b57}.nav-btn-shop:active{transform:translateY(3px);box-shadow:0 3px #e5b84d}.shop-tabs{border-bottom:2px solid #f0f0f0;gap:0;padding:0 20px;display:flex}.shop-tab-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-bottom:2.5px solid #0000;margin-bottom:-2px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s}.shop-tab-btn.active{color:var(--pink-main);border-bottom-color:var(--pink-main)}.shop-tab-content{padding:16px 20px 20px;display:none}.shop-tab-content.active{flex-direction:column;gap:14px;display:flex}.shop-step-label{color:var(--text-mid);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.shop-step-label:before{content:"";background:var(--pink-main);border-radius:2px;flex-shrink:0;width:3px;height:13px;display:inline-block}.shop-item-grid{flex-wrap:wrap;gap:10px;display:flex}.shop-item-card{cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;background:#f9f6ff;border:2px solid #e8e0f0;border-radius:16px;flex-direction:column;align-items:center;gap:5px;width:88px;padding:14px 8px 12px;transition:all .2s;display:flex}.shop-item-card:nth-child(6n+1){background:#fff8f0;border-color:#ffd4a0}.shop-item-card:nth-child(6n+2){background:#f0fff5;border-color:#96ddb0}.shop-item-card:nth-child(6n+3){background:#f0f5ff;border-color:#a8c4f8}.shop-item-card:nth-child(6n+4){background:#fff0f9;border-color:#f8b0d8}.shop-item-card:nth-child(6n+5){background:#fefff0;border-color:#d8e050}.shop-item-card:nth-child(6n+6){background:#f5f0ff;border-color:#c8a8f8}.shop-item-card:hover{filter:brightness(.97);transform:translateY(-2px);box-shadow:0 6px 16px #0000001a}.shop-item-card.selected{transform:translateY(-2px);border-color:var(--pink-main)!important;background:linear-gradient(160deg,#fff0f8,#fce4ec)!important;box-shadow:0 0 0 3px #e91e8c2e,0 6px 16px #e91e8c1f!important}.shop-item-icon{margin-bottom:1px;font-size:30px;line-height:1}.shop-item-name{color:var(--text-dark);font-size:12px;font-weight:700;line-height:1.2}.shop-item-cost{color:#9a6800;background:#ffc10726;border-radius:20px;justify-content:center;align-items:center;gap:2px;margin-top:1px;padding:2px 7px;font-size:11px;font-weight:700;display:flex}.shop-student-grid{flex-wrap:wrap;gap:8px;max-height:220px;display:flex;overflow-y:auto}.shop-student-card{border-radius:var(--radius-md);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #e0e0e0;min-width:74px;padding:8px 12px;transition:all .18s}.shop-student-card:hover{border-color:var(--pink-main);background:var(--pink-pale)}.shop-student-card.selected{border-color:var(--pink-main);background:var(--pink-pale);box-shadow:0 0 0 3px #e91e8c1f}.shop-student-card.insufficient{opacity:.5}.shop-student-card.insufficient.selected{background:#ffebee;border-color:#e53935;box-shadow:0 0 0 3px #e539351f}.shop-student-name{color:var(--text-dark);margin-bottom:4px;font-size:13px;font-weight:700}.shop-student-medals{color:#b8860b;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:600;display:flex}.shop-medal-icon{object-fit:contain;vertical-align:middle;width:16px;height:16px}.shop-exchange-footer{justify-content:flex-end;padding-top:4px;display:flex}.shop-confirm-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;background:linear-gradient(135deg,gold,#ff9800);border:none;padding:9px 24px;font-size:14px;font-weight:700;transition:all .2s;box-shadow:0 2px 10px #ff980059}.shop-confirm-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #ff980073}.shop-confirm-btn:disabled{opacity:.38;cursor:not-allowed;box-shadow:none;background:#ccc}.shop-empty{text-align:center;color:var(--text-pale);width:100%;padding:24px;font-size:14px}.shop-settings-row{border-bottom:1px solid #f5f5f5;align-items:center;gap:8px;padding:6px 0;display:flex}.shop-settings-row:last-child{border-bottom:none}.shop-icon-btn{cursor:pointer;background:#fff;border:1.5px solid #e0e0e0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:34px;padding:0;font-size:20px;transition:all .15s;display:flex}.shop-icon-btn:hover{border-color:var(--pink-main);background:var(--pink-pale)}.shop-icon-picker{background:#fff;border:1.5px solid #e0e0e0;border-radius:14px;grid-template-columns:repeat(8,1fr);gap:2px;max-width:292px;padding:8px;display:grid;box-shadow:0 8px 28px #00000029}.shop-icon-option{cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:18px;transition:background .1s;display:flex}.shop-icon-option:hover{background:#f0f0f0}.shop-name-input{flex:1;min-width:0}.shop-cost-input{text-align:center;width:60px}.shop-delete-btn{width:28px;height:28px;color:var(--text-light);cursor:pointer;background:#fff;border:1.5px solid #e0e0e0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;transition:all .15s;display:flex}.shop-delete-btn:hover{color:#e53935;background:#ffebee;border-color:#e53935}.shop-add-btn{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--text-light);background:0 0;border:1.5px dashed #e0e0e0;margin-top:6px;padding:8px;font-size:13px;font-weight:500;transition:all .2s}.shop-add-btn:hover{border-color:var(--pink-main);color:var(--pink-main);background:var(--pink-pale)}.shop-settings-footer{justify-content:flex-end;padding-top:8px;display:flex}.nav-btn-battle{border-radius:var(--radius-full);min-height:40px;color:var(--purple-main);cursor:pointer;transition:all .2s var(--clay-press);white-space:nowrap;background:linear-gradient(135deg,#eee8ff,#c7b7ff);border:2px solid #fff;padding:8px 14px;font-size:13px;font-weight:900;box-shadow:0 6px #9e8df0,0 12px 22px #7c5cff38}.nav-btn-battle:hover{transform:translateY(-2px);box-shadow:0 8px #9e8df0,0 16px 24px #7c5cff47}.nav-btn-battle:active{transform:translateY(3px);box-shadow:0 3px #9e8df0}#finalBattleModal .modal-box{flex-direction:column;max-width:860px;max-height:92vh;display:flex}.fb-setup-boss-preview{border-radius:var(--radius-md);background:#f9f0ff;grid-template-columns:repeat(5,1fr);gap:8px;padding:12px;display:grid}.fb-boss-chip{border-radius:var(--radius-sm);color:var(--text-mid);background:#fff;border:1.5px solid #e8d5ff;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;display:flex;overflow:hidden}.fb-boss-chip-img{object-fit:contain;width:100%;height:90px}.fb-boss-chip-name{text-align:center;font-size:12px;font-weight:600}.fb-exam-count-row{align-items:center;gap:10px;margin-bottom:12px;display:flex}.fb-exam-count-row label{color:var(--text-dark);font-size:13px;font-weight:600}.fb-exam-count-input{border-radius:var(--radius-sm);text-align:center;border:1.5px solid #e0e0e0;width:70px;padding:6px 10px;font-size:14px}.fb-exam-name-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;max-height:200px;display:grid;overflow-y:auto}.fb-exam-name-row{flex-direction:column;gap:3px;display:flex}.fb-exam-name-label{color:var(--text-light);font-size:11px}.fb-exam-name-input{padding:5px 8px;font-size:13px}.fb-boss-bar{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,#1a1a2e,#2d1b69);flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.fb-boss-emoji-big{object-fit:contain;width:52px;height:52px;animation:2s ease-in-out infinite fbBossBounce}@keyframes fbBossBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.fb-boss-info{flex:1}.fb-boss-info-name{margin-bottom:8px;font-size:18px;font-weight:700}.fb-hp-bar-bg{border-radius:var(--radius-full);background:#fff3;height:13px;overflow:hidden}.fb-hp-bar-fill{border-radius:var(--radius-full);background:linear-gradient(90deg,#f44,#f80);height:100%;transition:width .6s}.fb-hp-text{color:#ffffffb3;margin-top:5px;font-size:13px}.fb-exam-list{flex-wrap:nowrap;gap:8px;padding:4px 0 8px;display:flex;overflow-x:auto}.fb-exam-card{aspect-ratio:3/4;cursor:pointer;box-sizing:border-box;background:#fff;border:1.5px solid #d0d0d0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:60px;padding:14px 5px 4px;transition:all .18s;display:flex;position:relative;overflow:hidden;box-shadow:1px 2px 6px #0000001f}.fb-exam-card:before{content:"";background:#9e9e9e;border-radius:2px 2px 0 0;height:10px;transition:background .18s;position:absolute;top:0;left:0;right:0}.fb-exam-card:hover{border-color:var(--purple-main);background:#ede7f6}.fb-exam-card:hover:before{background:var(--purple-main)}.fb-exam-card.selected{border-color:var(--purple-main);background:#ede7f6;box-shadow:0 0 0 3px #7c4dff2e}.fb-exam-card.selected:before{background:var(--purple-main)}.fb-exam-card.settled{background:#e8f5e9;border-color:#81c784}.fb-exam-card.settled:before{background:#43a047}.fb-exam-card.settled.selected{background:#c8e6c9;border-color:#43a047;box-shadow:0 0 0 3px #43a0472e}.fb-exam-card-icon{display:none}.fb-exam-card-name{color:var(--text-dark);-webkit-line-clamp:4;text-align:center;word-break:break-all;-webkit-box-orient:vertical;width:100%;font-size:11px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.fb-exam-settled-label{display:none}.fb-panel-hint{text-align:center;color:var(--text-light);padding:32px 0;font-size:13px}.fb-score-panel-header{z-index:3;background:#fff;border-bottom:1px solid #f0f0f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:0;padding:5px 0 4px;display:flex;position:sticky;top:0}.fb-score-panel-title{color:var(--text-dark);font-size:13px;font-weight:700}.fb-score-panel-actions{flex-wrap:wrap;gap:5px;display:flex}.fb-btn-secondary{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-dark);background:#fafafa;border:1.5px solid #e0e0e0;padding:4px 10px;font-size:12px;font-weight:600}.fb-btn-secondary:hover{background:#f0f0f0}.fb-btn-settle{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(135deg,#7c4dff,#512da8);border:none;padding:4px 12px;font-size:12px;font-weight:700}.fb-btn-settle:hover{opacity:.88}.fb-score-table{border-collapse:collapse;width:100%;font-size:13px}.fb-score-table th{z-index:2;text-align:left;color:var(--text-mid);background:#f9f9f9;border-bottom:2px solid #eee;padding:5px 8px;font-weight:600;position:sticky;top:34px}.fb-score-table td{border-bottom:1px solid #f0f0f0;padding:5px 8px}.fb-score-td-name{color:var(--text-dark);font-weight:600}.fb-score-td-status{color:var(--color-success);font-weight:600}.fb-score-input{text-align:center;border:1.5px solid #e0e0e0;border-radius:4px;width:66px;padding:4px 6px;font-size:13px}.fb-score-input:focus{border-color:var(--purple-main);outline:none}.fb-correction-input{background:#fff8f0}.fb-active-footer{border-top:1px solid #f0f0f0;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px 16px;display:flex}.fb-btn-end{border:1.5px solid var(--color-danger);color:var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;background:#fff;padding:9px 18px;font-size:14px;font-weight:600}.fb-btn-end:hover{background:#ffebee}.fb-export-all-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-dark);background:#fafafa;border:1.5px solid #e0e0e0;padding:8px 15px;font-size:13px;font-weight:600}.fb-ended-header{text-align:center;padding:16px 0 8px}.fb-ended-title{color:var(--text-dark);font-size:22px;font-weight:700}.fb-ended-sub{color:var(--text-light);margin-top:4px;font-size:13px}.fb-final-rank-list{flex-direction:column;gap:8px;display:flex}.fb-final-rank-row{border-radius:var(--radius-md);background:#fafafa;border:1.5px solid #eee;align-items:center;gap:12px;padding:12px 16px;display:flex}.fb-rank-num{min-width:36px;font-size:18px;font-weight:900}.fb-rank-num.rank-1{color:#f5a623}.fb-rank-num.rank-2{color:#9e9e9e}.fb-rank-num.rank-3{color:#795548}.fb-rank-icon{object-fit:contain;border-radius:4px;width:28px;height:28px}.fb-rank-name{color:var(--text-dark);flex:1;font-size:15px;font-weight:700}.fb-rank-damage{color:var(--text-light);white-space:nowrap;font-size:13px}.fb-rank-medal-cfg{color:var(--text-mid);align-items:center;gap:4px;font-size:13px;display:flex}.fb-medal-input{text-align:center;border:1.5px solid #e0e0e0;border-radius:4px;width:50px;padding:3px 5px;font-size:12px}#fbAwardBtn{color:#fff;border-radius:var(--radius-md);cursor:pointer;background:linear-gradient(135deg,#f5a623,#e67e00);border:none;width:100%;margin-top:8px;padding:12px;font-size:15px;font-weight:700}#fbAwardBtn:disabled{opacity:.6;cursor:not-allowed}#battleAnimModal .modal-box{color:#fff;border-radius:var(--radius-xl);background:linear-gradient(160deg,#0d0d1a 0%,#1a0a2e 100%);max-width:660px}.bam-boss-area{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.bam-hp-wrap{background:linear-gradient(#00000080,#0000);flex-shrink:0;width:100%;padding:14px 20px 10px}.bam-boss-name{color:gold;text-align:center;text-shadow:0 0 12px #ffd70080;margin-bottom:8px;font-size:20px;font-weight:700}.bam-hp-bg{border-radius:var(--radius-full);background:#ffffff26;height:15px;overflow:hidden}.bam-hp-fill{border-radius:var(--radius-full);background:linear-gradient(90deg,#f33,#f80);height:100%;transition:width .5s}.bam-hp-text{color:#ffffff8c;text-align:right;margin-top:4px;font-size:12px}.bam-boss-dmg{color:#f33;text-shadow:0 0 20px #ff3232e6,2px 3px #000000b3;pointer-events:none;opacity:0;z-index:50;white-space:nowrap;font-size:56px;font-weight:900;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bam-boss-dmg.bam-dmg-pop{animation:.9s forwards bamBossDmg}@keyframes bamBossDmg{0%{opacity:0;transform:translate(-50%,-30%)scale(.4)}15%{opacity:1;transform:translate(-50%,-45%)scale(1.5)}55%{opacity:1;transform:translate(-50%,-65%)scale(1.1)}to{opacity:0;transform:translate(-50%,-95%)scale(.9)}}.bam-boss-img{object-fit:contain;width:100%;height:clamp(180px,34vh,288px);transition:transform .1s;display:block}#battleAnimModal{align-items:flex-start;padding-top:16px}.bam-boss-img.bam-boss-hit{animation:.3s bamHit}@keyframes bamHit{0%{filter:brightness();transform:translate(0)scale(1)}25%{filter:brightness(3)saturate(0);transform:translate(-8px)scale(.92)}75%{filter:brightness(2)saturate(0);transform:translate(8px)scale(.95)}to{filter:brightness();transform:translate(0)scale(1)}}.bam-boss-img.bam-boss-die{animation:.8s forwards bamDie}@keyframes bamDie{0%{opacity:1;transform:scale(1)}30%{filter:brightness(4);transform:scale(1.15)rotate(-3deg)}to{opacity:0;transform:scale(0)rotate(12deg)}}.bam-boss-img.bam-boss-enter{animation:.6s cubic-bezier(.175,.885,.32,1.275) bamBossEnter}@keyframes bamBossEnter{0%{opacity:0;transform:scale(.2)translateY(30px)}60%{opacity:1;transform:scale(1.08)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.bam-shake{animation:.4s bamShake}@keyframes bamShake{0%,to{transform:translate(0)}15%{transform:translate(-7px,3px)rotate(-.5deg)}30%{transform:translate(7px,-3px)rotate(.5deg)}45%{transform:translate(-5px,2px)rotate(-.3deg)}60%{transform:translate(5px,-2px)rotate(.3deg)}75%{transform:translate(-3px,1px)}}.bam-group-row{border-top:1px solid #ffffff14;flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:14px;padding:10px 20px 8px;display:flex}.bam-group{flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.bam-group-icon{object-fit:contain;border-radius:6px;width:52px;height:52px;transition:transform .3s}.bam-group.bam-jump .bam-group-icon{animation:.36s bamJump}@keyframes bamJump{0%{opacity:1;transform:scale(1)}25%{opacity:.9;transform:scale(1.15)}60%{opacity:.4;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.bam-group-name{color:#ffffffb3;font-size:13px}.bam-group-dmg{color:#f44;white-space:nowrap;pointer-events:none;opacity:0;font-size:22px;font-weight:900;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.bam-group-dmg.bam-dmg-pop{animation:.8s forwards bamDmgFloat}@keyframes bamDmgFloat{0%{opacity:0;transform:translate(-50%)translateY(0)scale(.5)}20%{opacity:1;transform:translate(-50%)translateY(-8px)scale(1.2)}60%{opacity:1;transform:translate(-50%)translateY(-20px)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-36px)scale(.8)}}.bam-result{border-radius:var(--radius-md);background:#ffffff14;flex:1;min-height:0;margin:0 16px 12px;padding:12px;overflow-y:auto}.bam-footer{flex-shrink:0}.bam-result-title{color:gold;text-align:center;margin-bottom:12px;font-size:15px;font-weight:700}.bam-result-row{border-radius:var(--radius-sm);background:#ffffff0d;align-items:center;gap:10px;margin-bottom:5px;padding:8px 10px;display:flex}.bam-result-row.rank-1{background:#f5a62326}.bam-result-row.rank-2{background:#9e9e9e1f}.bam-result-row.rank-3{background:#7955481f}.bam-result-rank{color:gold;min-width:28px;font-size:15px;font-weight:900}.bam-result-icon{object-fit:contain;border-radius:4px;width:24px;height:24px}.bam-result-name{flex:1;font-size:14px;font-weight:600}.bam-result-dmg{color:#f88;white-space:nowrap;font-size:13px}.bam-footer{border-top:1px solid #ffffff1a;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.bam-skip-btn{color:#ffffffb3;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff1a;border:1px solid #fff3;padding:10px 20px;font-size:14px}.bam-done-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(135deg,#7c4dff,#512da8);border:none;padding:10px 26px;font-size:14px;font-weight:700}.numpad-overlay{z-index:1200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.numpad-overlay.hidden{display:none}.numpad-box{border-radius:var(--radius-xl);width:280px;box-shadow:var(--shadow-modal);background:#fff;padding:20px}.numpad-display{text-align:right;color:var(--text-dark);border-radius:var(--radius-md);word-break:break-all;background:#fafafa;border:2px solid #e0e0e0;min-height:52px;margin-bottom:12px;padding:10px 12px;font-size:28px;font-weight:700}.numpad-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.numpad-btn{border-radius:var(--radius-md);cursor:pointer;color:var(--text-dark);text-align:center;background:#f5f5f5;border:1.5px solid #e8e8e8;padding:14px;font-size:20px;font-weight:700;transition:background .15s}.numpad-btn:hover{background:#e8e8e8}.numpad-btn.numpad-zero{grid-column:span 1}.numpad-btn.numpad-del{color:var(--color-danger);background:#fff0f0;border-color:#ffcdd2}.numpad-btn.numpad-confirm{background:linear-gradient(135deg, var(--pink-main), #ff6b9d);color:#fff;border-color:#0000;grid-column:span 3;font-size:16px}.numpad-btn.numpad-confirm:hover{opacity:.9}.numpad-title{color:var(--text-mid);text-align:center;margin-bottom:8px;font-size:13px;font-weight:600}.scoring-page-tabs{border-bottom:2px solid #f0f0f0;margin:0 -20px;padding:0 20px;display:flex}.scoring-page-tab-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-bottom:2.5px solid #0000;margin-bottom:-2px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s}.scoring-page-tab-btn.active{color:var(--pink-main);border-bottom-color:var(--pink-main)}.profile-medal-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;padding:12px 0;display:grid}.profile-medal-item{border-radius:var(--radius-md);text-align:center;background:#fff8e1;border:1.5px solid #ffe082;flex-direction:column;align-items:center;gap:4px;padding:8px;display:flex}.profile-medal-img{width:36px;height:36px}.profile-medal-name{color:var(--text-mid);font-size:10px}.profile-empty-hint{color:var(--text-light);text-align:center;padding:24px 0;font-size:13px}.profile-pet-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;padding:12px 0;display:grid}.profile-pet-item{border-radius:var(--radius-md);text-align:center;background:#f9f5ff;border:1.5px solid #d1b3ff;flex-direction:column;align-items:center;gap:4px;padding:8px;display:flex}.profile-pet-img{object-fit:contain;width:52px;height:52px}.profile-pet-name{color:var(--text-dark);font-size:11px;font-weight:600}.profile-pet-tier{color:var(--text-light);font-size:10px}.profile-exam-grid{grid-template-columns:repeat(5,1fr);gap:8px;padding:12px 0;display:grid}.profile-exam-btn{border-radius:var(--radius-md);cursor:pointer;background:#f5f5f5;border:2px solid #e0e0e0;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:64px;padding:10px 6px;transition:all .18s;display:flex}.profile-exam-btn:hover{border-color:var(--purple-main);background:#ede7f6}.profile-exam-btn.has-score{background:#e8f5e9;border-color:#81c784}.profile-exam-score{color:var(--text-dark);font-size:16px;font-weight:700}.profile-exam-label{color:var(--text-light);font-size:10px}.profile-exam-btn.is-locked{cursor:default}.profile-exam-btn.is-locked:hover{background:#e8f5e9;border-color:#81c784}.profile-exam-lock{vertical-align:middle;opacity:.6;margin-left:2px;font-size:9px}.group-auto-section{border-radius:var(--radius-md);background:#f9f5ff;border:1.5px solid #d1b3ff;margin-bottom:4px;padding:12px}.group-auto-title{color:#5e35b1;margin-bottom:10px;font-size:13px;font-weight:700}.group-auto-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.group-auto-label{color:var(--text-mid);font-size:12px}.group-count-input{border-radius:var(--radius-sm);text-align:center;border:1.5px solid #e0e0e0;width:55px;padding:5px 8px;font-size:13px}.group-auto-mode{gap:6px;display:flex}.group-mode-btn{border-radius:var(--radius-full);cursor:pointer;color:var(--text-mid);background:#fff;border:1.5px solid #e0e0e0;padding:4px 10px;font-size:12px;font-weight:600;transition:all .15s}.group-mode-btn.active{color:#fff;background:#7c4dff;border-color:#7c4dff}.group-auto-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(135deg,#7c4dff,#512da8);border:none;margin-left:auto;padding:6px 16px;font-size:12px;font-weight:700}.group-auto-btn:hover{opacity:.88}.group-icon-picker{border-radius:var(--radius-sm);background:#fafafa;border:1px solid #e0e0e0;flex-wrap:wrap;gap:4px;max-height:80px;padding:6px;display:flex;overflow-y:auto}.group-icon-chip{cursor:pointer;border:2px solid #0000;border-radius:4px;padding:3px 5px;font-size:18px;transition:all .1s}.group-icon-chip:hover{background:#f0e6ff}.group-icon-chip.selected{background:#ede7f6;border-color:#7c4dff}.group-item-icon{font-size:18px}.group-item-edit{cursor:pointer;opacity:.45;background:0 0;border:none;padding:0 4px;font-size:14px;transition:opacity .15s}.group-item-edit:hover{opacity:1}.group-item--editing{background:#f3eeff}.group-edit-zone{border-radius:0 0 var(--radius-md) var(--radius-md);background:#f8f4ff;border:1px solid #d1b8ff;border-top:none;flex-direction:column;gap:8px;margin:-2px 0 6px;padding:10px 12px 12px;display:flex}.group-edit-name-input{padding:6px 10px;font-size:14px}.group-edit-actions{gap:8px;display:flex}.fb-lb-tab-row{border-bottom:2px solid #f0f0f0;flex-shrink:0;gap:0;padding:0 20px;display:flex;overflow-x:auto}.fb-lb-tab-btn{color:var(--text-light);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2.5px solid #0000;margin-bottom:-2px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .2s}.fb-lb-tab-btn.active{color:#7c4dff;border-bottom-color:#7c4dff}.fb-lb-row{border-radius:var(--radius-sm);background:#fafafa;border:1px solid #f0f0f0;align-items:center;gap:12px;margin-bottom:6px;padding:10px 14px;display:flex}.fb-lb-row.rank-1{background:#fffbea;border-color:#ffe082}.fb-lb-row.rank-2{background:#f5f5f5;border-color:#e0e0e0}.fb-lb-row.rank-3{background:#fef6f0;border-color:#ffcc80}.fb-lb-rank{color:#7c4dff;min-width:30px;font-size:15px;font-weight:900}.fb-lb-icon{object-fit:contain;border-radius:4px;width:24px;height:24px}.fb-lb-name{color:var(--text-dark);flex:1;font-size:15px;font-weight:600}.fb-lb-val{color:#e53935;white-space:nowrap;font-size:14px;font-weight:700}.fb-lb-boss-tip{color:#7c4dff;text-align:center;padding:5px 0 12px;font-size:13px;font-weight:600}.gd-tab-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-top:3px solid #0000;margin-top:-2px;padding:8px 18px;font-size:14px;font-weight:600;transition:all .15s}.gd-tab-btn.active{color:#7c4dff;border-top-color:#7c4dff}.gd-tab-btn:hover:not(.active){color:var(--text-mid)}.gd-members-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.gd-member-card{border-radius:var(--radius-md);text-align:center;background:#fafafa;border:1px solid #f0f0f0;flex-direction:column;align-items:center;gap:4px;padding:12px 8px 10px;display:flex}.gd-member-pet{object-fit:contain;width:72px;height:72px}.gd-member-name{color:var(--text-dark);font-size:14px;font-weight:700}.gd-member-level{color:var(--text-light);font-size:12px}.gd-member-stats{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.gd-stat{color:var(--text-mid);font-size:12px;font-weight:600}.gd-scores-wrap{overflow-x:auto}.gd-scores-table{border-collapse:collapse;table-layout:fixed}.gd-scores-table th,.gd-scores-table td{padding:0}.gd-th-name{text-align:left;color:var(--text-light);white-space:nowrap;padding:6px 10px;font-size:12px;font-weight:700}.gd-th-exam{text-align:center;color:var(--text-light);word-break:break-all;padding:6px 4px;font-size:11px;font-weight:700;line-height:1.3}.gd-th-correction{text-align:center;color:var(--text-light);padding:6px 2px;font-size:11px;font-weight:700}.eg-odd{background:#7c4dff12}.eg-even{background:#fff}.eg-start{border-left:2px solid #e0e0e0}.gd-scores-table tbody td{padding:8px 2px}.gd-td-name{color:var(--text-dark);white-space:nowrap;padding:8px 10px;font-size:13px;font-weight:600}.gd-scores-table tbody tr{border-top:1px solid #efefef}.gd-score-cell{width:100%;color:var(--text-mid);cursor:pointer;text-align:center;box-sizing:border-box;background:#fff;border:1px solid #e8e8e8;border-radius:4px;padding:5px 3px;font-size:13px;font-weight:600;transition:all .15s}.gd-score-cell:hover{background:#ede7f6;border-color:#7c4dff}.gd-score-cell.has-val{color:var(--text-dark);background:#e8f5e9;border-color:#81c784}.gd-score-cell.is-locked{cursor:default;font-size:11px}.gd-score-cell.is-locked:hover{background:#e8f5e9;border-color:#81c784}.gd-correction-cell{color:#43a047;cursor:pointer;text-align:center;box-sizing:border-box;background:#fff;border:1.5px solid #ddd;border-radius:4px;width:100%;height:28px;font-size:15px;font-weight:700;line-height:1;transition:all .12s}.gd-correction-cell:hover{background:#ede7f6;border-color:#7c4dff}.gd-correction-cell.corrected{background:#e8f5e9;border-color:#81c784}#finalBattleModal{padding:8px}@media (height<=750px){.fb-boss-bar{padding:8px 14px}.fb-boss-emoji-big{width:44px;height:44px}.fb-boss-info-name{margin-bottom:4px;font-size:15px}.fb-hp-text{font-size:11px}.fb-exam-card{width:48px;padding:12px 4px 3px}.fb-exam-card:before{height:8px}.fb-exam-card-name{font-size:10px}}.feedback-fab{background:var(--pink-main,#e91e8c);color:#fff;cursor:pointer;z-index:900;border:none;border-radius:50%;width:48px;height:48px;font-size:20px;transition:transform .15s,box-shadow .15s;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 12px #0003}.feedback-fab:hover{transform:scale(1.1);box-shadow:0 6px 18px #00000040}.auth-overlay{z-index:2000;background:linear-gradient(135deg,#fce4ec 0%,#e8f5e9 100%);justify-content:center;align-items:flex-start;padding:20px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.auth-box{background:#fff;border-radius:20px;flex-direction:column;gap:0;width:380px;max-width:calc(100vw - 32px);margin:auto;padding:36px 40px 32px;display:flex;box-shadow:0 8px 40px #00000026}.auth-logo{text-align:center;margin-bottom:6px;font-size:40px}.auth-title{text-align:center;color:var(--text-dark);margin-bottom:4px;font-size:20px;font-weight:700}.auth-subtitle{text-align:center;color:var(--text-light);margin-bottom:24px;font-size:13px}.auth-field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.auth-label{color:var(--text-mid);font-size:13px;font-weight:600}.auth-input{background:#fafafa;border:1.5px solid #e0e0e0;border-radius:10px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s}.auth-input:focus{border-color:var(--pink-main);background:#fff}.auth-error{color:#e53935;min-height:18px;margin-bottom:4px;font-size:12px}.auth-btn-primary{background:linear-gradient(135deg, var(--pink-main), #ff6b9d);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;margin-top:6px;margin-bottom:14px;padding:12px;font-size:15px;font-weight:700;transition:all .2s}.auth-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #e91e8c59}.auth-btn-primary:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;color:var(--text-light);font-size:13px}.auth-switch a{color:var(--pink-main);cursor:pointer;font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-remember{color:var(--text-mid);cursor:pointer;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.auth-remember input[type=checkbox]{accent-color:var(--pink-main);cursor:pointer;width:15px;height:15px}.license-banner{color:#e65100;background:linear-gradient(90deg,#fff8e1,#fff3e0);border:1px solid #ffe082;border-radius:12px;align-items:center;gap:10px;margin:16px 20px 0;padding:10px 16px;font-size:13px;display:flex}.license-banner-text{flex:1;font-weight:600}.license-activate-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,gold,#ff9800);border:none;padding:6px 14px;font-size:12px;font-weight:700;transition:all .2s}.license-activate-btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px #ff980066}.nav-user-area{align-items:center;gap:8px;display:flex}.nav-user-email{color:var(--text-light);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:12px;overflow:hidden}.nav-user-badge{border-radius:var(--radius-full);white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:700}.nav-user-badge.trial{color:#e65100;background:#fff3e0;border:1px solid #ffe082}.nav-user-badge.activated{color:#2e7d32;background:#e8f5e9;border:1px solid #a5d6a7}.nav-user-badge.expiring-soon{color:#e65100;background:#fff3e0;border:1px solid #ffb74d}.nav-user-badge.expired{color:#c62828;background:#fce4ec;border:1px solid #ef9a9a}.nav-signout-btn{color:var(--text-light);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:1px solid #e0e0e0;padding:4px 10px;font-size:12px;transition:all .15s}.nav-signout-btn:hover{color:#e53935;border-color:#e53935}.license-modal-content{flex-direction:column;gap:14px;padding:20px 24px 24px;display:flex}.license-modal-desc{color:var(--text-mid);font-size:13px;line-height:1.6}.license-key-input{letter-spacing:2px;text-transform:uppercase;text-align:center;border:2px solid #e0e0e0;border-radius:10px;outline:none;padding:12px 16px;font-size:16px;font-weight:600;transition:border-color .2s}.license-key-input:focus{border-color:var(--pink-main)}.license-modal-footer{justify-content:flex-end;gap:10px;display:flex}.trial-notice-box{max-width:380px}.trial-notice-content{flex-direction:column;gap:16px;padding:20px 24px 24px;display:flex}.trial-notice-label{color:var(--text-dark);margin:0;font-size:16px}.trial-notice-limits{background:#fff8e1;border:1px solid #ffe082;border-radius:10px;flex-direction:column;gap:10px;padding:14px 18px;display:flex}.trial-limit-item{color:var(--text-dark);font-size:16px;line-height:1.5}.trial-notice-footer{justify-content:center;display:flex}.lottery-type-grid{grid-template-columns:1fr 1fr;gap:16px;padding:16px 0 8px;display:grid}.lottery-type-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fafafa;border:2px solid #e8e8e8;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;transition:all .2s;display:flex}.lottery-type-card:hover{border-color:var(--pink-main);background:var(--pink-pale)}.lottery-type-card.active{border-color:var(--pink-main);background:var(--pink-pale);box-shadow:0 2px 12px #e91e6326}.lottery-type-icon{font-size:36px}.lottery-type-name{color:var(--text-dark);font-size:15px;font-weight:700}.lottery-select-label{color:var(--text-mid);margin:12px 0 6px;font-size:13px;font-weight:600}.lottery-student-list{background:#fafafa;border:1px solid #f0f0f0;border-radius:10px;max-height:180px;overflow-y:auto}.lottery-student-item{cursor:pointer;justify-content:space-between;align-items:center;padding:8px 12px;font-size:14px;transition:background .15s;display:flex}.lottery-student-item:hover{background:var(--pink-pale)}.lottery-student-item.selected{background:var(--pink-pale);color:var(--pink-main);font-weight:600}.lottery-student-name{font-weight:500}.lottery-student-pts{color:var(--text-light);font-size:12px}.lottery-no-students{text-align:center;color:var(--text-light);padding:20px;font-size:13px}.lottery-box{width:95vw;max-width:580px;overflow:hidden}.lottery-header{border-bottom:1px solid #f5f5f5;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px 10px;display:flex}.lottery-student-info{align-items:center;gap:12px;display:flex}.lottery-student-pet{object-fit:contain;background:var(--pink-pale);border-radius:50%;width:52px;height:52px;padding:4px}.lottery-student-pet-emoji{font-size:40px}.lottery-student-name-big{color:var(--text-dark);font-size:20px;font-weight:700}.lottery-student-cost{color:var(--text-mid);margin-top:2px;font-size:13px}.lottery-grid{justify-items:stretch;gap:12px;padding:20px;display:grid}.lottery-tile{aspect-ratio:1;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;justify-content:center;align-items:center;transition:transform .15s;display:flex;position:relative;overflow:hidden}.lottery-scratch-tile{background:#fff;border:2px solid #e0e0e0}.scratch-cover{color:#ffffffb3;z-index:2;transform-origin:0;background:linear-gradient(135deg,#b0b0b0,#888);border-radius:10px;justify-content:center;align-items:center;font-size:28px;font-weight:800;transition:none;display:flex;position:absolute;inset:0}.scratch-reveal{color:var(--text-dark);text-align:center;z-index:1;justify-content:center;align-items:center;padding:8px;font-size:14px;font-weight:700;display:flex;position:absolute;inset:0}.lottery-tile-winner .scratch-reveal{color:var(--pink-main);font-size:15px}@keyframes scratch-peel{0%{clip-path:inset(0)}to{clip-path:inset(0 100% 0 0)}}@keyframes scratch-peel-slow{0%{clip-path:inset(0);opacity:1}60%{opacity:.5}to{clip-path:inset(0 100% 0 0);opacity:0}}.scratch-removing{animation:.45s cubic-bezier(.4,0,.2,1) forwards scratch-peel}.scratch-removing-slow{animation:.7s cubic-bezier(.4,0,.2,1) forwards scratch-peel-slow}.lottery-egg-tile{background:linear-gradient(145deg,#ffe566,#ffb300);border:3px solid #ffffff73;border-radius:50%/60% 60% 40% 40%;overflow:visible;box-shadow:inset 0 -5px 10px #0000001f,0 5px 16px #ffb30066}.egg-body{z-index:2;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.egg-question{color:#ffffffe6;text-shadow:0 2px 6px #0003;font-size:28px;font-weight:800}.egg-prize{color:var(--text-dark);text-align:center;padding:6px;font-size:13px;font-weight:700;line-height:1.3}.lottery-tile-winner .egg-prize{color:var(--pink-main)}.lottery-egg-tile .egg-crack-top,.lottery-egg-tile .egg-crack-bottom{background:inherit;border:inherit;border-radius:inherit;z-index:3;height:50%;display:none;position:absolute;left:0;right:0}.lottery-egg-tile .egg-crack-top{border-bottom:none;border-radius:50% 50% 0 0/60% 60% 0 0;top:0}.lottery-egg-tile .egg-crack-bottom{border-top:none;border-radius:0 0 50% 50%/0 0 40% 40%;bottom:0}@keyframes egg-wobble{0%,to{transform:rotate(0)scale(1)}20%{transform:rotate(-8deg)scale(1.05)}40%{transform:rotate(8deg)scale(1.05)}60%{transform:rotate(-5deg)scale(1.08)}80%{transform:rotate(5deg)scale(1.08)}}@keyframes egg-crack-top-fly{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(-70px)rotate(-30deg)}}@keyframes egg-crack-bottom-fly{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(60px)rotate(25deg)}}@keyframes egg-content-appear{0%{opacity:0;transform:scale(.2)translateY(10px)}60%{opacity:1;transform:scale(1.15)translateY(-3px)}to{opacity:1;transform:scale(1)translateY(0)}}.egg-cracking{animation:.35s ease-in-out egg-wobble;box-shadow:none!important;background:0 0!important;border-color:#0000!important}.egg-cracking .egg-crack-top,.egg-cracking .egg-crack-bottom{display:block}.egg-cracking .egg-crack-top{animation:.35s ease-in-out egg-wobble,.45s .35s forwards egg-crack-top-fly}.egg-cracking .egg-crack-bottom{animation:.35s ease-in-out egg-wobble,.45s .35s forwards egg-crack-bottom-fly}.egg-cracking .egg-body{animation:.4s .55s both egg-content-appear}.egg-cracking-slow{animation:.5s ease-in-out .1s egg-wobble,.5s .6s forwards egg-crack-open-slow}@keyframes egg-crack-open-slow{0%{opacity:1}to{opacity:0;transform:scale(.85)}}.lottery-result{z-index:10;background:#fffffff7;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:absolute;inset:0;overflow:hidden}.lottery-result-fireworks{pointer-events:none;position:absolute;inset:0;overflow:hidden}.lottery-result-prize{color:var(--pink-main);text-align:center;z-index:1;font-size:36px;font-weight:900;animation:.5s cubic-bezier(.34,1.56,.64,1) both prize-pop;position:relative}.lottery-result-reward{color:var(--text-dark);text-align:center;z-index:1;font-size:18px;font-weight:600;animation:.5s cubic-bezier(.34,1.56,.64,1) .1s both prize-pop;position:relative}@keyframes prize-pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.firework-dot{border-radius:50%;width:8px;height:8px;animation:1s ease-out forwards firework-burst;position:absolute}@keyframes firework-burst{0%{opacity:1;transform:translate(0)scale(0)}60%{opacity:.9}to{transform:translate(var(--tx,40px), var(--ty,-60px)) scale(1);opacity:0}}.lottery-settings-section{margin-bottom:18px}.lottery-settings-label{color:var(--text-mid);margin-bottom:8px;font-size:13px;font-weight:700}.lottery-count-hint{color:var(--text-pale);font-size:11px;font-weight:400}.lottery-cost-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lottery-cost-row select{min-width:80px;max-width:100px}.lottery-prize-header{color:var(--text-pale);grid-template-columns:1.8fr 1fr .8fr .7fr 28px;gap:6px;padding:0 2px 4px;font-size:11px;font-weight:600;display:grid}.lottery-prize-row{grid-template-columns:1.8fr 1fr .8fr .7fr 28px;align-items:center;gap:6px;margin-bottom:6px;display:grid}.lottery-prize-name{min-width:0}.lottery-prize-type{min-width:0;padding:6px 4px;font-size:12px}.lottery-prize-amount,.lottery-prize-count{text-align:center;min-width:0}input.lottery-prize-amount,input.lottery-prize-count{text-align:center}.lottery-prize-na{color:var(--text-pale);background:#f5f5f5;border-radius:8px;justify-content:center;align-items:center;height:36px;font-size:12px;display:flex}.lottery-save-btn{background:var(--pink-main);color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;margin-top:16px;padding:9px 20px;font-size:14px;font-weight:600;transition:all .2s}.lottery-save-btn:hover{background:#c2185b}.question-bank-overlay{z-index:1100;background:#00000073;justify-content:center;align-items:flex-start;padding:24px 16px;display:none;position:fixed;inset:0;overflow-y:auto}.question-bank-overlay.active{display:flex}.qb-panel{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:820px;min-height:500px;display:flex;box-shadow:0 8px 40px #0000002e}.qb-header{border-bottom:1px solid #f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px 14px;display:flex}.qb-title{color:#333;font-size:18px;font-weight:700}.qb-header-actions{align-items:center;gap:8px;display:flex}.qb-count{color:#999;margin-right:4px;font-size:13px}.qb-btn{cursor:pointer;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;transition:opacity .15s}.qb-btn:hover{opacity:.85}.qb-btn-import{color:#2e7d32;background:#e8f5e9;border:1.5px solid #a5d6a7}.qb-btn-add{color:#fff;background:#1976d2}.qb-btn-close{color:#999;background:0 0;padding:4px 8px;font-size:18px}.qb-filters{border-bottom:1px solid #f5f5f5;flex-wrap:wrap;flex-shrink:0;gap:10px;padding:12px 22px;display:flex}.qb-filter-group{flex-wrap:wrap;gap:4px;display:flex}.qb-filter-btn{color:#666;cursor:pointer;background:#fafafa;border:1.5px solid #e0e0e0;border-radius:20px;padding:4px 10px;font-size:12px;transition:all .15s}.qb-filter-btn.active{color:#1565c0;background:#e3f2fd;border-color:#1976d2;font-weight:600}.qb-filter-divider{background:#e0e0e0;align-self:stretch;width:1px;margin:0 4px}.qb-list{flex-direction:column;flex:1;gap:10px;padding:16px 22px;display:flex;overflow-y:auto}.qb-loading,.qb-empty{text-align:center;color:#bbb;padding:60px 0;font-size:14px}.qb-card{background:#fafafa;border:1px solid #eee;border-radius:10px;padding:12px 14px;transition:box-shadow .15s;position:relative}.qb-card:hover{box-shadow:0 2px 8px #00000014}.qb-card-meta{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.qb-tag{border-radius:12px;padding:2px 7px;font-size:11px;font-weight:600}.qb-tag.subject{color:#1565c0;background:#e3f2fd}.qb-tag.grade{color:#6a1b9a;background:#f3e5f5}.qb-tag.type{color:#e65100;background:#fff8e1}.qb-tag.preset{color:#2e7d32;background:#e8f5e9}.qb-card-question{color:#333;margin-bottom:4px;padding-right:48px;font-size:14px;line-height:1.6}.qb-card-options{color:#666;margin-bottom:4px;font-size:12px}.qb-card-answer{color:#888;font-size:12px}.qb-card-answer strong{color:#1976d2}.qb-delete-btn{color:#e53935;cursor:pointer;background:0 0;border:1px solid #ffcdd2;border-radius:6px;padding:3px 8px;font-size:12px;transition:background .15s;position:absolute;top:10px;right:10px}.qb-delete-btn:hover{background:#ffebee}.add-question-overlay{z-index:1200;background:#00000080;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.add-question-overlay.active{display:flex}.aq-panel{background:#fff;border-radius:14px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px #0003}.aq-header{z-index:1;background:#fff;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex;position:sticky;top:0}.aq-title{font-size:16px;font-weight:700}.aq-close{color:#999;cursor:pointer;background:0 0;border:none;font-size:18px}.aq-body{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.aq-field{flex-direction:column;gap:4px;display:flex}.aq-field label{color:#555;font-size:13px;font-weight:600}.aq-field select,.aq-field textarea,.aq-field input[type=text]{resize:vertical;border:1.5px solid #e0e0e0;border-radius:8px;outline:none;padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .15s}.aq-field select:focus,.aq-field textarea:focus,.aq-field input:focus{border-color:#1976d2}.aq-options-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.aq-opt-row{align-items:center;gap:6px;display:flex}.aq-opt-label{color:#1976d2;flex-shrink:0;width:16px;font-size:13px;font-weight:700}.aq-opt-row input{border:1.5px solid #e0e0e0;border-radius:8px;outline:none;flex:1;padding:7px 10px;font-size:13px}.aq-opt-row input:focus{border-color:#1976d2}.aq-error{color:#e53935;min-height:18px;font-size:13px}.aq-footer{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.aq-btn-cancel{color:#666;cursor:pointer;background:#fafafa;border:1.5px solid #e0e0e0;border-radius:8px;padding:8px 16px;font-size:14px}.aq-btn-submit{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:8px;padding:8px 20px;font-size:14px;font-weight:600}.aq-btn-submit:disabled{opacity:.6;cursor:default}.nav-btn-qbank{cursor:pointer;color:#4527a0;white-space:nowrap;background:linear-gradient(135deg,#ede7f6,#d1c4e9);border:1.5px solid #b39ddb;border-radius:8px;padding:6px 13px;font-size:13px;font-weight:600}.nav-btn-qbank:hover{opacity:.85}:root{--ui-icons-version:20260600;--clay-green:#26a96c;--clay-green-soft:#e9fff4;--clay-blue:#2477b8;--clay-blue-soft:#e8f5ff;--clay-red:#d93d50;--clay-red-soft:#fff0f2}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#32233a6b}.modal-box,.lottery-box,.qb-panel,.aq-panel,.numpad-box{background:var(--clay-surface);border:3px solid var(--clay-line);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal)}.modal-header,.lottery-header,.qb-header,.aq-header{border-bottom:3px solid var(--clay-line);background:linear-gradient(135deg,#fff7d7,#fff1f6)}.modal-title,.qb-title,.aq-title,.lottery-student-name-big{color:var(--clay-ink);font-weight:900}.modal-footer,.aq-footer,.fb-active-footer{border-top:3px solid var(--clay-line);background:#fff7e9c7}.modal-close-btn,.modal-close-btn-white,.qb-btn-close,.aq-close{border:2px solid var(--clay-line);border-radius:var(--radius-full);width:40px;height:40px;color:var(--text-mid);transition:transform .2s var(--clay-press), box-shadow .2s var(--clay-press), background .2s;background:#fffdf8;box-shadow:0 4px #f0d6b5b3}.modal-close-btn:hover,.modal-close-btn-white:hover,.qb-btn-close:hover,.aq-close:hover{color:var(--pink-dark);background:#fff1f6;transform:translateY(-2px)}.modal-close-btn:active,.modal-close-btn-white:active,.qb-btn-close:active,.aq-close:active{transform:translateY(2px);box-shadow:0 2px #f0d6b5b3}.form-label,.aq-field label,.lottery-select-label,.shop-step-label,.group-auto-label{color:var(--text-mid);font-weight:800}.form-input,.form-textarea,.aq-field select,.aq-field textarea,.aq-field input[type=text],.aq-opt-row input,.fb-exam-count-input,.fb-exam-name-input,.fb-score-input,.fb-medal-input,.group-count-input,.group-edit-name-input,.shop-name-input,.shop-cost-input,.lottery-prize-name,.lottery-prize-type,.lottery-prize-amount,.lottery-prize-count,.numpad-display{border:2px solid var(--clay-line);border-radius:var(--radius-md);background:#fffdf8;min-height:44px;box-shadow:inset 0 -2px #f0d6b575}.form-input:focus,.form-textarea:focus,.aq-field select:focus,.aq-field textarea:focus,.aq-field input:focus,.fb-score-input:focus{border-color:var(--pink-main);box-shadow:0 0 0 4px #ff5c9f1f,inset 0 -2px #f0d6b575}.shop-tabs,.scoring-page-tabs,.fb-lb-tab-row,.qb-filters{border-bottom:3px solid var(--clay-line);background:#fffdf8b8}.shop-tab-btn,.scoring-page-tab-btn,.fb-lb-tab-btn,.gd-tab-btn{min-height:44px;color:var(--text-mid);font-weight:900}.shop-tab-btn.active,.scoring-page-tab-btn.active,.fb-lb-tab-btn.active,.gd-tab-btn.active{color:var(--pink-dark);border-color:var(--pink-main)}.qb-btn,.aq-btn-cancel,.aq-btn-submit,.shop-confirm-btn,.shop-add-btn,.shop-delete-btn,.shop-icon-btn,.lottery-save-btn,.fb-btn-secondary,.fb-btn-settle,.fb-btn-end,.fb-export-all-btn,.group-mode-btn,.group-auto-btn,.batch-select-all-btn,.batch-add-btn,.batch-reset-btn,.batch-exit-btn,.numpad-btn,.bam-skip-btn,.bam-done-btn{border:2px solid var(--clay-line);border-radius:var(--radius-full);min-height:44px;transition:transform .2s var(--clay-press), box-shadow .2s var(--clay-press), background .2s;font-weight:900}.qb-btn,.aq-btn-cancel,.fb-btn-secondary,.fb-export-all-btn,.batch-select-all-btn,.batch-exit-btn,.numpad-btn{color:var(--text-mid);background:#fffdf8;box-shadow:0 5px #f0d6b5b3}.aq-btn-submit,.lottery-save-btn,.fb-btn-settle,.group-auto-btn,.bam-done-btn,.numpad-btn.numpad-confirm{background:linear-gradient(135deg, var(--pink-main), #ff8dbb);color:#fff;border-color:#fff;box-shadow:0 6px #d62972}.batch-add-btn,.qb-btn-import{background:var(--clay-green-soft);color:var(--clay-green);border-color:#a7e8c7;box-shadow:0 5px #a7e8c7}.batch-reset-btn,.fb-btn-end,.numpad-btn.numpad-del{background:var(--clay-red-soft);color:var(--clay-red);border-color:#ffc5cf;box-shadow:0 5px #ffc5cf}.qb-btn:hover,.aq-btn-cancel:hover,.aq-btn-submit:hover:not(:disabled),.shop-confirm-btn:hover:not(:disabled),.lottery-save-btn:hover,.fb-btn-secondary:hover,.fb-btn-settle:hover,.fb-export-all-btn:hover,.group-auto-btn:hover,.batch-select-all-btn:hover,.batch-add-btn:hover,.batch-reset-btn:hover,.batch-exit-btn:hover,.numpad-btn:hover,.bam-skip-btn:hover,.bam-done-btn:hover{transform:translateY(-2px)}.batch-checkbox{border:3px solid var(--clay-line);width:28px;height:28px;box-shadow:0 3px #f0d6b5b8}.batch-checkbox.checked{background:linear-gradient(135deg, var(--pink-main), #ff8dbb);border-color:#fff}.student-card.batch-selected{border-color:var(--pink-main);box-shadow:0 0 0 4px #ff5c9f29, var(--shadow-hover)}.batch-float-bar{background:var(--clay-surface);border:3px solid var(--clay-line);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);padding:12px 18px}.lb-row,.fb-lb-row,.fb-final-rank-row{border:2px solid var(--clay-line);border-radius:var(--radius-lg);background:#fffdf8;margin:8px 0;box-shadow:0 5px #f0d6b585}.lb-row:hover,.fb-lb-row:hover{background:#fff1f6}.lb-rank,.fb-lb-rank,.fb-rank-num{font-weight:900}.lb-rank.top1,.fb-lb-row.rank-1 .fb-lb-rank,.fb-rank-num.rank-1{color:#d88a00}.lb-points,.fb-lb-val{color:var(--pink-dark);font-weight:900}.shop-item-card,.shop-student-card,.profile-medal-item,.profile-pet-item,.gps-pet-item{border:3px solid var(--clay-line);border-radius:var(--radius-lg);transition:transform .2s var(--clay-press), box-shadow .2s var(--clay-press), border-color .2s;background:#fffdf8;box-shadow:0 6px #f0d6b594}.shop-item-card:hover,.shop-student-card:hover,.profile-medal-item:hover,.profile-pet-item:hover,.gps-pet-item:hover{transform:translateY(-3px);box-shadow:0 8px #f0d6b594,0 14px 24px #32233a1a}.shop-item-card.selected,.shop-student-card.selected{border-color:var(--pink-main)!important;box-shadow:0 0 0 4px #ff5c9f24,0 6px #ffc1d9!important}.shop-confirm-btn{color:#fff;background:linear-gradient(135deg,#ffd66b,#ff9f43);border-color:#fff;box-shadow:0 6px #d88a00}.lottery-type-card,.lottery-student-list,.lottery-scratch-tile,.lottery-prize-row,.group-auto-section,.group-edit-zone,.group-icon-picker{border:3px solid var(--clay-line);border-radius:var(--radius-lg);background:#fffdf8;box-shadow:0 6px #f0d6b58a}.lottery-type-card:hover,.lottery-type-card.active,.lottery-student-item.selected{border-color:var(--pink-main);background:#fff1f6}.lottery-tile{border-radius:var(--radius-lg);transition:transform .2s var(--clay-press), box-shadow .2s var(--clay-press)}.lottery-tile:hover{transform:translateY(-3px)scale(1.02)}.lottery-tile.lottery-tile-winner{box-shadow:0 0 0 4px var(--pink-main), 0 10px 0 #ffc1d9, 0 18px 30px #ff5c9f42}.scratch-cover{color:#fff;background:linear-gradient(135deg,#c7b7ff,#9fd7ff);border:3px solid #fff}.lottery-egg-tile{box-shadow:inset 0 -8px #d88a0047,0 8px #e5b84d,0 16px 26px #ffd66b59}.fb-boss-bar{border-radius:var(--radius-xl);border:3px solid #fff;box-shadow:0 8px #23193247,0 18px 34px #32233a38}.fb-setup-boss-preview,.fb-exam-card,.fb-score-panel-header,.fb-score-table th,.fb-score-table td,.gd-member-card,.gd-score-cell,.gd-correction-cell,.profile-exam-btn,.qb-card,.qb-filter-btn{border:2px solid var(--clay-line);border-radius:var(--radius-md);background:#fffdf8}.fb-exam-card,.profile-exam-btn,.qb-filter-btn{transition:transform .2s var(--clay-press), box-shadow .2s var(--clay-press), background .2s;box-shadow:0 4px #f0d6b594}.fb-exam-card:hover,.profile-exam-btn:hover,.qb-filter-btn:hover{transform:translateY(-2px)}.fb-exam-card.selected,.profile-exam-btn.has-score,.qb-filter-btn.active,.group-mode-btn.active{background:var(--purple-light);border-color:var(--purple-main);color:var(--purple-main);box-shadow:0 0 0 4px #7c5cff1f,0 4px #c7b7ff}.fb-exam-card.settled,.gd-score-cell.has-val,.gd-correction-cell.corrected{background:var(--clay-green-soft);border-color:#a7e8c7}.qb-card{box-shadow:0 5px #f0d6b580}.qb-tag{border-radius:var(--radius-full);border:2px solid #ffffffbf;font-weight:900}.qb-delete-btn{border-radius:var(--radius-full);background:var(--clay-red-soft);min-height:34px;color:var(--clay-red);border:2px solid #ffc5cf;font-weight:900}.toast-container .toast,.toast{border:3px solid var(--clay-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal)}.score-float-text{text-shadow:0 3px #fff,0 8px 18px #32233a38}.score-float-positive{color:var(--clay-green)}.score-float-negative{color:var(--clay-red)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=640px){.nav-bar{border-radius:20px;height:56px;top:8px;left:8px;right:8px}.page-main{margin-top:74px;padding-inline:10px}.modal-overlay,.question-bank-overlay,.add-question-overlay{padding:10px}.modal-body,.shop-tab-content,.aq-body{padding:16px}.modal-footer,.aq-footer{flex-wrap:wrap;justify-content:stretch}.btn-cancel,.btn-confirm,.aq-btn-cancel,.aq-btn-submit{flex:140px}}
