.dialog-overlay[data-v-f12f5222]{position:fixed;inset:0;z-index:10000;background:#1e293b80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn-f12f5222 .25s ease}.dialog-container[data-v-f12f5222]{position:relative;background:#fff;border-radius:20px;padding:32px 36px 24px;max-width:520px;width:90%;text-align:center;box-shadow:0 24px 64px #00000026,0 4px 16px #0000000a;animation:slideUp-f12f5222 .3s cubic-bezier(.34,1.56,.64,1)}.dialog-close[data-v-f12f5222]{position:absolute;top:12px;right:14px;background:none;border:none;cursor:pointer;padding:4px;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.dialog-close[data-v-f12f5222]:hover{background:#f1f3f5}.dialog-close[data-v-f12f5222]:active{transform:scale(.9)}.dialog-icon[data-v-f12f5222]{display:flex;justify-content:center;margin-bottom:6px}.dialog-title[data-v-f12f5222]{font-size:20px;font-weight:600;color:#1a1a2e;margin-bottom:14px;letter-spacing:-.2px;word-break:break-word}.dialog-content[data-v-f12f5222]{font-size:14px;color:#303133;line-height:1.8;white-space:pre-wrap;word-wrap:break-word;text-align:left;max-height:40vh;overflow-y:auto;margin-bottom:20px;padding:0 4px}.dialog-divider[data-v-f12f5222]{height:1px;background:linear-gradient(to right,transparent,#e8e8e8 20%,#e8e8e8 80%,transparent);margin-bottom:20px}.dialog-actions[data-v-f12f5222]{display:flex;gap:10px;justify-content:center}.dialog-btn[data-v-f12f5222]{padding:10px 36px;border-radius:10px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .25s ease;font-family:inherit}.dialog-btn-confirm[data-v-f12f5222]{background:#1a1a2e;color:#fff}.dialog-btn-confirm[data-v-f12f5222]:hover{background:#2d2d44;box-shadow:0 4px 16px #1a1a2e33}.dialog-btn[data-v-f12f5222]:active{transform:scale(.97)}@keyframes fadeIn-f12f5222{0%{opacity:0}to{opacity:1}}@keyframes slideUp-f12f5222{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:480px){.dialog-container[data-v-f12f5222]{padding:28px 20px 20px}.dialog-title[data-v-f12f5222]{font-size:18px}.dialog-content[data-v-f12f5222]{font-size:13px}.dialog-btn[data-v-f12f5222]{padding:10px 28px;font-size:13px}}.dialog-overlay[data-v-649d50ee]{position:fixed;inset:0;z-index:9999;background:#1e293b80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn-649d50ee .25s ease}.dialog-container[data-v-649d50ee]{position:relative;background:#fff;border-radius:20px;padding:32px 36px 24px;max-width:380px;width:90%;text-align:center;box-shadow:0 24px 64px #00000026,0 4px 16px #0000000a;animation:slideUp-649d50ee .3s cubic-bezier(.34,1.56,.64,1)}.dialog-close[data-v-649d50ee]{position:absolute;top:12px;right:14px;background:none;border:none;cursor:pointer;padding:4px;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.dialog-close[data-v-649d50ee]:hover{background:#f1f3f5}.dialog-close[data-v-649d50ee]:active{transform:scale(.9)}.dialog-icon[data-v-649d50ee]{display:flex;justify-content:center;margin-bottom:6px}.dialog-title[data-v-649d50ee]{font-size:20px;font-weight:600;color:#1a1a2e;margin-bottom:4px;letter-spacing:-.2px}.dialog-message[data-v-649d50ee]{font-size:14px;color:#888;line-height:1.6;margin-bottom:20px;white-space:pre-line}.dialog-divider[data-v-649d50ee]{height:1px;background:linear-gradient(to right,transparent,#e8e8e8 20%,#e8e8e8 80%,transparent);margin-bottom:20px}.dialog-actions[data-v-649d50ee]{display:flex;gap:10px;justify-content:center}.dialog-btn[data-v-649d50ee]{padding:10px 28px;border-radius:10px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .25s ease;font-family:inherit}.dialog-btn-cancel[data-v-649d50ee]{background:#f1f3f5;color:#666;flex:1}.dialog-btn-cancel[data-v-649d50ee]:hover{background:#e6e8ea}.dialog-btn-confirm[data-v-649d50ee]{background:#1a1a2e;color:#fff;flex:1}.dialog-btn-confirm[data-v-649d50ee]:hover{background:#2d2d44;box-shadow:0 4px 16px #1a1a2e33}.dialog-btn-danger[data-v-649d50ee]{background:#dc2626}.dialog-btn-danger[data-v-649d50ee]:hover{background:#b91c1c;box-shadow:0 4px 16px #dc262633}.dialog-btn[data-v-649d50ee]:active{transform:scale(.97)}@keyframes fadeIn-649d50ee{0%{opacity:0}to{opacity:1}}@keyframes slideUp-649d50ee{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:480px){.dialog-container[data-v-649d50ee]{padding:28px 20px 20px}.dialog-title[data-v-649d50ee]{font-size:18px}.dialog-message[data-v-649d50ee]{font-size:13px}.dialog-btn[data-v-649d50ee]{padding:10px 16px;font-size:13px}.dialog-actions[data-v-649d50ee]{flex-direction:column-reverse;gap:8px}.dialog-btn[data-v-649d50ee]{width:100%}}.toast-container[data-v-949c4d90]{position:fixed;top:calc(12vh + 12px);left:50%;transform:translate(-50%);z-index:9998;width:min(420px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast-item[data-v-949c4d90]{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-radius:12px;border-left:4px solid #f59e0b;box-shadow:0 12px 32px #0000001f,0 2px 8px #0000000a;color:#1a1a2e;font-size:14px;line-height:1.5}.toast-item.warning[data-v-949c4d90]{border-left-color:#f59e0b}.toast-item.error[data-v-949c4d90]{border-left-color:#dc2626}.toast-item.success[data-v-949c4d90]{border-left-color:#16a34a}.toast-item.warning .toast-icon[data-v-949c4d90]{color:#f59e0b}.toast-item.error .toast-icon[data-v-949c4d90]{color:#dc2626}.toast-item.success .toast-icon[data-v-949c4d90]{color:#16a34a}.toast-icon[data-v-949c4d90]{flex-shrink:0}.toast-text[data-v-949c4d90]{flex:1;min-width:0;word-break:break-word}.toast-close[data-v-949c4d90]{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:2px;border:none;border-radius:6px;background:transparent;color:#9ca3af;cursor:pointer;transition:all .2s ease}.toast-close[data-v-949c4d90]:hover{background:#f1f3f5;color:#666}.toast-enter-active[data-v-949c4d90],.toast-leave-active[data-v-949c4d90]{transition:all .25s ease}.toast-enter-from[data-v-949c4d90]{opacity:0;transform:translateY(-10px) scale(.98)}.toast-leave-to[data-v-949c4d90]{opacity:0;transform:translate(16px) scale(.98)}.toast-move[data-v-949c4d90]{transition:transform .25s ease}@media(max-width:996px){.toast-container[data-v-949c4d90]{top:calc(10vh + 12px)}}@media(max-width:480px){.toast-container[data-v-949c4d90]{top:calc(9vh + 12px)}.toast-item[data-v-949c4d90]{padding:11px 12px;font-size:13px}}.student-icon[data-v-7cfbc13c]{transition:transform .2s ease}.student-icon[data-v-7cfbc13c]:hover{transform:scale(1.1)}.dialog-overlay[data-v-4d4ad763]{position:fixed;inset:0;z-index:9999;background:#1e293b80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn-4d4ad763 .25s ease}.dialog-container[data-v-4d4ad763]{position:relative;background:#fff;border-radius:20px;padding:32px 36px 24px;max-width:420px;width:90%;text-align:center;box-shadow:0 24px 64px #00000026,0 4px 16px #0000000a;animation:slideUp-4d4ad763 .3s cubic-bezier(.34,1.56,.64,1)}.dialog-close[data-v-4d4ad763]{position:absolute;top:12px;right:14px;background:none;border:none;cursor:pointer;padding:4px;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.dialog-close[data-v-4d4ad763]:hover{background:#f1f3f5}.dialog-close[data-v-4d4ad763]:active{transform:scale(.9)}.dialog-icon[data-v-4d4ad763]{font-size:36px;margin-bottom:6px}.dialog-title[data-v-4d4ad763]{font-size:20px;font-weight:600;color:#1a1a2e;margin-bottom:4px;letter-spacing:-.2px}.dialog-message[data-v-4d4ad763]{font-size:14px;color:#888;line-height:1.6;margin-bottom:20px}.dialog-form[data-v-4d4ad763]{margin-bottom:20px;text-align:left}.dialog-form .form-group[data-v-4d4ad763]{margin-bottom:14px}.dialog-form .form-group label[data-v-4d4ad763]{display:block;font-size:13px;font-weight:500;color:#333;margin-bottom:4px}.dialog-form .form-group input[data-v-4d4ad763],.dialog-form .form-group .select-input[data-v-4d4ad763]{width:100%;height:40px;border:1.5px solid #e0e0e0;border-radius:8px;padding:0 12px;font-size:14px;font-family:inherit;color:#1a1a2e;background:#fff;outline:none;transition:border-color .3s}.dialog-form .form-group input[data-v-4d4ad763]:focus,.dialog-form .form-group .select-input[data-v-4d4ad763]:focus{border-color:#1a1a2e}.dialog-form .form-group .select-input[data-v-4d4ad763]{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.dialog-error[data-v-4d4ad763]{text-align:left;margin-top:6px;font-size:13px;color:#dc2626}.dialog-success[data-v-4d4ad763]{text-align:left;margin-top:6px;font-size:13px;color:#16a34a}.dialog-divider[data-v-4d4ad763]{height:1px;background:linear-gradient(to right,transparent,#e8e8e8 20%,#e8e8e8 80%,transparent);margin-bottom:20px}.dialog-actions[data-v-4d4ad763]{display:flex;gap:10px;justify-content:center}.dialog-btn[data-v-4d4ad763]{padding:10px 28px;border-radius:10px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .25s ease;font-family:inherit}.dialog-btn-cancel[data-v-4d4ad763]{background:#f1f3f5;color:#666;flex:1}.dialog-btn-cancel[data-v-4d4ad763]:hover{background:#e6e8ea}.dialog-btn-confirm[data-v-4d4ad763]{background:#1a1a2e;color:#fff;flex:1}.dialog-btn-confirm[data-v-4d4ad763]:hover:not(:disabled){background:#2d2d44;box-shadow:0 4px 16px #1a1a2e33}.dialog-btn-confirm[data-v-4d4ad763]:disabled{opacity:.6;cursor:not-allowed}.dialog-btn[data-v-4d4ad763]:active{transform:scale(.97)}@keyframes fadeIn-4d4ad763{0%{opacity:0}to{opacity:1}}@keyframes slideUp-4d4ad763{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:480px){.dialog-container[data-v-4d4ad763]{padding:28px 20px 20px}.dialog-title[data-v-4d4ad763]{font-size:18px}.dialog-message[data-v-4d4ad763]{font-size:13px}.dialog-btn[data-v-4d4ad763]{padding:10px 16px;font-size:13px}.dialog-actions[data-v-4d4ad763]{flex-direction:column-reverse;gap:8px}.dialog-btn[data-v-4d4ad763]{width:100%}}.form-container[data-v-1bd3d8f5]{width:100%;max-width:400px}.sparkle-icon[data-v-1bd3d8f5]{display:flex;justify-content:center;margin-bottom:24px}.sparkle-icon svg[data-v-1bd3d8f5]{width:32px;height:32px}.form-header[data-v-1bd3d8f5]{text-align:center;margin-bottom:36px}.form-header h1[data-v-1bd3d8f5]{font-size:28px;font-weight:700;color:#1a1a2e;letter-spacing:-.5px;margin-bottom:6px}.form-header p[data-v-1bd3d8f5]{font-size:14px;color:#888}.form-group[data-v-1bd3d8f5]{margin-bottom:20px}.form-group label[data-v-1bd3d8f5]{display:block;font-size:13px;font-weight:500;color:#333;margin-bottom:8px}.form-group .input-wrapper[data-v-1bd3d8f5]{position:relative}.form-group input[data-v-1bd3d8f5]{width:100%;height:48px;border:none;border-bottom:1.5px solid #e0e0e0;padding:0 40px 0 0;font-size:15px;font-family:inherit;color:#1a1a2e;background:transparent;outline:none;transition:border-color .3s}.form-group input[data-v-1bd3d8f5]:focus{border-bottom-color:#334155}.form-group input[data-v-1bd3d8f5]::placeholder{color:#ccc}.form-group input[type=password][data-v-1bd3d8f5]:not(:placeholder-shown){letter-spacing:2px}.form-group input[type=password][data-v-1bd3d8f5]::-ms-reveal,.form-group input[type=password][data-v-1bd3d8f5]::-ms-clear{display:none}.toggle-password[data-v-1bd3d8f5]{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#666;padding:6px;transition:color .2s}.toggle-password[data-v-1bd3d8f5]:hover{color:#333}.form-options[data-v-1bd3d8f5]{display:flex;align-items:center;justify-content:flex-end;margin-bottom:24px}.forgot-link[data-v-1bd3d8f5]{font-size:13px;color:#334155;text-decoration:none;font-weight:500;transition:opacity .2s}.forgot-link[data-v-1bd3d8f5]:hover{opacity:.8}.btn-login[data-v-1bd3d8f5]{position:relative;width:100%;height:50px;border-radius:25px;border:1.5px solid #1a1a2e;background:#1a1a2e;color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;overflow:hidden;margin-bottom:14px;transition:all .3s}.btn-login .btn-text[data-v-1bd3d8f5]{display:inline-block;transition:all .3s}.btn-login .btn-hover-content[data-v-1bd3d8f5]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#334155;color:#fff;opacity:0;transition:all .3s;border-radius:25px}.btn-login:hover .btn-text[data-v-1bd3d8f5]{transform:translate(40px);opacity:0}.btn-login:hover .btn-hover-content[data-v-1bd3d8f5]{opacity:1}.error-msg[data-v-1bd3d8f5]{display:none;padding:10px 14px;font-size:13px;color:#dc2626;background:#dc262614;border:1px solid rgba(220,38,38,.2);border-radius:10px;margin-bottom:16px}.bottom-links[data-v-1bd3d8f5]{text-align:center;font-size:13px;color:#888;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}.bottom-links a[data-v-1bd3d8f5]{color:#1a1a2e;font-weight:600;text-decoration:none;transition:opacity .2s}.bottom-links a[data-v-1bd3d8f5]:hover{text-decoration:underline}.bottom-links .force-logout-link[data-v-1bd3d8f5]{color:#1a1a2e;font-weight:600}.bottom-links .link-divider[data-v-1bd3d8f5]{color:#ccc;margin:0 8px;font-weight:300}.bottom-links .register-link[data-v-1bd3d8f5]{color:#1a1a2e;font-weight:600}@media(max-width:480px){.form-container[data-v-1bd3d8f5]{padding:0 4px}.form-header h1[data-v-1bd3d8f5]{font-size:22px}.form-header p[data-v-1bd3d8f5]{font-size:13px}.form-group input[data-v-1bd3d8f5]{font-size:14px;height:44px}.btn-login[data-v-1bd3d8f5]{height:46px;font-size:14px}.bottom-links[data-v-1bd3d8f5]{font-size:12px;flex-direction:column;gap:4px;margin-top:16px}.bottom-links .link-divider[data-v-1bd3d8f5]{display:none}.bottom-links a[data-v-1bd3d8f5]{padding:2px 0}.error-msg[data-v-1bd3d8f5]{font-size:12px;padding:8px 12px}}@media(max-width:380px){.form-header h1[data-v-1bd3d8f5]{font-size:19px}.form-group input[data-v-1bd3d8f5]{font-size:13px;height:40px}.btn-login[data-v-1bd3d8f5]{height:42px;font-size:13px}.bottom-links[data-v-1bd3d8f5]{font-size:11px}}.characters-wrapper[data-v-2351b7d6]{position:relative;z-index:10;display:flex;align-items:flex-end;justify-content:center;height:420px}.characters-scene[data-v-2351b7d6]{position:relative;width:480px;height:360px}.character[data-v-2351b7d6]{position:absolute;bottom:0;transition:all .7s ease-in-out;transform-origin:bottom center}.char-purple[data-v-2351b7d6]{left:60px;width:170px;height:370px;background:#6c3ff5;border-radius:10px 10px 0 0;z-index:1}.char-black[data-v-2351b7d6]{left:220px;width:115px;height:290px;background:#2d2d2d;border-radius:8px 8px 0 0;z-index:2}.char-orange[data-v-2351b7d6]{left:0;width:230px;height:190px;background:#ff9b6b;border-radius:115px 115px 0 0;z-index:3}.char-yellow[data-v-2351b7d6]{left:290px;width:135px;height:215px;background:#e8d754;border-radius:68px 68px 0 0;z-index:4}.eyes[data-v-2351b7d6]{position:absolute;display:flex;transition:all .7s ease-in-out}.eyeball[data-v-2351b7d6]{border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:height .15s ease;overflow:hidden}.pupil[data-v-2351b7d6]{border-radius:50%;background:#2d2d2d;transition:transform .1s ease-out}.bare-pupil[data-v-2351b7d6]{width:12px;height:12px;border-radius:50%;background:#2d2d2d;transition:transform .7s ease-in-out}.yellow-mouth[data-v-2351b7d6]{position:absolute;width:50px;height:4px;background:#2d2d2d;border-radius:2px;transition:all .7s ease-in-out}.orange-smile[data-v-2351b7d6]{position:absolute;width:28px;height:14px;border:3px solid #2d2d2d;border-top:none;border-radius:0 0 14px 14px;transition:all .3s ease;opacity:1}.orange-mouth[data-v-2351b7d6]{position:absolute;width:28px;height:14px;border:3px solid #2d2d2d;border-bottom:none;border-radius:14px 14px 0 0;transition:all .3s ease;opacity:0}.orange-mouth.visible[data-v-2351b7d6]{opacity:1}@keyframes shakeHead-2351b7d6{0%,to{translate:0 0}10%{translate:-9px 0}20%{translate:7px 0}30%{translate:-6px 0}40%{translate:5px 0}50%{translate:-4px 0}60%{translate:3px 0}70%{translate:-2px 0}80%{translate:1px 0}90%{translate:-.5px 0}}.eyes.shake-head[data-v-2351b7d6],.yellow-mouth.shake-head[data-v-2351b7d6],.orange-mouth.shake-head[data-v-2351b7d6]{animation:shakeHead-2351b7d6 .8s cubic-bezier(.36,.07,.19,.97) both}.logo[data-v-d41c61b8]{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;z-index:10;position:relative}.logo svg[data-v-d41c61b8]{background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px;border-radius:6px;transition:background .35s ease}.footer-links[data-v-39a83aaf]{display:flex;gap:28px;font-size:13px;color:#fff;z-index:10;position:relative}.footer-links a[data-v-39a83aaf]{color:inherit;text-decoration:none;transition:color .2s}.footer-links a[data-v-39a83aaf]:hover{color:#f5f5f5a7}#login-page[data-v-391cfcb9]{display:grid;grid-template-columns:1fr 1fr;height:100vh}.left-panel[data-v-391cfcb9]{position:relative;display:flex;flex-direction:column;justify-content:space-between;background-color:#1e293b;padding:40px 48px;overflow:hidden}.left-panel[data-v-391cfcb9]:after{content:"";position:absolute;top:20%;right:15%;width:260px;height:260px;background:#b4aac840;border-radius:50%;filter:blur(80px)}.left-panel[data-v-391cfcb9]:before{content:"";position:absolute;bottom:15%;left:10%;width:350px;height:350px;background:#c8c3d233;border-radius:50%;filter:blur(100px)}.right-panel[data-v-391cfcb9]{display:flex;align-items:center;justify-content:center;background:#fff;padding:40px}.mobile-footer[data-v-391cfcb9]{display:none}@media(max-width:900px){#login-page[data-v-391cfcb9]{grid-template-columns:1fr}.left-panel[data-v-391cfcb9]{display:none}.right-panel[data-v-391cfcb9]{padding-bottom:64px}.mobile-footer[data-v-391cfcb9]{display:flex;justify-content:center;position:fixed;bottom:0;left:0;right:0;padding:10px 16px;background:#1e293beb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}.mobile-footer[data-v-391cfcb9] .footer-links{gap:14px;font-size:12px;flex-wrap:wrap;justify-content:center}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;background:var(--student-bg);color:var(--student-primary)}a{text-decoration:none;color:inherit}button{font-family:inherit}:root{--student-primary: #1a1a2e;--student-primary-hover: #334155;--student-bg: #1e293b;--student-surface: #ffffff;--student-surface-muted: #f8fafc;--student-bg-subtle: rgba(0, 0, 0, .02);--student-text-strong: #333;--student-text-secondary: #555;--student-text-muted: #888;--student-text-faint: #ccc;--student-border: rgba(0, 0, 0, .06);--student-border-soft: rgba(0, 0, 0, .04);--student-border-hover: #94a3b8;--student-on-primary: #ffffff;--student-link: #2563eb;--student-danger: #dc2626;--student-danger-hover: #b91c1c;--student-success: #16a34a;--student-warning: #ea580c;--student-warning-soft: #e6a23c;--student-radius: 12px}.admin-page,.desktop{--admin-primary: #1a1a2e;--admin-surface: #ffffff;--admin-surface-subtle: #fafafa;--admin-surface-soft: #fafbfc;--admin-surface-alt: #f4f4f5;--admin-surface-danger: #fef0f0;--admin-surface-success: #f0f9eb;--admin-bg: #f0f2f5;--admin-bg-soft: #f5f7fa;--admin-border: #e4e7ed;--admin-border-soft: #e8ecf1;--admin-border-light: #ebeef5;--admin-border-danger: #fbc4c4;--admin-text: #333333;--admin-text-strong: #303133;--admin-text-regular: #606266;--admin-text-secondary: #5a6c7d;--admin-text-muted: #8a9aac;--admin-text-faint: #c0c4cc;--admin-info: #909399;--admin-accent: #409eff;--admin-accent-soft: #4a9eff;--admin-success: #67c23a;--admin-warning: #e6a23c;--admin-danger: #f56c6c}.admin-page.dark,.desktop.dark,body.admin-dark{--admin-primary: #e5e7eb;--admin-surface: #1f1f27;--admin-surface-subtle: #26262f;--admin-surface-soft: #23232c;--admin-surface-alt: #32323d;--admin-surface-danger: rgba(245, 108, 108, .14);--admin-surface-success: rgba(103, 194, 58, .14);--admin-bg: #14141a;--admin-bg-soft: #1c1c24;--admin-border: #3a3a46;--admin-border-soft: #33333e;--admin-border-light: #33333e;--admin-border-danger: rgba(245, 108, 108, .4);--admin-text: #d7d9e0;--admin-text-strong: #f1f2f6;--admin-text-regular: #b8bcc8;--admin-text-secondary: #9aa3b2;--admin-text-muted: #8a90a0;--admin-text-faint: #5c6270;--admin-info: #9aa3b2;--admin-accent: #66b1ff;--admin-accent-soft: #7cc0ff;--admin-success: #85ce61;--admin-warning: #ebb563;--admin-danger: #f78989}body.admin-dark{background:#14141a}.admin-page ::-webkit-scrollbar,body.admin-dark ::-webkit-scrollbar{width:6px;height:6px}.admin-page ::-webkit-scrollbar-track,body.admin-dark ::-webkit-scrollbar-track{background:transparent}.admin-page ::-webkit-scrollbar-thumb,body.admin-dark ::-webkit-scrollbar-thumb{background:var(--admin-text-faint, #c0c4cc);border-radius:3px}.admin-page ::-webkit-scrollbar-thumb:hover,body.admin-dark ::-webkit-scrollbar-thumb:hover{background:var(--admin-text-muted, #8a9aac)}.admin-page ::-webkit-scrollbar-corner,body.admin-dark ::-webkit-scrollbar-corner{background:transparent}.table-wrapper{overflow-x:auto;flex:1;display:flex;flex-direction:column}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead{background:var(--student-bg-subtle)}.data-table th{padding:10px 14px;text-align:center;font-weight:600;color:var(--student-text-strong);border-bottom:2px solid var(--student-border);white-space:nowrap}.data-table td{padding:8px 14px;border-bottom:1px solid var(--student-border-soft);color:var(--student-text-secondary);text-align:center}.data-table tr:hover td{background:var(--student-bg-subtle)}.data-table .empty{text-align:center;padding:40px 0;color:var(--student-text-faint)}.data-table .table-action-btn{padding:3px 10px;margin:0 3px;font-size:12px;font-family:inherit;color:var(--student-primary);background:transparent;border:1px solid rgba(0,0,0,.12);border-radius:4px;cursor:pointer;white-space:nowrap;transition:all .15s ease}.data-table .table-action-btn:hover{border-color:var(--student-border-hover);background:#00000008}.data-table .table-action-btn.primary{color:var(--student-on-primary);background:var(--student-primary);border-color:var(--student-primary)}.data-table .table-action-btn.primary:hover{background:var(--student-primary-hover);border-color:var(--student-primary-hover)}.admin-page .panel-actions>.n-select,.admin-page .panel-actions>.n-input,.desktop .panel-actions>.n-select,.desktop .panel-actions>.n-input{flex:1 1 180px;width:auto!important;min-width:140px;max-width:280px}.admin-page .panel-actions>.n-button,.desktop .panel-actions>.n-button{flex:0 0 auto}@media(max-width:768px){.admin-page .panel-actions>.n-select,.admin-page .panel-actions>.n-input,.desktop .panel-actions>.n-select,.desktop .panel-actions>.n-input{flex:1 1 100%;max-width:none;width:100%!important}}.admin-inline-hint{font-size:12px;color:var(--admin-text-muted)}.admin-inline-success{color:var(--admin-success)}.admin-inline-danger{color:var(--admin-danger)}.admin-error-text{font-size:12px;color:var(--admin-danger)}.admin-hint-block{font-size:12px;line-height:1.8}.admin-ml-8{margin-left:8px}.admin-mt-4{margin-top:4px}.admin-mb-4{margin-bottom:4px}.admin-mb-8{margin-bottom:8px}.admin-mb-12{margin-bottom:12px}.admin-error-list{margin:0;padding-left:20px;max-height:200px;overflow:auto}.admin-empty-tip{padding:32px 0;text-align:center;color:var(--admin-text-muted)}.admin-page .management-panel{min-height:calc(100vh - 80px)}.admin-page .management-panel>.n-spin-container{flex:1 1 auto;display:flex;flex-direction:column}.admin-page .management-panel>.n-spin-container>.n-spin-content{flex:1 1 auto;display:flex;flex-direction:column}.admin-page .management-panel>.n-spin-container>.n-spin-content>.admin-table-wrapper{flex:1 1 auto}@media(max-width:768px){.admin-page .management-panel{min-height:calc(100vh - 68px)}}@media(max-width:480px){.admin-page .management-panel{min-height:calc(100vh - 58px)}}.admin-table-wrapper{width:max-content;min-width:100%;max-height:none;overflow:visible;border-radius:8px;border:1px solid var(--admin-border-light)}.admin-table-wrapper--plain{border:none;border-radius:0}.admin-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12px}.admin-table--wide{min-width:max(1390px,100%)}.admin-table .n-base-selection,.admin-table .n-base-selection-input,.admin-table .n-base-selection-label,.admin-table .n-base-selection-placeholder,.admin-table .n-input,.admin-table .n-input__input-el,.admin-table .n-input__textarea-el,.admin-table .n-button{font-size:12px}.admin-table .n-select,.admin-table .n-base-selection{--n-font-size: 11px !important;font-size:11px!important}.admin-table .n-base-selection .n-base-selection-input,.admin-table .n-base-selection .n-base-selection-input__content,.admin-table .n-base-selection .n-base-selection-label,.admin-table .n-base-selection .n-base-selection-label__input,.admin-table .n-base-selection .n-base-selection-placeholder{font-size:11px!important}.n-base-select-option__content{font-size:12px!important}.admin-table th{position:sticky;top:0;z-index:2;padding:10px 12px;background:var(--admin-surface-subtle, #fafafa);color:var(--admin-text-strong, #303133);font-size:12px;font-weight:600;text-align:center;white-space:nowrap;border-bottom:1px solid var(--admin-border-light, #ebeef5)}.admin-table td{padding:9px 12px;color:var(--admin-text-regular, #606266);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--admin-bg, #f0f2f5)}.admin-table tbody tr:hover td{background:var(--admin-bg-soft, #f5f7fa)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table .sticky-col{position:static;z-index:auto;box-shadow:none}.admin-table th.sticky-col{background:var(--admin-surface-subtle, #fafafa)}.admin-table-empty{padding:40px 0!important;text-align:center!important;color:var(--admin-text-muted, #8a9aac)!important}.admin-tag{display:inline-block;padding:1px 9px;border-radius:10px;font-size:12px;line-height:18px;font-weight:500}.admin-tag-primary{background:#1a1a2e14;color:var(--admin-primary, #1a1a2e)}.admin-tag-warning{background:#e6a23c1f;color:var(--admin-warning, #e6a23c)}.admin-tag-danger{background:#f56c6c1f;color:var(--admin-danger, #f56c6c)}.admin-tag-success{background:#67c23a1f;color:var(--admin-success, #67c23a)}.admin-tag-default{background:#0000000d;color:var(--admin-text-muted, #8a9aac)}
