.school-switcher{position:relative;display:inline-block}.school-switcher-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;cursor:pointer;transition:all .2s;font-size:.875rem;color:#374151}.school-switcher-button:hover{background:#f9fafb;border-color:#d1d5db}.school-switcher-button:disabled{opacity:.6;cursor:not-allowed}.school-switcher-current{display:flex;align-items:center;gap:.5rem}.school-icon{width:1.25rem;height:1.25rem;color:#6b7280;flex-shrink:0}.school-info{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;min-width:0}.school-name{font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.role-badge{display:inline-block;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;white-space:nowrap}.badge-admin{background:#fef3c7;color:#92400e}.badge-teacher{background:#dbeafe;color:#1e40af}.badge-student{background:#dcfce7;color:#166534}.badge-default{background:#f3f4f6;color:#374151}.chevron{width:1rem;height:1rem;color:#9ca3af;transition:transform .2s;flex-shrink:0}.chevron.open{transform:rotate(180deg)}.school-switcher-overlay{position:fixed;inset:0;background:transparent;z-index:999}.school-switcher-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:320px;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:1000;overflow:hidden}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #e5e7eb}.dropdown-header h3{margin:0;font-size:1rem;font-weight:600;color:#111827}.school-count{font-size:.75rem;color:#6b7280}.school-list{max-height:400px;overflow-y:auto}.school-item{width:100%;display:block;padding:.75rem 1rem;background:#fff;border:none;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .2s;text-align:left}.school-item:last-child{border-bottom:none}.school-item:hover{background:#f9fafb}.school-item.active{background:#eff6ff}.school-item:disabled{opacity:.6;cursor:not-allowed}.school-item-content{display:flex;flex-direction:column;gap:.5rem}.school-item-header{display:flex;justify-content:space-between;align-items:center}.school-item-name{font-weight:500;color:#111827;font-size:.875rem}.check-icon{width:1.25rem;height:1.25rem;color:#2563eb;flex-shrink:0}.school-item-meta{display:flex;gap:.5rem;align-items:center}.school-status{font-size:.75rem;color:#6b7280;text-transform:capitalize}.dropdown-footer{padding:.75rem 1rem;border-top:1px solid #e5e7eb;background:#f9fafb}.admin-link{display:flex;align-items:center;gap:.5rem;color:#7c3aed;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.admin-link:hover{color:#6d28d9}.admin-link svg{width:1rem;height:1rem}@media(max-width:640px){.school-switcher-dropdown{position:fixed;inset:auto 0 0;min-width:100%;border-radius:1rem 1rem 0 0}.school-name{max-width:150px}}@media(prefers-color-scheme:dark){.school-switcher-button{background:#1f2937;border-color:#374151;color:#f9fafb}.school-switcher-button:hover{background:#374151;border-color:#4b5563}.school-switcher-dropdown{background:#1f2937;border-color:#374151}.dropdown-header{border-bottom-color:#374151}.dropdown-header h3{color:#f9fafb}.school-item{background:#1f2937;border-bottom-color:#374151;color:#f9fafb}.school-item:hover{background:#374151}.school-item.active{background:#1e3a8a}.school-item-name{color:#f9fafb}.dropdown-footer{background:#111827;border-top-color:#374151}}.navigation{background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(0,0,0,.26);position:sticky;top:0;z-index:100}.nav-container{max-width:1400px;margin:0 auto;padding:.25rem 1.25rem;min-height:56px;display:flex;justify-content:space-between;align-items:center;position:relative;gap:1rem}.nav-brand{display:flex;align-items:center;gap:.75rem}.nav-logo{width:48px;height:48px;border-radius:12px;object-fit:contain;box-shadow:0 6px 14px #00000054}.nav-brand-text h1{font-size:1.25rem;margin:0;color:navy}.nav-brand-text{display:flex;flex-direction:column;line-height:1.1}.nav-subtitle{font-size:.7rem;text-transform:uppercase;letter-spacing:.25rem;color:#4682b4;margin-top:.1rem}.user-email{display:block;color:#000000c7;font-size:.75rem;margin-top:.25rem}.nav-actions{display:flex;align-items:center;gap:1rem;margin-left:auto;margin-right:1rem}@media(max-width:768px){.nav-actions{margin-right:.5rem}}.menu-toggle{display:block;background:#4682b459;border:2px solid rgba(70,130,180,.5);color:#fff;padding:.5rem;border-radius:999px;cursor:pointer;transition:all .2s;z-index:102;margin-left:auto}.menu-toggle:hover{background:#0000808c}.nav-links{position:fixed;top:0;right:-100%;width:320px;max-width:90vw;height:100vh;background:linear-gradient(135deg,#fff 0% 50%,#fff);display:flex;flex-direction:column;padding:5rem 1.5rem 2rem;gap:.5rem;transition:right .3s ease-in-out;box-shadow:-5px 0 15px #0000007a;overflow-y:auto;z-index:101}.nav-links.open{right:0}.nav-link{width:100%;display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:transparent;color:#000;border-radius:8px;font-weight:600;transition:all .2s;border:2px solid transparent;cursor:pointer;white-space:nowrap;justify-content:flex-start;font-size:1rem}.nav-link:hover{background:#4682b44d}.nav-link.active{background:#fff;color:#4682b4;border-color:#fff}.nav-link.back-btn{background:#ffffff54;border:2px solid rgba(255,255,255,.48)}.nav-link.back-btn:hover{background:#ffffff6e;transform:translate(-2px)}.nav-link.admin-link{background:linear-gradient(135deg,#fbbf24,#f59e0b);border:none;color:#fff;text-decoration:none;box-shadow:0 4px 12px #fbbf244d}.nav-link.admin-link:hover{background:linear-gradient(135deg,#f59e0b,#d97706);transform:translateY(-2px);box-shadow:0 6px 16px #fbbf2466}.nav-link.logout-btn{background:linear-gradient(135deg,navy,#4682b4);border:none;color:#fff;box-shadow:0 8px 20px #00000040}.nav-link.logout-btn:hover{background:linear-gradient(135deg,#000070,#3b6fa3)}.nav-overlay{display:block;position:fixed;top:0;left:0;width:100%;height:100vh;background:#000000ad;z-index:100}@media(max-width:768px){.nav-brand h1{font-size:1.5rem}.nav-subtitle{font-size:.75rem}.user-email{font-size:.7rem}}@media(max-width:480px){.nav-container{padding:.75rem}.nav-brand h1{font-size:1.3rem}.nav-subtitle{display:none}.nav-links{width:85%;max-width:none}}.auth-container{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:hidden}.auth-background{position:absolute;inset:0;z-index:0}.auth-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.6;animation:float 20s ease-in-out infinite}.auth-blob-1{width:400px;height:400px;background:linear-gradient(135deg,#8b5cf6,#7c3aed);top:-100px;left:-100px}.auth-blob-2{width:350px;height:350px;background:linear-gradient(135deg,#ec4899,#db2777);bottom:-100px;right:-100px;animation-delay:-7s}.auth-blob-3{width:300px;height:300px;background:linear-gradient(135deg,#3b82f6,#2563eb);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:-14s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.auth-card{position:relative;z-index:1;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:3rem;max-width:480px;width:100%;box-shadow:0 20px 60px #0000007a}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo-large{width:120px;height:120px;margin:0 auto 1.5rem;display:block;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.33));animation:pulse 2s ease-in-out infinite}.auth-tagline{color:#6b7280;font-size:1.2rem;margin:0}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.auth-header h1{font-size:2.5rem;color:#1f2937;margin-bottom:.5rem}.auth-header p{color:#6b7280;font-size:1.1rem}.auth-tabs{display:flex;gap:.5rem;margin-bottom:2rem;background:#f3f4f6;padding:.375rem;border-radius:12px}.auth-tab{flex:1;padding:.875rem 1.5rem;border-radius:10px;font-weight:600;font-size:1rem;color:#6b7280;background:transparent;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-tab.active{background:#fff;color:#8b5cf6;box-shadow:0 2px 8px #00000047}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#374151;font-size:.95rem}.form-field input{padding:1rem 1.25rem;border:2px solid #e5e7eb;border-radius:12px;font-size:1rem;transition:all .2s;background:#fff}.form-field input:focus,.form-field select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf647}.role-select{width:100%;padding:.875rem;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;transition:all .2s;background:#fff;cursor:pointer}.auth-error{background:#fee2e2;color:#dc2626;padding:1rem;border-radius:10px;font-size:.95rem;font-weight:500;text-align:center}.auth-submit{background:linear-gradient(135deg,navy,#001a7a);color:#fff;padding:1.125rem 2rem;border-radius:12px;font-size:1.1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 6px 20px #00008094;transition:all .2s;margin-top:.5rem}.auth-submit:hover:not(:disabled){transform:translateY(-2px);background:linear-gradient(135deg,#001a7a,#0028a3);box-shadow:0 8px 24px #8b5cf6ad}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.48);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.auth-switch{text-align:center;margin-top:2rem;padding-top:2rem;border-top:1px solid #e5e7eb}.auth-switch p{color:#6b7280;font-size:.95rem}.switch-btn{background:none;border:none;color:#8b5cf6;font-weight:600;cursor:pointer;text-decoration:underline;transition:color .2s}.switch-btn:hover{color:#7c3aed}@media(max-width:640px){.auth-container{padding:1rem}.auth-card{padding:2rem 1.5rem}.auth-header h1{font-size:2rem}.auth-tab{font-size:.9rem;padding:.75rem 1rem}}.landing-page{min-height:100vh;background:linear-gradient(135deg,#fff 0% 50%,#fff);display:flex;flex-direction:column}.landing-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 3rem;background:#ffffff47;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.38)}.landing-brand{display:flex;align-items:center;gap:1rem;color:#000}.landing-logo-large{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 4px 6px rgba(0,0,0,.38))}.landing-brand h1{font-size:2rem;font-weight:700;margin:0;color:#000}.landing-user-info{display:flex;align-items:center;gap:1.5rem}.user-details{text-align:right;color:#000}.user-name{font-size:1.1rem;font-weight:600;margin:0;color:#00f}.user-email{font-size:.9rem;opacity:.8;margin:.25rem 0 0}.logout-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,navy,#4682b4);border:2px solid #000080;border-radius:12px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #0000804d}.logout-button:hover{background:linear-gradient(135deg,#0000a0,#5a9ad4);transform:translateY(-2px);box-shadow:0 6px 16px #00008066}.landing-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:3rem}.landing-welcome{text-align:center;color:#000}.landing-welcome h2{font-size:2.5rem;margin:0 0 .75rem;font-weight:700;text-shadow:0 4px 12px rgba(0,0,0,.38)}.landing-welcome p{font-size:1.1rem;opacity:.9;margin:0}.mode-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;max-width:600px;width:100%}.mode-card{background:#fff;border-radius:20px;padding:2rem;cursor:pointer;transition:all .3s;box-shadow:0 10px 40px #00000061;display:flex;flex-direction:column;align-items:center;text-align:center}.mode-card:hover{transform:translateY(-10px);box-shadow:0 20px 60px #0000007a}.student-card:hover{border:3px solid #3b82f6}.teacher-card:hover{border:3px solid #000080}.mode-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;transition:all .3s}.student-card .mode-icon{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.teacher-card .mode-icon{background:linear-gradient(135deg,navy,#4682b4);color:#fff}.mode-card:hover .mode-icon{transform:scale(1.1) rotate(5deg)}.mode-card h3{font-size:1.5rem;margin:0 0 .75rem;color:#1f2937}.mode-card p{font-size:.95rem;color:#6b7280;margin:0 0 1.5rem;line-height:1.6}.mode-features{list-style:none;padding:0;margin:0 0 1.5rem;width:100%}.mode-features li{padding:.6rem .9rem;background:#f3f4f6;border-radius:8px;margin-bottom:.6rem;color:#374151;font-weight:500;font-size:.9rem;transition:all .2s}.mode-features li:hover{background:#e5e7eb;transform:translate(5px)}.mode-button{width:100%;padding:1rem 1.5rem;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-top:auto}.student-card .mode-button{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 6px 20px #3b82f694}.student-card .mode-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3b82f6ad}.teacher-card .mode-button{background:linear-gradient(135deg,navy,#4682b4);color:#fff;box-shadow:0 6px 20px #00008094}.teacher-card .mode-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #000080ad}.landing-footer{text-align:center;padding:2rem;color:#fff;opacity:.8;font-size:.9rem}@media(max-width:900px){.mode-cards{grid-template-columns:1fr}.landing-welcome h2{font-size:2rem}.landing-welcome p{font-size:1.1rem}.landing-header{flex-direction:column;gap:1.5rem}.landing-user-info{flex-direction:column}.user-details{text-align:center}}.loading-screen-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff 0% 50%,#fff);z-index:9999;animation:fadeIn .3s ease-in-out}.loading-container{display:flex;align-items:center;justify-content:center;padding:3rem 1rem;min-height:300px}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.loading-spinner{width:60px;height:60px;border:5px solid rgba(255,255,255,.48);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1.5rem}.loading-text{color:#fff;font-size:1.25rem;font-weight:500;margin:0;animation:pulse 1.5s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media(max-width:768px){.loading-spinner{width:50px;height:50px;border-width:4px}.loading-text{font-size:1.1rem}}@media(max-width:480px){.loading-spinner{width:45px;height:45px}.loading-text{font-size:1rem}}*{box-sizing:border-box}.app{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}.main-content{flex:1;width:100%;max-width:100vw;overflow-x:hidden}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#fff 0% 60%,#fff);color:#fff;padding:1rem}.loading-screen .spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.48);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.loading-screen p{font-size:1.2rem;font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}.user-email{display:block;font-size:.75rem;color:#ffffffe0;margin-top:.25rem}.logout-btn{margin-left:auto;color:#fca5a5!important}.logout-btn:hover{color:#f87171!important;background:#f8717147!important}@media(max-width:768px){.loading-screen p{font-size:1rem;text-align:center}}@media(max-width:480px){.loading-screen .spinner{width:40px;height:40px}.loading-screen p{font-size:.9rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;min-height:100vh}#root{min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea{font-family:inherit}
