.main-nav[data-v-f50ce937]{position:fixed;top:0;left:0;right:0;z-index:var(--z-navbar);background-image:var(--glass-bg-nav);-webkit-backdrop-filter:var(--glass-blur-md);backdrop-filter:var(--glass-blur-md);border-bottom:1px solid var(--glass-border);box-shadow:var(--glass-shadow-nav);transition:all .4s var(--ease-smooth)}.main-nav.scrolled[data-v-f50ce937]{background:var(--glass-bg-nav-scrolled);border-bottom:1px solid rgba(0,0,0,.06);box-shadow:var(--glass-shadow-nav-scrolled)}.nav-container[data-v-f50ce937]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:.625rem 1rem;width:100%;gap:1rem}.logo-img[data-v-f50ce937]{height:40px;width:auto}.nav-search[data-v-f50ce937]{display:flex;justify-self:center;width:100%;max-width:600px;border-radius:32px;border:none!important;outline:none!important;box-shadow:0 2px 8px #0000000a,0 4px 16px #00000005;transition:box-shadow .3s var(--ease-smooth)}.nav-search[data-v-f50ce937]:focus-within{border:none!important;outline:none!important;box-shadow:0 4px 12px #4f46e514,0 8px 24px #4f46e50a!important}.search-category[data-v-f50ce937]{height:auto;min-width:120px;padding:.625rem 2rem .625rem 1rem;border:1.5px solid rgba(255,255,255,.3);border-right:1px solid rgba(0,0,0,.05);border-radius:32px 0 0 32px;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right .5rem center,linear-gradient(135deg,#ffffffb3,#ffffff80);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none!important;cursor:pointer;transition:all .25s var(--ease-smooth);box-shadow:inset 0 1px #ffffff80}.search-category[data-v-f50ce937]:hover{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right .5rem center,linear-gradient(135deg,#ffffffd9,#ffffffa6);border-color:#6366f133}.search-category[data-v-f50ce937]:focus,.search-category[data-v-f50ce937]:focus-visible{border:1.5px solid var(--primary-300)!important;border-right:1px solid rgba(0,0,0,.05)!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right .5rem center,#ffffffe6!important;outline:none!important;box-shadow:inset 0 1px #fffc,0 0 0 3px #6366f114!important}.search-input[data-v-f50ce937]{flex:1;height:auto!important;padding:.625rem 1.25rem!important;line-height:1.5!important;border:1.5px solid rgba(255,255,255,.3);border-left:none;border-right:none;border-radius:0;font-size:var(--text-sm);color:var(--text-color);outline:none;background:linear-gradient(180deg,#ffffffa6,#ffffff8c);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);transition:all .25s var(--ease-smooth);box-shadow:inset 0 1px 2px #00000005,inset 0 -1px #ffffff80}.search-input[data-v-f50ce937]::placeholder{color:var(--text-muted);font-weight:400;transition:all .25s ease}.search-input[data-v-f50ce937]:focus{background:linear-gradient(180deg,#fffffff2,#ffffffd9);box-shadow:inset 0 1px 2px #00000005,inset 0 -1px #fffc}.search-input[data-v-f50ce937]:focus::placeholder{color:var(--text-light);transform:translate(4px)}.search-btn[data-v-f50ce937]{display:flex;align-items:center;justify-content:center;padding:0 1.5rem;background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-600) 50%,var(--primary-700) 100%);border:none;border-radius:0 32px 32px 0;cursor:pointer;color:#fff;position:relative;overflow:hidden;transition:all .3s var(--ease-smooth);box-shadow:inset 0 1px #fff3,0 2px 8px #4f46e54d}.search-btn[data-v-f50ce937]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--primary-400) 0%,var(--primary-500) 50%,var(--primary-600) 100%);opacity:0;transition:opacity .3s ease}.search-btn[data-v-f50ce937]:hover{transform:scale(1.02);box-shadow:inset 0 1px #ffffff4d,0 4px 16px #4f46e566}.search-btn[data-v-f50ce937]:hover:before{opacity:1}.search-btn[data-v-f50ce937]:active{transform:scale(.98)}.search-btn i[data-v-f50ce937]{position:relative;z-index:1;font-size:1rem;transition:transform .3s var(--ease-bounce-subtle)}.search-btn:hover i[data-v-f50ce937]{transform:scale(1.15) rotate(-5deg)}.nav-actions[data-v-f50ce937]{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:clamp(100px,20vw,200px)}.auth-loading[data-v-f50ce937]{display:flex;align-items:center;justify-content:center;width:80px;color:var(--text-light)}.btn-login[data-v-f50ce937],.btn-register[data-v-f50ce937]{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.375rem .75rem;font-size:var(--text-sm);text-decoration:none;border-radius:var(--radius-sm);transition:all var(--duration-fast)}.btn-login[data-v-f50ce937]{color:var(--text-color)}.btn-login[data-v-f50ce937]:hover,.btn-register[data-v-f50ce937]{color:var(--primary-color)}.btn-register[data-v-f50ce937]:hover{text-decoration:underline}.btn-switch[data-v-f50ce937]{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-height:36px;padding:.375rem .625rem;font-size:var(--text-sm);font-family:inherit;line-height:1.5;border:1px solid;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth)}.btn-switch[data-v-f50ce937]:hover{transform:translateY(-1px)}.btn-switch .btn-text-short[data-v-f50ce937]{display:none}@media(max-width:768px){.btn-switch .btn-text-full[data-v-f50ce937]{display:none}.btn-switch .btn-text-short[data-v-f50ce937]{display:inline}}.btn-switch-student[data-v-f50ce937]{color:var(--student-color);border-color:var(--student-color)}.btn-switch-student[data-v-f50ce937]:hover{color:#fff;background:var(--student-color);box-shadow:0 2px 8px var(--student-shadow)}.btn-switch-teacher[data-v-f50ce937]{color:var(--teacher-color);border-color:var(--teacher-color)}.btn-switch-teacher[data-v-f50ce937]:hover{color:#fff;background:var(--teacher-color);box-shadow:0 2px 8px var(--teacher-shadow)}.user-dropdown[data-v-f50ce937]{position:relative}.user-btn[data-v-f50ce937]{display:flex;align-items:center;gap:.375rem;padding:0 .75rem 0 0;background:linear-gradient(135deg,var(--student-color) 0%,var(--student-color-light) 100%);border:none;border-radius:24px;cursor:pointer;color:#fff;height:32px;position:relative;overflow:hidden;transition:all .35s var(--ease-bounce-subtle)}.user-btn[data-v-f50ce937]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--student-color-light) 0%,var(--student-color) 100%);opacity:0;transition:opacity .3s ease}.user-btn[data-v-f50ce937]:hover:before{opacity:1}.user-btn[data-v-f50ce937]:hover{box-shadow:0 4px 12px var(--student-shadow),0 0 0 2px #002fa71a;transform:translateY(-2px) scale(1.02)}.user-btn.teacher-mode[data-v-f50ce937]{background:linear-gradient(135deg,var(--teacher-color) 0%,var(--teacher-color-light) 100%)}.user-btn.teacher-mode[data-v-f50ce937]:before{background:linear-gradient(135deg,var(--teacher-color-light) 0%,var(--teacher-color) 100%)}.user-btn.teacher-mode[data-v-f50ce937]:hover{box-shadow:0 4px 12px var(--teacher-shadow),0 0 0 2px #892b001a}.user-avatar[data-v-f50ce937]{position:relative;z-index:1;width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover;border:2px solid rgba(255,255,255,.3);transition:border-color .3s ease}.user-btn:hover .user-avatar[data-v-f50ce937]{border-color:#fff9}.user-name[data-v-f50ce937]{position:relative;z-index:1;font-size:var(--text-sm);font-weight:500;white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.user-caret[data-v-f50ce937]{position:relative;z-index:1;font-size:var(--text-xs);opacity:.85;transition:transform .35s var(--ease-smooth)}.user-caret.rotated[data-v-f50ce937]{transform:rotate(180deg)}.user-menu[data-v-f50ce937]{position:absolute;top:calc(100% + 4px);right:0;padding-top:.5rem;z-index:var(--z-dropdown);min-width:240px}.user-menu-inner[data-v-f50ce937]{background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur-md);backdrop-filter:var(--glass-blur-md);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.dropdown-header[data-v-f50ce937]{display:flex;align-items:flex-start;gap:.875rem;padding:1.125rem 1rem;border-bottom:1px solid var(--glass-border-subtle);background:linear-gradient(180deg,rgba(255,255,255,.5) 0%,transparent 100%)}.dropdown-avatar[data-v-f50ce937]{width:44px;height:44px;border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--glass-border);box-shadow:0 2px 8px #00000014}.dropdown-info[data-v-f50ce937]{flex:1;min-width:0}.dropdown-name[data-v-f50ce937]{margin:0;font-weight:600;color:var(--text-color);font-size:.9375rem}.dropdown-email[data-v-f50ce937]{margin:.25rem 0 0;font-size:var(--text-xs);color:var(--text-light);word-break:break-all}.user-dropdown-item[data-v-f50ce937]{display:block;padding:.75rem 1rem;color:var(--text-secondary);text-decoration:none;font-size:.9375rem;position:relative;transition:all .25s var(--ease-smooth)}.user-dropdown-item[data-v-f50ce937]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--primary-color);border-radius:0 2px 2px 0;transition:height .25s var(--ease-smooth)}.user-dropdown-item[data-v-f50ce937]:hover{background:linear-gradient(90deg,var(--primary-50) 0%,transparent 100%);color:var(--text-color);padding-left:1.25rem}.user-dropdown-item[data-v-f50ce937]:hover:before{height:60%}.user-dropdown-item[data-v-f50ce937]:active{background:var(--primary-100)}.user-dropdown-logout[data-v-f50ce937]{border-top:1px solid var(--glass-border-subtle);margin-top:.25rem}.user-dropdown-logout[data-v-f50ce937]:hover{background:linear-gradient(90deg,rgba(239,68,68,.08) 0%,transparent 100%);color:#dc2626}.user-dropdown-logout[data-v-f50ce937]:hover:before{background:#dc2626}.mobile-search-toggle[data-v-f50ce937],.mobile-menu-toggle[data-v-f50ce937]{display:none;padding:.5rem;background:none;border:none;cursor:pointer;color:var(--text-light);transition:color var(--duration-fast)}.mobile-search-toggle[data-v-f50ce937]:hover,.mobile-menu-toggle[data-v-f50ce937]:hover{color:var(--primary-color)}.mobile-search[data-v-f50ce937]{display:none;padding:.5rem 1rem;border-top:1px solid var(--border-color)}.mobile-menu-overlay[data-v-f50ce937]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-mobile-menu);background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mobile-menu[data-v-f50ce937]{position:absolute;top:0;right:0;bottom:0;width:min(320px,85vw);background:var(--bg-color);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;overflow:hidden}.mobile-menu-header[data-v-f50ce937]{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color);background:inherit;flex-shrink:0}.mobile-menu-title[data-v-f50ce937]{font-size:1rem;font-weight:600;color:var(--text-color)}.mobile-menu-close[data-v-f50ce937]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--bg-subtle);border:none;border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast)}.mobile-menu-close[data-v-f50ce937]:hover{background:var(--border-color);color:var(--text-color)}.mobile-menu-role-switch[data-v-f50ce937]{padding:1rem;border-bottom:1px solid var(--border-color)}.mobile-menu-role-switch .btn-switch[data-v-f50ce937]{width:100%;justify-content:center;padding:.625rem 1rem}.mobile-menu-nav[data-v-f50ce937]{display:flex;flex-direction:column;padding:.5rem 0;flex:1;overflow-y:auto}.mobile-menu-link[data-v-f50ce937]{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:var(--text-secondary);text-decoration:none;font-size:.9375rem;transition:all var(--duration-fast)}.mobile-menu-link i[data-v-f50ce937]{width:20px;text-align:center;font-size:1rem;opacity:.7}.mobile-menu-link[data-v-f50ce937]:hover{background:var(--bg-subtle);color:var(--text-color)}.mobile-menu-link:hover i[data-v-f50ce937]{opacity:1}.mobile-menu.theme-teacher .mobile-menu-header[data-v-f50ce937]{background:linear-gradient(135deg,var(--teacher-color) 0%,var(--teacher-color-light) 100%);border-bottom:none}.mobile-menu.theme-teacher .mobile-menu-title[data-v-f50ce937]{color:#fff}.mobile-menu.theme-teacher .mobile-menu-close[data-v-f50ce937]{background:#fff3;color:#fff}.mobile-menu.theme-teacher .mobile-menu-close[data-v-f50ce937]:hover{background:#ffffff4d}.mobile-menu.theme-student .mobile-menu-header[data-v-f50ce937]{background:linear-gradient(135deg,var(--student-color) 0%,var(--student-color-light) 100%);border-bottom:none}.mobile-menu.theme-student .mobile-menu-title[data-v-f50ce937]{color:#fff}.mobile-menu.theme-student .mobile-menu-close[data-v-f50ce937]{background:#fff3;color:#fff}.mobile-menu.theme-student .mobile-menu-close[data-v-f50ce937]:hover{background:#ffffff4d}.mobile-menu-enter-active[data-v-f50ce937],.mobile-menu-leave-active[data-v-f50ce937]{transition:opacity var(--duration-normal) var(--ease-smooth)}.mobile-menu-enter-active .mobile-menu[data-v-f50ce937],.mobile-menu-leave-active .mobile-menu[data-v-f50ce937]{transition:transform var(--duration-normal) var(--ease-smooth)}.mobile-menu-enter-from[data-v-f50ce937],.mobile-menu-leave-to[data-v-f50ce937]{opacity:0}.mobile-menu-enter-from .mobile-menu[data-v-f50ce937],.mobile-menu-leave-to .mobile-menu[data-v-f50ce937]{transform:translate(100%)}@media(max-width:768px){.nav-search[data-v-f50ce937]{display:none}.mobile-search-toggle[data-v-f50ce937],.mobile-menu-toggle[data-v-f50ce937]{display:block}.mobile-search[data-v-f50ce937]{display:flex}.user-name[data-v-f50ce937]{display:none}}@media(max-width:576px){.nav-container[data-v-f50ce937]{padding:.5rem clamp(.5rem,2vw,.75rem);gap:clamp(.5rem,2vw,.75rem)}.logo-img[data-v-f50ce937]{height:clamp(26px,6vw,32px)}.btn-login[data-v-f50ce937],.btn-register[data-v-f50ce937]{padding:.25rem clamp(.375rem,1.5vw,.5rem);font-size:clamp(.6875rem,2vw,.8125rem)}.btn-switch[data-v-f50ce937]{font-size:clamp(.625rem,2vw,.75rem);padding:.2rem clamp(.3rem,1.5vw,.5rem)}.btn-switch i[data-v-f50ce937]{display:none}.nav-actions[data-v-f50ce937]{gap:.375rem}.user-btn[data-v-f50ce937]{height:clamp(24px,5vw,28px);padding:0 clamp(.375rem,1vw,.5rem) 0 0}.user-avatar[data-v-f50ce937]{width:clamp(24px,5vw,28px);height:clamp(24px,5vw,28px)}.mobile-search[data-v-f50ce937]{padding:.5rem .75rem}}.role-section[data-v-f50ce937]{position:fixed;top:var(--navbar-height, 64px);left:0;right:0;z-index:var(--z-sticky);background-image:var(--glass-bg-nav);-webkit-backdrop-filter:var(--glass-blur-md);backdrop-filter:var(--glass-blur-md);border-bottom:1px solid var(--glass-border-subtle);box-shadow:var(--glass-shadow-nav),0 1px 3px #0000000a;transition:transform var(--duration-normal) var(--ease-smooth),opacity var(--duration-normal) var(--ease-smooth)}.role-section[data-v-f50ce937]:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent 2%,var(--role-color) 15%,var(--role-color-light, var(--role-color)) 50%,var(--role-color) 85%,transparent 98%)}.role-section.theme-teacher[data-v-f50ce937]{--role-color: var(--teacher-color);--role-color-light: var(--teacher-color-light);--role-hover-bg: var(--teacher-hover-bg);--role-tint: rgba(234, 88, 12, .06)}.role-section.theme-student[data-v-f50ce937]{--role-color: var(--student-color);--role-color-light: var(--student-color-light);--role-hover-bg: var(--student-hover-bg);--role-tint: rgba(0, 47, 167, .06)}.role-section.theme-teacher[data-v-f50ce937]:after,.role-section.theme-student[data-v-f50ce937]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--role-tint);pointer-events:none;z-index:-1}.role-section .section-nav[data-v-f50ce937]{display:flex;justify-content:center;align-items:center;height:var(--nav-section-height, 45px);max-width:100%;padding:0 1rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;gap:.125rem}.role-section .section-nav[data-v-f50ce937]::-webkit-scrollbar{display:none}.role-section .section-nav a[data-v-f50ce937]{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;height:clamp(32px,calc(var(--nav-section-height, 48px) - 10px),38px);padding:0 .875rem;margin:0 .125rem;color:var(--text-secondary);text-decoration:none;font-size:.9375rem;font-weight:600;letter-spacing:.01em;white-space:nowrap;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-smooth),background var(--duration-fast) var(--ease-smooth),transform var(--duration-fast) var(--ease-smooth)}.role-section .section-nav a[data-v-f50ce937]:active{transform:scale(.97)}.role-section .section-nav a i[data-v-f50ce937]{font-size:1rem;color:var(--role-color);opacity:.8;transition:opacity var(--duration-fast) var(--ease-smooth),transform var(--duration-fast) var(--ease-bounce-subtle)}.role-section .section-nav a[data-v-f50ce937]:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%) scaleX(0);width:calc(100% - 1.25rem);height:2px;background:var(--role-color);border-radius:2px;transition:transform var(--duration-fast) var(--ease-smooth);transform-origin:center}.role-section .section-nav a[data-v-f50ce937]:hover{color:var(--text-color);background:var(--role-hover-bg)}.role-section .section-nav a:hover i[data-v-f50ce937]{opacity:1;transform:translateY(-1px)}.role-section .section-nav a[data-v-f50ce937]:hover:after{transform:translate(-50%) scaleX(1)}.role-section .section-nav a.active[data-v-f50ce937]{color:var(--text-color);background:var(--role-hover-bg);font-weight:600}.role-section .section-nav a.active i[data-v-f50ce937]{opacity:1}.role-section .section-nav a.active[data-v-f50ce937]:after{transform:translate(-50%) scaleX(1)}.role-section .section-nav a[data-v-f50ce937]:focus-visible{outline:2px solid var(--role-color);outline-offset:2px;color:var(--text-color);background:var(--role-hover-bg)}.role-section .section-nav a:focus-visible i[data-v-f50ce937]{opacity:1}.role-section .section-nav a[data-v-f50ce937]:focus-visible:after{transform:translate(-50%) scaleX(1)}.role-section.hidden[data-v-f50ce937]{transform:translateY(-100%);opacity:0;pointer-events:none}@media(min-width:1200px){.role-section .section-nav a[data-v-f50ce937]{padding:0 1rem}}@media(max-width:1199px)and (min-width:992px){.role-section .section-nav a[data-v-f50ce937]{padding:0 .625rem;font-size:var(--text-sm);gap:.375rem}.role-section .section-nav a i[data-v-f50ce937]{font-size:.9375rem}}@media(max-width:991px)and (min-width:769px){.role-section .section-nav[data-v-f50ce937]{gap:.25rem}.role-section .section-nav a[data-v-f50ce937]{width:clamp(36px,10vw,40px);height:clamp(36px,calc(var(--nav-section-height, 45px) - 6px),40px);padding:0;margin:0}.role-section .section-nav a span[data-v-f50ce937]{display:none}.role-section .section-nav a i[data-v-f50ce937]{font-size:clamp(1rem,3vw,1.125rem);opacity:.75}.role-section .section-nav a[data-v-f50ce937]:after{bottom:3px;width:18px}}@media(max-width:768px){.role-section[data-v-f50ce937]{display:none}}.floating-checkin[data-v-f50ce937]{position:fixed;top:70%;right:10px;width:100px;height:100px;z-index:1050;padding:0;background:transparent;border:none;cursor:pointer;transition:transform var(--duration-fast) var(--ease-smooth)}.floating-checkin[data-v-f50ce937]:hover{transform:scale(1.05)}.floating-checkin[data-v-f50ce937]:disabled{cursor:wait}.floating-checkin .checkin-img[data-v-f50ce937]{width:100%;height:auto;pointer-events:none}.floating-checkin .checkin-loading[data-v-f50ce937]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:2.5rem;color:var(--primary-color)}.back-to-top[data-v-f50ce937]{position:fixed;right:16px;bottom:80px;z-index:1050;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;background:var(--gradient-primary-btn);border:none;border-radius:50%;color:#fff;font-size:1.125rem;cursor:pointer;box-shadow:var(--shadow-primary);transition:all var(--duration-normal) var(--ease-smooth)}.back-to-top[data-v-f50ce937]:hover{background:var(--gradient-primary-btn-hover);transform:translateY(-3px);box-shadow:0 6px 20px #6366f180}.float-btn-enter-active[data-v-f50ce937],.float-btn-leave-active[data-v-f50ce937]{transition:opacity var(--duration-normal) var(--ease-smooth),transform var(--duration-normal) var(--ease-smooth)}.float-btn-enter-from[data-v-f50ce937],.float-btn-leave-to[data-v-f50ce937]{opacity:0}.floating-checkin.float-btn-enter-from[data-v-f50ce937],.floating-checkin.float-btn-leave-to[data-v-f50ce937]{opacity:0;transform:translate(20px)}.back-to-top.float-btn-enter-from[data-v-f50ce937],.back-to-top.float-btn-leave-to[data-v-f50ce937]{transform:translateY(20px)}@media(max-width:768px){.floating-checkin[data-v-f50ce937]{top:auto;bottom:140px;width:80px;height:80px}.back-to-top[data-v-f50ce937]{right:12px;bottom:70px;width:44px;height:44px}}@media(max-width:576px){.floating-checkin[data-v-f50ce937]{bottom:120px;width:70px;height:70px}.back-to-top[data-v-f50ce937]{bottom:60px;width:40px;height:40px;font-size:1rem}}.toast-notification[data-v-f50ce937]{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:12px;box-shadow:0 8px 30px #10b98166;font-weight:500;font-size:.9375rem}.toast-notification i[data-v-f50ce937]{font-size:1.25rem}.toast-enter-active[data-v-f50ce937],.toast-leave-active[data-v-f50ce937]{transition:all var(--duration-normal) var(--ease-bounce)}.toast-enter-from[data-v-f50ce937]{opacity:0;transform:translate(-50%) translateY(-20px) scale(.9)}.toast-leave-to[data-v-f50ce937]{opacity:0;transform:translate(-50%) translateY(-10px)}.user-dropdown:hover .user-btn[data-v-f50ce937]{box-shadow:0 4px 12px var(--student-shadow)}.user-dropdown:hover .user-btn.teacher-mode[data-v-f50ce937]{box-shadow:0 4px 12px var(--teacher-shadow)}.checkin-modal-overlay[data-v-f50ce937]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;padding:1rem;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.checkin-modal[data-v-f50ce937]{position:relative;width:100%;max-width:600px;padding:2rem;background:var(--bg-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl)}.checkin-modal-close[data-v-f50ce937]{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--bg-subtle);border:none;border-radius:var(--radius-full);color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth)}.checkin-modal-close[data-v-f50ce937]:hover{background:var(--border-color);color:var(--text-color)}.checkin-modal-title[data-v-f50ce937]{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;text-align:center;color:var(--text-color)}.checkin-days[data-v-f50ce937]{display:flex;gap:.375rem;justify-content:center}.checkin-day-wrapper[data-v-f50ce937]{perspective:1000px}.checkin-day[data-v-f50ce937]{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .625rem;min-width:56px;background:linear-gradient(135deg,#f8efd8,#f2cf79);border:2px solid #e5c97a;border-radius:var(--radius-md);transition:all var(--duration-normal) var(--ease-smooth)}.checkin-day.grayscale[data-v-f50ce937]{filter:grayscale(100%)}.checkin-day.signed[data-v-f50ce937]{background:linear-gradient(135deg,var(--primary-300) 0%,var(--primary-400) 100%);border-color:var(--primary-400);color:#fff;filter:none}.checkin-day.active[data-v-f50ce937]{background:var(--gradient-yellow-btn);border-color:var(--accent-light);color:#fff;animation:checkin-pop-f50ce937 .4s .2s ease-out forwards}@keyframes checkin-pop-f50ce937{0%{transform:scale(.8);opacity:.5}60%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.checkin-day-points[data-v-f50ce937]{font-size:1rem;font-weight:700;color:#5a4a0a}.checkin-day-icon[data-v-f50ce937]{font-size:1.25rem;color:#6b5c10}.checkin-day-label[data-v-f50ce937]{font-size:.75rem;font-weight:500;color:#5a4a0a}.checkin-day.signed .checkin-day-points[data-v-f50ce937],.checkin-day.signed .checkin-day-icon[data-v-f50ce937],.checkin-day.active .checkin-day-points[data-v-f50ce937],.checkin-day.active .checkin-day-icon[data-v-f50ce937]{color:#fff}.checkin-day.signed .checkin-day-label[data-v-f50ce937],.checkin-day.active .checkin-day-label[data-v-f50ce937]{color:#ffffffe6}.checkin-modal-message[data-v-f50ce937]{margin:1.5rem 0 0;font-size:1rem;font-weight:500;text-align:center;color:var(--secondary-color)}.modal-enter-active[data-v-f50ce937],.modal-leave-active[data-v-f50ce937]{transition:all var(--duration-normal) var(--ease-smooth)}.modal-enter-active .checkin-modal[data-v-f50ce937],.modal-leave-active .checkin-modal[data-v-f50ce937]{transition:all var(--duration-normal) var(--ease-bounce)}.modal-enter-from[data-v-f50ce937],.modal-leave-to[data-v-f50ce937]{opacity:0}.modal-enter-from .checkin-modal[data-v-f50ce937],.modal-leave-to .checkin-modal[data-v-f50ce937]{opacity:0;transform:scale(.9) translateY(20px)}@media(max-width:576px){.checkin-modal[data-v-f50ce937]{padding:1.5rem}.checkin-day[data-v-f50ce937]{min-width:60px;padding:.5rem}.checkin-day-points[data-v-f50ce937]{font-size:.875rem}.checkin-day-icon[data-v-f50ce937]{font-size:1rem}}.homepage-footer[data-v-7fea18b1]{--footer-bg: #06080c;background:var(--footer-bg);position:relative;overflow:hidden;padding:var(--section-padding) 0 0}.footer-ambient[data-v-7fea18b1]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.ambient-orb[data-v-7fea18b1]{position:absolute;border-radius:50%;filter:blur(120px);opacity:.35}.orb-1[data-v-7fea18b1]{width:600px;height:600px;top:-300px;left:-100px;background:radial-gradient(circle,rgba(99,102,241,.6) 0%,transparent 70%)}.orb-2[data-v-7fea18b1]{width:400px;height:400px;top:-150px;right:-50px;background:radial-gradient(circle,rgba(236,72,153,.4) 0%,transparent 70%)}.footer-noise[data-v-7fea18b1]{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none}.footer-brand-showcase[data-v-7fea18b1]{text-align:center;padding-bottom:3.5rem;border-bottom:1px solid rgba(255,255,255,.06);position:relative;z-index:1}.brand-visual[data-v-7fea18b1]{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-bottom:1.25rem}.brand-logo-img[data-v-7fea18b1]{height:28px;width:auto;object-fit:contain;opacity:.95;transition:opacity .3s ease}.brand-logo-img[data-v-7fea18b1]:hover{opacity:1}.brand-divider[data-v-7fea18b1]{width:1px;height:20px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.2),transparent)}.brand-tagline[data-v-7fea18b1]{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.25em;color:var(--slate-500)}.brand-mission[data-v-7fea18b1]{font-size:.9375rem;color:var(--slate-400);line-height:1.7;max-width:480px;margin:0 auto}.footer-nav-grid[data-v-7fea18b1]{display:grid;grid-template-columns:repeat(5,1fr);align-items:start;gap:2rem;padding:3rem 0;position:relative;z-index:1}.nav-column[data-v-7fea18b1]{text-align:center}.nav-title[data-v-7fea18b1]{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--slate-400);margin-bottom:1.25rem}.nav-title[data-v-7fea18b1]:after{content:"";display:block;width:20px;height:2px;margin:6px auto 0;background:linear-gradient(90deg,var(--primary-500),var(--primary-400));border-radius:1px}.nav-list[data-v-7fea18b1]{list-style:none;padding:0;margin:0}.nav-list li[data-v-7fea18b1]{margin-bottom:.5rem}.nav-list li[data-v-7fea18b1]:last-child{margin-bottom:0}.footer-nav-link[data-v-7fea18b1]{color:var(--slate-400);font-size:.875rem;text-decoration:none;transition:color .25s ease}.footer-nav-link[data-v-7fea18b1]:hover,.footer-nav-link[data-v-7fea18b1]:focus{color:#fff;outline:none}.footer-nav-link[data-v-7fea18b1]:focus-visible{outline:2px solid var(--primary-400);outline-offset:2px;border-radius:2px}.footer-bar[data-v-7fea18b1]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 0;border-top:1px solid rgba(255,255,255,.06);position:relative;z-index:1}.bar-left[data-v-7fea18b1],.bar-right[data-v-7fea18b1]{flex:1}.bar-right[data-v-7fea18b1]{text-align:right}.bar-center[data-v-7fea18b1]{flex:0 0 auto}.copyright[data-v-7fea18b1]{font-size:.75rem;color:var(--slate-400);letter-spacing:.02em}.copyright-link[data-v-7fea18b1]{color:var(--slate-300);text-decoration:none;transition:color .25s ease}.copyright-link[data-v-7fea18b1]:hover,.copyright-link[data-v-7fea18b1]:focus{color:#fff}.icp-info[data-v-7fea18b1]{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:.625rem}.icp-link[data-v-7fea18b1]{display:inline-flex;align-items:center;gap:.375rem;color:var(--slate-300);font-size:.75rem;text-decoration:none;transition:color .25s ease}.icp-link[data-v-7fea18b1]:hover,.icp-link[data-v-7fea18b1]:focus{color:#fff}.icp-icon[data-v-7fea18b1]{font-size:.8125rem;opacity:.85}.social-row[data-v-7fea18b1]{display:flex;align-items:center;gap:.5rem}.social-btn[data-v-7fea18b1]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--slate-400);font-size:1rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.social-btn[data-v-7fea18b1]:hover,.social-btn[data-v-7fea18b1]:focus{background:#6366f126;border-color:#6366f14d;color:#fff;transform:translateY(-2px)}.social-btn[data-v-7fea18b1]:focus-visible{outline:2px solid var(--primary-400);outline-offset:2px}.social-btn[data-v-7fea18b1]:active{transform:translateY(0)}.social-dropdown[data-v-7fea18b1]{position:relative}.social-dropdown-menu[data-v-7fea18b1]{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(8px);min-width:120px;background:#0f141efa;-webkit-backdrop-filter:var(--glass-blur-sm);backdrop-filter:var(--glass-blur-sm);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.5rem;opacity:0;visibility:hidden;transition:all .25s ease;z-index:10}.social-dropdown-menu[data-v-7fea18b1]:before{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:#0f141efa;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.social-dropdown:hover .social-dropdown-menu[data-v-7fea18b1],.social-dropdown.is-open .social-dropdown-menu[data-v-7fea18b1]{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.social-dropdown-item[data-v-7fea18b1]{display:block;padding:.5rem .75rem;color:var(--slate-400);font-size:.8125rem;text-decoration:none;border-radius:6px;transition:all .2s ease;text-align:center}.social-dropdown-item[data-v-7fea18b1]:hover{background:#6366f126;color:#fff}.status-badge[data-v-7fea18b1]{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:100px}.status-dot[data-v-7fea18b1]{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b98199;animation:pulse-dot-7fea18b1 2s ease-in-out infinite}@keyframes pulse-dot-7fea18b1{0%,to{opacity:1}50%{opacity:.5}}.status-text[data-v-7fea18b1]{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:#10b981}.wechat-link[data-v-7fea18b1]{cursor:help}.download-app-column[data-v-7fea18b1]{display:flex;flex-direction:column;align-items:center}.app-download-card[data-v-7fea18b1]{display:flex;align-items:center;gap:1rem}.qrcode-link[data-v-7fea18b1]{display:block;padding:6px;background:#fff;border-radius:8px;transition:transform .3s ease,box-shadow .3s ease}.qrcode-link[data-v-7fea18b1]:hover{transform:scale(1.03);box-shadow:0 8px 20px #0003}.app-qrcode[data-v-7fea18b1]{width:90px;height:90px;display:block}.app-info[data-v-7fea18b1]{display:flex;flex-direction:column;align-items:flex-start;gap:.625rem}.app-header[data-v-7fea18b1]{display:flex;align-items:center;gap:.5rem}.app-logo[data-v-7fea18b1]{width:36px;height:36px;border-radius:8px;flex-shrink:0}.app-name[data-v-7fea18b1]{font-size:.9375rem;font-weight:600;color:var(--slate-300);letter-spacing:.02em}.app-store-link[data-v-7fea18b1]{display:block;transition:all .3s ease}.app-store-link[data-v-7fea18b1]:hover{transform:translateY(-2px);filter:brightness(1.1)}.app-store-badge[data-v-7fea18b1]{height:32px;width:auto}@media(max-width:768px){.footer-brand-showcase[data-v-7fea18b1]{padding-bottom:2.5rem}.brand-visual[data-v-7fea18b1]{flex-direction:column;gap:.75rem}.brand-divider[data-v-7fea18b1]{width:40px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}.footer-nav-grid[data-v-7fea18b1]{grid-template-columns:repeat(2,1fr);gap:2rem;padding:2rem 0}.app-header[data-v-7fea18b1]{flex-direction:column;align-items:center;gap:0}.app-info[data-v-7fea18b1]{align-items:center;text-align:center;gap:0}.app-qrcode[data-v-7fea18b1]{width:80px;height:80px;aspect-ratio:1;object-fit:contain}.footer-bar[data-v-7fea18b1]{flex-direction:column;gap:1.25rem;padding:1.25rem 0}.bar-left[data-v-7fea18b1],.bar-center[data-v-7fea18b1],.bar-right[data-v-7fea18b1]{flex:none;text-align:center}}@media(prefers-reduced-motion:reduce){.status-dot[data-v-7fea18b1],.social-btn[data-v-7fea18b1],.footer-nav-link[data-v-7fea18b1],.brand-logo-img[data-v-7fea18b1],.qrcode-link[data-v-7fea18b1],.app-store-link[data-v-7fea18b1]{animation:none;transition:none}}
