.theme-toggle{position:fixed;top:20px;right:20px;z-index:10000;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:25px;border:1px solid rgba(255,255,255,.3);background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text-color);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0000001a,0 1px 3px #0000000d}.theme-toggle:hover{background:#ffffff26;transform:translateY(-2px);box-shadow:0 6px 16px #00000026,0 2px 4px #00000014}.theme-toggle:active{transform:translateY(0)}.theme-icon{font-size:18px;line-height:1}.theme-label{font-size:14px;line-height:1}@media(max-width:768px){.theme-toggle{position:fixed!important;top:10px!important;right:10px!important;z-index:10000!important;padding:8px 12px;gap:6px}.theme-icon{font-size:16px}.theme-label{font-size:12px}}@media(prefers-color-scheme:dark){.theme-toggle{border-color:#ffffff4d;background:#0000004d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.theme-toggle:hover{background:#0006}}:root[data-theme=dark] .theme-toggle{border-color:#ffffff4d;background:#0000004d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}:root[data-theme=dark] .theme-toggle:hover{background:#0006}:root[data-theme=light] .theme-toggle{border-color:#ffffff4d;background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}:root[data-theme=light] .theme-toggle:hover{background:#ffffff26}@media(max-width:768px)and (prefers-color-scheme:dark){.theme-toggle{position:fixed!important;top:10px!important;right:10px!important;z-index:10000!important}}@media(max-width:768px){:root[data-theme=dark] .theme-toggle{position:fixed!important;top:10px!important;right:10px!important;z-index:10000!important}:root[data-theme=light] .theme-toggle{position:fixed!important;top:10px!important;right:10px!important;z-index:10000!important}}.draggable-nav-wrapper{position:fixed!important;bottom:20px!important;left:0!important;right:0!important;margin:0 auto!important;z-index:9999!important;width:92%;max-width:1200px;pointer-events:auto!important}.draggable-floating-nav{background:transparent;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);border-radius:50px;padding:6px;box-shadow:0 8px 32px #0000001a,0 1px 2px #0000000d,inset 0 1px #ffffff26;border:1px solid rgba(255,255,255,.3);position:relative;overflow:visible;width:100%}.draggable-floating-nav:before{content:"";position:absolute;inset:-1px;border-radius:50px;padding:1px;background:linear-gradient(135deg,#ffffff26,#ffffff05,#ffffff26);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:-1}.draggable-floating-nav:after{content:"";position:absolute;inset:0;border-radius:50px;background:radial-gradient(ellipse 100% 100% at center,transparent 0%,transparent 50%,rgba(255,255,255,.03) 65%,rgba(255,255,255,.08) 80%,rgba(255,255,255,.15) 100%);mask:radial-gradient(ellipse 100% 100% at center,transparent 0%,transparent 50%,black 75%,black 100%);-webkit-mask:radial-gradient(ellipse 100% 100% at center,transparent 0%,transparent 50%,black 75%,black 100%);pointer-events:none;z-index:0}.nav-container{position:relative;display:flex;gap:4px;overflow:visible;width:100%;z-index:2}.floating-indicator{position:absolute;top:0;height:100%;background:#ffffff05;border-radius:40px;z-index:10;cursor:grab;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #0000001a,0 1px 3px #0000000d,inset 0 1px #ffffff1a;overflow:hidden;contain:layout style paint;will-change:transform}.floating-indicator.wobbling{animation:liquidWave 1.2s cubic-bezier(.23,1,.32,1)}@keyframes liquidWave{0%{transform:translateY(0) scaleX(1) scaleY(1)}10%{transform:translateY(-1px) scaleX(1.015) scaleY(.99)}25%{transform:translateY(.5px) scaleX(.99) scaleY(1.01)}40%{transform:translateY(-.3px) scaleX(1.008) scaleY(.995)}55%{transform:translateY(.2px) scaleX(.995) scaleY(1.005)}70%{transform:translateY(-.1px) scaleX(1.003) scaleY(.998)}85%{transform:translateY(.05px) scaleX(.998) scaleY(1.002)}to{transform:translateY(0) scaleX(1) scaleY(1)}}.floating-indicator.dragging{cursor:grabbing;z-index:100;transform:translateY(-1.5px) scale(1.02);box-shadow:0 8px 24px #0003,0 2px 8px #0000001a,inset 0 1px #ffffff26;background:#ffffff0a}.floating-indicator:before{content:"";position:absolute;inset:0;border-radius:40px;-webkit-mask:radial-gradient(ellipse at center,transparent 10%,rgba(255,255,255,.15) 25%,rgba(255,255,255,.4) 45%,rgba(255,255,255,.7) 65%,rgba(255,255,255,.9) 85%,#fff 95%);mask:radial-gradient(ellipse at center,transparent 10%,rgba(255,255,255,.15) 25%,rgba(255,255,255,.4) 45%,rgba(255,255,255,.7) 65%,rgba(255,255,255,.9) 85%,#fff 95%);pointer-events:none;z-index:1}.floating-indicator:after{content:"";position:absolute;inset:0;border-radius:40px;background:radial-gradient(ellipse 100% 100% at center,transparent 0%,transparent 40%,rgba(255,255,255,.04) 60%,rgba(255,255,255,.1) 75%,rgba(255,255,255,.18) 100%);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);mask:radial-gradient(ellipse 100% 100% at center,transparent 0%,transparent 40%,black 70%,black 100%);-webkit-mask:radial-gradient(ellipse 100% 100% at center,transparent 0%,transparent 40%,black 70%,black 100%);pointer-events:none;z-index:2}.drag-overlay{position:fixed;inset:0;z-index:50;cursor:grabbing}.nav-item{position:relative;z-index:5;flex:1;min-width:0;padding:20px 16px 16px;background:transparent;border:none;border-radius:40px;color:#000;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-shadow:none;text-decoration:none;outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.nav-item-content{display:flex;flex-direction:column;align-items:center;gap:3px}.nav-item-logo{width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .05s ease;will-change:transform,opacity;color:inherit}.nav-item-logo svg{width:100%;height:100%;stroke:currentColor;fill:none}.nav-item-text{display:block;color:inherit;text-decoration:none}.nav-item:focus,.nav-item:active{outline:none}.nav-item.active{color:#ff3b30!important;text-shadow:none;text-decoration:none}.nav-item:not(.active):hover{text-shadow:none;text-decoration:none;transform:none}@media(max-width:1024px){.draggable-nav-wrapper{width:90%}}@media(max-width:768px){.draggable-nav-wrapper{position:fixed!important;bottom:10px!important;left:0!important;right:0!important;margin:0 auto!important;z-index:9999!important;width:94%}.draggable-floating-nav{padding:5px;border-radius:40px}.nav-item{padding:16px 12px 12px;font-size:14px}.nav-item-logo{width:18px;height:18px}.nav-item-content{gap:2px}.floating-indicator{border-radius:35px}.floating-indicator:after{backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%)}.floating-indicator.dragging{transform:translateY(-1px) scale(1.015)}.floating-indicator.wobbling{animation:liquidWaveMobile 1s cubic-bezier(.23,1,.32,1)}@keyframes liquidWaveMobile{0%{transform:translateY(0) scaleX(1) scaleY(1)}15%{transform:translateY(-.8px) scaleX(1.01) scaleY(.995)}35%{transform:translateY(.4px) scaleX(.995) scaleY(1.008)}55%{transform:translateY(-.2px) scaleX(1.005) scaleY(.998)}75%{transform:translateY(.1px) scaleX(.998) scaleY(1.003)}to{transform:translateY(0) scaleX(1) scaleY(1)}}}@media(prefers-color-scheme:dark){.nav-item{color:#fff}.nav-item:not(.active):hover{color:#fff}}@media(max-width:768px)and (prefers-color-scheme:dark){.draggable-nav-wrapper{position:fixed!important;bottom:10px!important;left:0!important;right:0!important;margin:0 auto!important;z-index:9999!important}}@media(prefers-color-scheme:light){.nav-item{color:#000}.nav-item:not(.active):hover{color:#000}}:root[data-theme=dark] .nav-item{color:#fff!important}:root[data-theme=dark] .nav-item:not(.active):hover{color:#fff!important}:root[data-theme=light] .nav-item{color:#000!important}:root[data-theme=light] .nav-item:not(.active):hover{color:#000!important}@media(max-width:768px){:root[data-theme=dark] .draggable-nav-wrapper{position:fixed!important;bottom:10px!important;left:0!important;right:0!important;margin:0 auto!important;z-index:9999!important}:root[data-theme=light] .draggable-nav-wrapper{position:fixed!important;bottom:10px!important;left:0!important;right:0!important;margin:0 auto!important;z-index:9999!important}}@media(prefers-reduced-motion:reduce){.floating-indicator{transition:left .3s ease,width .3s ease!important}.floating-indicator.wobbling{animation:none}.nav-item-logo{transition:none}}.root-layout{position:relative;min-height:100vh;width:100%}.root-main{position:relative;width:100%;min-height:100vh;padding-bottom:120px}@media(max-width:1024px){.root-main{padding-bottom:110px}}@media(max-width:768px){.root-main{padding-bottom:100px}}.onboarding-overlay{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#6366f1,#8b5cf6,#d946ef,#f97316,#f59e0b);background-size:300% 300%;animation:gradientShift 8s ease infinite,fadeIn .4s ease}.onboarding-overlay.fade-out{animation:fadeOut .4s cubic-bezier(.4,0,1,1) forwards}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.onboarding-modal{background:transparent;width:100%;min-height:100vh;min-height:100dvh;position:relative;animation:slideUp .5s cubic-bezier(.16,1,.3,1);text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8rem 2rem 6rem;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}:root[data-theme=dark] .onboarding-overlay{background:linear-gradient(135deg,#1e1b4b,#312e81,#4c1d95,#7c2d12,#92400e);background-size:300% 300%}.onboarding-skip{position:fixed;top:1.5rem;right:1.5rem;background:#ffffff26;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1.5px solid rgba(255,255,255,.25);border-radius:50%;font-size:1.5rem;color:#fffffff2;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);line-height:1;padding:.5rem;width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:0 8px 32px #0000001a}.onboarding-skip:hover{background:#ffffff40;color:#fff;transform:scale(1.1) rotate(90deg);box-shadow:0 12px 40px #00000026}.onboarding-skip:active{transform:scale(.95) rotate(90deg)}.onboarding-indicators{display:flex;gap:12px;justify-content:center;margin-bottom:3rem;position:fixed;top:1.5rem;left:50%;transform:translate(-50%);z-index:10;padding:.75rem 1.25rem;background:#ffffff1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:100px;border:1px solid rgba(255,255,255,.2)}.indicator-dot{width:8px;height:8px;border-radius:50%;background:#ffffff4d;transition:all .4s cubic-bezier(.4,0,.2,1);border:none;cursor:pointer}.indicator-dot.active{width:36px;border-radius:4px;background:#fff;box-shadow:0 0 20px #ffffff80}.indicator-dot.completed{background:#fff9;transform:scale(1.1)}.onboarding-icon{font-size:6rem;margin-bottom:2rem;line-height:1;filter:drop-shadow(0 8px 24px rgba(0,0,0,.25));animation:iconFloat 3s ease-in-out infinite}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.onboarding-title{font-size:2.5rem;font-weight:800;color:#fff;margin:0 0 1.25rem;line-height:1.2;text-shadow:0 4px 20px rgba(0,0,0,.3);letter-spacing:-.02em;max-width:600px}.onboarding-subtitle{font-size:1.25rem;font-weight:400;color:#fffffff2;margin:0 0 2.5rem;line-height:1.6;text-shadow:0 2px 8px rgba(0,0,0,.2);max-width:500px}.onboarding-divider{height:2px;background:linear-gradient(to right,transparent,rgba(255,255,255,.4),transparent);margin:2.5rem 0;border-radius:2px}.onboarding-page{animation:pageFadeIn .6s cubic-bezier(.16,1,.3,1);max-width:700px;width:100%}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.onboarding-content{margin:0 auto;max-width:500px;width:100%}.onboarding-features{text-align:left;margin:0 auto;max-width:500px;width:100%}.onboarding-intro{font-size:1.125rem;font-weight:600;color:#fff;margin:0 0 1.5rem;text-shadow:0 2px 8px rgba(0,0,0,.2)}.onboarding-list{list-style:none;padding:0;margin:0;display:grid;gap:.875rem}.onboarding-list li{font-size:1.075rem;font-weight:500;color:#fff;margin-bottom:0;display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#ffffff1f;border-radius:16px;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1.5px solid rgba(255,255,255,.25);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #0000001a;position:relative;overflow:hidden}.onboarding-list li:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent);opacity:0;transition:opacity .3s}.onboarding-list li:hover{background:#ffffff2e;transform:translate(8px) scale(1.02);box-shadow:0 8px 24px #00000026;border-color:#ffffff59}.onboarding-list li:hover:before{opacity:1}.onboarding-button{background:#fff;color:#6366f1;border:none;border-radius:100px;padding:1.25rem 3.5rem;font-size:1.175rem;font-weight:700;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 12px 40px #0003,0 0 #ffffff80;width:auto;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin-top:2.5rem;position:relative;overflow:hidden;letter-spacing:-.01em}.onboarding-button:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#6366f1,#8b5cf6,#d946ef);opacity:0;transition:opacity .4s;border-radius:100px}.onboarding-button:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 16px 48px #00000040,0 0 0 8px #fff3;color:#fff}.onboarding-button:hover:before{opacity:1}.onboarding-button:active{transform:translateY(-2px) scale(1.02)}.onboarding-button span{position:relative;z-index:1}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@media(max-width:768px){.onboarding-modal{padding:8rem 1.5rem 3rem}.onboarding-icon{font-size:4.5rem}.onboarding-title{font-size:2rem;line-height:1.25}.onboarding-subtitle{font-size:1.075rem}.onboarding-button{padding:1.125rem 2.75rem;font-size:1.05rem}.onboarding-features,.onboarding-content{max-width:100%}.onboarding-list li{font-size:1rem;padding:.875rem 1rem}.onboarding-skip{top:1.25rem;right:1.25rem;width:2.5rem;height:2.5rem}.onboarding-indicators{top:1.25rem;padding:.65rem 1rem}.onboarding-hint{display:none!important}}@media(max-width:480px){.onboarding-modal{padding:7rem 1.25rem 2.5rem}.onboarding-icon{font-size:4rem}.onboarding-title{font-size:1.75rem;line-height:1.3}.onboarding-subtitle{font-size:1rem}.onboarding-button{padding:1rem 2.25rem;font-size:1rem}.onboarding-list li{font-size:.975rem;padding:.85rem 1rem;gap:.875rem}.onboarding-skip{top:1rem;right:1rem;width:2.25rem;height:2.25rem;font-size:1.35rem}.onboarding-indicators{top:1rem;gap:10px;padding:.6rem .875rem}.indicator-dot{width:7px;height:7px}.indicator-dot.active{width:28px}.onboarding-hint{display:none!important}}.onboarding-hint{font-size:.95rem;color:#ffffffbf;margin:3rem 0 0;text-align:center;font-weight:500;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);text-shadow:0 2px 8px rgba(0,0,0,.25);padding:.75rem 1.5rem;background:#ffffff1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:100px;border:1px solid rgba(255,255,255,.2);animation:hintPulse 2s ease-in-out infinite;display:block}@keyframes hintPulse{0%,to{opacity:.8}50%{opacity:1}}body.onboarding-active .theme-toggle,body.onboarding-active .draggable-nav-wrapper{display:none!important;pointer-events:none}@media(prefers-reduced-motion:reduce){.onboarding-overlay,.onboarding-modal,.onboarding-page{animation:none}.onboarding-button:hover{transform:none}.indicator-dot{transition:none}}.student-id-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#6366f1f2,#8b5cf6f2,#d946eff2);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1.5rem;animation:fadeIn .4s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.student-id-modal{background:#fffffffa;border-radius:28px;padding:3rem 2.5rem;max-width:480px;width:100%;box-shadow:0 24px 60px #00000040;animation:slideUp .5s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.student-id-close{position:absolute;top:1.5rem;right:1.5rem;background:#6b72801a;border:none;border-radius:50%;font-size:1.5rem;color:#6b7280;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);line-height:1;padding:.5rem;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;z-index:10}.student-id-close:hover{background:#6b728033;color:#374151;transform:scale(1.1)}.student-id-close:active{transform:scale(.95)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.student-id-header{text-align:center;margin-bottom:3rem}.student-id-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.student-id-title{font-size:2rem;font-weight:800;color:#1a1a1a;margin:0 0 .75rem;letter-spacing:-.02em}.student-id-subtitle{font-size:1.05rem;color:#6b7280;margin:0;line-height:1.6}.student-id-form{display:flex;flex-direction:column;gap:2rem}.student-id-input-group{display:flex;flex-direction:column;gap:1rem}.student-id-label{font-size:.95rem;font-weight:600;color:#374151;text-align:center}.student-id-input{width:100%;padding:1.5rem;font-size:2rem;font-weight:700;text-align:center;border:3px solid #e5e7eb;border-radius:16px;outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);letter-spacing:.3rem;font-family:Courier New,monospace;background:#f9fafb;box-sizing:border-box}.student-id-input:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 4px #6366f11a}.student-id-input.valid{border-color:#10b981;background:#10b9810d}.student-id-input.error{border-color:#ef4444;background:#ef44440d;animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.student-id-hint{font-size:.875rem;color:#9ca3af;text-align:center;margin:0}.student-id-preview{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.25rem;background:linear-gradient(135deg,#10b9811a,#0596691a);border:2px solid #10b981;border-radius:14px;animation:slideDown .3s cubic-bezier(.16,1,.3,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.preview-icon{font-size:1.5rem;color:#10b981}.preview-text{font-size:1.25rem;font-weight:700;color:#059669}.student-id-error{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.25rem;background:#ef44441a;border:2px solid #ef4444;border-radius:14px;animation:slideDown .3s cubic-bezier(.16,1,.3,1)}.error-icon{font-size:1.5rem}.error-text{font-size:1rem;font-weight:600;color:#dc2626}.student-id-button{width:100%;padding:1.5rem;font-size:1.25rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6,#d946ef);border:none;border-radius:16px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 24px #6366f14d;position:relative;overflow:hidden}.student-id-button:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#d946ef,#8b5cf6,#6366f1);opacity:0;transition:opacity .3s}.student-id-button:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 12px 32px #6366f166}.student-id-button:hover:not(:disabled):before{opacity:1}.student-id-button:active:not(:disabled){transform:translateY(-1px) scale(1.01)}.student-id-button:disabled{opacity:.6;cursor:not-allowed}.student-id-button span{position:relative;z-index:1}.student-id-footer{text-align:center;margin-top:2rem}.student-id-note{font-size:.875rem;color:#9ca3af;margin:0}@media(max-width:768px){.student-id-modal{padding:2.5rem 2rem}.student-id-header{margin-bottom:2.5rem}}@media(max-width:480px){.student-id-overlay{padding:1rem}.student-id-modal{padding:2rem 1.5rem}.student-id-close{top:1rem;right:1rem;width:2.25rem;height:2.25rem;font-size:1.35rem}.student-id-header{margin-bottom:2rem}.student-id-icon{font-size:3.5rem;margin-bottom:.875rem}.student-id-title{font-size:1.65rem;margin-bottom:.5rem}.student-id-subtitle{font-size:.95rem}.student-id-form{gap:1.5rem}.student-id-input{font-size:1.75rem;padding:1.25rem;letter-spacing:.3rem}.student-id-button{padding:1.25rem;font-size:1.125rem}.preview-text{font-size:1.125rem}.student-id-footer{margin-top:1.5rem}}:root[data-theme=dark] .student-id-modal{background:#1a1a1afa}:root[data-theme=dark] .student-id-title{color:#f9fafb}:root[data-theme=dark] .student-id-subtitle{color:#9ca3af}:root[data-theme=dark] .student-id-label{color:#d1d5db}:root[data-theme=dark] .student-id-input{background:#1f2937;border-color:#374151;color:#fff}:root[data-theme=dark] .student-id-input:focus{background:#111827}:root[data-theme=dark] .student-id-close{background:#ffffff1a;color:#9ca3af}:root[data-theme=dark] .student-id-close:hover{background:#fff3;color:#d1d5db}body.student-id-modal-active .theme-toggle,body.student-id-modal-active .draggable-nav-wrapper{display:none!important;pointer-events:none}:root{--bg-color: #ffffff;--text-color: #000000;--card-bg: #ffffff;--card-border: #e0e0e0;--card-shadow: rgba(0, 0, 0, .1);--card-hover-shadow: rgba(0, 0, 0, .15);--button-bg: #007bff;--button-text: #ffffff;--button-hover-bg: #0056b3;--transition-speed: .15s;--focus-outline: #007bff}@media(prefers-color-scheme:dark){:root{--bg-color: #1a1a1a;--text-color: #ffffff;--card-bg: #2d2d2d;--card-border: #404040;--card-shadow: rgba(0, 0, 0, .3);--card-hover-shadow: rgba(0, 0, 0, .5);--button-bg: #0056b3;--button-text: #ffffff;--button-hover-bg: #007bff;--transition-speed: .15s;--focus-outline: #4da3ff}}:root[data-theme=light]{--bg-color: #ffffff;--text-color: #000000;--card-bg: #ffffff;--card-border: #e0e0e0;--card-shadow: rgba(0, 0, 0, .1);--card-hover-shadow: rgba(0, 0, 0, .15);--button-bg: #007bff;--button-text: #ffffff;--button-hover-bg: #0056b3;--transition-speed: .15s;--focus-outline: #007bff}:root[data-theme=dark]{--bg-color: #1a1a1a;--text-color: #ffffff;--card-bg: #2d2d2d;--card-border: #404040;--card-shadow: rgba(0, 0, 0, .3);--card-hover-shadow: rgba(0, 0, 0, .5);--button-bg: #0056b3;--button-text: #ffffff;--button-hover-bg: #007bff;--transition-speed: .15s;--focus-outline: #4da3ff}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--bg-color);color:var(--text-color);transition:background-color var(--transition-speed),color var(--transition-speed);min-height:100vh;line-height:1.6;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-overflow-scrolling:touch;touch-action:manipulation}#root{-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#888}.home-container{max-width:935px;margin:0 auto;padding:2rem 1rem;min-height:calc(100vh - 4rem);-webkit-overflow-scrolling:touch}.home-header{text-align:center;margin-bottom:2.5rem;padding:2rem 1rem;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1)}.home-title{font-size:2.25rem;font-weight:700;color:var(--text-color);margin:0 0 .5rem;letter-spacing:-.5px;transition:color .15s cubic-bezier(.4,0,.2,1)}.home-subtitle{font-size:1.125rem;color:var(--text-color);opacity:.7;margin:0;line-height:1.5;transition:color .15s cubic-bezier(.4,0,.2,1)}.home-feed{max-width:614px;margin:0 auto;display:flex;flex-direction:column;gap:2rem;padding-bottom:3rem}.home-weather-content{text-align:center;padding:1.5rem 1rem}.weather-icon{font-size:3.5rem;margin-bottom:1rem;line-height:1}.weather-temp{font-size:2.25rem;font-weight:700;color:var(--text-color);margin:.5rem 0;line-height:1.2;transition:color .15s cubic-bezier(.4,0,.2,1)}.weather-desc{font-size:1.0625rem;color:var(--text-color);opacity:.75;margin:0;line-height:1.5;transition:color .15s cubic-bezier(.4,0,.2,1)}.home-notice-content{display:flex;flex-direction:column;gap:1rem;padding:.5rem 0}.notice-item{color:var(--text-color);line-height:1.7;margin:0;padding:.625rem 0;opacity:.9;font-size:.9375rem;transition:color .15s cubic-bezier(.4,0,.2,1)}.card-view-more{color:#3b82f6;font-weight:600;font-size:.9375rem;cursor:pointer;transition:color .3s cubic-bezier(.25,1,.5,1),transform .3s cubic-bezier(.25,1,.5,1);display:flex;align-items:center;padding:.5rem 0;min-height:44px;line-height:1.5;position:relative}.card-view-more:after{content:"";display:inline-block;margin-left:.25rem;transition:transform .3s cubic-bezier(.25,1,.5,1)}.card-view-more:hover{color:#2563eb;transform:translate(3px)}.card-view-more:hover:after{transform:translate(2px)}.card-view-more:active{opacity:.8;transform:translate(1px)}
