:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.auth-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-box{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:40px;box-shadow:0 10px 40px #0003}.auth-logo{object-fit:cover;border-radius:16px;width:80px;height:80px;margin:0 auto 16px;display:block;box-shadow:0 4px 12px #00000026}.auth-box h2{text-align:center;color:#667eea;margin-bottom:8px;font-size:28px}.auth-box h3{text-align:center;color:#666;margin-bottom:24px;font-weight:400}.form-group{margin-bottom:16px}.form-group label{color:#333;margin-bottom:6px;font-weight:500;display:block}.form-group input,.form-group select{border:2px solid #e0e0e0;border-radius:8px;width:100%;padding:12px;font-size:14px;transition:border-color .3s}.form-group input:focus,.form-group select:focus{border-color:#667eea;outline:none}.auth-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;width:100%;margin-top:8px;padding:14px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.auth-button:disabled{opacity:.7;cursor:not-allowed}.error-message{color:#c33;background:#fee;border-radius:8px;margin-bottom:16px;padding:12px;font-size:14px}.auth-link{text-align:center;color:#666;margin-top:20px}.auth-link a{color:#667eea;font-weight:500;text-decoration:none}.auth-link a:hover{text-decoration:underline}.confirm-modal-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;animation:.2s confirmFadeIn;display:flex;position:fixed;inset:0}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}.confirm-modal-content{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:360px;padding:32px 40px;animation:.3s confirmSlideUp;box-shadow:0 20px 60px #00000026}@keyframes confirmSlideUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.confirm-modal-icon{margin-bottom:16px;font-size:48px;animation:.5s confirmBounce}@keyframes confirmBounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.confirm-modal-icon.danger{animation:.5s confirmShake}@keyframes confirmShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.confirm-modal-title{color:#333;margin:0 0 8px;font-size:20px;font-weight:600}.confirm-modal-message{color:#666;margin:0 0 24px;font-size:14px;line-height:1.5}.confirm-modal-actions{justify-content:center;gap:12px;display:flex}.confirm-modal-btn{cursor:pointer;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:500;transition:all .2s}.confirm-modal-btn.cancel{color:#666;background:#fff;border:1px solid #d9d9d9}.confirm-modal-btn.cancel:hover{color:#1890ff;border-color:#1890ff}.confirm-modal-btn.confirm{color:#fff;border:none}.confirm-modal-btn.confirm.warning{background:linear-gradient(135deg,#faad14,#d48806);box-shadow:0 4px 12px #faad144d}.confirm-modal-btn.confirm.warning:hover{transform:translateY(-1px);box-shadow:0 6px 16px #faad1466}.confirm-modal-btn.confirm.danger{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);box-shadow:0 4px 12px #ee5a5a4d}.confirm-modal-btn.confirm.danger:hover{transform:translateY(-1px);box-shadow:0 6px 16px #ee5a5a66}.confirm-modal-btn.confirm.info{background:linear-gradient(135deg,#1890ff,#096dd9);box-shadow:0 4px 12px #1890ff4d}.confirm-modal-btn.confirm.info:hover{transform:translateY(-1px);box-shadow:0 6px 16px #1890ff66}@media (width<=480px){.confirm-modal-content{margin:16px;padding:24px}.confirm-modal-icon{font-size:40px}.confirm-modal-title{font-size:18px}.confirm-modal-actions{flex-direction:column}.confirm-modal-btn{width:100%}}.toast-overlay{z-index:9999;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .4s;display:flex;position:fixed;top:0;left:0}.toast-overlay.show{opacity:1}.toast-overlay.hide{opacity:0}.toast-box{border-radius:14px;align-items:center;gap:12px;padding:18px 32px;font-size:17px;font-weight:600;animation:.35s cubic-bezier(.175,.885,.32,1.275) toastPop;display:flex;transform:translateY(0);box-shadow:0 8px 32px #0000002e}.toast-success{color:#237804;background:#fff;border:2px solid #52c41a}.toast-error{color:#a8071a;background:#fff;border:2px solid #ff4d4f}.toast-icon{font-size:22px;line-height:1}.toast-text{line-height:1.4}@keyframes toastPop{0%{opacity:0;transform:scale(.75)translateY(-20px)}to{opacity:1;transform:scale(1)translateY(0)}}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin-top:16px;display:grid}.theme-card{background:var(--card-background);border:2px solid var(--border-color);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:12px;padding:16px;transition:all .3s;display:flex}.theme-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.theme-card.active{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .2)}.theme-preview{border:2px solid #0000001a;border-radius:8px;justify-content:center;align-items:center;width:60px;height:60px;font-size:24px;font-weight:700;display:flex}.theme-name{color:var(--text-color);text-align:center;font-size:14px;font-weight:600}.config-actions{justify-content:center;gap:12px;margin-top:20px;display:flex}.config-actions .btn{cursor:pointer;border:none;border-radius:6px;padding:10px 24px;font-weight:600;transition:all .2s}.config-actions .btn-primary{background:var(--primary-color);color:#fff}.config-actions .btn-primary:hover{opacity:.9;transform:translateY(-2px)}.config-actions .btn-secondary{background:var(--card-background);color:var(--text-color);border:1px solid var(--border-color)}.config-actions .btn-secondary:hover{background:var(--background-color)}.section-title{color:var(--text-color);align-items:center;gap:8px;font-size:18px;font-weight:600;display:flex}.form-input{border:1px solid var(--border-color);background:var(--card-background);color:var(--text-color);border-radius:6px;flex:1;padding:10px 14px;font-size:14px}.form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .1);outline:none}.batch-add-form{margin-bottom:20px}.batch-hint{color:var(--text-color);opacity:.7;background:var(--background-color);border-radius:6px;margin-bottom:8px;padding:8px;font-size:13px}.batch-input{border:1px solid var(--border-color);resize:vertical;background:var(--card-background);width:100%;color:var(--text-color);border-radius:6px;margin-bottom:12px;padding:12px;font-family:inherit;font-size:14px}.batch-input:focus{border-color:var(--primary-color);outline:none}.batch-actions{gap:12px;display:flex}.btn{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-2px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--card-background);color:var(--text-color);border:1px solid var(--border-color)}.students-list{flex-direction:column;gap:12px;display:flex}.empty-tip{text-align:center;color:var(--text-color);opacity:.5;padding:40px 20px;font-size:14px}.student-row{background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .2s;display:flex}.student-row:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #0000000d}.student-info{flex:1;align-items:center;gap:12px;display:flex}.pet-badge{background:rgba(var(--primary-rgb), .1);color:var(--primary-color);border-radius:12px;padding:4px 10px;font-size:13px;font-weight:500}.edit-input{border:1px solid var(--primary-color);background:var(--card-background);color:var(--text-color);border-radius:6px;flex:1;padding:8px 12px;font-size:15px}.edit-input:focus{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .1);outline:none}.btn-icon{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:all .2s;display:flex}.btn-icon:hover{background:var(--background-color);transform:scale(1.1)}.btn-wechat:hover{background:#07c1601a}.btn-edit:hover{background:#3498db1a}.btn-delete:hover{background:#e74c3c1a}.btn-save:hover{background:#2ecc711a}.btn-cancel:hover{background:#95a5a61a}.score-items-list{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.score-item{background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:12px;padding:12px 16px;transition:all .2s;display:flex}.score-item:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #0000000d}.score-item-icon{text-align:center;width:32px;font-size:24px}.score-item-name{color:var(--text-color);flex:1;font-size:15px;font-weight:500}.item-edit-name{border:1px solid var(--primary-color);background:var(--card-background);color:var(--text-color);border-radius:6px;flex:1;padding:8px 12px;font-size:15px}.item-edit-name:focus{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .1);outline:none}.score-value{text-align:center;border-radius:12px;min-width:50px;padding:4px 10px;font-size:14px;font-weight:600}.score-value.positive{color:#27ae60;background:#27ae601a}.score-value.negative{color:#e74c3c;background:#e74c3c1a}.score-control{align-items:center;gap:8px;display:flex}.score-btn{border:1px solid var(--border-color);background:var(--card-background);width:32px;height:32px;color:var(--text-color);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:18px;font-weight:700;transition:all .2s;display:flex}.score-btn:hover{background:var(--background-color);border-color:var(--primary-color)}.btn-sort{opacity:.7;font-size:14px}.btn-sort:hover{opacity:1;background:var(--background-color)}.add-item-form{border-top:1px solid var(--border-color);align-items:center;gap:12px;padding-top:16px;display:flex}.add-item-form .form-input{flex:1}.add-item-form .score-control{flex-shrink:0}.wechat-binding-section{border:1px solid var(--border-color,#e5e7eb);background:#fff;border-radius:12px;margin-top:16px;overflow:hidden}.wbm-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.wbm-title{color:#374151;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.wbm-icon{font-size:16px}.wbm-count{color:#fff;background:#3b82f6;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.wbm-refresh-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;transition:all .2s;display:flex}.wbm-refresh-btn:hover{color:#374151;background:#f3f4f6}.wbm-loading,.wbm-empty{color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:32px 20px;font-size:14px;display:flex}.wbm-empty-icon{margin-bottom:4px;font-size:32px}.wbm-empty p{color:#6b7280;margin:0}.wbm-empty-hint{color:#9ca3af!important;font-size:12px!important}.wbm-list{max-height:280px;font-size:13px;overflow-y:auto}.wbm-list::-webkit-scrollbar{width:6px}.wbm-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.wbm-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.wbm-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.wbm-list-header,.wbm-list-row{grid-template-columns:1.2fr 1.4fr 1.4fr 80px;align-items:center;padding:10px 18px;display:grid}.wbm-list-header{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;background:#f3f4f6;border-bottom:1px solid #e5e7eb;font-size:12px;font-weight:600}.wbm-list-row{border-bottom:1px solid #f3f4f6;transition:background .15s}.wbm-list-row:last-child{border-bottom:none}.wbm-list-row:hover{background:#f9fafb}.wbm-student-name{color:#1f2937;font-weight:600}.wbm-nickname{color:#4b5563}.wbm-no-nickname{color:#d1d5db;font-style:italic}.wbm-col-time{color:#9ca3af;font-size:12px}.wbm-col-action{justify-content:flex-end;display:flex}.wbm-unbind-btn{color:#ef4444;cursor:pointer;white-space:nowrap;background:#fff5f5;border:1px solid #fca5a5;border-radius:6px;padding:4px 12px;font-size:12px;transition:all .2s}.wbm-unbind-btn:hover:not(:disabled){color:#fff;background:#ef4444;border-color:#ef4444}.wbm-unbind-btn:disabled{opacity:.5;cursor:not-allowed}.group-modal-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.group-modal{background:#fff;border-radius:16px;flex-direction:column;flex-shrink:0;width:90%;max-width:640px;max-height:calc(100vh - 80px);animation:.25s groupModalIn;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}@keyframes groupModalIn{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.group-modal-header{border-bottom:1px solid #eee;flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:20px 24px 16px;display:flex}.group-modal-title{color:#1a1a2e;margin:0 0 4px;font-size:20px;font-weight:700}.group-modal-subtitle{color:#888;margin:0;font-size:13px}.group-modal-close{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:background .2s;display:flex}.group-modal-close:hover{background:#e0e0e0}.group-modal-body{flex-direction:column;flex:1;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.group-modal-body::-webkit-scrollbar{width:6px}.group-modal-body::-webkit-scrollbar-track{background:#f5f5f5}.group-modal-body::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.group-error-tip{color:#d32f2f;background:#fff3f3;border:1px solid #ffcdd2;border-radius:8px;padding:10px 14px;font-size:13px}.group-section{flex-direction:column;gap:10px;display:flex}.group-section-header{justify-content:space-between;align-items:center;display:flex}.group-section-label{color:#333;font-size:14px;font-weight:600}.group-section-hint{color:#aaa;font-size:12px}.group-create-row{gap:10px;display:flex}.group-name-input{color:#333;border:1.5px solid #e0e0e0;border-radius:10px;outline:none;flex:1;height:44px;padding:0 14px;font-size:14px;transition:border-color .2s}.group-name-input:focus{border-color:#667eea}.group-name-input::placeholder{color:#bbb}.group-create-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#667eea;border:none;border-radius:10px;height:44px;padding:0 20px;font-size:14px;font-weight:600;transition:opacity .2s}.group-create-btn:disabled{opacity:.6;cursor:not-allowed}.group-create-btn:hover:not(:disabled){opacity:.9}.group-loading,.group-empty{text-align:center;color:#aaa;padding:20px;font-size:14px}.group-list{flex-direction:column;gap:8px;display:flex}.group-list-item{background:#f8f9fa;border:1.5px solid #eee;border-radius:12px;overflow:hidden}.group-item-row{align-items:center;gap:8px;padding:12px 14px;display:flex}.group-drag-handle{color:#ccc;cursor:grab;flex-shrink:0;font-size:16px}.group-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.group-item-name{color:#333;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.group-edit-input{border:1.5px solid #667eea;border-radius:6px;outline:none;flex:1;min-width:0;height:30px;padding:0 8px;font-size:14px}.group-member-badge{color:#5c6bc0;background:#e8eaf6;border-radius:20px;flex-shrink:0;padding:2px 10px;font-size:12px;font-weight:600}.group-item-actions{flex-shrink:0;gap:4px;display:flex}.group-action-btn{cursor:pointer;color:#666;background:#fff;border:none;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;transition:background .2s;display:flex}.group-action-btn:hover:not(:disabled){background:#e8eaf6}.group-action-btn:disabled{opacity:.3;cursor:not-allowed}.group-action-btn.danger:hover:not(:disabled){color:#e53935;background:#fce4ec}.action-icon.active{color:#667eea}.group-members-preview{border-top:1px solid #eee;flex-wrap:wrap;gap:6px;padding:8px 14px 12px;display:flex}.group-member-tag{color:#444;background:#fff;border:1px solid #e0e0e0;border-radius:20px;align-items:center;gap:4px;padding:3px 10px 3px 12px;font-size:13px;display:inline-flex}.remove-member-btn{color:#999;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;font-size:14px;line-height:1;transition:color .2s;display:flex}.remove-member-btn:hover{color:#e53935}.add-students-panel{background:#f0f2ff;border-top:1.5px solid #e8eaf6;flex-direction:column;gap:10px;padding:14px;display:flex}.add-students-header{justify-content:space-between;align-items:center;display:flex}.add-students-title{color:#3949ab;font-size:14px;font-weight:600}.add-students-collapse{color:#667eea;cursor:pointer;background:0 0;border:none;font-size:13px}.add-students-search-row{align-items:center;gap:10px;display:flex}.add-students-search{background:#fff;border:1.5px solid #c5cae9;border-radius:8px;outline:none;flex:1;height:38px;padding:0 12px;font-size:13px}.add-students-search:focus{border-color:#667eea}.unassigned-filter{color:#555;white-space:nowrap;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.unassigned-filter input{accent-color:#667eea;cursor:pointer}.add-students-stats{color:#666;justify-content:space-between;align-items:center;font-size:12px;display:flex}.add-students-actions{gap:10px;display:flex}.link-btn{color:#667eea;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.add-students-list{background:#fff;border:1px solid #e0e0e0;border-radius:8px;max-height:220px;overflow-y:auto}.add-students-list::-webkit-scrollbar{width:6px}.add-students-list::-webkit-scrollbar-track{background:#f5f5f5}.add-students-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.add-student-item{cursor:pointer;border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:10px 14px;transition:background .15s;display:flex}.add-student-item:last-child{border-bottom:none}.add-student-item:hover:not(.already-member){background:#f0f2ff}.add-student-item.selected{background:#e8eaf6}.add-student-item.already-member{opacity:.5;cursor:not-allowed}.add-student-name{color:#333;margin-bottom:2px;font-size:14px;font-weight:500}.add-student-status{color:#888;font-size:12px}.add-students-empty{text-align:center;color:#aaa;padding:20px;font-size:13px}.confirm-add-btn{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:8px;height:42px;font-size:14px;font-weight:600;transition:opacity .2s}.confirm-add-btn:disabled{opacity:.5;cursor:not-allowed}.confirm-add-btn:hover:not(:disabled){opacity:.9}.random-section{background:#f8f9fa;border-radius:12px;gap:8px;padding:16px}.random-title{color:#333;font-size:14px;font-weight:600}.random-desc{color:#5c6bc0;font-size:13px}.random-row{align-items:center;gap:10px;margin-top:4px;display:flex}.random-count-input{text-align:center;border:1.5px solid #e0e0e0;border-radius:8px;outline:none;width:90px;height:42px;padding:0 12px;font-size:16px}.random-count-input:focus{border-color:#667eea}.random-unit{color:#555;font-size:14px;font-weight:500}.random-btn{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:8px;flex:1;height:42px;font-size:14px;font-weight:600;transition:opacity .2s}.random-btn:hover:not(:disabled){opacity:.9}.random-btn:disabled{opacity:.5;cursor:not-allowed}.random-hint{color:#e53935;font-size:12px}.group-modal-footer{border-top:1px solid #eee;flex-shrink:0;justify-content:flex-end;padding:14px 24px;display:flex}.group-done-btn{color:#333;cursor:pointer;background:#f5f5f5;border:none;border-radius:8px;height:40px;padding:0 24px;font-size:14px;font-weight:600;transition:background .2s}.group-done-btn:hover{background:#e0e0e0}.teacher-settings{max-width:900px;margin:0 auto;padding:24px 24px 0}.teacher-settings h2{color:#1e293b;letter-spacing:-.3px;margin-bottom:24px;font-size:22px;font-weight:700}.settings-section{background:#fff;border:1px solid #f1f5f9;border-radius:16px;margin-bottom:20px;padding:28px;transition:box-shadow .25s,transform .2s;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008}.settings-section:hover{box-shadow:0 4px 16px #0000000f,0 8px 28px #0000000a}.section-title{color:#1e293b;letter-spacing:.3px;align-items:center;gap:10px;margin-bottom:24px;font-size:15px;font-weight:700;display:flex}.section-title:before{content:"";background:var(--theme-primary,#ff6b9d);border-radius:2px;width:4px;height:18px}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-desc{color:#999;margin-bottom:16px;font-size:13px}.class-settings-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.class-setting-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;gap:12px;padding:20px;transition:all .2s;display:flex}.class-setting-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0000000a}.setting-card-header{align-items:center;gap:8px;margin-bottom:2px;display:flex}.setting-card-icon{background:#fff;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex;box-shadow:0 1px 3px #0000000f}.setting-card-title{color:#334155;flex:1;font-size:14px;font-weight:600}.setting-card-input,.setting-card-select{box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;width:100%;padding:11px 14px;font-size:14px;transition:all .2s}.setting-card-input:hover,.setting-card-select:hover{border-color:#cbd5e1}.setting-card-input:focus,.setting-card-select:focus{border-color:var(--theme-primary,#ff6b9d);outline:none;box-shadow:0 0 0 3px #ff6b9d14}.setting-card-input:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9}.setting-card-hint{color:#94a3b8;font-size:12px;line-height:1.4}.hunger-card.hunger-enabled{background:#fffbeb;border-color:#fcd34d}.hunger-card.hunger-enabled:hover{border-color:#fbbf24;box-shadow:0 2px 12px #fbbf241f}.hunger-card.hunger-enabled .setting-card-icon{background:#fef3c7}.hunger-card.hunger-disabled{background:#f0fdf4;border-color:#86efac}.hunger-card.hunger-disabled:hover{border-color:#4ade80;box-shadow:0 2px 12px #4ade801f}.hunger-card.hunger-disabled .setting-card-icon{background:#dcfce7}.hunger-status-badge{letter-spacing:.3px;border-radius:10px;padding:2px 10px;font-size:11px;font-weight:600}.hunger-status-badge.badge-enabled{color:#b45309;background:#fef3c7;border:1px solid #fcd34d}.hunger-status-badge.badge-disabled{color:#15803d;background:#dcfce7;border:1px solid #86efac}.hunger-input-row{align-items:center;gap:8px;display:flex}.hunger-input-row .hunger-input{text-align:center;width:80px;font-size:16px;font-weight:600}.hunger-unit{color:#64748b;font-size:14px;font-weight:500}@media (width<=768px){.class-settings-grid{grid-template-columns:1fr}}.form-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.form-group input,.form-group select{background:#fafbfc;border:1.5px solid #e2e8f0;border-radius:10px;padding:12px 16px;font-size:14px;transition:all .2s}.form-group input:hover,.form-group select:hover{background:#fff;border-color:#cbd5e1}.form-group input:focus,.form-group select:focus{border-color:var(--theme-primary,#ff6b9d);background:#fff;outline:none;box-shadow:0 0 0 3px #ff6b9d14}.current-class-display{color:#333;background:#f5f5f5;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:14px;display:flex}.current-class-display .class-icon{font-size:16px}.current-class-display .class-name{font-weight:500}.form-hint{color:#999;margin:0;font-size:12px}.levels-grid{grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px;display:grid}.level-item{text-align:center;background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;padding:12px 8px;transition:all .2s}.level-item:hover{background:#f1f5f9;border-color:#e2e8f0}.level-item.graduation{background:#fffbeb;border-color:#fcd34d}.level-item.graduation .level-input{color:#b45309;background:#fff;border-color:#fcd34d}.level-item.first-level{background:#f0fdf4;border-color:#86efac}.level-item.first-level .level-input{color:#15803d;background:#fff;border-color:#86efac}.level-label{color:#94a3b8;margin-bottom:6px;font-size:12px;font-weight:500}.level-input{text-align:center;color:#334155;box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;width:100%;padding:10px 8px;font-size:16px;font-weight:600;transition:all .2s}.level-input:focus{border-color:var(--theme-primary,#ff6b9d);outline:none;box-shadow:0 0 0 3px #ff6b9d14}.level-input:disabled{color:#94a3b8;cursor:not-allowed;background:#f1f5f9}.example-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:10px;padding:14px 18px;display:flex}.example-icon{margin-top:1px;font-size:16px}.example-text{color:#1d4ed8;font-size:13px;line-height:1.6}.themes-grid{grid-template-columns:repeat(6,1fr);gap:16px;display:grid}.theme-item{text-align:center;cursor:pointer;border:2px solid #0000;border-radius:12px;padding:12px 8px;transition:all .2s}.theme-item:hover{background:#f8fafc;border-color:#f1f5f9}.theme-item.active{border-color:var(--theme-primary);background:#fff;box-shadow:0 0 0 3px #ff6b9d1a}.theme-color{border-radius:50%;width:44px;height:44px;margin:0 auto 10px;box-shadow:0 2px 6px #0000001a}.theme-name{color:#64748b;font-size:12px;font-weight:500}.score-items-list{border-radius:12px;max-height:280px;margin-bottom:16px;padding-right:6px;overflow-y:auto}.score-items-list::-webkit-scrollbar{width:5px}.score-items-list::-webkit-scrollbar-track{background:0 0}.score-items-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.score-items-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.score-item{background:#f8fafc;border:1px solid #0000;border-radius:12px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 18px;transition:all .2s;display:flex}.score-item:hover{background:#f1f5f9;border-color:#e2e8f0;transform:translate(2px);box-shadow:0 2px 8px #00000008}.item-index{text-align:center;color:#999;width:24px;font-size:13px}.item-icon{font-size:18px}.item-name{color:#333;flex:1;font-size:14px}.item-score{border-radius:20px;padding:5px 14px;font-size:13px;font-weight:600}.item-score.positive{color:#16a34a;background:#dcfce7;border:1px solid #bbf7d0}.item-score.negative{color:#dc2626;background:#fee2e2;border:1px solid #fecaca}.item-actions{gap:4px;display:flex}.action-btn{cursor:pointer;color:#64748b;background:#fff;border:none;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;transition:all .15s;display:flex;box-shadow:0 1px 2px #0000000a}.action-btn:hover{color:#334155;background:#f1f5f9;transform:scale(1.05)}.action-btn.edit:hover{color:#0ea5e9;background:#eff6ff}.action-btn.delete:hover{color:#dc2626;background:#fef2f2}.action-btn.up:hover,.action-btn.down:hover{color:#16a34a;background:#f0fdf4}.action-btn.wechat:hover{background:#07c16026}.add-item-form{background:#f8fafc;border:1.5px dashed #e2e8f0;border-radius:12px;align-items:center;gap:10px;padding:14px 16px;transition:all .2s;display:flex}.add-item-form:hover{background:#f1f5f9;border-color:#cbd5e1}.add-icon{font-size:18px}.item-name-input{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;flex:1;padding:10px 14px;font-size:14px;transition:all .2s}.item-name-input:focus{border-color:var(--theme-primary,#ff6b9d);outline:none;box-shadow:0 0 0 3px #ff6b9d14}.score-adjust{cursor:pointer;color:#64748b;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:all .2s;display:flex}.score-adjust:hover{color:#334155;background:#f8fafc;border-color:#cbd5e1}.score-value{text-align:center;color:#334155;width:40px;font-size:15px;font-weight:700}.paw-icon{color:#94a3b8;font-size:14px}.add-btn{background:var(--theme-primary,#ff6b9d);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:9px 22px;font-size:14px;font-weight:600;transition:all .2s}.add-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #ff6b9d4d}.batch-add-btn{background:var(--theme-primary,#ff6b9d);cursor:pointer;color:#fff;border:none;border-radius:10px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #ff6b9d40}.batch-add-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #ff6b9d59}.batch-add-btn.cancel{color:#64748b;box-shadow:none;background:#f1f5f9;border:1px solid #e2e8f0}.batch-add-btn.cancel:hover{box-shadow:none;color:#475569;background:#e2e8f0;transform:none}.batch-add-form{background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:14px;margin-bottom:16px;padding:20px}.batch-hint{color:#1d4ed8;margin-bottom:14px;font-size:14px;font-weight:500}.batch-textarea{resize:vertical;box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;width:100%;min-height:140px;padding:14px;font-family:inherit;font-size:14px;transition:all .2s}.batch-textarea:focus{border-color:var(--theme-primary,#ff6b9d);outline:none;box-shadow:0 0 0 3px #ff6b9d14}.batch-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.batch-cancel-btn{cursor:pointer;color:#64748b;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 24px;font-size:14px;font-weight:500;transition:all .2s}.batch-cancel-btn:hover{color:#475569;background:#f8fafc;border-color:#cbd5e1}.batch-submit-btn{color:#fff;cursor:pointer;background:#0ea5e9;border:none;border-radius:10px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.batch-submit-btn:hover{background:#0284c7;transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e94d}.add-student-form{gap:12px;margin-bottom:16px;display:flex}.student-name-input{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;flex:1;padding:12px 16px;font-size:14px;transition:all .2s}.student-name-input:focus{border-color:var(--theme-primary,#ff6b9d);outline:none;box-shadow:0 0 0 3px #ff6b9d14}.add-student-btn{background:var(--theme-primary,#ff6b9d);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s}.add-student-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #ff6b9d4d}.students-list{border-radius:12px;max-height:280px;padding-right:6px;overflow-y:auto}.students-list::-webkit-scrollbar{width:5px}.students-list::-webkit-scrollbar-track{background:0 0}.students-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.students-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.student-row{background:#f8fafc;border:1px solid #0000;border-radius:12px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 18px;transition:all .2s;display:flex}.student-row:hover{background:#f1f5f9;border-color:#e2e8f0;transform:translate(2px);box-shadow:0 2px 8px #00000008}.student-index{text-align:center;color:#94a3b8;flex-shrink:0;width:28px;font-size:13px;font-weight:500}.student-name{color:#1e293b;flex-shrink:0;width:100px;font-size:14px;font-weight:600}.student-pet-status{flex:1;font-size:13px;font-weight:500}.student-pet-status.has-pet{color:#16a34a}.student-pet-status.no-pet{color:#94a3b8;font-style:italic}.student-score{text-align:right;color:#64748b;width:100px;font-size:13px;font-weight:500}.empty-tip{text-align:center;color:#94a3b8;background:#f8fafc;border:1.5px dashed #e2e8f0;border-radius:12px;padding:32px;font-size:14px}.student-actions{gap:4px;display:flex}.feature-card{background:#f0f9ff;border:1px solid #e0f2fe;border-radius:14px;align-items:center;gap:18px;margin-top:16px;padding:18px 22px;transition:all .2s;display:flex}.feature-card:hover{border-color:#bae6fd;transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e91a}.feature-card.groups{background:#f0f9ff}.feature-card.assign-pets{background:#f0fdf4;border-color:#dcfce7}.feature-card.assign-pets:hover{border-color:#bbf7d0;box-shadow:0 4px 12px #22c55e1a}.feature-icon{filter:drop-shadow(0 2px 4px #0000000f);font-size:28px}.feature-content{flex:1}.feature-title{color:#1e293b;margin-bottom:4px;font-size:15px;font-weight:600}.feature-desc{color:#64748b;font-size:13px}.feature-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;padding:10px 22px;font-size:14px;font-weight:600;transition:all .2s}.feature-btn.primary{color:#fff;background:#0ea5e9;box-shadow:0 2px 8px #0ea5e940}.feature-btn.primary:hover{background:#0284c7;transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e959}.feature-btn.secondary{color:#fff;background:#22c55e;box-shadow:0 2px 8px #22c55e40}.feature-btn.secondary:hover{background:#16a34a;transform:translateY(-1px);box-shadow:0 4px 12px #22c55e59}.info-tip{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;align-items:flex-start;gap:10px;margin-top:16px;padding:14px 18px;display:flex}.tip-icon{margin-top:1px;font-size:16px}.tip-text{color:#92400e;font-size:13px;font-weight:500;line-height:1.6}.danger-section{background:#fef2f2;border:1px solid #fecaca}.section-title.danger{color:#dc2626}.section-title.danger:before{background:#dc2626}.danger-card{background:#fff;border:1px solid #fecaca;border-radius:14px;align-items:center;margin-bottom:12px;padding:18px 22px;transition:all .2s;display:flex}.danger-card:hover{box-shadow:0 2px 8px #dc26260f}.danger-content{flex:1}.danger-title{color:#dc2626;margin-bottom:4px;font-size:15px;font-weight:600}.danger-desc{color:#64748b;margin-bottom:4px;font-size:13px}.danger-note{color:#94a3b8;font-size:12px}.danger-btn{cursor:pointer;color:#64748b;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 20px;font-size:13px;font-weight:500;transition:all .2s}.danger-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.danger-btn:disabled{opacity:.5;cursor:not-allowed}.danger-btn.reset{color:#fff;background:#dc2626;border-color:#0000;font-weight:600;box-shadow:0 2px 8px #dc262640}.danger-btn.reset:hover{background:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 12px #dc262659}.settings-footer{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#fffffff2;border-top:1px solid #f1f5f9;justify-content:flex-end;align-items:center;gap:14px;margin:20px -28px -28px;padding:18px 28px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 20px #0000000f}.save-message{border-radius:10px;flex:1;padding:10px 16px;font-size:14px;font-weight:500;animation:.3s fadeIn}.save-message.success{color:#16a34a;background:#f0fdf4;border:1px solid #86efac}.save-message.error{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.footer-btn{cursor:pointer;border-radius:10px;padding:12px 28px;font-size:15px;font-weight:600;transition:all .2s}.footer-btn.cancel{color:#64748b;background:#fff;border:1.5px solid #e2e8f0}.footer-btn.cancel:hover{color:#475569;background:#f8fafc;border-color:#cbd5e1}.footer-btn.save{color:#fff;background:#1e293b;border:none;align-items:center;gap:8px;display:flex;box-shadow:0 2px 8px #1e293b40}.footer-btn.save:hover{background:#334155;transform:translateY(-1px);box-shadow:0 4px 12px #1e293b59}.save-icon{font-size:16px}@media (width<=1024px){.class-settings-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.teacher-settings{padding:16px 16px 0}.settings-section{border-radius:14px;margin-bottom:16px;padding:20px}.section-title{margin-bottom:18px;font-size:14px}.form-row,.class-settings-grid{grid-template-columns:1fr}.levels-grid{grid-template-columns:repeat(3,1fr);gap:10px}.level-item{padding:8px 4px}.themes-grid{grid-template-columns:repeat(4,1fr);gap:10px}.theme-color{width:36px;height:36px}.score-item{flex-wrap:wrap;gap:10px;padding:12px 14px}.item-index{width:20px}.item-name{min-width:80px}.add-item-form{flex-wrap:wrap;padding:12px}.add-item-form .item-name-input{flex:100%;min-width:120px}.student-row{flex-wrap:wrap;gap:10px;padding:12px 14px}.student-name{width:auto;min-width:60px}.student-score{text-align:left;width:auto}.student-pet-status{order:3;width:100%;margin-left:32px}.feature-card,.danger-card{flex-direction:column;align-items:flex-start;gap:12px}.feature-btn,.danger-btn{text-align:center;width:100%}.settings-footer{flex-direction:column;margin:16px -20px -20px;padding:14px 20px}.footer-btn{text-align:center;justify-content:center;width:100%}.batch-add-form{padding:14px}.batch-actions{flex-direction:column}.batch-cancel-btn,.batch-submit-btn{text-align:center;width:100%}.account-card{padding:16px}.account-actions{justify-content:flex-start;width:100%}.account-btn{flex:1;justify-content:center;min-width:0}}@media (width<=480px){.teacher-settings{padding:12px 12px 0}.settings-section{border-radius:12px;padding:16px}.levels-grid{grid-template-columns:repeat(2,1fr)}.themes-grid{grid-template-columns:repeat(3,1fr)}.score-item{gap:8px}.item-actions{margin-left:auto}.student-row{gap:8px}.student-actions{margin-left:auto}}.student-name.editable{cursor:pointer;border:1.5px solid #0000;border-radius:6px;padding:3px 6px;transition:all .2s}.student-name.editable:hover{background:#f1f5f9;border-color:#e2e8f0}.student-name-edit,.item-edit-input{border:1.5px solid var(--theme-primary,#ff6b9d);background:#fff;border-radius:8px;outline:none;flex:1;min-width:0;padding:6px 10px;font-size:14px;box-shadow:0 0 0 3px #ff6b9d14}.item-edit-score{align-items:center;gap:4px;display:flex}.score-adjust.small{width:24px;height:24px;padding:0;font-size:14px}.action-btn.save-edit{color:#fff;background:#22c55e;border-radius:8px;font-weight:700}.action-btn.save-edit:hover{background:#16a34a;transform:scale(1.05)}.action-btn.cancel-edit{color:#fff;background:#ef4444;border-radius:8px;font-weight:700}.action-btn.cancel-edit:hover{background:#dc2626;transform:scale(1.05)}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;animation:.2s overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.confirm-modal{background:#fff;border-radius:16px;width:420px;max-width:90vw;padding:32px;animation:.22s cubic-bezier(.175,.885,.32,1.275) modalIn;box-shadow:0 12px 40px #0000002e}.confirm-modal.danger{border-top:4px solid #ff4d4f}@keyframes modalIn{0%{opacity:0;transform:scale(.9)translateY(-20px)}to{opacity:1;transform:scale(1)translateY(0)}}.confirm-modal h3{color:#222;margin:0 0 10px;font-size:18px;font-weight:700}.modal-danger-icon{margin-bottom:12px;font-size:40px}.modal-desc{color:#666;margin-bottom:20px;font-size:14px;line-height:1.6}.modal-select{border:1.5px solid #e8e8e8;border-radius:8px;outline:none;width:100%;margin-bottom:20px;padding:10px 12px;font-size:14px;transition:border-color .2s}.modal-select:focus{border-color:var(--theme-primary,#ff6b9d)}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:8px;padding:9px 24px;font-size:14px;font-weight:600;transition:all .2s}.modal-btn.cancel{color:#555;background:#f5f5f5}.modal-btn.cancel:hover{background:#eee}.modal-btn.confirm{background:var(--theme-primary,#ff6b9d);color:#fff}.modal-btn.confirm:hover:not(:disabled){opacity:.85}.modal-btn.danger{color:#fff;background:#ff4d4f}.modal-btn.danger:hover:not(:disabled){background:#d9363e}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.footer-btn.cancel:not(:disabled){color:#555;border-color:#ddd}.account-section{margin-bottom:20px}.account-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:16px;padding:20px 24px;display:flex;box-shadow:0 1px 3px #0000000d}.account-left{align-items:center;gap:16px;width:100%;min-width:0;display:flex}.account-avatar{background:var(--theme-primary,#ff6b9d);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;font-weight:600;display:flex;box-shadow:0 3px 12px #ff6b9d4d}.account-details{align-items:center;min-width:0;display:flex}.account-info-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.account-name{color:#1e293b;white-space:nowrap;font-size:17px;font-weight:600}.account-status{white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.status-dot{border-radius:50%;width:8px;height:8px}.account-status.lifetime{color:#059669}.account-status.lifetime .status-dot{background:#10b981;box-shadow:0 0 0 3px #10b98133}.account-status.active{color:#2563eb}.account-status.active .status-dot{background:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.account-status.expired{color:#dc2626}.account-status.expired .status-dot{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.account-status.inactive{color:#64748b}.account-status.inactive .status-dot{background:#94a3b8;box-shadow:0 0 0 3px #94a3b833}.membership-detail{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.membership-badge{border-radius:12px;align-items:center;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.membership-badge.regular{color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff}.membership-badge.ai{color:#722ed1;background:#f9f0ff;border:1px solid #d3adf7}.account-right{align-items:center;width:100%;display:flex}.account-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.purchase-link{color:#fff;background:#10b981;border-radius:10px;align-items:center;gap:4px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 2px 6px #10b98140}.purchase-link:hover{color:#fff;background:#059669;transform:translateY(-1px);box-shadow:0 4px 12px #10b98159}.account-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:5px;height:36px;padding:0 16px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.account-btn .btn-icon{font-size:12px}.account-btn.outline{color:#64748b;background:#fff;border-color:#e2e8f0}.account-btn.outline:hover{color:#475569;background:#f8fafc;border-color:#cbd5e1}.account-btn.outline.danger{color:#ef4444;border-color:#fecaca}.account-btn.outline.danger:hover{background:#fef2f2;border-color:#fca5a5}.account-btn.primary{color:#fff;background:#ef4444;border-color:#0000;box-shadow:0 2px 8px #ef444440}.account-btn.primary:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef444459}.account-btn.success{color:#fff;background:#10b981;border-color:#0000;box-shadow:0 2px 8px #10b98140}.account-btn.success:hover{color:#fff;background:#059669;transform:translateY(-1px);box-shadow:0 4px 12px #10b98159}@media (width<=768px){.account-card{flex-direction:column;align-items:flex-start;gap:16px}.account-left,.account-right{width:100%}.account-actions{justify-content:flex-start;width:100%}.account-btn{flex:1;justify-content:center;min-width:0}}.membership-simple{justify-content:space-between;align-items:center;padding:12px 0;display:flex}.membership-text{color:#666;font-size:14px}.activate-link{color:#667eea;cursor:pointer;background:0 0;border:1px solid #667eea;border-radius:4px;padding:6px 16px;font-size:13px;transition:all .2s}.activate-link:hover{color:#fff;background:#667eea}.activate-modal{text-align:center;background:#fff;border-radius:16px;width:400px;max-width:90vw;padding:28px}.activate-modal h3{color:#333;margin:0 0 8px;font-size:20px}.activate-modal .modal-desc{color:#666;margin-bottom:20px;font-size:14px}.activate-input{text-align:center;letter-spacing:1px;box-sizing:border-box;border:2px solid #e0e0e0;border-radius:10px;width:100%;margin-bottom:20px;padding:14px 16px;font-size:16px;transition:border-color .2s}.activate-input:focus{border-color:#667eea;outline:none}.activate-input::placeholder{color:#bbb;letter-spacing:0;font-size:13px}.password-form{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.password-form .activate-input{text-align:left;letter-spacing:0;margin-bottom:0}.wechat-bind-modal{background:#fff;border-radius:16px;width:400px;max-width:90vw;animation:.22s cubic-bezier(.175,.885,.32,1.275) modalIn;box-shadow:0 12px 40px #0000002e}.wechat-bind-modal .modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.wechat-bind-modal .modal-header h3{color:#1f2937;margin:0;font-size:18px;font-weight:600}.wechat-bind-modal .close-btn{color:#6b7280;cursor:pointer;background:#f3f4f6;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:all .2s;display:flex}.wechat-bind-modal .close-btn:hover{color:#374151;background:#e5e7eb}.wechat-bind-modal .modal-body{padding:24px}.bind-student-info{text-align:center;margin-bottom:20px}.bind-student-info p{color:#4b5563;margin:0;font-size:15px}.bind-student-info strong{color:#1f2937;font-size:18px}.qr-code-display{flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.qr-placeholder-large{background:#fff;border:2px solid #e5e7eb;border-radius:12px;width:200px;height:200px;margin-bottom:16px;padding:16px}.qr-svg-large{width:100%;height:100%}.qr-image-container{background:#fff;border:2px solid #e5e7eb;border-radius:12px;justify-content:center;align-items:center;width:200px;height:200px;margin-bottom:16px;padding:16px;display:flex}.qr-image{object-fit:contain;width:100%;height:100%}.qr-loading{color:#6b7280;font-size:14px}.qr-hint{color:#6b7280;text-align:center;margin:0;font-size:13px}.bind-link-box{background:#f9fafb;border-radius:8px;margin-bottom:16px;padding:16px}.bind-link-box p{color:#6b7280;margin:0 0 12px;font-size:13px}.bind-link-box .link-tip{color:#10b981;margin:12px 0 0;font-size:12px}.link-copy-row{align-items:center;gap:8px;display:flex}.link-copy-row code{color:#374151;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex:1;padding:8px 12px;font-size:12px;overflow:hidden}.btn-copy{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:6px;padding:8px 16px;font-size:13px;transition:background .2s}.btn-copy:hover{background:#2563eb}.expire-warning{text-align:center;background:#fef3c7;border-radius:8px;padding:12px}.expire-warning p{color:#92400e;margin:0;font-size:13px}.activation-code-box{color:#fff;background:#6366f1;border-radius:12px;margin-bottom:16px;padding:20px}.activation-code-box p{color:#ffffffe6;margin:0 0 12px;font-size:14px}.activation-code-display{align-items:center;gap:12px;margin-bottom:12px;display:flex}.code-value{letter-spacing:8px;text-align:center;color:#fff;background:#fff3;border-radius:8px;flex:1;padding:16px 24px;font-family:Courier New,monospace;font-size:32px;font-weight:700}.btn-copy-code{color:#fff;cursor:pointer;background:#ffffff40;border:none;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:500;transition:all .2s}.btn-copy-code:hover{background:#ffffff59}.code-tip{color:#ffffffb3;margin:0;font-size:12px}.wechat-bind-section{flex-direction:column;gap:16px;display:flex}.wechat-bind-info{background:#f8fafc;border-radius:10px;padding:16px}.bind-desc{color:#475569;margin:0;font-size:14px;line-height:1.6}.bind-note{color:#3b82f6;font-weight:500}.wechat-bind-btn{color:#fff;cursor:pointer;background:#07c160;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:15px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #07c16040}.wechat-bind-btn:hover:not(:disabled){background:#059669;transform:translateY(-2px);box-shadow:0 6px 16px #07c16059}.wechat-bind-btn:disabled{opacity:.6;cursor:not-allowed}.leaderboard-container{max-height:70vh;padding:20px;overflow-y:auto}.leaderboard-header{border-bottom:1px solid #f0f0f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;display:flex}.class-select{background:#fff;border:1.5px solid #e8e8e8;border-radius:8px;min-width:140px;padding:8px 14px;font-size:14px}.filter-tabs{gap:8px;display:flex}.filter-tabs button{cursor:pointer;background:#fff;border:1px solid #e8e8e8;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .2s}.filter-tabs button:hover{border-color:var(--theme-primary,#ff6b9d);color:var(--theme-primary,#ff6b9d)}.filter-tabs button.active{background:var(--theme-primary,#ff6b9d);color:#fff;border-color:var(--theme-primary,#ff6b9d)}.top-three-podium{background:linear-gradient(#fff9f9 0%,#fff 100%);border-radius:16px;justify-content:center;align-items:flex-end;gap:16px;margin-bottom:28px;padding:20px;display:flex}.podium-item{background:#fff;border-radius:16px;flex-direction:column;align-items:center;min-width:140px;padding:16px 20px;transition:transform .2s;display:flex}.podium-item:hover{transform:translateY(-4px)}.podium-item.rank-1{order:2;min-width:160px;padding:20px 24px}.podium-item.rank-2{order:1}.podium-item.rank-3{order:3}.podium-rank{margin-bottom:8px;font-size:28px}.podium-avatar{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:12px;display:flex;position:relative}.podium-item.rank-1 .podium-avatar{width:88px;height:88px}.avatar-emoji{font-size:40px}.podium-item.rank-1 .avatar-emoji{font-size:48px}.level-tag{background:var(--theme-primary,#ff6b9d);color:#fff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;position:absolute;bottom:-4px;right:-4px}.podium-info{text-align:center}.podium-name{color:#333;margin-bottom:2px;font-size:15px;font-weight:600}.podium-pet{color:#999;margin-bottom:8px;font-size:12px}.podium-score{justify-content:center;align-items:baseline;gap:2px;display:flex}.score-value{color:var(--theme-primary,#ff6b9d);font-size:24px;font-weight:700}.podium-item.rank-1 .score-value{font-size:28px}.podium-progress{width:100%;margin-top:10px}.progress-bar-mini{background:#f0f0f0;border-radius:3px;height:6px;margin-bottom:4px;overflow:hidden}.progress-bar-mini .progress-fill{background:linear-gradient(90deg, var(--theme-primary,#ff6b9d), #ff8e53);border-radius:3px;height:100%;transition:width .3s}.leaderboard-list{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.list-header{color:#999;background:#fafafa;border-bottom:1px solid #f0f0f0;grid-template-columns:60px 1.5fr 1fr 80px 140px 80px;gap:12px;padding:12px 16px;font-size:12px;font-weight:600;display:grid}.list-item{border-bottom:1px solid #f8f8f8;grid-template-columns:60px 1.5fr 1fr 80px 140px 80px;align-items:center;gap:12px;padding:14px 16px;transition:background .15s;display:grid}.list-item:hover{background:#fafafa}.list-item.no-pet{opacity:.7}.col-rank{color:#666;text-align:center;font-size:14px;font-weight:600}.col-student{align-items:center;gap:10px;display:flex}.student-avatar{text-align:center;width:36px;font-size:28px}.student-name{color:#333;font-size:14px;font-weight:500}.col-pet{color:#666;font-size:13px}.col-level{color:#666;text-align:center;font-size:13px}.col-progress{flex-direction:column;gap:4px;display:flex}.progress-bar{background:#f0f0f0;border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--theme-primary,#ff6b9d), #ff8e53);border-radius:3px;height:100%;transition:width .3s}.progress-text{color:#aaa;font-size:11px}.no-pet-text{color:#ccc;font-size:12px;font-style:italic}.col-score{color:var(--theme-primary,#ff6b9d);text-align:right;font-size:15px;font-weight:600}.col-score.negative{color:#ff4d4f}.leaderboard-stats{color:#999;border-top:1px solid #f0f0f0;justify-content:center;gap:24px;margin-top:20px;padding-top:16px;font-size:13px;display:flex}.leaderboard-empty{text-align:center;padding:60px 20px}.leaderboard-empty p{color:#999;font-size:15px}@media (width<=768px){.top-three-podium{flex-direction:column;align-items:center}.podium-item.rank-1,.podium-item.rank-2,.podium-item.rank-3{order:0;width:100%;max-width:280px}.list-header,.list-item{grid-template-columns:40px 1fr 60px;gap:8px}.col-pet,.col-progress{display:none}}.shop-v2{background:#f5f6fa;border-radius:0 0 16px 16px;min-height:400px;margin:-24px;padding:0;position:relative}.shop-toast{z-index:99999;white-space:nowrap;pointer-events:none;border-radius:16px;padding:16px 36px;font-size:16px;font-weight:600;animation:.25s toastCenter;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 32px #00000040}.shop-toast.success{color:#fff;background:#52c41a}.shop-toast.error{color:#fff;background:#ff4d4f}@keyframes toastCenter{0%{opacity:0;transform:translate(-50%,-50%)scale(.85)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.shop-header{background:#fff;justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.shop-title-area{align-items:center;gap:12px;display:flex}.shop-logo{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.shop-title{color:#1a1a2e;font-size:22px;font-weight:700;line-height:1.2}.shop-subtitle{color:#aaa;letter-spacing:2px;font-size:11px;font-weight:600}.shop-my-score{background:#fff8e1;border:1.5px solid #ffe082;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;display:flex}.score-icon{font-size:16px}.score-num{color:#e6ac00;font-size:18px;font-weight:700}.score-label{color:#999;font-size:12px}.shop-tabs{background:#fff;border-bottom:1px solid #f0f0f0;gap:4px;padding:12px 24px;display:flex}.shop-tab{color:#888;cursor:pointer;background:#fff;border:1.5px solid #e8e8e8;border-radius:20px;padding:7px 18px;font-size:13px;font-weight:500;transition:all .2s}.shop-tab:hover{color:#6c63ff;border-color:#6c63ff}.shop-tab.active{color:#1a1a2e;background:#fff;border-color:#1a1a2e;font-weight:600}.shop-tab.manage{color:#888;border-color:#e8e8e8;margin-left:auto}.shop-tab.manage.active{color:#6c63ff;background:#f3f0ff;border-color:#6c63ff}.shop-grid{grid-template-columns:repeat(5,1fr);gap:16px;padding:20px 24px;display:grid}@media (width<=900px){.shop-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.shop-grid{grid-template-columns:repeat(2,1fr)}}.shop-card{cursor:default;border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:16px 14px 14px;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.shop-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.shop-stock-badge{color:#fff;background:#f5a623;border-radius:20px;padding:3px 9px;font-size:12px;font-weight:700;position:absolute;top:10px;right:10px}.shop-card-icon-wrap{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-top:6px;display:flex}.shop-card-icon{font-size:32px;line-height:1}.shop-card-name{text-align:center;font-size:15px;font-weight:700;line-height:1.3}.shop-card-desc{color:#999;text-align:center;min-height:18px;font-size:12px;line-height:1.4}.shop-card-footer{justify-content:space-between;align-items:center;width:100%;margin-top:4px;display:flex}.shop-card-price{color:#888;align-items:center;gap:3px;font-size:13px;display:flex}.price-icon{font-size:14px}.shop-buy-btn{color:#fff;white-space:nowrap;border:none;border-radius:20px;padding:7px 14px;font-size:13px;font-weight:600;transition:opacity .2s,transform .15s}.shop-buy-btn:hover:not(:disabled){opacity:.88;transform:scale(1.04)}.shop-buy-btn:disabled{cursor:not-allowed}.shop-teacher-tag{color:#bbb;background:#f5f5f5;border-radius:12px;padding:4px 10px;font-size:12px}.shop-empty{text-align:center;color:#bbb;grid-column:1/-1;padding:60px 20px}.shop-empty-icon{margin-bottom:12px;font-size:48px}.shop-records{flex-direction:column;gap:12px;padding:20px 24px;display:flex}.shop-record-item{background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 18px;display:flex;box-shadow:0 1px 6px #0000000d}.record-icon{background:#fff8e1;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-size:28px;display:flex}.record-name{color:#333;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.record-student-tag{color:#7c3aed;background:#ede9fe;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.record-desc{color:#bbb;margin-top:1px;font-size:12px}.record-time{color:#aaa;margin-top:3px;font-size:12px}.record-cost{color:#e6ac00;white-space:nowrap;font-size:15px;font-weight:700}.shop-manage{padding:20px 24px}.shop-manage-list{flex-direction:column;gap:10px;display:flex}.shop-manage-item{background:#fff;border-radius:10px;align-items:center;gap:14px;padding:14px 18px;display:flex;box-shadow:0 1px 4px #0000000d}.manage-icon{text-align:center;width:40px;font-size:24px}.manage-info{flex:1}.manage-name{color:#333;font-size:14px;font-weight:600}.manage-desc{color:#aaa;margin-top:2px;font-size:12px}.manage-meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.manage-price{color:#666;font-size:13px;font-weight:600}.manage-stock{color:#aaa;font-size:12px}.shop-manage-tip{text-align:center;color:#bbb;margin-top:20px;font-size:13px}.spicker-overlay{z-index:3000;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.spicker-modal{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:500px;max-height:88vh;animation:.25s spickerIn;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 64px #00000040}@keyframes spickerIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.spicker-toast{z-index:99999;white-space:nowrap;border-radius:28px;padding:12px 28px;font-size:15px;font-weight:600;animation:.28s toastIn;position:fixed;top:80px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0000002e}.spicker-toast.success{color:#fff;background:#52c41a}.spicker-toast.error{color:#fff;background:#ff4d4f}.spicker-header{background:linear-gradient(135deg,#7c3aed,#a855f7);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 20px 18px;display:flex}.spicker-header-left{align-items:center;gap:14px;display:flex}.spicker-header-icon{background:#fff3;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.spicker-title{color:#fff;font-size:18px;font-weight:700}.spicker-subtitle{color:#fffc;margin-top:3px;font-size:13px}.spicker-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:background .15s;display:flex}.spicker-close:hover{background:#ffffff59}.spicker-search-wrap{flex-shrink:0;padding:14px 18px 0;position:relative}.spicker-search-icon{color:#ccc;pointer-events:none;font-size:16px;position:absolute;top:50%;left:32px;transform:translateY(-20%)}.spicker-search{color:#333;box-sizing:border-box;background:#f9f9f9;border:1.5px solid #e8e8e8;border-radius:24px;outline:none;width:100%;padding:11px 16px 11px 42px;font-size:14px;transition:border-color .2s}.spicker-search:focus{background:#fff;border-color:#a855f7}.spicker-search-clear{color:#888;cursor:pointer;background:#e0e0e0;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:14px;line-height:1;transition:background .15s;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.spicker-search-clear:hover{background:#ccc}.spicker-list{flex:1;grid-template-columns:repeat(3,1fr);align-content:start;gap:10px;padding:14px 16px;display:grid;overflow-y:auto}.spicker-empty{text-align:center;color:#ccc;grid-column:1/-1;padding:40px 0;font-size:14px}.spicker-card-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:14px;height:120px;animation:1.2s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spicker-card{-webkit-user-select:none;user-select:none;background:#fff;border:1.5px solid #f0f0f0;border-radius:14px;flex-direction:column;align-items:center;gap:5px;padding:14px 10px 12px;transition:all .18s;display:flex}.spicker-card.can-exchange{cursor:pointer}.spicker-card.can-exchange:hover{border-color:#a855f7;transform:translateY(-2px);box-shadow:0 4px 14px #a855f726}.spicker-card.cant-exchange{opacity:.85;cursor:default}.spicker-card-name{color:#333;text-align:center;font-size:15px;font-weight:700}.spicker-badge-count{border-radius:16px;align-items:center;gap:4px;margin:2px 0;padding:4px 12px;font-size:15px;font-weight:700;display:flex}.spicker-badge-count.enough{color:#7c3aed;background:#ede9fe}.spicker-badge-count.not-enough{color:#f87171;background:#fff0f0}.spicker-badge-icon{font-size:14px}.spicker-card-stats{color:#bbb;text-align:center;font-size:11px}.spicker-card-status{margin-top:2px;font-size:12px;font-weight:600}.spicker-card-status.ok{color:#a855f7}.spicker-card-status.fail{color:#f87171}.spicker-footer{text-align:center;border-top:1px solid #f0f0f0;flex-shrink:0;padding:14px 18px 16px}.spicker-cancel{color:#666;cursor:pointer;background:0 0;border:none;border-radius:20px;padding:8px 32px;font-size:15px;font-weight:600;transition:background .15s}.spicker-cancel:hover{background:#f5f5f5}.shop-tab.manage-done{color:#e6a817;background:#fff8ee;border:1.5px solid #f5c842;margin-left:6px;font-weight:700}.shop-tab.manage-done:hover{background:#fff0cc}.mgr-grid{background:#f5f6fa;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;padding:24px;display:grid}.mgr-card{background:#fff;border:2px dashed #d0d4e8;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:220px;padding:20px 16px 16px;transition:box-shadow .2s;display:flex;position:relative}.mgr-card:hover{box-shadow:0 4px 18px #00000014}.mgr-badge{color:#fff;border-radius:20px;align-items:center;gap:3px;padding:3px 10px 3px 8px;font-size:12px;font-weight:700;display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 2px 8px #00000026}.mgr-badge-icon{font-size:13px}.mgr-icon{margin-bottom:4px;font-size:44px;line-height:1}.mgr-name{text-align:center;font-size:15px;font-weight:700}.mgr-stock-row{background:#f4f5f8;border-radius:20px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:4px;padding:5px 10px;display:flex}.mgr-stock-label{color:#888;margin-right:2px;font-size:12px}.mgr-stock-btn{cursor:pointer;color:#555;background:#fff;border:1.5px solid #ddd;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:16px;line-height:1;transition:background .15s;display:flex}.mgr-stock-btn:hover:not(:disabled){background:#eee}.mgr-stock-btn:disabled{opacity:.35;cursor:not-allowed}.mgr-stock-num{text-align:center;color:#333;min-width:28px;font-size:15px;font-weight:700}.mgr-actions{gap:8px;width:100%;margin-top:4px;display:flex}.mgr-edit-btn{color:#555;cursor:pointer;background:#f7f8ff;border:1.5px solid #dde;border-radius:10px;flex:1;padding:7px 0;font-size:13px;font-weight:600;transition:background .15s}.mgr-edit-btn:hover{color:#5046e5;background:#eef0ff}.mgr-del-btn{color:#e04b4b;cursor:pointer;background:#fff5f5;border:1.5px solid #fde;border-radius:10px;padding:7px 12px;font-size:15px;transition:background .15s}.mgr-del-btn:hover{background:#ffe0e0}.mgr-add-card{cursor:pointer;color:#aaa;background:#fafbff;border-style:dashed;border-color:#c8cee0;min-height:220px;transition:all .2s}.mgr-add-card:hover{background:#f0f3ff;border-color:#9da8d4}.mgr-add-icon{color:#bbc;background:#eef0f8;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:8px;font-size:40px;font-weight:200;line-height:1;display:flex}.mgr-add-label{color:#aab;font-size:14px;font-weight:600}.item-modal-overlay{z-index:10000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.item-modal{background:#fff;border-radius:20px;flex-direction:column;gap:10px;width:380px;max-width:95vw;padding:28px 28px 24px;display:flex;box-shadow:0 12px 48px #0000002e}.item-modal-title{color:#333;margin-bottom:4px;font-size:18px;font-weight:700}.item-modal-label{color:#666;margin-top:4px;font-size:13px;font-weight:600}.item-modal-input{box-sizing:border-box;border:1.5px solid #dde;border-radius:10px;outline:none;width:100%;padding:9px 14px;font-size:14px;transition:border .15s}.item-modal-input:focus{border-color:#7c6fe0}.item-modal-btns{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.item-modal-cancel{color:#666;cursor:pointer;background:#f7f8ff;border:1.5px solid #dde;border-radius:10px;padding:9px 20px;font-size:14px;font-weight:600}.item-modal-save{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c6fe0,#9b5de5);border:none;border-radius:10px;padding:9px 24px;font-size:14px;font-weight:700;box-shadow:0 3px 12px #7c6fe059}.item-modal-save:hover{opacity:.9}.score-log-modal{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:1000px;max-height:80vh;display:flex;box-shadow:0 4px 20px #00000026}.score-log-modal .modal-header{border-bottom:1px solid #e8e8e8;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.score-log-modal .modal-header h2{color:#333;margin:0;font-size:18px;font-weight:600}.score-log-modal .close-btn{cursor:pointer;color:#666;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;line-height:1;transition:all .2s;display:flex}.score-log-modal .close-btn:hover{color:#333;background:#e8e8e8}.score-log-modal .modal-body{flex-direction:column;flex:1;padding:20px;display:flex;overflow:hidden}.stats-bar{color:#666;background:#f5f5f5;border-radius:8px;gap:20px;margin-bottom:15px;padding:10px 15px;font-size:14px;display:flex}.stats-bar strong{color:#333}.records-table-container{border:1px solid #e8e8e8;border-radius:8px;flex:1;overflow:auto}.records-table{border-collapse:collapse;width:100%;font-size:14px}.records-table th,.records-table td{text-align:left;border-bottom:1px solid #e8e8e8;padding:12px}.records-table th{color:#333;z-index:1;background:#f5f5f5;font-weight:600;position:sticky;top:0}.records-table tbody tr:hover{background:#f0f0f0}.records-table .no-data{text-align:center;color:#999;padding:40px}.pet-icon{margin-right:6px;font-size:16px}.type-badge{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.type-badge.score-add{color:#52c41a;background:#e6f7e6}.type-badge.score-subtract{color:#ff4d4f;background:#fff1f0}.score-add{color:#52c41a;font-weight:600}.score-subtract{color:#ff4d4f;font-weight:600}.pagination{border-top:1px solid #e8e8e8;justify-content:center;align-items:center;gap:15px;margin-top:15px;padding:15px 0 0;display:flex}.page-btn{cursor:pointer;background:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:8px 16px;font-size:14px;transition:all .2s}.page-btn:hover:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-info{color:#666;font-size:14px}.loading{color:#666;justify-content:center;align-items:center;padding:60px;font-size:16px;display:flex}@media (width<=768px){.score-log-modal{width:95%;max-height:90vh}.records-table th,.records-table td{padding:8px;font-size:12px}.stats-bar{flex-direction:column;gap:5px}}.modal-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-container{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-height:90vh;animation:.3s modalSlideIn;display:flex;position:relative;box-shadow:0 20px 60px #0000004d}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #e8e8e8;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header.no-title{z-index:10;pointer-events:none;background:0 0;border-bottom:none;padding:12px 16px;position:absolute;top:0;right:0}.modal-header.no-title .modal-title{display:none}.modal-header.no-title .modal-close{pointer-events:all;background:#ffffffe6;box-shadow:0 2px 8px #0000001f}.modal-title{color:#333;margin:0;font-size:18px;font-weight:600}.modal-close{cursor:pointer;color:#666;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:all .2s;display:flex}.modal-close:hover{color:#333;background:#e8e8e8}.modal-content{flex:1;padding:24px;overflow-y:auto}.modal-footer{background:#fff;border-top:1px solid #e8e8e8;border-radius:0 0 16px 16px;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.modal-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.modal-content::-webkit-scrollbar-thumb:hover{background:#999}.random-picker-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.random-picker-modal{background:#fff;border-radius:24px;flex-direction:column;flex-shrink:0;width:90%;max-width:500px;max-height:calc(100vh - 80px);animation:.3s scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 80px #0006}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.random-picker-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.random-picker-title{align-items:center;gap:10px;margin:0;font-size:20px;font-weight:600;display:flex}.random-picker-title .title-icon{font-size:28px}.picker-close-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.picker-close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.random-picker-class-info{background:#f8f9fa;border-bottom:1px solid #e9ecef;justify-content:center;align-items:center;gap:12px;padding:16px 24px;display:flex}.class-badge{color:#667eea;background:#fff;border:1px solid #e3e8ff;border-radius:20px;padding:6px 14px;font-size:14px;font-weight:500}.student-count{color:#868e96;font-size:13px}.random-picker-display{flex-direction:column;justify-content:center;align-items:center;min-height:280px;padding:40px 24px;transition:all .3s;display:flex}.random-picker-display.rolling{background:linear-gradient(135deg,#fff9e6 0%,#fff3cd 100%)}.random-picker-display.selected{background:linear-gradient(135deg,#e8f5e9 0%,#c8e6c9 100%)}.picker-avatar{border:4px solid #fff;border-radius:50%;width:120px;height:120px;margin-bottom:20px;transition:transform .2s;overflow:hidden;box-shadow:0 8px 30px #00000026}.random-picker-display.rolling .picker-avatar{animation:.1s infinite avatarShake}@keyframes avatarShake{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.picker-avatar-img{object-fit:cover;width:100%;height:100%}.picker-avatar-default{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;width:100%;height:100%;font-size:48px;font-weight:600;display:flex}.picker-name{color:#333;text-align:center;min-height:48px;margin-bottom:12px;font-size:36px;font-weight:700;transition:all .1s}.random-picker-display.rolling .picker-name{color:#f59e0b;transform:scale(1.05)}.random-picker-display.selected .picker-name{color:#4caf50;animation:.5s namePop}@keyframes namePop{0%{transform:scale(.8)}50%{transform:scale(1.2)}to{transform:scale(1)}}.picker-result-badge{color:#fff;background:linear-gradient(135deg,#4caf50 0%,#45a049 100%);border-radius:20px;padding:8px 20px;font-size:14px;font-weight:600;animation:.5s badgePop}@keyframes badgePop{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.picker-empty-state{text-align:center;color:#868e96}.picker-empty-icon{opacity:.5;margin-bottom:16px;font-size:64px}.picker-empty-state p{margin-bottom:8px;font-size:18px}.picker-empty-hint{color:#adb5bd;font-size:14px}.random-picker-actions{flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.picker-start-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:50px;align-items:center;gap:10px;padding:16px 48px;font-size:18px;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 15px #667eea66}.picker-start-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea80}.picker-start-btn:disabled{opacity:.6;cursor:not-allowed}.picker-start-btn.rolling{background:linear-gradient(135deg,#f59e0b 0%,#f97316 100%);box-shadow:0 4px 15px #f59e0b66}.btn-spinner{animation:.5s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.picker-shortcut-hint{color:#adb5bd;font-size:13px}.random-picker-history{border-top:1px solid #e9ecef;padding:0 24px 20px}.history-title{color:#495057;align-items:center;gap:8px;margin:16px 0 12px;font-size:14px;font-weight:600;display:flex}.history-list{flex-direction:column;gap:8px;max-height:150px;display:flex;overflow-y:auto}.history-item{background:#f8f9fa;border-radius:10px;align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:flex}.history-item.latest{background:linear-gradient(135deg,#e8f5e9 0%,#c8e6c9 100%);border:1px solid #a5d6a7}.history-rank{color:#495057;background:#dee2e6;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:600;display:flex}.history-item.latest .history-rank{color:#fff;background:#4caf50}.history-name{color:#333;flex:1;font-weight:500}.history-time{color:#868e96;font-size:12px}.random-picker-footer{text-align:center;background:#f8f9fa;padding:12px 24px}.clickable{cursor:pointer;transition:transform .2s}.clickable:hover{transform:scale(1.05)}.picker-result-badge.clickable{cursor:pointer;background:linear-gradient(135deg,#4caf50 0%,#45a049 100%)}.picker-result-badge.clickable:hover{background:linear-gradient(135deg,#45a049 0%,#388e3c 100%)}.picker-rolling-hint{color:#f57c00;background:#fff3e0;border-radius:20px;margin-top:12px;padding:8px 16px;font-size:14px;font-weight:500;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.score-modal-overlay{z-index:1200;background:#00000080;justify-content:center;align-items:flex-start;min-height:100dvh;padding:60px 20px 40px;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.score-modal{background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;width:95%;max-width:600px;max-height:calc(100vh - 100px);animation:.3s scaleIn;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.score-modal-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-bottom:1px solid #e9ecef;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.score-modal-student{align-items:center;gap:12px;display:flex}.score-modal-avatar{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden;box-shadow:0 2px 8px #0003}.score-modal-avatar .picker-avatar-img{object-fit:cover;width:100%;height:100%}.score-modal-avatar .picker-avatar-default{color:#667eea;background:#f8f9fa;justify-content:center;align-items:center;width:100%;height:100%;font-size:20px;font-weight:600;display:flex}.score-modal-info{flex-direction:column;gap:2px;display:flex}.score-modal-name{font-size:18px;font-weight:600}.score-modal-title{opacity:.9;font-size:13px}.score-modal-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.score-modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.score-modal-content{flex-direction:column;flex:1;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.score-modal-loading,.score-modal-empty{text-align:center;color:#868e96;padding:40px 20px}.score-modal-empty .empty-icon{margin-bottom:12px;font-size:48px}.score-modal-empty p{color:#495057;margin:0 0 4px;font-size:16px;font-weight:500}.score-modal-empty span{font-size:13px}.score-modal-footer{text-align:center;background:#f8f9fa;border-top:1px solid #e9ecef;padding:12px 24px}.score-modal-footer .footer-hint{color:#868e96;font-size:13px}.score-section{flex-direction:column;gap:10px;display:flex}.score-section-title{color:#495057;padding-left:4px;font-size:14px;font-weight:600}.score-item-btn{cursor:pointer;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;font-size:13px;transition:all .2s;display:flex}.score-item-btn.add{color:#2e7d32;background:#e8f5e9}.score-item-btn.add:hover{color:#fff;background:#4caf50;transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.score-item-btn.subtract{color:#c62828;background:#ffebee}.score-item-btn.subtract:hover{color:#fff;background:#ef5350;transform:translateY(-2px);box-shadow:0 4px 12px #ef53504d}.score-item-name{text-align:center;font-weight:500;line-height:1.3}.score-item-value{opacity:.8;font-size:12px;font-weight:600}@media (width<=480px){.random-picker-modal{width:95%;max-height:95vh}.picker-avatar{width:100px;height:100px}.picker-name{font-size:28px}.picker-start-btn{padding:14px 36px;font-size:16px}}.countdown-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.countdown-modal{background:#fff;border-radius:24px;flex-direction:column;flex-shrink:0;width:90%;max-width:500px;max-height:calc(100vh - 80px);animation:.3s scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 80px #0006}.countdown-header{color:#fff;background:linear-gradient(135deg,#ff9800 0%,#f57c00 100%);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.countdown-title{align-items:center;gap:10px;margin:0;font-size:20px;font-weight:600;display:flex}.countdown-title .title-icon{font-size:28px}.countdown-close-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.countdown-close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.countdown-display{background:linear-gradient(135deg,#fff8e1 0%,#ffecb3 100%);flex-direction:column;justify-content:center;align-items:center;padding:50px 24px;display:flex;position:relative;overflow:hidden}.countdown-display.running{background:linear-gradient(135deg,#e3f2fd 0%,#bbdefb 100%)}.countdown-display.finished{background:linear-gradient(135deg,#ffebee 0%,#ffcdd2 100%);animation:.5s infinite pulse}.countdown-display .time-display{color:#333;letter-spacing:4px;text-shadow:2px 2px 8px #0000001a;font-family:Courier New,monospace;font-size:72px;font-weight:700}.countdown-display.running .time-display{color:#1976d2}.countdown-display.finished .time-display{color:#d32f2f}.finish-animation{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:20px 0;display:flex}.finish-icon{margin-bottom:8px;font-size:64px;line-height:1;animation:.6s infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.finish-text{color:#d32f2f;font-size:32px;font-weight:700;line-height:1.2;animation:1s infinite flash}@keyframes flash{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.5)}to{opacity:0;transform:translate(-50%,-50%)scale(2)}}.countdown-display .progress-bar{background:#0000001a;height:6px;position:absolute;bottom:0;left:0;right:0}.countdown-display .progress-fill{background:linear-gradient(90deg,#4caf50 0%,#8bc34a 100%);height:100%;transition:width 1s linear}.time-settings{background:#fafafa;padding:24px}.time-inputs{justify-content:center;align-items:center;gap:10px;margin-bottom:20px;display:flex}.time-input-group{flex-direction:column;align-items:center;gap:8px;display:flex}.time-input-group label{color:#868e96;font-size:12px;font-weight:500}.time-input-group input{text-align:center;border:2px solid #e0e0e0;border-radius:12px;outline:none;width:80px;height:60px;font-size:28px;font-weight:600;transition:all .2s}.time-input-group input:focus{border-color:#ff9800;box-shadow:0 0 0 3px #ff980033}.time-separator{color:#bdbdbd;margin-top:24px;font-size:32px;font-weight:600}.quick-settings{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.quick-label{color:#868e96;margin-right:8px;font-size:13px}.quick-btn{color:#495057;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:20px;padding:8px 14px;font-size:13px;transition:all .2s}.quick-btn:hover{color:#fff;background:#ff9800;border-color:#ff9800;transform:translateY(-2px)}.countdown-controls{flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.countdown-controls .control-btn{cursor:pointer;border:none;border-radius:50px;justify-content:center;align-items:center;gap:10px;min-width:180px;padding:16px 48px;font-size:18px;font-weight:600;transition:all .3s;display:flex}.countdown-controls .control-btn.start{color:#fff;background:linear-gradient(135deg,#4caf50 0%,#43a047 100%);box-shadow:0 4px 15px #4caf5066}.countdown-controls .control-btn.start:hover{transform:translateY(-2px);box-shadow:0 8px 25px #4caf5080}.countdown-controls .control-btn.pause{color:#fff;background:linear-gradient(135deg,#ff9800 0%,#f57c00 100%);box-shadow:0 4px 15px #ff980066}.countdown-controls .control-btn.pause:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ff980080}.countdown-controls .control-btn.reset{color:#fff;background:linear-gradient(135deg,#9e9e9e 0%,#757575 100%);box-shadow:0 4px 15px #9e9e9e66}.countdown-controls .control-btn.reset:hover{transform:translateY(-2px);box-shadow:0 8px 25px #9e9e9e80}.countdown-footer{text-align:center;background:#f8f9fa;padding:12px 24px}.countdown-footer .footer-hint{color:#adb5bd;font-size:12px}@media (width<=480px){.countdown-modal{width:95%;max-height:95vh}.countdown-display .time-display{font-size:48px}.time-input-group input{width:60px;height:50px;font-size:22px}.countdown-controls .control-btn{padding:14px 36px;font-size:16px}.quick-btn{padding:6px 10px;font-size:12px}}.reward-settings-panel{flex-direction:column;flex:1;padding:16px 20px;display:flex;overflow:hidden}.settings-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.settings-header h4{color:#333;margin:0;font-size:15px}.settings-close{color:#666;cursor:pointer;background:#e9ecef;border:none;border-radius:50%;width:28px;height:28px;font-size:14px;transition:all .2s}.settings-close:hover{background:#dee2e6;transform:rotate(90deg)}.settings-list{flex-direction:column;flex:1;gap:10px;margin-bottom:14px;padding-right:4px;display:flex;overflow-y:auto}.settings-list::-webkit-scrollbar{width:4px}.settings-list::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:2px}.settings-row{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;flex-direction:column;gap:10px;padding:10px 14px;display:flex}.settings-row-main,.settings-row-visual{align-items:center;gap:10px;display:flex}.settings-field{flex-direction:column;gap:2px;min-width:0;display:flex}.settings-field.name-field{flex:1}.settings-field.small{flex:0 0 64px}.settings-field.color-field,.settings-field.icon-field{flex:1}.settings-field label{color:#868e96;white-space:nowrap;font-size:10px;font-weight:500}.settings-field input[type=text],.settings-field input[type=number]{box-sizing:border-box;border:1px solid #dee2e6;border-radius:5px;outline:none;width:100%;padding:5px 6px;font-size:12px}.settings-field input:focus{border-color:#e91e63;box-shadow:0 0 0 2px #e91e631a}.color-picker{align-items:center;gap:6px;display:flex}.color-picker input[type=color]{cursor:pointer;border:1px solid #dee2e6;border-radius:4px;flex-shrink:0;width:32px;height:28px;padding:0}.color-presets{flex-wrap:wrap;gap:4px;display:flex}.color-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;padding:0;transition:all .15s}.color-dot:hover{transform:scale(1.15)}.color-dot.active{border-color:#333;box-shadow:0 0 0 1px #fff,0 0 0 3px #333}.icon-picker{align-items:center;gap:6px;display:flex}.icon-picker input[type=text]{text-align:center;flex-shrink:0;width:36px}.icon-presets{flex-wrap:wrap;gap:3px;display:flex}.icon-preset{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:11px;transition:all .15s;display:flex}.icon-preset:hover{background:#f8f9fa;border-color:#adb5bd}.icon-preset.active{color:#fff;background:#e91e63;border-color:#e91e63}.remove-btn{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;transition:all .2s;display:flex}.remove-btn:hover{opacity:1;background:#fff5f5}.settings-footer{border-top:1px solid #e9ecef;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding-top:4px;display:flex}.weight-info{color:#495057;font-size:13px}.weight-info strong{color:#e91e63}.weight-hint{color:#868e96;margin-left:4px;font-size:11px}.settings-actions{flex-wrap:wrap;gap:8px;display:flex}.settings-actions button{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:4px;padding:7px 14px;font-size:13px;transition:all .2s;display:flex}.add-btn:hover{background:#bbdefb}.reset-btn{color:#f57c00;background:#fff3e0}.reset-btn:hover:not(:disabled){background:#ffe0b2}.save-btn{color:#fff;background:#e91e63;font-weight:600}.save-btn:hover:not(:disabled){background:#c2185b}.settings-actions button:disabled{opacity:.6;cursor:not-allowed}@media (width<=480px){.settings-row-main,.settings-row-visual{flex-wrap:wrap}.settings-field,.settings-field.small,.settings-field.color-field,.settings-field.icon-field{flex:1;min-width:0}.settings-footer{flex-direction:column;align-items:flex-start}.settings-actions{width:100%}.settings-actions button{flex:1;justify-content:center}}.points-wheel-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.points-wheel-modal{background:#fff;border-radius:24px;flex-direction:column;flex-shrink:0;width:90%;max-width:500px;max-height:calc(100vh - 80px);animation:.3s scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 80px #0006}.points-wheel-header{color:#fff;background:linear-gradient(135deg,#e91e63 0%,#c2185b 100%);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.points-wheel-title{align-items:center;gap:10px;margin:0;font-size:20px;font-weight:600;display:flex}.points-wheel-title .title-icon{font-size:28px}.wheel-close-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.wheel-close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.wheel-container{background:linear-gradient(135deg,#fce4ec 0%,#f8bbd9 100%);flex-direction:column;align-items:center;padding:30px;display:flex;position:relative}.wheel-pointer{color:#e91e63;z-index:10;filter:drop-shadow(0 2px 4px #0000004d);font-size:30px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.wheel{border:8px solid #fff;border-radius:50%;width:280px;height:280px;transition:transform 4s cubic-bezier(.17,.67,.12,.99);position:relative;overflow:hidden;box-shadow:0 8px 30px #0003}.wheel.spinning{transition:transform 4s cubic-bezier(.17,.67,.12,.99)}.wheel-segment{transform-origin:0 100%;clip-path:polygon(0 0,100% 0,100% 100%);justify-content:center;align-items:center;width:50%;height:50%;display:flex;position:absolute;top:0;left:50%}.segment-text{transform-origin:50%;font-size:24px;position:absolute;top:25%;left:-15px}.wheel-center-btn{color:#fff;cursor:pointer;z-index:20;background:linear-gradient(135deg,#e91e63 0%,#c2185b 100%);border:6px solid #fff;border-radius:50%;width:80px;height:80px;font-size:16px;font-weight:600;transition:all .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 15px #e91e6366}.wheel-center-btn:hover:not(:disabled){transform:translate(-50%,-50%)scale(1.1);box-shadow:0 6px 20px #e91e6380}.wheel-center-btn:disabled,.wheel-center-btn.disabled{opacity:.7;cursor:not-allowed}.result-panel{text-align:center;background:linear-gradient(135deg,#fff8e1 0%,#ffecb3 100%);padding:20px 30px;animation:.5s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.result-icon{margin-bottom:8px;font-size:48px}.result-text{color:#666;margin-bottom:4px;font-size:16px}.result-name{font-size:32px;font-weight:700;animation:1s infinite pulse}.rewards-legend{background:#fafafa;border-top:1px solid #e0e0e0;padding:20px 24px}.rewards-legend h4{color:#333;margin:0 0 12px;font-size:14px}.legend-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.legend-item{align-items:center;gap:8px;font-size:13px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.legend-name{color:#333;flex:1}.legend-weight{color:#999;font-size:11px}.wheel-stats{text-align:center;color:#666;background:#f5f5f5;padding:12px 24px;font-size:13px}.wheel-footer{background:#f8f9fa;border-top:1px solid #e9ecef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.footer-left{flex:1;min-width:0}.usage-tip{color:#6c757d;font-size:12px;line-height:1.5}.footer-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.settings-btn{color:#495057;cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:8px;align-items:center;gap:4px;padding:6px 14px;font-size:13px;transition:all .2s;display:flex}.settings-btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.settings-btn:disabled{opacity:.6;cursor:not-allowed}.footer-right .footer-hint{color:#adb5bd;font-size:11px}.student-selector{background:#f8f9fa;border-top:1px solid #e9ecef;padding:16px 20px}.selector-header{color:#333;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.selector-close{color:#666;cursor:pointer;background:#e9ecef;border:none;border-radius:50%;width:28px;height:28px;font-size:14px}.student-search{border:1px solid #ddd;border-radius:8px;outline:none;width:100%;margin-bottom:12px;padding:10px 14px;font-size:14px}.student-search:focus{border-color:#e91e63;box-shadow:0 0 0 3px #e91e631a}.student-list{flex-direction:column;gap:8px;max-height:200px;display:flex;overflow-y:auto}.student-item{cursor:pointer;background:#fff;border:1px solid #e9ecef;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;transition:all .2s;display:flex}.student-item:hover:not(:disabled){background:#fff5f7;border-color:#e91e63}.student-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;font-weight:600;display:flex}.student-name{color:#333;flex:1;font-size:14px}.add-btn{color:#fff;background:#e91e63;border-radius:15px;padding:6px 12px;font-size:12px;font-weight:600}.no-student{text-align:center;color:#868e96;padding:20px;font-size:13px}.result-hint{color:#666;margin-top:8px;font-size:13px}.settings-modal-overlay{z-index:1200;background:#0009;justify-content:center;align-items:flex-start;padding:40px 20px 20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.settings-modal{background:#fff;border-radius:16px;flex-direction:column;flex-shrink:0;width:90%;max-width:720px;max-height:calc(100vh - 80px);animation:.25s scaleIn;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}@media (width<=480px){.points-wheel-modal{width:95%;max-height:95vh}.settings-modal{border-radius:12px;width:95%;max-height:90vh}.wheel{width:240px;height:240px}.wheel-center-btn{width:70px;height:70px;font-size:14px}.segment-text{font-size:20px}.legend-grid{grid-template-columns:1fr}}.pomodoro-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.pomodoro-modal{background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;width:90%;max-width:480px;max-height:calc(100vh - 80px);display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.pomodoro-content{flex:1;overflow-y:auto}.pomodoro-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.pomodoro-title{color:#333;align-items:center;gap:10px;margin:0;font-size:20px;font-weight:600;display:flex}.pomodoro-title .title-icon{font-size:24px}.pomodoro-close-btn{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.pomodoro-close-btn:hover{color:#333;background:#e0e0e0}.pomodoro-content .phase-tabs{background:#fafafa;gap:8px;padding:16px 24px;display:flex}.pomodoro-content .phase-tab{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:12px 8px;transition:all .2s;display:flex}.pomodoro-content .phase-tab:hover{border-color:#e0e0e0}.pomodoro-content .phase-tab.active{border-color:var(--phase-color);background:#ffffffe6;box-shadow:0 4px 12px #00000014}.pomodoro-content .phase-icon{font-size:20px}.pomodoro-content .phase-name{color:#333;font-size:13px;font-weight:500}.pomodoro-content .phase-time{color:#999;font-size:11px}.pomodoro-content .timer-display{justify-content:center;padding:32px 24px;display:flex}.pomodoro-content .timer-ring{width:240px;height:240px;position:relative}.pomodoro-content .timer-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.pomodoro-content .ring-bg{fill:none;stroke:#f0f0f0;stroke-width:8px}.pomodoro-content .ring-progress{fill:none;stroke-width:8px;stroke-linecap:round;transition:stroke-dasharray .3s}.pomodoro-content .timer-content{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pomodoro-content .timer-time{color:#333;font-variant-numeric:tabular-nums;font-size:56px;font-weight:700;line-height:1}.pomodoro-content .timer-phase{color:#666;margin-top:8px;font-size:16px}.pomodoro-content .pomodoro-stats{justify-content:center;gap:48px;padding:0 24px 24px;display:flex}.pomodoro-content .stat-item{flex-direction:column;align-items:center;gap:4px;display:flex}.pomodoro-content .stat-value{color:#333;font-size:28px;font-weight:700}.pomodoro-content .stat-label{color:#999;font-size:13px}.pomodoro-content .pomodoro-controls{justify-content:center;gap:16px;padding:0 24px 24px;display:flex}.pomodoro-content .control-btn{cursor:pointer;border:none;border-radius:50px;align-items:center;gap:8px;padding:14px 32px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.pomodoro-content .control-btn.start{color:#fff;background:#4caf50;box-shadow:0 4px 16px #4caf504d}.pomodoro-content .control-btn.start:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}.pomodoro-content .control-btn.pause{color:#fff;background:#ff9800;box-shadow:0 4px 16px #ff98004d}.pomodoro-content .control-btn.pause:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff980066}.pomodoro-content .control-btn.reset{color:#666;background:#f5f5f5}.pomodoro-content .control-btn.reset:hover{background:#e0e0e0}.pomodoro-content .control-btn span{font-size:18px}.pomodoro-footer{text-align:center;background:#fafafa;border-top:1px solid #f0f0f0;padding:16px 24px}.pomodoro-footer .footer-hint{color:#999;font-size:13px}@media (width<=480px){.pomodoro-modal{border-radius:0;max-height:100vh}.pomodoro-content .timer-ring{width:200px;height:200px}.pomodoro-content .timer-time{font-size:44px}.pomodoro-content .phase-tabs{padding:12px 16px}.pomodoro-content .phase-tab{padding:10px 6px}.pomodoro-content .phase-name{font-size:12px}.pomodoro-content .phase-time{font-size:10px}}.stopwatch-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.stopwatch-modal{background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;width:90%;max-width:480px;max-height:calc(100vh - 80px);display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.stopwatch-content{flex:1;overflow-y:auto}.stopwatch-header{border-bottom:1px solid #f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.stopwatch-title{color:#333;align-items:center;gap:10px;margin:0;font-size:20px;font-weight:600;display:flex}.stopwatch-title .title-icon{font-size:24px}.stopwatch-close-btn{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.stopwatch-close-btn:hover{color:#333;background:#e0e0e0}.stopwatch-content .stopwatch-display{justify-content:center;padding:40px 24px;display:flex}.stopwatch-content .time-display{color:#333;font-variant-numeric:tabular-nums;font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:72px;font-weight:700;line-height:1;transition:color .3s}.stopwatch-content .time-display.running{color:#4caf50}.stopwatch-content .stopwatch-controls{flex-wrap:wrap;justify-content:center;gap:12px;padding:0 24px 24px;display:flex}.stopwatch-content .control-btn{cursor:pointer;border:none;border-radius:50px;align-items:center;gap:8px;padding:14px 28px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.stopwatch-content .control-btn.start{color:#fff;background:#4caf50;box-shadow:0 4px 16px #4caf504d}.stopwatch-content .control-btn.start:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}.stopwatch-content .control-btn.pause{color:#fff;background:#ff9800;box-shadow:0 4px 16px #ff98004d}.stopwatch-content .control-btn.pause:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff980066}.stopwatch-content .control-btn.lap{color:#fff;background:#2196f3;box-shadow:0 4px 16px #2196f34d}.stopwatch-content .control-btn.lap:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2196f366}.stopwatch-content .control-btn.reset{color:#666;background:#f5f5f5}.stopwatch-content .control-btn.reset:hover{background:#e0e0e0}.stopwatch-content .control-btn span{font-size:18px}.stopwatch-content .laps-section{border:1px solid #f0f0f0;border-radius:12px;margin:0 24px 24px;overflow:hidden}.stopwatch-content .laps-header{color:#666;background:#fafafa;border-bottom:1px solid #f0f0f0;grid-template-columns:60px 1fr 1fr;gap:12px;padding:12px 16px;font-size:13px;font-weight:600;display:grid}.stopwatch-content .laps-list{max-height:200px;overflow-y:auto}.stopwatch-content .lap-item{font-variant-numeric:tabular-nums;border-bottom:1px solid #f8f8f8;grid-template-columns:60px 1fr 1fr;gap:12px;padding:12px 16px;display:grid}.stopwatch-content .lap-item:last-child{border-bottom:none}.stopwatch-content .lap-number{color:#999;font-size:14px;font-weight:600}.stopwatch-content .lap-duration{color:#666;font-size:14px}.stopwatch-content .lap-total{color:#333;font-size:14px;font-weight:500}.stopwatch-footer{text-align:center;background:#fafafa;border-top:1px solid #f0f0f0;flex-shrink:0;padding:16px 24px}.stopwatch-footer .footer-hint{color:#999;font-size:13px}@media (width<=480px){.stopwatch-modal{border-radius:0;max-height:100vh}.stopwatch-content .time-display{font-size:52px}.stopwatch-content .control-btn{padding:12px 20px;font-size:14px}}.noise-monitor-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.noise-monitor-modal{background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;width:90%;max-width:480px;max-height:calc(100vh - 80px);display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.noise-monitor-content{flex:1;overflow-y:auto}.noise-monitor-header{border-bottom:1px solid #f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.noise-monitor-title{color:#333;align-items:center;gap:10px;margin:0;font-size:20px;font-weight:600;display:flex}.noise-monitor-close-btn{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.noise-monitor-close-btn:hover{color:#333;background:#e0e0e0}.noise-monitor-modal .error-message{color:#c62828;background:#ffebee;border-radius:8px;margin:16px 24px 0;padding:12px 16px;font-size:14px}.noise-monitor-content .volume-display{flex-direction:column;align-items:center;padding:32px 24px;display:flex}.noise-monitor-content .volume-circle{border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;transition:transform .3s;display:flex;position:relative}.noise-monitor-content .volume-circle.warning{animation:.5s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.noise-monitor-content .volume-inner{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:160px;height:160px;display:flex;box-shadow:0 4px 20px #0000001a}.noise-monitor-content .volume-value{color:#333;font-size:56px;font-weight:700;line-height:1}.noise-monitor-content .volume-unit{color:#999;margin-top:4px;font-size:16px}.noise-monitor-content .volume-status{margin-top:16px;font-size:20px;font-weight:600}.noise-monitor-content .threshold-setting{padding:0 24px 20px}.noise-monitor-content .threshold-setting label{color:#333;margin-bottom:12px;font-size:14px;font-weight:500;display:block}.noise-monitor-content .threshold-setting input[type=range]{-webkit-appearance:none;background:#e0e0e0;border-radius:4px;outline:none;width:100%;height:8px}.noise-monitor-content .threshold-setting input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#667eea;border-radius:50%;width:24px;height:24px;box-shadow:0 2px 8px #667eea66}.noise-monitor-content .threshold-setting input[type=range]:disabled{opacity:.5}.noise-monitor-content .threshold-hints{color:#999;justify-content:space-between;margin-top:8px;font-size:12px;display:flex}.noise-monitor-content .target-setting{padding:0 24px 20px}.noise-monitor-content .target-setting label{color:#333;margin-bottom:12px;font-size:14px;font-weight:500;display:block}.noise-monitor-content .target-options{gap:8px;display:flex}.noise-monitor-content .target-btn{cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:8px;flex:1;padding:10px;font-size:14px;transition:all .2s}.noise-monitor-content .target-btn:hover:not(:disabled){color:#667eea;border-color:#667eea}.noise-monitor-content .target-btn.active{color:#667eea;background:#e8eaf6;border-color:#667eea}.noise-monitor-content .target-btn:disabled{opacity:.5;cursor:not-allowed}.noise-monitor-content .progress-section{background:#f8f9fa;border-radius:12px;margin:0 24px 20px;padding:16px}.noise-monitor-content .progress-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.noise-monitor-content .progress-header span{color:#666;font-size:14px}.noise-monitor-content .progress-time{font-weight:700;color:#333!important;font-size:20px!important}.noise-monitor-content .progress-bar{background:#e0e0e0;border-radius:4px;height:8px;overflow:hidden}.noise-monitor-content .progress-fill{background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:4px;height:100%;transition:width .3s}.noise-monitor-content .progress-target{text-align:center;color:#999;margin-top:8px;font-size:12px}.noise-monitor-content .bonus-section{text-align:center;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:12px;margin:0 24px 20px;padding:16px}.noise-monitor-content .bonus-label{color:#666;margin-bottom:8px;font-size:14px}.noise-monitor-content .bonus-display{justify-content:center;align-items:center;display:flex}.noise-monitor-content .bonus-item{color:#2e7d32;font-size:24px;font-weight:700;animation:.3s bonusPop}@keyframes bonusPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.noise-monitor-content .noise-monitor-controls{justify-content:center;gap:12px;padding:0 24px 24px;display:flex}.noise-monitor-content .control-btn{cursor:pointer;border:none;border-radius:50px;align-items:center;gap:8px;padding:14px 28px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.noise-monitor-content .control-btn.start{color:#fff;background:#4caf50;box-shadow:0 4px 16px #4caf504d}.noise-monitor-content .control-btn.start:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}.noise-monitor-content .control-btn.stop{color:#fff;background:#f44336;box-shadow:0 4px 16px #f443364d}.noise-monitor-content .control-btn.stop:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f4433666}.noise-monitor-content .control-btn.reset{color:#666;background:#f5f5f5}.noise-monitor-content .control-btn.reset:hover{background:#e0e0e0}.noise-monitor-content .control-btn span{font-size:18px}.noise-monitor-footer{text-align:center;background:#fafafa;border-top:1px solid #f0f0f0;flex-shrink:0;padding:16px 24px}.noise-monitor-footer .footer-hint{color:#999;font-size:13px;line-height:1.6}.noise-monitor-footer .footer-hint small{color:#bbb}@media (width<=480px){.noise-monitor-modal{border-radius:0;max-height:100vh}.volume-circle{width:160px;height:160px}.volume-inner{width:130px;height:130px}.noise-monitor-content .volume-value{font-size:44px}.noise-monitor-content .control-btn{padding:12px 20px;font-size:14px}}.posture-reminder-overlay{z-index:1100;-webkit-backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;min-height:100dvh;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.posture-reminder-modal{box-sizing:border-box;background:linear-gradient(135deg,#f5f7fa 0%,#e4e8ec 100%);border-radius:20px;width:90%;max-width:420px;max-height:90vh;padding:24px;animation:.3s ease-out posture-modal-enter;overflow-y:auto;box-shadow:0 20px 60px #0000004d}@keyframes posture-modal-enter{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.posture-reminder-header{border-bottom:2px solid #4caf5033;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}.posture-reminder-title{color:#2e7d32;align-items:center;gap:8px;margin:0;font-size:1.4rem;font-weight:700;display:flex}.posture-reminder-title .title-icon{font-size:1.6rem}.posture-reminder-close-btn{color:#666;cursor:pointer;background:#0000001a;border:none;border-radius:50%;width:36px;height:36px;font-size:1.2rem;transition:all .2s}.posture-reminder-close-btn:hover{color:#f44336;background:#f4433633}.tree-container{text-align:center;padding:20px 0}.tree-wrapper{transition:opacity .5s}.tree-emoji{font-size:5rem;transition:transform .5s;display:inline-block}.tree-status{color:#555;margin-top:12px;font-size:1.1rem;font-weight:500}.timer-info{background:#fff9;border-radius:12px;justify-content:space-around;margin:20px 0;padding:16px;display:flex}.info-item{flex-direction:column;align-items:center;gap:4px;display:flex}.info-label{color:#888;font-size:.85rem}.info-value{color:#333;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.info-value.highlight{color:#4caf50}.progress-bar-container{margin:20px 0}.progress-bar-bg{background:#0000001a;border-radius:6px;height:12px;overflow:hidden}.progress-bar-fill{border-radius:6px;height:100%;transition:width 1s linear,background .3s}.posture-reminder-controls{justify-content:center;gap:12px;margin-top:24px;display:flex}.posture-reminder-controls .control-btn{cursor:pointer;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:6px;min-width:80px;padding:12px 20px;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.posture-reminder-controls .control-btn span{font-size:1.5rem}.posture-reminder-controls .control-btn.start{color:#fff;background:linear-gradient(135deg,#4caf50,#45a049)}.posture-reminder-controls .control-btn.pause{color:#fff;background:linear-gradient(135deg,#ff9800,#f57c00)}.posture-reminder-controls .control-btn.reset{color:#fff;background:linear-gradient(135deg,#9e9e9e,#757575)}.posture-reminder-controls .control-btn.eye-saver{color:#fff;background:linear-gradient(135deg,#2196f3,#1976d2)}.posture-reminder-controls .control-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.posture-reminder-controls .control-btn:active{transform:translateY(0)}.posture-reminder-footer{text-align:center;border-top:1px solid #0000001a;margin-top:20px;padding-top:16px}.footer-hint{color:#888;font-size:.85rem;line-height:1.6}.footer-hint small{color:#4caf50;font-weight:500}.eye-saver-mode{cursor:pointer;background:#1a1a2e;justify-content:center;align-items:center;display:flex}.eye-saver-content{text-align:center;color:#e8e8e8;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.eye-saver-time{letter-spacing:.05em;font-variant-numeric:tabular-nums;text-shadow:0 0 60px #64c8ff66;font-size:20vw;font-weight:200;line-height:1}.eye-saver-hint{opacity:.5;letter-spacing:.1em;margin-top:3rem;font-size:1.5rem}@media (width<=480px){.posture-reminder-modal{margin:16px;padding:20px}.tree-emoji{font-size:4rem}.info-value{font-size:1.3rem}.posture-reminder-controls .control-btn{min-width:70px;padding:10px 14px;font-size:.8rem}.eye-saver-time{font-size:20vw}}.batch-score-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:flex-start;min-height:100dvh;padding:40px 20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.batch-score-modal{background:#fff;border-radius:24px;flex-direction:column;flex-shrink:0;width:90%;max-width:800px;max-height:calc(100vh - 80px);animation:.3s scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 80px #0006}.batch-score-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.batch-score-title{align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;display:flex}.title-icon{font-size:22px}.batch-close-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;width:32px;height:32px;font-size:16px;transition:background .2s}.batch-close-btn:hover{background:#ffffff4d}.batch-score-content{flex:1;gap:16px;padding:16px;display:flex;overflow:hidden}.student-panel{background:#f8f9fa;border-radius:12px;flex-direction:column;flex:1;display:flex;overflow:hidden}.panel-header{background:#fff;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.panel-title{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.selected-count{color:#666;background:#e8eaf6;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:400}.toggle-all-btn{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:6px;padding:4px 12px;font-size:12px;transition:background .2s}.toggle-all-btn:hover{background:#5a6fd6}.group-filter-tabs{background:0 0;flex-wrap:wrap;gap:8px;padding:12px 12px 0;display:flex}.group-tab{color:#888;cursor:pointer;white-space:nowrap;background:#f0f0f0;border:1px solid #0000;border-radius:16px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;transition:all .2s;display:flex}.group-tab:hover{color:#667eea;background:#e8eaf6;border-color:#667eea}.group-tab.active{color:#fff;background:#667eea;border-color:#667eea;font-weight:500;box-shadow:0 2px 6px #667eea66}.group-tab .group-count{text-align:center;min-width:18px;color:inherit;background:#00000014;border-radius:8px;padding:2px 6px;font-size:11px}.group-tab.active .group-count{color:#fff;background:#ffffff4d}.student-search-input{border:1px solid #ddd;border-radius:8px;margin:12px;padding:10px 14px;font-size:14px;transition:border-color .2s}.student-search-input:focus{border-color:#667eea;outline:none}.student-list-container{flex:1;padding:0 12px 12px;overflow-y:auto}.no-student-tip{text-align:center;color:#999;padding:20px}.student-checkbox-list{flex-direction:column;gap:4px;display:flex}.student-checkbox-item{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:all .2s;display:flex}.student-checkbox-item:hover{background:#f0f4ff}.student-checkbox-item.selected{background:#e8f0fe;border-color:#667eea}.student-checkbox-item input[type=checkbox]{accent-color:#667eea;width:18px;height:18px}.student-checkbox-item .student-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:600;display:flex}.student-checkbox-item .student-name{flex:1;font-weight:500}.student-checkbox-item .student-score{color:#666;background:#f0f0f0;border-radius:4px;padding:2px 8px;font-size:12px}.score-panel{flex-direction:column;flex:1;gap:16px;padding-right:4px;display:flex;overflow-y:auto}.score-panel::-webkit-scrollbar{width:6px}.score-panel::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.score-panel::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.score-items-section,.custom-score-section{background:#f8f9fa;border-radius:12px;padding:16px}.section-title{color:#666;margin-bottom:12px;font-size:13px;font-weight:600}.score-items-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.no-items-tip{text-align:center;color:#999;grid-column:1/-1;padding:10px;font-size:13px}.score-item-btn{cursor:pointer;background:#fff;border:2px solid #eee;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;transition:all .2s;display:flex}.score-item-btn:hover{background:#f8f9ff;border-color:#667eea}.score-item-btn.active{background:#e8f0fe;border-color:#667eea}.score-item-btn.positive .item-score{color:#4caf50}.score-item-btn.negative .item-score{color:#f44336}.score-item-btn .item-icon{font-size:20px}.score-item-btn .item-name{color:#333;font-size:12px}.score-item-btn .item-score{font-size:14px;font-weight:600}.custom-inputs{flex-direction:column;gap:8px;display:flex}.custom-score-input,.custom-reason-input{border:1px solid #ddd;border-radius:8px;padding:12px 14px;font-size:14px;transition:border-color .2s}.custom-score-input:focus,.custom-reason-input:focus{border-color:#667eea;outline:none}.selection-preview{background:#f8f9fa;border-radius:12px;padding:16px}.preview-label{color:#666;margin-bottom:8px;font-size:13px}.preview-content{align-items:center;gap:12px;display:flex}.preview-item{font-weight:500}.preview-score{font-size:18px;font-weight:700}.preview-score.positive{color:#4caf50}.preview-score.negative{color:#f44336}.preview-empty{color:#999;font-size:13px}.execute-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;margin-top:auto;padding:14px;font-size:15px;font-weight:600;transition:transform .2s,opacity .2s}.execute-btn:hover:not(:disabled){transform:translateY(-2px)}.execute-btn:disabled{opacity:.6;cursor:not-allowed}.progress-bar-container{background:#f0f4ff;height:40px;padding:12px 16px;position:relative}.progress-bar-fill{background:linear-gradient(90deg,#667eea 0%,#764ba2 100%);height:100%;transition:width .3s;position:absolute;top:0;left:0}.progress-text{z-index:1;color:#333;justify-content:center;align-items:center;height:100%;font-weight:500;display:flex;position:relative}.results-panel{background:#f8f9fa;border-radius:12px;margin:0 16px 16px;overflow:hidden}.results-header{background:#fff;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;display:flex}.results-close{cursor:pointer;color:#666;background:0 0;border:none;font-size:16px}.results-content{flex-direction:column;gap:8px;max-height:120px;padding:12px 16px;display:flex;overflow-y:auto}.result-group{gap:8px;font-size:13px;display:flex}.result-group.success .result-label{color:#4caf50}.result-group.fail .result-label{color:#f44336}.result-label{white-space:nowrap;font-weight:600}.result-names{color:#666;flex:1}.batch-score-footer-fixed{background:#fff;border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.footer-preview{color:#666;font-size:14px}.footer-preview strong{color:#333;font-weight:600}.footer-score{color:#4caf50;margin-left:8px;font-weight:600}.footer-score.negative{color:#f44336}.execute-btn-fixed{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;transition:transform .2s,opacity .2s}.execute-btn-fixed:hover:not(:disabled){transform:translateY(-2px)}.execute-btn-fixed:disabled{opacity:.6;cursor:not-allowed}.batch-score-footer{background:#f8f9fa;border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.usage-tips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tip-label{color:#667eea;white-space:nowrap;font-size:12px;font-weight:500}.tip-item{color:#666;white-space:nowrap;font-size:12px}.tip-divider{color:#ccc;-webkit-user-select:none;user-select:none;font-size:12px}.footer-hint{color:#999;white-space:nowrap;flex-shrink:0;font-size:12px}.confirm-overlay{z-index:10;background:#0009;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.confirm-modal{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:360px;padding:24px;animation:.2s confirmIn}@keyframes confirmIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.confirm-icon{margin-bottom:12px;font-size:48px}.confirm-title{margin-bottom:16px;font-size:18px;font-weight:600}.confirm-content{color:#666;line-height:1.8}.confirm-content strong{color:#333}.confirm-score{margin:8px 0;font-size:16px}.confirm-score .positive{color:#4caf50;font-weight:600}.confirm-score .negative{color:#f44336;font-weight:600}.confirm-warning{color:#ff9800;margin-top:8px;font-size:13px}.confirm-actions{gap:12px;margin-top:20px;display:flex}.confirm-cancel-btn,.confirm-submit-btn{cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:600;transition:all .2s}.confirm-cancel-btn{color:#666;background:#f0f0f0}.confirm-cancel-btn:hover{background:#e0e0e0}.confirm-submit-btn{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.confirm-submit-btn:hover{transform:translateY(-2px)}@media (width<=600px){.batch-score-content{flex-direction:column}.student-panel{max-height:200px}.score-items-grid{grid-template-columns:repeat(2,1fr)}}.tool-overlay{z-index:1100;background:#000000b3;justify-content:center;align-items:center;min-height:100dvh;padding:40px 20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.student-list-modal{background:#fff;border-radius:24px;flex-direction:column;flex-shrink:0;width:90%;max-width:800px;max-height:calc(100vh - 80px);animation:.3s scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 80px #0006}.tool-header{color:#fff;background:linear-gradient(135deg,#009688 0%,#00796b 100%);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.tool-title{align-items:center;gap:10px;margin:0;font-size:20px;font-weight:600;display:flex}.tool-title .title-icon{font-size:28px}.tool-close-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.tool-close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.student-list-display-mode{background:#f8f9fa;border-bottom:1px solid #e8e8e8;align-items:center;gap:12px;padding:12px 20px;display:flex}.display-mode-label{color:#666;font-size:14px;font-weight:500}.display-mode-options{gap:8px;display:flex}.display-mode-btn{color:#666;cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .2s}.display-mode-btn:hover{color:#667eea;border-color:#667eea}.display-mode-btn.active{color:#fff;background:#667eea;border-color:#667eea}.student-list-toolbar{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.select-all-checkbox{cursor:pointer;color:#333;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;display:flex}.select-all-checkbox input[type=checkbox]{cursor:pointer;accent-color:#667eea;width:18px;height:18px}.selected-count{color:#666;font-size:14px}.selected-count strong{color:#667eea;font-weight:600}.invert-selection-btn{color:#666;cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .2s}.invert-selection-btn:hover:not(:disabled){color:#667eea;border-color:#667eea}.invert-selection-btn:disabled{opacity:.5;cursor:not-allowed}.student-list-grid{background:#fafafa;grid-template-columns:repeat(5,1fr);gap:10px;max-height:400px;padding:16px 20px;display:grid;overflow-y:auto}.student-list-item{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #e8e8e8;border-radius:10px;align-items:center;gap:8px;min-height:48px;padding:12px;transition:all .2s;display:flex}.student-list-item:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea26}.student-list-item.selected{background:#f0f3ff;border-color:#667eea}.student-list-item input[type=checkbox]{cursor:pointer;accent-color:#667eea;flex-shrink:0;width:16px;height:16px}.student-list-text{color:#333;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;overflow:hidden}.student-list-item.selected .student-list-text{color:#667eea;font-weight:500}.student-list-score-inputs{background:#fff;border-top:1px solid #e8e8e8;gap:16px;padding:16px 20px;display:flex}.score-input-group{flex-direction:column;gap:6px;display:flex}.score-input-group label{color:#666;font-size:13px;font-weight:500}.score-input-group input{border:1px solid #d9d9d9;border-radius:8px;padding:10px 14px;font-size:14px;transition:all .2s}.score-input-group input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.score-input-group input[type=number]{width:100px}.reason-group{flex:1}.reason-group input{width:100%}.student-list-actions{background:#f8f9fa;border-top:1px solid #e8e8e8;gap:12px;padding:16px 20px;display:flex}.action-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:12px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn span{flex-shrink:0;font-size:16px}.add-btn{color:#fff;background:#52c41a}.add-btn:hover:not(:disabled){background:#389e0d;transform:translateY(-1px)}.deduct-btn{color:#fff;background:#ff4d4f}.deduct-btn:hover:not(:disabled){background:#cf1322;transform:translateY(-1px)}.export-btn{color:#fff;background:#667eea}.export-btn:hover:not(:disabled){background:#5a6fd6;transform:translateY(-1px)}.excel-btn{color:#fff;background:#52c41a}.excel-btn:hover:not(:disabled){background:#389e0d;transform:translateY(-1px)}.export-title-input{border-top:1px solid #f0f0f0;align-items:center;gap:12px;padding:12px 20px;display:flex}.export-title-input label{color:#666;white-space:nowrap;flex-shrink:0;font-size:14px}.export-title-input input{color:#333;border:1px solid #d9d9d9;border-radius:6px;flex:1;padding:8px 12px;font-size:14px;transition:all .2s}.export-title-input input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 2px #667eea1a}.export-title-input input::placeholder{color:#999}.export-preview-overlay{z-index:1200;background:#000c;justify-content:center;align-items:center;min-height:100dvh;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.export-preview-modal{background:#fff;border-radius:16px;flex-direction:column;flex-shrink:0;width:95%;max-width:800px;max-height:calc(100vh - 60px);display:flex;overflow:visible;box-shadow:0 20px 60px #0006}.export-preview-header{border-bottom:1px solid #e8e8e8;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.export-preview-header h4{color:#333;margin:0;font-size:16px}.export-preview-header button{color:#999;cursor:pointer;background:0 0;border:none;padding:4px;font-size:20px;line-height:1}.export-preview-header button:hover{color:#666}.export-preview-content{background:#f5f5f5;flex:1;justify-content:center;align-items:center;min-height:200px;padding:20px;display:flex;position:relative;overflow:auto}.export-preview-content img{background:#fff;border:1px solid #ddd;border-radius:8px;width:auto;max-width:100%;height:auto;max-height:60vh;display:block;box-shadow:0 4px 20px #0000001a}.export-preview-actions{border-top:1px solid #e8e8e8;justify-content:flex-end;gap:12px;padding:16px 20px;display:flex}.cancel-btn,.download-btn{cursor:pointer;border-radius:8px;padding:10px 24px;font-size:14px;transition:all .2s}.cancel-btn{color:#666;background:#f5f5f5;border:1px solid #d9d9d9}.cancel-btn:hover{background:#e8e8e8}.download-btn{color:#fff;background:#667eea;border:none}.download-btn:hover{background:#5a6fd6}.export-area{background:#fff;width:600px;padding:30px;position:fixed;top:-9999px;left:-9999px}.export-header{text-align:center;border-bottom:2px solid #667eea;margin-bottom:24px;padding-bottom:16px}.export-header h2{color:#333;margin:0 0 8px;font-size:22px}.export-meta{color:#666;margin:0;font-size:13px}.export-datetime{color:#999;margin:8px 0 0;font-size:12px}.export-students,.export-students-all{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px;display:grid}.export-section-title{border-radius:6px;grid-column:1/-1;margin-bottom:4px;padding:8px 12px;font-size:14px;font-weight:600}.export-section-title.selected-title{color:#2e7d32;background:#e8f5e9;border:1px solid #4caf50}.export-section-title.unselected-title{color:#666;background:#f5f5f5;border:1px solid #e0e0e0}.export-divider{background:linear-gradient(90deg,#0000,#ccc,#0000);grid-column:1/-1;height:2px;margin:16px 0}.export-student-item{border:1px solid #e8e8e8;border-radius:6px;align-items:center;gap:8px;padding:10px 14px;font-size:14px;display:flex}.export-student-item.selected{background:#e8f5e9;border-color:#4caf50}.export-student-item.unselected{background:#f5f5f5;border-color:#e0e0e0}.export-student-item.selected .export-text{color:#2e7d32;font-weight:600}.export-student-item.unselected .export-text{color:#999;font-weight:400}.export-check{color:#4caf50;margin-left:auto;font-size:16px;font-weight:700}.export-index{color:#999;min-width:24px;font-size:12px}.export-text{color:#333;font-weight:500}.export-footer{text-align:center;border-top:1px solid #e8e8e8;padding-top:16px}.export-footer p{color:#999;margin:0;font-size:12px}@media (width<=768px){.student-list-modal{width:95%;max-height:90vh}.student-list-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 16px}.student-list-item{padding:8px 10px}.student-list-text{font-size:13px}.student-list-score-inputs{flex-direction:column;gap:12px}.score-input-group input[type=number]{width:100%}.student-list-actions{flex-wrap:wrap}.action-btn{flex:calc(50% - 6px);padding:10px 16px;font-size:13px}.export-students{grid-template-columns:1fr}}@media (width<=480px){.student-list-grid{grid-template-columns:repeat(2,1fr)}.display-mode-options{flex-wrap:wrap}.display-mode-btn{padding:5px 10px;font-size:12px}.action-btn{flex:100%}}.toolbox-grid-overlay{z-index:1000;pointer-events:none;justify-content:center;align-items:flex-start;min-height:100dvh;padding:60px 20px 40px;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.toolbox-grid-panel{pointer-events:auto;background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;width:90%;max-width:600px;max-height:calc(100vh - 100px);animation:.3s slideUp;display:flex;overflow:hidden;box-shadow:0 10px 40px #00000026}.toolbox-grid-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.toolbox-grid-title{color:#333;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:600;display:flex}.toolbox-grid-title .title-icon{font-size:24px}.toolbox-close-btn{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:all .2s;display:flex}.toolbox-close-btn:hover{color:#333;background:#e0e0e0}.toolbox-grid-content{flex:1;grid-template-columns:repeat(3,1fr);gap:16px;padding:24px;display:grid;overflow-y:auto}.toolbox-item{cursor:pointer;background:#fafafa;border:2px solid #0000;border-radius:16px;flex-direction:column;align-items:center;padding:20px 16px;transition:all .2s;display:flex}.toolbox-item:hover{border-color:var(--tool-color,#667eea);background:#fff;transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.toolbox-item-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:12px;font-size:28px;transition:transform .2s;display:flex}.toolbox-item:hover .toolbox-item-icon{transform:scale(1.1)}.toolbox-item-info{text-align:center}.toolbox-item-name{margin-bottom:4px;font-size:14px;font-weight:600}.toolbox-item-desc{color:#999;font-size:12px;line-height:1.4}.toolbox-grid-footer{text-align:center;background:#f8f9fa;padding:16px 24px}.footer-hint{color:#999;font-size:13px}@media (width<=480px){.toolbox-grid-content{grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.toolbox-item{padding:16px 12px}.toolbox-item-icon{width:48px;height:48px;font-size:24px}}.toolbox-nav-container{display:inline-block;position:relative}.toolbox-nav-btn{color:#666;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;transition:all .2s;display:flex}.toolbox-nav-btn:hover{color:#333;background:#f5f5f5}.toolbox-nav-btn.active{color:#1976d2;background:#e3f2fd}.toolbox-nav-btn .nav-icon{font-size:18px}.toolbox-nav-btn .toolbox-arrow{margin-left:4px;font-size:10px;transition:transform .2s}.toolbox-nav-btn .toolbox-arrow.open{transform:rotate(180deg)}.feedback-modal-overlay{z-index:3000;background:#00000080;justify-content:center;align-items:center;animation:.2s feedbackFadeIn;display:flex;position:fixed;inset:0}@keyframes feedbackFadeIn{0%{opacity:0}to{opacity:1}}.feedback-modal-container{background:#fff;border-radius:16px;flex-direction:column;width:90%;max-width:480px;max-height:90vh;animation:.3s feedbackSlideIn;display:flex;box-shadow:0 20px 60px #0000004d}@keyframes feedbackSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.feedback-modal-header{border-bottom:1px solid #e8e8e8;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.feedback-modal-title{color:#333;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;display:flex}.feedback-icon{font-size:20px}.feedback-modal-close{cursor:pointer;color:#666;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:all .2s;display:flex}.feedback-modal-close:hover{color:#333;background:#e8e8e8}.feedback-tabs{border-bottom:1px solid #e8e8e8;padding:0 20px;display:flex}.feedback-tab{color:#999;cursor:pointer;background:0 0;border:none;padding:12px 20px;font-size:14px;font-weight:500;transition:color .2s;position:relative}.feedback-tab:hover,.feedback-tab.active{color:#667eea}.feedback-tab.active:after{content:"";background:#667eea;border-radius:1px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.feedback-tab-badge{color:#fff;background:#ff4d4f;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:4px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.feedback-modal-content{flex:1;padding:20px;overflow-y:auto}.feedback-form-group{margin-bottom:16px}.feedback-form-label{color:#333;align-items:center;gap:6px;margin-bottom:8px;font-size:14px;font-weight:500;display:flex}.feedback-required{color:#ff4d4f}.feedback-optional{color:#999;font-size:12px;font-weight:400}.feedback-type-options{flex-wrap:wrap;gap:8px;display:flex}.feedback-type-btn{cursor:pointer;color:#666;background:#fff;border:1px solid #d9d9d9;border-radius:20px;padding:8px 16px;font-size:13px;transition:all .2s}.feedback-type-btn:hover{color:#667eea;border-color:#667eea}.feedback-type-btn.active{color:#fff;background:#667eea;border-color:#667eea}.feedback-textarea{resize:vertical;box-sizing:border-box;border:1px solid #d9d9d9;border-radius:8px;width:100%;padding:12px;font-family:inherit;font-size:14px;transition:border-color .2s}.feedback-textarea:focus{border-color:#667eea;outline:none}.feedback-char-count{text-align:right;color:#999;margin-top:4px;font-size:12px}.feedback-input{box-sizing:border-box;border:1px solid #d9d9d9;border-radius:8px;width:100%;padding:10px 12px;font-size:14px;transition:border-color .2s}.feedback-input:focus{border-color:#667eea;outline:none}.feedback-modal-footer{border-top:1px solid #e8e8e8;justify-content:flex-end;gap:12px;margin-top:4px;padding:16px 20px;display:flex}.feedback-btn{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s}.feedback-btn:disabled{opacity:.6;cursor:not-allowed}.feedback-btn-cancel{color:#666;background:#f5f5f5}.feedback-btn-cancel:hover:not(:disabled){background:#e8e8e8}.feedback-btn-submit{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.feedback-btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.feedback-history-list{flex-direction:column;flex:1;padding:16px 20px;display:flex;overflow:hidden}.feedback-history-items{max-height:320px;padding-right:4px;overflow-y:auto}.feedback-history-loading,.feedback-history-empty{text-align:center;color:#999;padding:40px 20px}.feedback-history-empty-icon{margin-bottom:12px;font-size:36px}.feedback-history-item{background:#f8f9fa;border-radius:10px;margin-bottom:10px;padding:14px;transition:background .2s}.feedback-history-item:hover{background:#f0f2f5}.feedback-history-item:last-child{margin-bottom:0}.feedback-history-more{text-align:center;color:#999;border-top:1px dashed #e8e8e8;margin-top:8px;padding:12px;font-size:13px}.feedback-history-item-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.feedback-history-type{color:#667eea;background:#667eea1a;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500}.fb-status-tag{border-radius:10px;padding:2px 10px;font-size:11px;font-weight:500;display:inline-block}.fb-status-tag.status-pending{color:#fa8c16;background:#fff7e6}.fb-status-tag.status-processing{color:#1890ff;background:#e6f7ff}.fb-status-tag.status-resolved{color:#52c41a;background:#f6ffed}.fb-status-tag.status-closed{color:#999;background:#f5f5f5}.feedback-history-date{color:#bbb;margin-left:auto;font-size:12px}.feedback-history-content{color:#333;word-break:break-word;white-space:pre-wrap;font-size:14px;line-height:1.5}.feedback-history-reply{background:#e6f7ff;border-left:3px solid #1890ff;border-radius:8px;margin-top:10px;padding:10px 12px}.feedback-history-reply-label{color:#1890ff;margin-bottom:4px;font-size:12px;font-weight:500}.feedback-history-reply-content{color:#333;word-break:break-word;white-space:pre-wrap;font-size:13px;line-height:1.5}.feedback-modal-content::-webkit-scrollbar{width:6px}.feedback-history-list::-webkit-scrollbar{width:6px}.feedback-modal-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.feedback-history-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.feedback-modal-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.feedback-history-list::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.feedback-modal-content::-webkit-scrollbar-thumb:hover{background:#999}.feedback-history-list::-webkit-scrollbar-thumb:hover{background:#999}@media (width<=480px){.feedback-modal-container{width:95%;max-height:85vh}.feedback-modal-content{padding:16px}.feedback-type-options{gap:6px}.feedback-type-btn{padding:6px 12px;font-size:12px}.feedback-tabs{padding:0 16px}.feedback-tab{padding:10px 14px;font-size:13px}.feedback-history-list{padding:12px 16px}}.side-button-group{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%)}.feedback-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px 0 0 8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:36px;padding:10px 4px;font-size:12px;transition:all .3s;display:flex;box-shadow:-2px 2px 8px #667eea4d}.ai-feature-button{background:linear-gradient(135deg,#722ed1 0%,#531dab 100%);box-shadow:-2px 2px 8px #722ed14d}.feedback-button:hover{width:44px;padding:12px 6px;box-shadow:-4px 4px 16px #667eea66}.ai-feature-button:hover{box-shadow:-4px 4px 16px #722ed166}.feedback-button-icon{font-size:16px;line-height:1}.feedback-button-text{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:2px;font-weight:500}.feedback-button:active{transform:scale(.95)}@media (width<=768px){.feedback-button{width:32px;padding:8px 4px}.feedback-button:hover{width:36px}.feedback-button-text{letter-spacing:1px;font-size:10px}}@media print{.side-button-group{display:none}}.ai-modal-overlay{z-index:2000;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.ai-modal-content{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:320px;padding:32px 40px;animation:.25s scaleIn;box-shadow:0 20px 60px #0003}.ai-modal-icon{margin-bottom:12px;font-size:40px}.ai-modal-title{color:#333;margin-bottom:8px;font-size:18px;font-weight:600}.ai-modal-message{color:#666;margin-bottom:24px;font-size:14px;line-height:1.5}.ai-modal-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#722ed1 0%,#531dab 100%);border:none;border-radius:8px;padding:10px 32px;font-size:14px;transition:all .2s}.ai-modal-btn:hover{opacity:.9;transform:translateY(-1px)}.student-coin-list{flex-direction:column;height:100%;min-height:0;display:flex}.coin-list-search{align-items:center;gap:8px;padding:0 14px 10px;display:flex;position:relative}.coin-list-search-icon{flex-shrink:0;font-size:15px}.coin-list-search-input{color:#333;background:#f5f7fb;border:1.5px solid #e8ecf4;border-radius:10px;outline:none;flex:1;height:36px;padding:0 30px 0 12px;font-size:13px;transition:all .2s}.coin-list-search-input:focus{background:#fff;border-color:#e67e22;box-shadow:0 0 0 3px #e67e221a}.coin-list-search-input::placeholder{color:#b8bdd0}.coin-list-search-clear{color:#b8bdd0;cursor:pointer;background:0 0;border:none;padding:4px;font-size:13px;line-height:1;transition:color .2s;position:absolute;right:26px}.coin-list-search-clear:hover{color:#e67e22}.coin-list-sort-bar{padding:0 14px 8px;position:relative}.coin-list-sort-btn{cursor:pointer;color:#555;background:#f5f7fb;border:1px solid #e8ecf4;border-radius:7px;align-items:center;gap:5px;width:100%;height:28px;padding:0 8px;font-size:12px;transition:all .2s;display:flex}.coin-list-sort-btn:hover{background:#fef6ee;border-color:#e67e22}.coin-list-sort-icon{flex-shrink:0;font-size:12px}.coin-list-sort-label{text-align:left;flex:1;font-weight:500}.coin-list-sort-arrow{color:#b8bdd0;flex-shrink:0;font-size:8px;transition:transform .2s}.coin-list-sort-arrow.open{transform:rotate(180deg)}.coin-list-sort-menu{z-index:20;background:#fff;border:1px solid #e8ecf4;border-radius:8px;padding:4px;animation:.15s coinSortSlideIn;position:absolute;top:100%;left:14px;right:14px;box-shadow:0 4px 16px #0000001a}@keyframes coinSortSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.coin-list-sort-item{cursor:pointer;color:#555;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;padding:7px 10px;font-size:12px;transition:all .15s;display:flex}.coin-list-sort-item:hover{background:#fef6ee}.coin-list-sort-item.active{color:#e67e22;background:#fef6ee;font-weight:600}.coin-list-sort-item-icon{flex-shrink:0;font-size:13px}.coin-list-sort-item-label{flex:1}.coin-list-sort-item-order{font-size:12px;font-weight:700}.coin-list-select-bar{background:#f8f9fc;border-bottom:1px solid #eef1f8;justify-content:space-between;align-items:center;padding:7px 14px;display:flex}.coin-list-select-all{cursor:pointer;color:#555;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:flex}.coin-list-select-all input[type=checkbox]{accent-color:#e67e22;cursor:pointer;width:15px;height:15px}.coin-list-select-count{color:#8892a8;font-size:11px}.coin-list-select-count strong{color:#e67e22;font-weight:700}.coin-list-scroll{flex:1;padding:6px;overflow-y:auto}.coin-list-scroll::-webkit-scrollbar{width:4px}.coin-list-scroll::-webkit-scrollbar-thumb{background:#d8dce8;border-radius:3px}.coin-list-scroll::-webkit-scrollbar-track{background:0 0}.coin-list-item{cursor:pointer;-webkit-user-select:none;user-select:none;border:1.5px solid #0000;border-radius:10px;align-items:center;gap:8px;margin-bottom:3px;padding:8px 10px;transition:all .2s;display:flex}.coin-list-item:hover{background:#fef6ee;border-color:#e67e2214}.coin-list-item.selected{background:#fef6ee;border-color:#e67e224d;box-shadow:0 1px 4px #e67e2214}.coin-list-item input[type=checkbox]{accent-color:#e67e22;cursor:pointer;flex-shrink:0;width:16px;height:16px}.coin-list-avatar{color:#fff;background:#e67e22;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.coin-list-name{color:#333;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;overflow:hidden}.coin-list-info{flex-shrink:0;align-items:center;gap:6px;display:flex}.coin-list-coins{color:#d35400;white-space:nowrap;background:#fef6ee;border:1px solid #e67e2226;border-radius:7px;align-items:center;gap:2px;padding:2px 7px 2px 4px;font-weight:600;display:flex}.coin-list-coins-icon{font-size:12px}.coin-list-coins-text{color:#e67e22;font-size:10px;font-weight:500}.coin-list-coins-val{color:#d35400;font-size:13px;font-weight:700}.coin-list-score{color:#2c7a5b;white-space:nowrap;background:#f0faf5;border:1px solid #2c7a5b1f;border-radius:7px;align-items:center;gap:2px;padding:2px 7px 2px 4px;font-weight:600;display:flex}.coin-list-score-icon{font-size:11px}.coin-list-score-val{color:#2c7a5b;font-size:13px;font-weight:700}.coin-list-empty{text-align:center;color:#b8bdd0;padding:30px 16px;font-size:13px}.withdraw-panel{flex-direction:column;gap:12px;height:100%;display:flex}.withdraw-card{background:#fff;border:1px solid #e8ecf4;border-radius:12px;padding:14px 16px;transition:box-shadow .2s}.withdraw-card-header{align-items:center;gap:6px;margin-bottom:10px;display:flex}.withdraw-card-icon{font-size:15px}.withdraw-card-title{color:#333;font-size:13px;font-weight:700}.withdraw-card-optional{color:#aab2c8;background:#f5f7fb;border-radius:10px;margin-left:auto;padding:1px 8px;font-size:10px}.withdraw-selected-card{border-color:#e67e2233 #e67e2233 #e67e2233 #e67e22;border-left-style:solid;border-left-width:3px}.withdraw-selected-stats{align-items:center;gap:0;margin-bottom:8px;display:flex}.withdraw-stat-item{flex-direction:column;flex:1;align-items:center;gap:1px;display:flex}.withdraw-stat-num{color:#e67e22;font-size:20px;font-weight:800}.withdraw-stat-num.coins{color:#d35400;font-size:16px}.withdraw-stat-label{color:#8892a8;font-size:10px;font-weight:500}.withdraw-stat-divider{background:#eef1f8;flex-shrink:0;width:1px;height:28px}.withdraw-selected-names{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.withdraw-name-tag{color:#d35400;background:#fef6ee;border:1px solid #e67e221f;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500}.withdraw-name-more{color:#8892a8;background:#f5f7fb;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500}.withdraw-amount-control{background:#f8f9fc;border:2px solid #e8ecf4;border-radius:12px;align-items:center;gap:0;transition:border-color .2s;display:flex;overflow:hidden}.withdraw-amount-control:focus-within{border-color:#e67e22}.withdraw-amount-btn{color:#e67e22;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;font-weight:500;transition:background .2s;display:flex}.withdraw-amount-btn:hover:not(:disabled){background:#fef6ee}.withdraw-amount-btn:active:not(:disabled){background:#fdebd0;transform:scale(.95)}.withdraw-amount-btn:disabled{color:#ccc;cursor:not-allowed}.withdraw-amount-display{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:0;padding:4px 0;display:flex}.withdraw-amount-input{text-align:center;color:#333;background:0 0;border:none;outline:none;width:100%;padding:0;font-family:inherit;font-size:26px;font-weight:800;line-height:1.1}.withdraw-amount-input::placeholder{color:#c5cad8;font-size:18px;font-weight:500}.withdraw-amount-input:disabled{color:#bbb;cursor:not-allowed}.withdraw-amount-unit{color:#aab2c8;font-size:10px;font-weight:500}.withdraw-quick-amounts{gap:6px;margin-top:8px;display:flex}.withdraw-quick-btn{color:#666;cursor:pointer;background:#fff;border:1.5px solid #e8ecf4;border-radius:8px;flex:1;height:32px;font-size:13px;font-weight:600;transition:all .2s}.withdraw-quick-btn:hover:not(:disabled){color:#e67e22;background:#fef6ee;border-color:#e67e22}.withdraw-quick-btn.active{color:#fff;background:#e67e22;border-color:#e67e22;box-shadow:0 2px 6px #e67e2240}.withdraw-quick-btn:disabled{opacity:.5;cursor:not-allowed}.withdraw-reason-input{color:#333;box-sizing:border-box;background:#f8f9fc;border:1.5px solid #e8ecf4;border-radius:10px;outline:none;width:100%;height:38px;padding:0 12px;font-size:13px;transition:all .2s}.withdraw-reason-input:focus{background:#fff;border-color:#e67e22;box-shadow:0 0 0 3px #e67e2214}.withdraw-reason-input::placeholder{color:#c5cad8}.withdraw-preview{background:#fffbf0;border:1px solid #e67e2226;border-left:3px solid #e67e22;border-radius:12px;animation:.2s previewFadeIn;overflow:hidden}@keyframes previewFadeIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.withdraw-preview-header{background:#fef6ee;border-bottom:1px solid #e67e221a;align-items:center;gap:6px;padding:9px 14px;display:flex}.withdraw-preview-icon{font-size:13px}.withdraw-preview-title{color:#d35400;font-size:12px;font-weight:700}.withdraw-preview-body{padding:8px 14px}.withdraw-preview-row{color:#888;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px;display:flex}.withdraw-preview-row.total{color:#333;border-top:1px dashed #e67e2233;margin-top:3px;padding-top:6px;font-weight:600}.withdraw-preview-value{color:#555;align-items:center;gap:3px;font-weight:600;display:flex}.withdraw-preview-value.total-val{color:#d35400;font-size:14px}.preview-bean{font-size:12px}.withdraw-preview-warning{color:#e74c3c;background:#e74c3c0f;border-radius:7px;margin:0 10px 8px;padding:7px 10px;font-size:11px;line-height:1.5}.withdraw-balance-check{border:1px solid;border-radius:10px;padding:10px 14px;animation:.2s previewFadeIn}.withdraw-balance-check.has-warning{background:#fff5f5;border-color:#e74c3c26 #e74c3c26 #e74c3c26 #e74c3c;border-left-style:solid;border-left-width:3px}.withdraw-balance-check.all-ok{background:#f0faf5;border-color:#2c7a5b1f #2c7a5b1f #2c7a5b1f #2c7a5b;border-left-style:solid;border-left-width:3px}.withdraw-balance-check-title{color:#555;margin-bottom:6px;font-size:12px;font-weight:700}.withdraw-balance-check.has-warning .withdraw-balance-check-title{color:#e74c3c}.withdraw-balance-check.all-ok .withdraw-balance-check-title{color:#2c7a5b}.withdraw-balance-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.withdraw-balance-item{align-items:center;gap:6px;font-size:11px;line-height:1.5;display:flex}.withdraw-balance-name{color:#d35400;white-space:nowrap;font-weight:600}.withdraw-balance-detail{color:#888}.withdraw-balance-max{color:#e74c3c;border-top:1px dashed #e74c3c26;margin-top:6px;padding-top:6px;font-size:11px;font-weight:600}.withdraw-balance-ok{color:#2c7a5b;font-size:11px;font-weight:500}.withdraw-rules{background:#f8f9fc;border:1px solid #eef1f8;border-radius:10px;padding:12px 14px}.withdraw-rules-title{color:#555;align-items:center;gap:5px;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.withdraw-rules-list{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.withdraw-rules-item{color:#8892a8;align-items:flex-start;gap:6px;font-size:11px;line-height:1.5;display:flex}.withdraw-rules-dot{background:#e67e22;border-radius:50%;flex-shrink:0;width:4px;height:4px;margin-top:6px;display:inline-block}.withdraw-tip{color:#6b8f7e;background:#f0faf5;border:1px solid #2c7a5b1a;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:11px;display:flex}.withdraw-tip-icon{flex-shrink:0;font-size:12px}.withdraw-btn{cursor:pointer;color:#aab2c8;background:#e8ecf4;border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;height:48px;margin-top:auto;font-size:15px;font-weight:700;transition:all .25s;display:flex}.withdraw-btn.active{color:#fff;background:#e67e22;box-shadow:0 4px 14px #e67e224d}.withdraw-btn.active:hover{background:#d35400;box-shadow:0 6px 18px #e67e2266}.withdraw-btn.active:active{transform:scale(.98)}.withdraw-btn:disabled{cursor:not-allowed}.withdraw-btn-amount{background:#fff3;border-radius:8px;padding:2px 10px;font-size:13px}.withdraw-btn-loading{justify-content:center;align-items:center;gap:8px;display:flex}.withdraw-spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite withdrawSpin}@keyframes withdrawSpin{to{transform:rotate(360deg)}}.virtual-bank-overlay{z-index:1100;background:#0009;justify-content:center;align-items:flex-start;min-height:100dvh;padding:30px 20px;animation:.3s bankFadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes bankFadeIn{0%{opacity:0}to{opacity:1}}.virtual-bank-modal{background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;width:90%;max-width:880px;max-height:calc(100vh - 60px);animation:.3s cubic-bezier(.34,1.56,.64,1) bankScaleIn;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #0000004d}@keyframes bankScaleIn{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.virtual-bank-header{color:#fff;background:#e67e22;justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.virtual-bank-header-left{align-items:center;gap:10px;display:flex}.virtual-bank-header-icon{font-size:24px}.virtual-bank-title{margin:0;font-size:18px;font-weight:700}.virtual-bank-subtitle{background:#fff3;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500}.virtual-bank-header-right{align-items:center;gap:8px;display:flex}.virtual-bank-refresh{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;transition:background .2s;display:flex}.virtual-bank-refresh:hover:not(:disabled){background:#ffffff4d}.virtual-bank-refresh:disabled{opacity:.5;cursor:not-allowed}.virtual-bank-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;transition:background .2s;display:flex}.virtual-bank-close:hover{background:#ffffff59}.virtual-bank-body{flex:1;min-height:0;display:flex;overflow:hidden}.virtual-bank-left{border-right:1px solid #eef1f8;flex-direction:column;flex-shrink:0;width:300px;padding:14px 0;display:flex}.virtual-bank-right{background:#f8f9fc;flex-direction:column;flex:1;min-width:0;padding:16px 20px;display:flex;overflow-y:auto}.virtual-bank-loading{color:#aab2c8;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:300px;font-size:14px;display:flex}.virtual-bank-loading-icon{font-size:32px;animation:1s infinite bankBounce}@keyframes bankBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.virtual-bank-footer{background:#f8f9fc;border-top:1px solid #eef1f8;justify-content:center;align-items:center;gap:0;padding:0;display:flex}.virtual-bank-stat{border-right:1px solid #eef1f8;flex-direction:column;flex:1;align-items:center;gap:1px;padding:10px 16px;display:flex}.virtual-bank-stat:last-child{border-right:none}.virtual-bank-stat-label{color:#8892a8;font-size:11px;font-weight:500}.virtual-bank-stat-value{color:#333;font-size:16px;font-weight:800}.virtual-bank-toast{z-index:10;white-space:nowrap;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:500;animation:.3s bankToastIn;position:absolute;top:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000026}.virtual-bank-toast.success{color:#155724;background:#d4edda;border:1px solid #c3e6cb}.virtual-bank-toast.warning{color:#856404;background:#fff3cd;border:1px solid #ffeaa7}.virtual-bank-toast.error{color:#721c24;background:#f8d7da;border:1px solid #f5c6cb}@keyframes bankToastIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width<=768px){.virtual-bank-modal{border-radius:0;width:100%;max-width:100%;max-height:100vh}.virtual-bank-body{flex-direction:column}.virtual-bank-left{border-bottom:1px solid #eef1f8;border-right:none;width:100%;max-height:40vh}.virtual-bank-right{flex-shrink:1}.virtual-bank-footer{flex-wrap:wrap;gap:16px}}:root{--theme-primary:#ff6b9d;--theme-primary-light:#ff8e53;--theme-gradient:linear-gradient(135deg, #ff6b9d 0%, #ff8e53 100%);--theme-hover:#ff527d;--theme-active:#ff3d6e;--theme-bg-light:#fff0f3;--theme-border:#ffcdd6;--theme-text:#ff6b9d;--theme-shadow:#ff6b9d4d}.dashboard{background:color-mix(in srgb, var(--theme-primary,#ff6b9d) 4%, #f8f9fc 96%);min-height:100vh;padding-top:84px}.top-navbar{z-index:1000;background:#fff;border-radius:16px;justify-content:space-between;align-items:center;width:max-content;max-width:calc(100% - 48px);height:60px;padding:0 24px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #ff6b9d26}.navbar-left{align-items:center;gap:12px;display:flex}.logo{background:var(--theme-gradient);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.logo-icon{font-size:20px}.class-selector{background:var(--theme-bg-light,#fdf2f8);cursor:pointer;color:var(--theme-primary,#f472b6);border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:700;display:flex}.selector-icon{font-size:14px}.nav-action-btn{background:var(--theme-bg-light,#fdf2f8);cursor:pointer;color:var(--theme-primary,#f472b6);border:none;border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:700;display:flex}.nav-action-btn:hover{background:var(--theme-border,#fbcfe8)}.sort-dropdown-container{position:relative}.sort-dropdown-btn{background:var(--theme-bg-light,#fdf2f8);cursor:pointer;color:var(--theme-primary,#f472b6);border:none;border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:700;transition:background .2s;display:flex}.sort-dropdown-btn:hover{background:var(--theme-border,#fbcfe8)}.sort-arrow{font-size:10px;transition:transform .2s}.sort-arrow.open{transform:rotate(180deg)}.sort-order-badge{background:var(--theme-primary,#ff6b9d);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;margin-left:2px;font-size:10px;display:flex}.sort-menu{z-index:1000;background:#fff;border-radius:12px;min-width:180px;padding:8px;animation:.15s menuIn;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 4px 20px #0000001f}@keyframes menuIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.sort-menu-item{cursor:pointer;color:#555;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:14px;transition:all .15s;display:flex}.sort-menu-item:hover{background:#f5f5f5}.sort-menu-item.active{color:var(--theme-primary,#ff6b9d);background:#fff0f5}.sort-icon{text-align:center;width:20px;font-size:16px}.sort-label{flex:1}.sort-order{color:#999;background:#f0f0f0;border-radius:10px;padding:2px 8px;font-size:11px}.sort-menu-item.active .sort-order{background:var(--theme-primary,#ff6b9d);color:#fff}.navbar-center{flex:none;width:180px;margin:0 16px}.search-box{background:#f5f5f5;border-radius:24px;align-items:center;gap:8px;padding:8px 16px;display:flex}.search-box input{color:#333;background:0 0;border:none;outline:none;width:100%;font-size:14px}.search-box input::placeholder{color:#999}.search-clear{color:#999;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:14px;transition:all .2s;display:flex}.search-clear:hover{color:#666;background:#e0e0e0}.navbar-right{align-items:center;gap:8px;display:flex}.nav-item{cursor:pointer;color:var(--theme-primary,#f472b6);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:700;transition:all .2s;display:flex}.nav-item:hover{background:var(--theme-bg-light,#fdf2f8);color:var(--theme-primary)}.nav-item.active{color:var(--theme-primary);font-weight:500}.nav-item .nav-icon{font-size:16px}.main-content{min-height:calc(100vh - 70px);padding:24px;position:relative}.create-class-modal{padding:8px 4px}.create-class-desc{color:#666;margin-bottom:16px;font-size:14px}.create-class-input{border:2px solid #e8e8e8;border-radius:10px;outline:none;width:100%;margin-bottom:20px;padding:12px 16px;font-size:15px;transition:border-color .2s}.create-class-input:focus{border-color:var(--theme-primary,#ff6b9d)}.create-class-actions{justify-content:flex-end;gap:10px;display:flex}.create-class-actions .btn-cancel,.create-class-actions .btn-confirm{cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.create-class-actions .btn-cancel{color:#555;background:#f5f5f5}.create-class-actions .btn-cancel:hover:not(:disabled){background:#eee}.create-class-actions .btn-confirm{background:var(--theme-primary,#ff6b9d);color:#fff}.create-class-actions .btn-confirm:hover:not(:disabled){opacity:.85}.create-class-actions button:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.top-navbar{padding:0 12px}.navbar-center,.nav-item span:not(.nav-icon){display:none}}.class-selector-modal{padding:8px}.class-list{flex-direction:column;gap:8px;max-height:400px;display:flex;overflow-y:auto}.class-item{cursor:pointer;border:2px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;transition:all .2s;display:flex}.class-item.create{color:#666;border:2px dashed #ddd}.class-item.create:hover{border-color:var(--theme-primary,#ff6b9d);color:var(--theme-primary,#ff6b9d);background:#fff5f8}.class-icon{background:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:flex}.class-item.create .class-icon{background:0 0;font-size:24px}.class-name{flex:1;font-size:15px;font-weight:500}.check-icon{color:var(--theme-primary,#ff6b9d);font-size:16px;font-weight:700}.empty-class{color:#999;text-align:center;flex-direction:column;align-items:center;padding:40px 20px;display:flex}.empty-class p{margin-bottom:20px;font-size:14px}.empty-class .btn-create{background:var(--theme-primary,#ff6b9d);color:#fff;cursor:pointer;border:none;border-radius:20px;padding:10px 20px;font-size:14px;font-weight:500}.empty-class .btn-create:hover{opacity:.9}.selector-arrow{color:#999;margin-left:4px;font-size:10px}.class-item{border:2px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;padding:0;transition:all .2s;display:flex;overflow:hidden}.class-item-content{cursor:pointer;flex:1;align-items:center;gap:12px;padding:14px 16px;display:flex}.class-item:hover{background:#f5f5f5}.class-item.active{border-color:var(--theme-primary,#ff6b9d);background:#f0f7ff}.btn-delete-class{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:8px;margin-right:8px;padding:8px 12px;font-size:16px;transition:all .2s}.btn-delete-class:hover:not(:disabled){opacity:1;background:#ffebee}.btn-delete-class:disabled{opacity:.3;cursor:not-allowed}.class-item-actions{gap:4px;margin-right:8px;display:flex}.btn-edit-class{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:8px;padding:8px 10px;font-size:14px;transition:all .2s}.btn-edit-class:hover{opacity:1;background:#e3f2fd}.class-item-edit{flex:1;align-items:center;gap:8px;padding:8px 12px;display:flex}.edit-class-input{border:2px solid var(--theme-primary,#ff6b9d);border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:14px}.edit-class-actions{gap:4px;display:flex}.btn-save-edit,.btn-cancel-edit{cursor:pointer;border:none;border-radius:6px;padding:6px 10px;font-size:14px;transition:all .2s}.btn-save-edit{color:#fff;background:#4caf50}.btn-save-edit:hover{background:#45a049}.btn-cancel-edit{color:#666;background:#f0f0f0}.btn-cancel-edit:hover{background:#e0e0e0}.create-class-inline{background:#f9f9f9;border:2px dashed #ddd;border-radius:12px;margin-top:8px;padding:12px}.create-class-input-inline{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:10px;outline:none;width:100%;margin-bottom:12px;padding:12px 16px;font-size:15px}.create-class-input-inline:focus{border-color:var(--theme-primary,#ff6b9d)}.create-class-actions-inline{gap:10px;display:flex}.btn-cancel-inline,.btn-confirm-inline{cursor:pointer;border:none;border-radius:8px;flex:1;padding:10px 16px;font-size:14px;font-weight:500;transition:all .2s}.btn-cancel-inline{color:#666;background:#f0f0f0}.btn-cancel-inline:hover:not(:disabled){background:#e0e0e0}.btn-confirm-inline{background:var(--theme-primary,#ff6b9d);color:#fff}.btn-confirm-inline:hover:not(:disabled){opacity:.9}.btn-cancel-inline:disabled,.btn-confirm-inline:disabled{opacity:.5;cursor:not-allowed}.adopt-overlay{z-index:2000;background:#0000008c;justify-content:center;align-items:center;animation:.2s overlayIn;display:flex;position:fixed;inset:0}.adopt-modal{background:#fff;border-radius:20px;flex-direction:column;width:780px;max-width:95vw;max-height:88vh;animation:.25s cubic-bezier(.175,.885,.32,1.275) modalIn;display:flex;overflow:hidden;box-shadow:0 24px 60px #0003}.adopt-header{background:linear-gradient(135deg,#fff8ff 0%,#fff0f5 100%);border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:24px 28px 20px;display:flex}.adopt-title-row{align-items:center;gap:16px;display:flex}.adopt-icon{font-size:40px;line-height:1}.adopt-title{color:#333;margin:0 0 4px;font-size:20px;font-weight:700}.adopt-subtitle{color:#999;margin:0;font-size:13px}.adopt-close{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:background .2s;display:flex}.adopt-close:hover{color:var(--theme-primary,#ff6b9d);background:#ffe4ee}.adopt-body{flex:1;padding:24px 28px;overflow-y:auto}.adopt-loading{text-align:center;color:#999;padding:60px;font-size:16px}.pet-select-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.pet-select-card{text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fafafa;border:2px solid #f0f0f0;border-radius:14px;padding:16px 12px;transition:all .2s;position:relative}.pet-select-card:hover{border-color:var(--theme-primary,#ff6b9d);background:#fff8fb;transform:translateY(-2px);box-shadow:0 6px 16px #ff6b9d26}.pet-select-card.selected{border-color:var(--theme-primary,#ff6b9d);background:#fff0f5;box-shadow:0 0 0 3px #ff6b9d33}.pet-select-emoji{margin-bottom:10px;font-size:52px;line-height:1}.pet-select-name{color:#333;margin-bottom:4px;font-size:15px;font-weight:600}.pet-select-desc{color:#aaa;min-height:34px;font-size:12px;line-height:1.4}.pet-select-check{background:var(--theme-primary,#ff6b9d);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex;position:absolute;top:8px;right:8px}.adopt-error{color:#cf1322;background:#fff1f0;border:1px solid #ffa39e;border-radius:8px;margin-top:16px;padding:12px 16px;font-size:14px}.adopt-footer{background:#fafafa;border-top:1px solid #f0f0f0;justify-content:space-between;align-items:center;gap:16px;padding:18px 28px;display:flex}.adopt-preview{color:#555;align-items:center;gap:8px;font-size:14px;display:flex}.preview-emoji{flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;line-height:1;display:flex}.preview-emoji img{object-fit:contain;width:100%;height:100%}.adopt-actions{gap:10px;margin-left:auto;display:flex}.adopt-btn{cursor:pointer;border:none;border-radius:30px;padding:10px 28px;font-size:15px;font-weight:600;transition:all .2s}.adopt-btn.cancel{color:#666;background:#f5f5f5}.adopt-btn.cancel:hover{background:#eee}.adopt-btn.confirm{background:var(--theme-gradient,linear-gradient(135deg, #ff6b9d, #ff8e53));color:#fff;box-shadow:0 4px 12px #ff6b9d59}.adopt-btn.confirm:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #ff6b9d73}.adopt-btn.confirm:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}@media (width<=600px){.pet-select-grid{grid-template-columns:repeat(2,1fr)}.adopt-footer{flex-direction:column;align-items:stretch}.adopt-actions{margin-left:0}}.fireworks-container{pointer-events:none;z-index:10000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fireworks-overlay{background:#0006;animation:2s ease-out forwards overlayFade;position:absolute;inset:0}@keyframes overlayFade{0%{opacity:0}10%{opacity:1}85%{opacity:1}to{opacity:0}}.firework-particle{left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:var(--color);animation:1.2s ease-out forwards explode;animation-delay:var(--delay);opacity:0;box-shadow:0 0 6px var(--color), 0 0 12px var(--color);border-radius:50%;position:absolute}@keyframes explode{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}10%{opacity:1;transform:translate(-50%,-50%)scale(1.5)}to{opacity:0;transform:translate(calc(-50% + cos(var(--angle)) * var(--velocity)), calc(-50% + sin(var(--angle)) * var(--velocity))) scale(.3)}}.firework-flash{opacity:0;background:radial-gradient(circle,#ffffffe6 0%,#0000 70%);border-radius:50%;width:100px;height:100px;animation:.5s ease-out forwards flash;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.celebration-text{color:#ff2d78;text-shadow:4px 4px #fff,-2px -2px #fff,2px -2px #fff,-2px 2px #fff,2px 2px #fff,0 0 30px #ff6b9d,0 0 60px #ff6b9d99,0 0 90px #ff6b9d4d;opacity:0;z-index:10001;white-space:nowrap;align-items:center;gap:20px;font-size:64px;font-weight:900;animation:2s ease-out forwards celebrateText;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.celebration-text span:first-child,.celebration-text span:last-child{font-size:72px;animation:.5s ease-in-out infinite alternate bounce}.celebration-text span:last-child{animation-delay:.25s}@keyframes celebrateText{0%{opacity:0;transform:translate(-50%,-40%)scale(.5)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.2)}25%{transform:translate(-50%,-50%)scale(1)}85%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-60%)scale(.9)}}.fireworks-container:before,.fireworks-container:after{content:"✨";font-size:32px;animation:.8s ease-in-out infinite twinkle;position:absolute}.fireworks-container:before{top:25%;left:15%}.fireworks-container:after{animation-delay:.4s;top:30%;right:15%}.star-extra-1,.star-extra-2,.star-extra-3,.star-extra-4{font-size:28px;animation:.6s ease-in-out infinite twinkle;position:absolute}.star-extra-1{animation-delay:.2s;top:60%;left:10%}.star-extra-2{animation-delay:.6s;top:55%;right:10%}.star-extra-3{animation-delay:.3s;top:15%;left:30%}.star-extra-4{animation-delay:.7s;top:70%;right:25%}@keyframes twinkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2);box-shadow:0 0 10px #fff}}.feed-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;animation:.2s overlayIn;display:flex;position:fixed;inset:0}.feed-modal{background:#fff;border-radius:20px;flex-direction:column;width:780px;max-width:95vw;max-height:85vh;animation:.25s cubic-bezier(.175,.885,.32,1.275) modalIn;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}.feed-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.feed-title-row{flex-direction:column;gap:4px;display:flex}.feed-subtitle{color:#999;font-size:12px}.feed-title{color:#333;margin:0;font-size:20px;font-weight:700}.feed-title .student-name{color:var(--theme-primary,#ff6b9d)}.feed-close{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.feed-close:hover{color:var(--theme-primary,#ff6b9d);background:#ffe4ee}.feed-search{background:#fafafa;border-bottom:1px solid #f0f0f0;align-items:center;gap:10px;padding:12px 24px;display:flex}.search-icon{color:#999;font-size:16px}.feed-search input{color:#333;background:0 0;border:none;outline:none;flex:1;font-size:14px}.feed-search input::placeholder{color:#bbb}.feed-body{flex:1;padding:16px 20px;overflow-y:auto}.feed-loading{text-align:center;color:#999;padding:40px}.score-section{margin-bottom:20px}.section-label{border-bottom:1px solid #f0f0f0;align-items:center;gap:6px;margin-bottom:12px;padding-bottom:8px;font-size:14px;font-weight:600;display:flex}.section-label.bonus{color:#52c41a}.section-label.penalty{color:#ff4d4f}.label-icon{font-size:16px}.score-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.score-card{cursor:pointer;background:#f8f9fa;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;transition:all .2s;display:flex}.score-card:hover:not(:disabled){transform:translateY(-2px)}.score-card.bonus{background:#f6ffed;border-color:#b7eb8f}.score-card.bonus:hover:not(:disabled){background:#d9f7be;border-color:#73d13d;box-shadow:0 4px 12px #52c41a33}.score-card.penalty{background:#fff1f0;border-color:#ffa39e}.score-card.penalty:hover:not(:disabled){background:#ffccc7;border-color:#ff7875;box-shadow:0 4px 12px #ff4d4f33}.score-card:disabled{opacity:.6;cursor:not-allowed}.card-icon{font-size:28px;line-height:1}.card-name{color:#333;text-align:center;font-size:13px;font-weight:500;line-height:1.3}.card-score{border-radius:10px;padding:2px 10px;font-size:12px;font-weight:600}.score-card.bonus .card-score{color:#52c41a;background:#d9f7be}.score-card.penalty .card-score{color:#ff4d4f;background:#ffccc7}.feed-empty{text-align:center;color:#999;padding:40px 20px}.empty-icon{margin-bottom:12px;font-size:48px}.feed-footer{text-align:center;background:#fafafa;border-top:1px solid #f0f0f0;padding:12px 24px}.footer-tip{color:#999;font-size:12px}@media (width<=480px){.score-grid{grid-template-columns:repeat(2,1fr)}}.encourage-overlay{z-index:3000;background:#0009;justify-content:center;align-items:center;animation:.2s overlayIn;display:flex;position:fixed;inset:0}.encourage-modal{text-align:center;background:linear-gradient(135deg,#fff5f5 0%,#fff 100%);border-radius:24px;width:90%;max-width:400px;padding:32px;animation:.3s cubic-bezier(.175,.885,.32,1.275) encourageIn;box-shadow:0 20px 60px #0000004d}@keyframes encourageIn{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.encourage-icon{margin-bottom:16px;font-size:64px;animation:.6s infinite alternate bounce}.encourage-title{color:#333;margin-bottom:12px;font-size:24px;font-weight:700}.encourage-item{color:#ff4d4f;background:#fff1f0;border-radius:8px;margin-bottom:16px;padding:8px 16px;font-size:18px;font-weight:600;display:inline-block}.encourage-message{color:#666;background:#f8f9fa;border-radius:12px;margin-bottom:20px;padding:16px;font-size:16px;line-height:1.6}.encourage-auto-close{color:#999;margin-top:8px;font-size:13px}.summon-guardian-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009}.summon-guardian-modal{background:linear-gradient(#fff9e6 0%,#fff 30% 100%);border-radius:24px;width:90%;max-width:480px;padding:32px 28px;animation:.4s cubic-bezier(.34,1.56,.64,1) modalPopIn;position:relative;box-shadow:0 20px 60px #0000004d,0 0 0 4px #ffc8644d}@keyframes modalPopIn{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-decoration{justify-content:center;align-items:center;gap:12px;margin-bottom:16px;display:flex}.deco-icon{color:#ffb800;font-size:20px;animation:2s ease-in-out infinite twinkle}.deco-icon.star{font-size:28px;animation-delay:.5s}.success-header{text-align:center;margin-bottom:20px}.celebration-icon{margin-bottom:8px;font-size:40px;animation:1s infinite bounce}.success-title{color:#ff6b35;text-shadow:2px 2px 4px #ff6b3533;margin:0 0 8px;font-size:32px;font-weight:800}.congrats-text{color:#666;margin:0;font-size:16px}.congrats-text .highlight{color:#6366f1;font-size:20px;font-weight:700}.pet-showcase{text-align:center;margin-bottom:24px}.pet-image-container{width:180px;height:180px;margin:0 auto 16px;position:relative}.glow-ring{background:radial-gradient(circle,#ffc8644d 0%,#0000 70%);border-radius:50%;justify-content:center;align-items:center;width:160px;height:160px;animation:2s ease-in-out infinite pulse;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pet-image{object-fit:contain;z-index:2;filter:drop-shadow(0 8px 16px #00000026);width:140px;height:140px}.pet-image.pet-emoji{justify-content:center;align-items:center;font-size:100px;line-height:1;display:flex}.floating-dots{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.dot{border-radius:50%;width:8px;height:8px;animation:3s ease-in-out infinite float;position:absolute}.dot.yellow{background:gold;animation-delay:0s;top:20%;right:15%}.dot.pink{background:#ff69b4;animation-delay:1s;bottom:25%;left:10%}.dot.blue{background:#4169e1;animation-delay:2s;top:40%;left:5%}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.pet-name{color:#333;margin:0 0 8px;font-size:24px;font-weight:700}.pet-subtitle{color:#888;justify-content:center;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.star-icon{font-size:16px}.badge-reward{text-align:center;background:linear-gradient(135deg,#fff8e7 0%,#ffecd2 100%);border:1px solid #ffc8644d;border-radius:16px;margin-bottom:24px;padding:20px}.badge-icon{margin-bottom:8px;font-size:48px;animation:3s ease-in-out infinite rotate}@keyframes rotate{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.badge-title{color:#ff8c00;margin:0 0 8px;font-size:18px;font-weight:700}.badge-desc{color:#999;margin:0;font-size:13px}.sparkle{color:#ffb800}.modal-actions{gap:12px;display:flex}.btn-later{color:#666;cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:12px;flex:1;padding:14px 20px;font-size:15px;font-weight:500;transition:all .2s}.btn-later:hover{background:#eee;border-color:#ccc}.btn-collect{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ffb800 0%,#ff6b35 100%);border:none;border-radius:12px;flex:1.2;justify-content:center;align-items:center;gap:6px;padding:14px 20px;font-size:15px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #ff6b354d}.btn-collect:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff6b3566}.btn-icon{font-size:16px}.modal-close-btn{color:#999;cursor:pointer;background:#0000000d;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.modal-close-btn:hover{color:#666;background:#0000001a}.success-celebration{animation:3s infinite celebrationBg;overflow:hidden;background:linear-gradient(135deg,#667eea 0%,#764ba2 50%,#f093fb 100%)!important}@keyframes celebrationBg{0%,to{background:linear-gradient(135deg,#667eea 0%,#764ba2 50%,#f093fb 100%)}50%{background:linear-gradient(135deg,#f093fb 0%,#764ba2 50%,#667eea 100%)}}.fireworks{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.firework{border-radius:50%;width:4px;height:4px;animation:2s ease-out infinite firework;position:absolute}.firework:first-child{background:#ff6b6b;animation-delay:0s;top:20%;left:20%}.firework:nth-child(2){background:#4ecdc4;animation-delay:.3s;top:30%;left:80%}.firework:nth-child(3){background:#ffe66d;animation-delay:.6s;top:60%;left:15%}.firework:nth-child(4){background:#a8e6cf;animation-delay:.9s;top:70%;left:75%}.firework:nth-child(5){background:#ff8b94;animation-delay:1.2s;top:40%;left:50%}@keyframes firework{0%{opacity:1;transform:scale(0);box-shadow:0 0 #fffc}50%{opacity:.8;transform:scale(1);box-shadow:0 0 20px 10px #fff6}to{opacity:0;transform:scale(3);box-shadow:0 0 40px 20px #fff0}}.confetti-container{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.confetti{width:10px;height:10px;animation:4s ease-in infinite confetti-fall;position:absolute}.confetti-0{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);background:#ff6b6b}.confetti-1{background:#4ecdc4;border-radius:50%}.confetti-2{clip-path:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%);background:#ffe66d}.confetti-3{background:#a8e6cf;transform:rotate(45deg)}.confetti-4{clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);background:#ff8b94}.confetti:first-child{animation-delay:0s;left:5%}.confetti:nth-child(2){animation-delay:.2s;left:15%}.confetti:nth-child(3){animation-delay:.4s;left:25%}.confetti:nth-child(4){animation-delay:.1s;left:35%}.confetti:nth-child(5){animation-delay:.6s;left:45%}.confetti:nth-child(6){animation-delay:.3s;left:55%}.confetti:nth-child(7){animation-delay:.8s;left:65%}.confetti:nth-child(8){animation-delay:.5s;left:75%}.confetti:nth-child(9){animation-delay:.7s;left:85%}.confetti:nth-child(10){animation-delay:.9s;left:95%}.confetti:nth-child(11){animation-delay:1.1s;left:10%}.confetti:nth-child(12){animation-delay:1.3s;left:20%}.confetti:nth-child(13){animation-delay:1.5s;left:30%}.confetti:nth-child(14){animation-delay:1s;left:40%}.confetti:nth-child(15){animation-delay:1.7s;left:50%}.confetti:nth-child(16){animation-delay:1.2s;left:60%}.confetti:nth-child(17){animation-delay:1.9s;left:70%}.confetti:nth-child(18){animation-delay:1.4s;left:80%}.confetti:nth-child(19){animation-delay:1.6s;left:90%}.confetti:nth-child(20){animation-delay:1.8s;left:3%}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-100px)rotate(0)}to{opacity:0;transform:translateY(500px)rotate(720deg)}}.sparkle-stars{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.star-sprite{color:#fff;text-shadow:0 0 10px #fffc;font-size:20px;animation:1.5s ease-in-out infinite star-twinkle;position:absolute}.star-0{animation-delay:0s;top:10%;left:10%}.star-1{animation-delay:.2s;top:20%;left:85%}.star-2{animation-delay:.4s;top:80%;left:15%}.star-3{animation-delay:.6s;top:85%;left:80%}.star-4{animation-delay:.8s;top:15%;left:50%}.star-5{animation-delay:1s;top:75%;left:50%}.star-6{animation-delay:1.2s;top:30%;left:5%}.star-7{animation-delay:.3s;top:35%;left:95%}.star-8{animation-delay:.7s;top:60%;left:8%}.star-9{animation-delay:.9s;top:65%;left:92%}.star-10{animation-delay:1.1s;top:5%;left:30%}.star-11{animation-delay:.5s;top:90%;left:70%}@keyframes star-twinkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.celebration-content{z-index:10;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:20px;animation:.6s ease-out content-appear;display:flex;position:relative}@keyframes content-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.trophy-container{margin-bottom:20px;position:relative}.trophy{z-index:2;font-size:80px;animation:1s infinite trophy-bounce;position:relative}@keyframes trophy-bounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.1)}}.trophy-glow{background:radial-gradient(circle,#ffd70099 0%,#0000 70%);border-radius:50%;width:100px;height:100px;animation:1.5s ease-in-out infinite glow-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes glow-pulse{0%,to{opacity:.6;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.5)}}.trophy-rays{width:120px;height:120px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ray{transform-origin:bottom;background:linear-gradient(#ffd700cc,#0000);width:4px;height:60px;animation:3s linear infinite ray-rotate;position:absolute;top:50%;left:50%}.ray-0{transform:translate(-50%,-100%)rotate(0)}.ray-1{transform:translate(-50%,-100%)rotate(45deg)}.ray-2{transform:translate(-50%,-100%)rotate(90deg)}.ray-3{transform:translate(-50%,-100%)rotate(135deg)}.ray-4{transform:translate(-50%,-100%)rotate(180deg)}.ray-5{transform:translate(-50%,-100%)rotate(225deg)}.ray-6{transform:translate(-50%,-100%)rotate(270deg)}.ray-7{transform:translate(-50%,-100%)rotate(315deg)}@keyframes ray-rotate{0%{transform:translate(-50%, -100%) rotate(var(--rotation,0deg))}to{transform:translate(-50%, -100%) rotate(calc(var(--rotation,0deg) + 360deg))}}.success-title-section{text-align:center;margin-bottom:15px}.main-title{color:#fff;text-shadow:0 4px 20px #0000004d;gap:8px;margin:0;font-size:42px;font-weight:900;display:flex}.title-char{animation:.5s ease-out backwards char-pop;display:inline-block}.title-char:first-child{animation-delay:.1s}.title-char:nth-child(2){animation-delay:.2s}.title-char:nth-child(3){animation-delay:.3s}.title-char:nth-child(4){animation-delay:.4s}.title-char:nth-child(5){animation-delay:.5s}@keyframes char-pop{0%{opacity:0;transform:translateY(30px)scale(.5)}50%{transform:translateY(-10px)scale(1.2)}to{opacity:1;transform:translateY(0)scale(1)}}.title-underline{background:linear-gradient(90deg,#0000,gold,#0000);border-radius:2px;width:200px;height:4px;margin:10px auto 0;animation:.8s ease-out .6s backwards underline-grow}@keyframes underline-grow{0%{width:0}to{width:200px}}.student-info{text-align:center;margin-bottom:20px}.student-name{color:#fff;text-shadow:0 2px 10px #0000004d;margin:0 0 5px;font-size:28px;font-weight:700;animation:.6s ease-out .3s backwards slide-up}.success-message{color:#ffffffe6;margin:0;font-size:16px;animation:.6s ease-out .4s backwards slide-up}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pet-showcase-mini{flex-direction:column;align-items:center;margin-bottom:20px;animation:.6s ease-out .5s backwards slide-up;display:flex}.pet-avatar-glow{background:linear-gradient(135deg,#ffffff4d,#ffffff1a);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;animation:2s ease-in-out infinite avatar-glow;display:flex;position:relative;box-shadow:0 0 30px #fff6}@keyframes avatar-glow{0%,to{box-shadow:0 0 30px #fff6}50%{box-shadow:0 0 50px #ffffffb3}}.pet-avatar{object-fit:contain;border-radius:50%;width:60px;height:60px}.pet-avatar.emoji{font-size:50px;line-height:1}.pet-name-mini{color:#fff;text-shadow:0 2px 8px #0000004d;margin:10px 0 0;font-size:18px;font-weight:600}.badge-achievement{flex-direction:column;align-items:center;margin-bottom:25px;animation:.6s ease-out .6s backwards slide-up;display:flex}.badge-circle{background:linear-gradient(135deg,gold,#ff8c00);border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;animation:3s ease-in-out infinite badge-rotate;display:flex;position:relative;box-shadow:0 4px 20px #ff8c0080}@keyframes badge-rotate{0%,to{transform:rotate(-5deg)scale(1)}50%{transform:rotate(5deg)scale(1.05)}}.badge-medal{font-size:40px}.badge-ring{border:3px solid #ffd70080;border-radius:50%;animation:2s ease-out infinite ring-expand;position:absolute;inset:-5px}@keyframes ring-expand{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.badge-text{color:gold;text-shadow:0 2px 8px #0000004d;margin:12px 0 0;font-size:16px;font-weight:600}.btn-confirm-success{color:#fff;cursor:pointer;background:linear-gradient(135deg,gold,#ff8c00);border:none;border-radius:30px;padding:16px 50px;font-size:18px;font-weight:700;transition:transform .2s,box-shadow .2s;animation:.6s ease-out .7s backwards slide-up,2s ease-in-out infinite btn-shine;position:relative;overflow:hidden;box-shadow:0 4px 20px #ff8c0080}.btn-confirm-success:hover{transform:translateY(-3px);box-shadow:0 6px 30px #ff8c00b3}.btn-confirm-success:active{transform:translateY(-1px)}.btn-shine{background:linear-gradient(90deg,#0000,#fff6,#0000);width:100%;height:100%;animation:2s ease-in-out infinite shine;position:absolute;top:0;left:-100%}@keyframes shine{0%{left:-100%}to{left:100%}}.btn-text{z-index:1;position:relative}.built-in-animation-v2{background:radial-gradient(circle,#1a1a2e 0%,#0f0f1a 100%);width:100%;height:100%;position:relative;overflow:hidden}.particle-canvas{opacity:.9;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ring-container{width:300px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ring{border:3px solid #0000;border-radius:50%;animation:2s ease-out infinite ringExpand;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ring-1{border-color:#ffd700e6;width:60px;height:60px;animation-delay:0s}.ring-2{border-color:#ffb400cc;width:100px;height:100px;animation-delay:.2s}.ring-3{border-color:#ff9600b3;width:140px;height:140px;animation-delay:.4s}.ring-4{border-color:#ff780080;width:180px;height:180px;animation-delay:.6s}.ring-5{border-color:#ff64004d;width:220px;height:220px;animation-delay:.8s}@keyframes ringExpand{0%{opacity:1;transform:translate(-50%,-50%)scale(.5)}to{opacity:0;transform:translate(-50%,-50%)scale(1.8)}}.center-content{z-index:10;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.star-burst{width:280px;height:280px;position:absolute}.star-ray{transform-origin:0;background:linear-gradient(90deg,#ffd700e6,#0000);width:140px;height:4px;animation:1.2s ease-in-out infinite rayPulse;position:absolute;top:50%;left:50%}@keyframes rayPulse{0%,to{opacity:.3;width:80px}50%{opacity:1;width:140px}}.glow-circle{background:radial-gradient(circle,#ffd70066 0%,#0000 70%);border-radius:50%;width:120px;height:120px;animation:1.5s ease-in-out infinite glowPulseCircle;position:absolute}@keyframes glowPulseCircle{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.level-icon{filter:drop-shadow(0 0 30px #ffd700e6);font-size:80px;animation:2s ease-in-out infinite iconFloat}@keyframes iconFloat{0%,to{transform:translateY(0)scale(1)rotate(-5deg)}50%{transform:translateY(-15px)scale(1.15)rotate(5deg)}}.level-text{color:gold;text-shadow:0 0 10px #ffd700e6,0 0 20px #ffd700b3,0 0 40px #ffd70080,0 2px 4px #00000080;letter-spacing:2px;margin-top:10px;font-size:36px;font-weight:800;animation:1s ease-in-out infinite textPulse}@keyframes textPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.confetti-wrapper{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.confetti-piece{width:12px;height:12px;top:-20px;left:var(--x-start);animation:confettiFall var(--duration) ease-in-out var(--delay) infinite;border-radius:3px;position:absolute}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)scale(1)}to{transform:translateY(400px) translateX(var(--x-end)) rotate(var(--rotation)) scale(.3);opacity:0}}.sparkle-wrapper{width:0;height:0;position:absolute;top:50%;left:50%}.sparkle-point{width:12px;height:12px;transform:rotate(var(--angle)) translateX(var(--distance));animation:sparkleBlink .6s ease-in-out var(--delay) infinite;background:#fff;border-radius:50%;position:absolute;box-shadow:0 0 15px #fff,0 0 30px #fff9}@keyframes sparkleBlink{0%,to{opacity:0;transform:rotate(var(--angle)) translateX(var(--distance)) scale(.5)}50%{opacity:1;transform:rotate(var(--angle)) translateX(var(--distance)) scale(1.3)}}.fireworks-container{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.firework{left:var(--fx);top:var(--fy);animation:fireworkBurst 2s ease-out var(--delay) infinite;position:absolute}@keyframes fireworkBurst{0%{opacity:0;transform:scale(0)}10%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.firework-particle{background:var(--color,gold);width:8px;height:8px;transform:rotate(var(--angle)) translateX(40px);box-shadow:0 0 10px var(--color,gold);border-radius:50%;position:absolute}.celebration-text{gap:6px;display:flex;position:absolute;bottom:25px;left:50%;transform:translate(-50%)}.celebration-text .char{color:#fff;animation:.6s ease-in-out infinite charBounce;animation-delay:calc(var(--i) * 80ms);text-shadow:0 2px 10px #00000080,0 0 20px #ffd70080;font-size:26px;font-weight:700}@keyframes charBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.twinkle-stars{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.twinkle-star{color:#fffc;text-shadow:0 0 10px #fff;animation:1.5s ease-in-out infinite twinkle;position:absolute}@media (width<=400px){.level-icon{font-size:60px}.level-text{font-size:28px}.celebration-text .char{font-size:20px}.ring-container{width:200px;height:200px}}.level-up-overlay{-webkit-backdrop-filter:blur(8px);z-index:9998;background:#000000b3;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.level-up-container{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);border-radius:30px;flex-direction:column;justify-content:center;align-items:center;width:95%;max-width:800px;min-height:600px;padding:50px;animation:2s ease-in-out infinite containerPulse;display:flex;position:relative;overflow:hidden;box-shadow:0 0 80px #667eea99,0 0 140px #764ba266,inset 0 0 80px #ffffff14}@keyframes containerPulse{0%,to{box-shadow:0 0 80px #667eea99,0 0 140px #764ba266,inset 0 0 80px #ffffff14}50%{box-shadow:0 0 120px #667eeacc,0 0 200px #764ba299,inset 0 0 120px #ffffff1f}}.glow-bg{filter:blur(40px);background:radial-gradient(circle,#667eea66 0%,#0000 70%);border-radius:50%;width:300px;height:300px;animation:4s ease-in-out infinite glowMove;position:absolute}.glow-bg-2{background:radial-gradient(circle,#f5576c4d 0%,#0000 70%);animation-delay:-2s;bottom:-50px;right:-50px}@keyframes glowMove{0%,to{transform:translate(0)scale(1)}50%{transform:translate(30px,-30px)scale(1.2)}}.stars-container{pointer-events:none;position:absolute;inset:0}.star{background:#fff;border-radius:50%;width:4px;height:4px;animation:1.5s ease-in-out infinite twinkle;position:absolute}.star-0{animation-duration:1s}.star-1{animation-duration:1.5s}.star-2{animation-duration:2s}.star-3{animation-duration:2.5s}.star-4{animation-duration:3s}.level-up-info{text-align:center;z-index:10;margin-bottom:40px}.level-badge{color:#fff;background:linear-gradient(135deg,#f093fb,#f5576c);border-radius:60px;margin-bottom:20px;padding:16px 48px;font-size:32px;font-weight:700;animation:.6s badgeBounce;display:inline-block;box-shadow:0 6px 30px #f5576c99}@keyframes badgeBounce{0%{transform:scale(0)rotate(-10deg)}50%{transform:scale(1.3)rotate(5deg)}to{transform:scale(1)rotate(0)}}.level-up-title{background:linear-gradient(135deg,#fff 0%,gold 50%,#fff 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 10px;font-size:48px;font-weight:800;animation:2s ease-in-out infinite titleGlow}@keyframes titleGlow{0%,to{filter:brightness()}50%{filter:brightness(1.4)}}.pet-name{color:#ffffffe6;margin:0;font-size:26px}.animation-wrapper{z-index:10;border:5px solid #ffffff40;border-radius:50%;width:380px;height:380px;position:relative;overflow:hidden;box-shadow:0 0 60px #667eea99,0 0 100px #ffd7004d,inset 0 0 60px #0000004d}.level-up-video,.level-up-gif{object-fit:cover;width:100%;height:100%}.sparkles{pointer-events:none;position:absolute;inset:0}.sparkle{background:radial-gradient(circle,gold 0%,#0000 70%);border-radius:50%;width:20px;height:20px;animation:1.5s ease-in-out infinite sparkleAnim;position:absolute}.sparkle-0{animation-delay:0s;top:10%;left:10%}.sparkle-1{animation-delay:.2s;top:20%;right:15%}.sparkle-2{animation-delay:.4s;bottom:30%;left:5%}.sparkle-3{animation-delay:.6s;bottom:20%;right:10%}.sparkle-4{animation-delay:.8s;top:40%;left:2%}.sparkle-5{animation-delay:1s;top:60%;right:5%}.sparkle-6{animation-delay:1.2s;bottom:10%;left:20%}.sparkle-7{animation-delay:1.4s;top:5%;right:30%}@keyframes sparkleAnim{0%,to{opacity:0;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1.5)rotate(180deg)}}.skip-btn{color:#fffc;cursor:pointer;z-index:100;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:20px;padding:8px 20px;font-size:14px;transition:all .3s;position:absolute;bottom:20px;right:20px}.skip-btn:hover{color:#fff;background:#fff3}.loading-spinner{color:#fff;font-size:18px;animation:1.5s ease-in-out infinite pulse}.level-up-video-fullscreen{z-index:9999;cursor:pointer;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.level-up-video-player{object-fit:contain;outline:none;width:100%;height:100%}.video-skip-btn{color:#ffffffd9;cursor:pointer;z-index:10000;-webkit-backdrop-filter:blur(12px);background:#ffffff1f;border:1px solid #ffffff40;border-radius:24px;padding:10px 28px;font-size:16px;transition:all .3s;position:fixed;bottom:30px;right:30px}.video-skip-btn:hover{color:#fff;background:#fff3;border-color:#ffffff80}.pet-card{cursor:pointer;border:1px solid var(--theme-border,#fbcfe8);background:#fff;border-radius:16px;flex-direction:column;width:214px;height:272px;transition:transform .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 12px #0000000f,0 4px 8px -2px #0000001a}.pet-card:hover{transform:translateY(-6px)scale(1.03);box-shadow:0 12px 32px #0000002e,0 6px 16px #0000001f}.level-badge{color:#fff;z-index:10;border-radius:12px;padding:2px 8px;font-size:13px;font-weight:700;position:absolute;top:8px;left:8px}.change-pet-btn{color:#888;cursor:pointer;z-index:10;background:#64646426;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;line-height:1;transition:background .2s,color .2s,transform .2s;display:flex;position:absolute;top:8px;right:8px}.change-pet-btn:hover:not(.disabled){background:var(--theme-primary,#ff6b9d);color:#fff;transform:scale(1.1)}.change-pet-btn.disabled{opacity:.35;cursor:not-allowed}.pet-card .pet-card-top{background:linear-gradient(180deg, color-mix(in srgb, var(--theme-primary-light,#ff8e53) 15%, transparent) 0%, color-mix(in srgb, var(--theme-bg-light,#fff0f3) 8%, transparent) 100%);flex-shrink:0;justify-content:center;align-items:center;height:130px;display:flex;overflow:hidden}.pet-card .pet-image{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:static;transform:none}.pet-emoji{transform-origin:bottom;font-size:80px;line-height:1;animation:6s ease-in-out infinite petBounce}.pet-img{object-fit:contain;filter:drop-shadow(0 2px 4px #00000026);transform-origin:bottom;width:90px;height:90px;animation:6s ease-in-out infinite petBounce}@keyframes petBounce{0%,to{transform:translateY(0)scale(1)}25%{transform:translateY(-4px)scale(.98,1.02)}50%{transform:translateY(0)scale(1.02,.98)}75%{transform:translateY(-2px)scale(.99,1.01)}}@keyframes petWiggle{0%,to{rotate:0deg}25%{rotate:-1.5deg}50%{rotate:0deg}75%{rotate:1.5deg}}.pet-card-bottom{background:#fff;flex-direction:column;flex:1;padding:10px 12px;display:flex}.pet-name-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.student-name{color:var(--theme-primary,#ff6b9d);text-align:left;text-shadow:none;filter:none;font-size:20px;font-weight:700}.pet-type{color:#999;font-size:13px;font-weight:700}.pet-card .progress-section{margin-bottom:6px}.pet-card .progress-label{color:#999;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:12px;font-weight:700;display:flex}.pet-card .progress-label .remaining{color:var(--theme-primary,#ff6b9d);font-weight:500}.pet-card .progress-bar{background:#f0f0f0;border-radius:6px;height:12px;overflow:hidden}.pet-card .progress-fill{background:var(--theme-primary,#ff6b9d);border-radius:6px;height:100%}.pet-stats{justify-content:space-between;align-items:center;margin-top:auto;padding-top:6px;display:flex}.pet-stats .stat{color:#666;align-items:center;gap:2px;font-size:13px;font-weight:700;display:flex}.pet-stats .stat-icon{font-size:13px}.pet-stats .coin-stat{color:#e67e22}.pet-stats .badge-stat.clickable{cursor:pointer;border-radius:12px;padding:2px 6px;transition:transform .2s,background .2s}.pet-stats .badge-stat.clickable:hover{background:#ff980026;transform:scale(1.1)}.summon-guardian-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ffb800 0%,#ff8c00 100%);border:none;border-radius:20px;justify-content:center;align-items:center;gap:4px;width:100%;margin-top:auto;padding:8px 0;font-size:15px;font-weight:700;transition:all .3s;display:flex;box-shadow:0 4px 10px #ff8c004d}.summon-guardian-btn .btn-badge{opacity:.9;font-size:13px}.summon-guardian-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff8c0066}.pet-card.no-pet{box-shadow:none;opacity:.8;background:#fafafa;border:2px dashed #e8e8e8}.pet-card.no-pet .pet-card-top{background:#f5f5f5}.pet-card.no-pet .pet-emoji{filter:grayscale();opacity:.6}.pet-card.graduated .pet-card-top{background:linear-gradient(#ffd70026 0%,#ffb3471a 100%)}.pet-card.max-level .pet-card-top{background:linear-gradient(#ffb80026 0%,#ff8c0014 100%)}@media (width<=768px){.pet-card{width:160px;height:200px}.pet-card-top{height:90px}.pet-emoji{font-size:45px}.pet-img{width:55px;height:55px}.pet-card-bottom{padding:8px}.student-name{text-shadow:none;filter:none;font-size:14px}.pet-type{font-size:10px}}.pet-card.hibernating{border-color:#fbbf24;box-shadow:0 2px 12px #fbbf2426,0 4px 8px -2px #fbbf241a}.pet-card.hibernating .pet-card-top{background:linear-gradient(#fbbf241a 0%,#fef3c70d 100%)}.pet-card.hibernating .pet-img,.pet-card.hibernating .pet-emoji{filter:grayscale(60%)brightness(.85);animation:none}.hibernate-overlay{z-index:5;pointer-events:none;background:#fbbf241f;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hibernate-icon{filter:drop-shadow(0 2px 4px #0000001a);margin-bottom:8px;font-size:48px;animation:2s ease-in-out infinite float}.hibernate-text{color:#b45309;background:#ffffffe6;border-radius:20px;padding:4px 12px;font-size:14px;font-weight:700;box-shadow:0 2px 8px #0000001a}.pet-nickname{cursor:pointer;align-items:center;gap:4px;transition:color .2s,transform .2s;display:inline-flex}.pet-nickname:hover{color:var(--theme-primary,#ff6b9d);transform:scale(1.05)}.edit-hint{opacity:.6;font-size:10px}.nickname-edit{background:#f5f5f5;border-radius:8px;align-items:center;gap:4px;padding:2px 4px;display:flex}.nickname-edit input{color:#333;background:0 0;border:none;outline:none;width:70px;padding:2px 4px;font-size:13px;font-weight:700}.nickname-edit input::placeholder{color:#bbb;font-weight:400}.nickname-btn{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;transition:transform .2s;display:flex}.nickname-btn.save{background:var(--theme-primary,#ff6b9d);color:#fff}.nickname-btn.cancel{color:#666;background:#eee}.nickname-btn:hover{transform:scale(1.1)}.nickname-btn:disabled{opacity:.5;cursor:not-allowed}.pet-card.ran-away{background:#f0f0f0}.pet-card.ran-away .pet-card-bottom{opacity:.6}.ran-away-overlay{z-index:3;background:#7878781a;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ran-away-text{color:#666;background:#ffffffe6;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:700;box-shadow:0 2px 8px #0000001a}.hungry-pet-img,.pet-egg-img{object-fit:contain;width:150px;height:150px;animation:none}.bwm-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.bwm-modal{background:linear-gradient(#fff9e6 0%,#fff 100%);border-radius:20px;flex-direction:column;width:100%;max-width:480px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #0003}.bwm-header{background:linear-gradient(135deg,#ffc107 0%,#ff9800 100%);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.bwm-title{color:#fff;text-shadow:0 1px 2px #0000001a;margin:0;font-size:18px;font-weight:700}.bwm-close{color:#fff;cursor:pointer;background:#ffffff4d;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:background .2s;display:flex}.bwm-close:hover{background:#ffffff80}.bwm-loading{text-align:center;color:#999;padding:60px 20px}.bwm-stats{justify-content:space-around;gap:12px;padding:20px;display:flex}.bwm-stat-card{text-align:center;background:#fff;border-radius:12px;flex:1;padding:12px 8px;box-shadow:0 2px 8px #0000000f}.bwm-stat-icon{border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin:0 auto 8px;font-size:20px;display:flex}.bwm-stat-icon.total{background:linear-gradient(135deg,#ffc107 0%,#ff9800 100%)}.bwm-stat-icon.used{background:linear-gradient(135deg,#f48fb1 0%,#f06292 100%)}.bwm-stat-icon.available{background:linear-gradient(135deg,#81c784 0%,#66bb6a 100%)}.bwm-stat-value{color:#333;font-size:24px;font-weight:700}.bwm-stat-label{color:#999;margin-top:4px;font-size:12px}.bwm-section{padding:0 20px 16px}.bwm-section-title{color:#333;margin:0 0 12px;font-size:15px;font-weight:600}.bwm-badges-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;display:grid}.bwm-badge-item{text-align:center;background:#fff;border-radius:12px;padding:12px 8px;transition:transform .2s,box-shadow .2s;position:relative;box-shadow:0 2px 8px #0000000f}.bwm-badge-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.bwm-badge-tag{color:#fff;background:#ff9800;border-radius:8px;padding:2px 6px;font-size:10px;font-weight:600;position:absolute;top:-6px;right:-6px}.bwm-badge-icon{justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 8px;display:flex}.bwm-badge-icon img{object-fit:contain;width:100%;height:100%}.bwm-badge-emoji{font-size:36px}.bwm-badge-name{color:#333;margin-bottom:2px;font-size:13px;font-weight:600}.bwm-badge-date{color:#999;font-size:11px}.bwm-exchange-list{background:#fff;border-radius:12px;max-height:120px;overflow-y:auto}.bwm-empty-state{text-align:center;color:#999;padding:24px}.bwm-empty-icon{opacity:.5;margin-bottom:8px;font-size:32px}.bwm-empty{text-align:center;color:#999;grid-column:1/-1;padding:20px}.bwm-exchange-item{border-bottom:1px solid #f0f0f0;align-items:center;padding:10px 12px;display:flex}.bwm-exchange-item:last-child{border-bottom:none}.bwm-exchange-name{color:#333;flex:1;font-size:13px}.bwm-exchange-cost{color:#f44336;margin-right:12px;font-size:13px;font-weight:600}.bwm-exchange-date{color:#999;font-size:11px}.bwm-footer{flex-shrink:0;gap:12px;padding:16px 20px;display:flex}.bwm-btn{cursor:pointer;border:2px solid;border-radius:10px;flex:1;padding:12px 16px;font-size:14px;font-weight:600;transition:all .2s}.bwm-btn-certificate{color:#2196f3;background:#fff;border-color:#2196f3}.bwm-btn-certificate:hover:not(:disabled){color:#fff;background:#2196f3}.bwm-btn-sticker{color:#9c27b0;background:#fff;border-color:#9c27b0}.bwm-btn-sticker:hover:not(:disabled){color:#fff;background:#9c27b0}.bwm-btn:disabled{opacity:.5;cursor:not-allowed}.bwm-tip{text-align:center;color:#999;padding:0 20px 16px;font-size:12px}.ebm-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ebm-modal{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:520px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #0003}.ebm-header{background:linear-gradient(135deg,#7c4dff 0%,#9c27b0 100%);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:16px 20px;display:flex}.ebm-header-info{flex:1}.ebm-title{color:#fff;margin:0;font-size:18px;font-weight:700}.ebm-subtitle{color:#fffc;margin-top:4px;font-size:13px;display:block}.ebm-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;transition:background .2s;display:flex}.ebm-close:hover{background:#ffffff4d}.ebm-content{flex:1;padding:16px 20px;overflow-y:auto}.ebm-section{margin-bottom:20px}.ebm-section-title{color:#333;margin-bottom:10px;font-size:14px;font-weight:600}.ebm-section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.ebm-section-actions{gap:8px;display:flex}.ebm-action-btn{color:#7c4dff;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px}.ebm-action-btn:hover{text-decoration:underline}.ebm-type-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ebm-type-btn{text-align:center;cursor:pointer;background:#f5f5f5;border:2px solid #0000;border-radius:12px;padding:16px;transition:all .2s}.ebm-type-btn.active{background:#f3e5f5;border-color:#7c4dff}.ebm-type-icon{margin-bottom:8px;font-size:28px}.ebm-type-name{color:#333;margin-bottom:4px;font-size:14px;font-weight:600}.ebm-type-desc{color:#999;font-size:11px}.ebm-template-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ebm-template-btn{cursor:pointer;background:#f5f5f5;border:2px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:12px;transition:all .2s;display:flex}.ebm-template-btn.active{background:#f3e5f5;border-color:#7c4dff}.ebm-template-preview{border-radius:50%;width:40px;height:40px}.ebm-template-preview.warm{background:linear-gradient(135deg,#fff3e0 0%,#ffb74d 100%);border:2px solid #ffb74d}.ebm-template-preview.candy{background:linear-gradient(135deg,#fce4ec 0%,#f48fb1 100%);border:2px solid #f48fb1}.ebm-template-btn span{color:#333;font-size:13px}.ebm-format-options{gap:12px;display:flex}.ebm-format-btn{color:#666;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.ebm-format-btn.active{color:#fff;background:#7c4dff;border-color:#7c4dff}.ebm-date-input{background:#f5f5f5;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;display:flex}.ebm-date-icon{font-size:16px}.ebm-date-input input{color:#333;background:0 0;border:none;outline:none;width:100%;font-size:14px}.ebm-signature-input{background:#f5f5f5;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;display:flex}.ebm-signature-input span{color:#666;white-space:nowrap;font-size:14px}.ebm-signature-input input{color:#333;background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:14px}.ebm-signature-tip{color:#999;margin-top:8px;font-size:12px}.ebm-badges-select{background:#f9f9f9;border-radius:12px;max-height:180px;overflow-y:auto}.ebm-badge-select-item{cursor:pointer;border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;transition:background .2s;display:flex}.ebm-badge-select-item:last-child{border-bottom:none}.ebm-badge-select-item.selected{background:#f3e5f5}.ebm-badge-select-item:hover{background:#f0f0f0}.ebm-badge-select-item.selected:hover{background:#e1bee7}.ebm-badge-select-icon{background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-right:12px;display:flex}.ebm-badge-select-icon img{object-fit:contain;width:32px;height:32px}.ebm-badge-select-icon span{font-size:24px}.ebm-badge-select-info{flex:1}.ebm-badge-select-name{color:#333;font-size:14px;font-weight:600}.ebm-badge-select-date{color:#999;margin-top:2px;font-size:12px}.ebm-badge-select-check{color:#fff;background:#7c4dff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.ebm-select-tip{color:#999;margin-top:8px;font-size:12px}.ebm-footer{background:#fafafa;border-top:1px solid #eee;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.ebm-footer-tip{color:#999;font-size:12px}.ebm-footer-actions{gap:12px;display:flex}.ebm-btn{cursor:pointer;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s}.ebm-btn-cancel{color:#666;background:#fff;border:1px solid #ddd}.ebm-btn-cancel:hover{background:#f5f5f5}.ebm-btn-export{color:#fff;background:linear-gradient(135deg,#7c4dff 0%,#9c27b0 100%);border:none}.ebm-btn-export:hover:not(:disabled){opacity:.9}.ebm-btn-export:disabled{opacity:.5;cursor:not-allowed}.group-filter-container{z-index:10;background:0 0;border:none;margin:-10px 0 16px;padding:0;position:relative}.group-filter-label{display:none}.group-filter-tabs{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.group-filter-tab{cursor:pointer;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;border:none;border-radius:20px;outline:none;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex;box-shadow:0 2px 8px #00000014}.group-filter-tab:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001f}.group-filter-tab.active{box-shadow:0 4px 12px #00000026}.tab-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tab-text{flex-shrink:0}.tab-count{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:flex}@media (width<=768px){.group-filter-container{top:6px;left:16px;right:16px}.group-filter-tabs{gap:8px}.group-filter-tab{padding:5px 10px;font-size:12px}}.class-pets-container{max-width:100%;margin:0 auto;padding:20px}.no-class-container{justify-content:center;align-items:center;min-height:60vh;padding-top:160px;display:flex}.no-class-box{text-align:center;background:#fff;border-radius:20px;padding:60px 80px;box-shadow:0 4px 20px #00000014}.no-class-icon{margin-top:20px;margin-bottom:40px;font-size:80px}.no-class-box h2{color:#333;margin-bottom:12px;font-size:24px}.no-class-box p{color:#999;margin-bottom:30px;font-size:16px}.create-class-btn{background:var(--theme-gradient);color:#fff;cursor:pointer;border:none;border-radius:30px;padding:14px 40px;font-size:16px;transition:transform .2s,box-shadow .2s}.create-class-btn:hover:not(:disabled){box-shadow:0 8px 20px var(--theme-shadow);transform:translateY(-2px)}.create-class-btn:disabled{opacity:.6;cursor:not-allowed}.quick-create-form{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.quick-create-input{border:2px solid var(--theme-border);border-radius:30px;outline:none;width:260px;padding:12px 20px;font-size:15px;transition:border-color .2s}.quick-create-input:focus{border-color:var(--theme-primary)}.class-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 20px;display:flex;box-shadow:0 2px 8px #0000000f}.class-info{background:#f5f5f5;border-radius:8px;align-items:center;gap:10px;padding:10px 16px;display:flex}.class-info .class-icon{font-size:18px}.class-info .class-name{color:#333;font-size:16px;font-weight:500}.class-stats{gap:20px;display:flex}.stat-item{color:#666;align-items:center;gap:6px;font-size:14px;display:flex}.stat-icon{font-size:18px}.pets-grid{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.empty-pets{text-align:center;color:#999;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:120px 20px;display:flex}.empty-icon{margin-bottom:24px;font-size:64px;line-height:1}.empty-pets p{margin-bottom:8px;font-size:16px}.empty-pets .hint{color:#ff6b9d;background:#fff0f3;border-radius:8px;margin-top:12px;padding:8px 16px;font-size:18px;font-weight:600}.empty-pets .hint-clickable{cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s}.empty-pets .hint-clickable:hover{background:#ffe0ea;transform:translateY(-2px);box-shadow:0 4px 12px #ff6b9d33}@media (width<=1400px){.pets-grid{gap:14px}}@media (width<=1200px){.pets-grid{gap:12px}}@media (width<=992px){.pets-grid{gap:12px}}@media (width<=768px){.pets-grid{gap:10px}}.activate-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.activate-card{background:#fff;border-radius:16px;width:100%;max-width:480px;padding:40px;box-shadow:0 10px 40px #0003}.activate-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.activate-header .activate-title{margin-bottom:0}.logout-btn{color:#888;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #d9d9d9;border-radius:6px;padding:6px 14px;font-size:13px;transition:all .2s}.logout-btn:hover{color:#ff4d4f;border-color:#ff4d4f}.activate-title{color:#333;text-align:center;margin-bottom:10px;font-size:32px}.activate-subtitle{color:#666;text-align:center;margin-bottom:30px;font-size:14px}.activate-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#333;font-size:14px;font-weight:600}.activate-input{text-transform:uppercase;letter-spacing:1px;border:2px solid #e0e0e0;border-radius:8px;padding:14px 16px;font-size:16px;transition:all .3s}.activate-input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.activate-input:disabled{cursor:not-allowed;background:#f5f5f5}.error-message{color:#c33;background:#fee;border-left:4px solid #c33;border-radius:8px;padding:12px;font-size:14px}.activate-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;padding:14px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s}.activate-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.activate-button:disabled{opacity:.6;cursor:not-allowed}.activate-tips{background:#f8f9fa;border-radius:8px;margin-top:20px;padding:20px}.activate-tips h4{color:#333;margin-bottom:12px;font-size:15px}.activate-tips ul{margin:0 0 12px;padding:0;list-style:none}.activate-tips li{color:#666;border-bottom:1px dashed #e0e0e0;padding:6px 0;font-size:14px}.activate-tips li:last-child{border-bottom:none}.tip-note{color:#999;text-align:center;margin-top:12px;font-size:13px;font-style:italic}.purchase-section{border-top:1px dashed #e0e0e0;margin-top:16px;padding-top:16px}.purchase-title{color:#333;margin-bottom:12px;font-size:15px}.purchase-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;margin-bottom:12px;padding:16px}.purchase-card-header{color:#333;align-items:center;gap:8px;margin-bottom:10px;font-size:15px;font-weight:600;display:flex}.purchase-icon{font-size:18px}.purchase-hint{color:#888;margin-bottom:10px;font-size:13px;line-height:1.5}.purchase-hint strong{color:#ff2442}.purchase-link-box{word-break:break-all;background:#f5f5f5;border-radius:8px;margin-bottom:10px;padding:10px 14px}.link-text{color:#666;font-family:monospace;font-size:13px}.copy-link-btn{cursor:pointer;color:#ff2442;background:#fff;border:2px solid #ff2442;border-radius:8px;flex:1;padding:10px;font-size:14px;font-weight:600;transition:all .2s}.copy-link-btn:hover{background:#fff0f3}.copy-link-btn.copied{color:#52c41a;background:#f6ffed;border-color:#52c41a}.purchase-btn-group{gap:10px;display:flex}.go-purchase-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#ff2442 0%,#ff6b81 100%);border-radius:8px;flex:1;justify-content:center;align-items:center;padding:10px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.go-purchase-btn:hover{opacity:.9;transform:translateY(-1px)}.contact-admin-btn{color:#667eea;cursor:pointer;background:#fff;border:2px solid #667eea;border-radius:8px;width:100%;padding:10px;font-size:14px;font-weight:600;transition:all .2s}.contact-admin-btn:hover{color:#fff;background:#667eea}.contact-info-bar{background:#fff7e6;border:1px solid #ffe58f;border-radius:10px;align-items:center;gap:8px;margin-top:4px;padding:12px 16px;display:flex}.contact-icon{font-size:18px}.contact-text{color:#d48806;font-size:14px;font-weight:600}.qrcode-modal-overlay{z-index:9999;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.qrcode-modal{text-align:center;background:#fff;border-radius:20px;width:100%;max-width:360px;padding:32px;animation:.25s qrcodeIn;position:relative}@keyframes qrcodeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.qrcode-modal-close{cursor:pointer;color:#666;background:#f5f5f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:all .2s;display:flex;position:absolute;top:12px;right:16px}.qrcode-modal-close:hover{color:#333;background:#e8e8e8}.qrcode-modal h3{color:#333;margin-bottom:20px;font-size:18px}.qrcode-modal-img{object-fit:contain;border:1px solid #eee;border-radius:12px;width:220px;height:220px;margin-bottom:16px}.qrcode-modal p{color:#999;font-size:13px}.success-message{text-align:center;padding:40px 20px}.success-icon{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;font-size:48px;font-weight:700;animation:.5s ease-out successPop;display:flex}@keyframes successPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.success-message h3{color:#333;margin-bottom:10px;font-size:24px}.success-message p{color:#666;font-size:16px}.not-found{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.not-found-content{text-align:center;background:#fff;border-radius:20px;width:100%;max-width:500px;padding:60px 40px;box-shadow:0 20px 60px #0003}.error-code{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:20px;font-size:120px;font-weight:800;line-height:1}.not-found-content h1{color:#333;margin-bottom:15px;font-size:28px}.not-found-content p{color:#666;margin-bottom:30px;font-size:16px}.not-found-actions{justify-content:center;gap:15px;display:flex}.not-found-actions button{cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:15px;font-weight:600;transition:all .2s}.btn-primary{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.btn-secondary{color:#333;background:#f5f5f5}.btn-secondary:hover{background:#e0e0e0}.loading-container{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px 20px;display:flex}.loading-fullscreen{z-index:9999;background:#ffffffe6;position:fixed;inset:0}.loading-transparent{background:0 0}.loading-spinner{justify-content:center;align-items:center;display:flex}.spinner{border:3px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;animation:.8s linear infinite spin}.loading-small .spinner{width:20px;height:20px}.loading-medium .spinner{width:36px;height:36px}.loading-large .spinner{width:48px;height:48px}.loading-text{color:#666;margin:0;font-size:14px}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:8px;animation:1.5s infinite shimmer}.skeleton-text{border-radius:4px;height:16px;margin-bottom:8px}.skeleton-title{border-radius:4px;width:60%;height:24px;margin-bottom:16px}.skeleton-avatar{border-radius:50%;width:48px;height:48px}.skeleton-card{border-radius:12px;height:120px}*{box-sizing:border-box;margin:0;padding:0}body{background:#f5f7fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.loading{color:#666;justify-content:center;align-items:center;height:100vh;font-size:18px;display:flex}
