:root{--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-secondary: #515978;--color-accent: #007bff;--color-accent-hover: #0056b3;--color-success: #28a745;--color-success-hover: #218838;--color-danger: #dc3545;--color-danger-hover: #c82333;--color-warning: #ffc107;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--bg-quaternary: #fafafa;--bg-gradient-start: #f8f9fa;--bg-gradient-end: #e9ecef;--bg-surface: #ffffff;--text-primary: #213554;--text-secondary: #515978;--text-muted: #6c757d;--text-light: #a8b3c7;--text-white: #ffffff;--text-heading: #1a2b44;--border-light: #e9ecef;--border-medium: #dee2e6;--border-dark: #adb5bd;--border-primary: #213554;--shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--shadow-md: 0 .5rem 1rem rgba(0, 0, 0, .15);--shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--shadow-xl: 0 2.5rem 5rem rgba(0, 0, 0, .25);--navbar-bg: #ffffff;--navbar-text: #213554;--navbar-border: #e9ecef;--card-bg: #ffffff;--card-border: #e9ecef;--card-shadow: var(--shadow-sm);--button-bg: #4f46e5;--button-text: #ffffff;--button-border: #4f46e5;--input-bg: #ffffff;--input-border: #ced4da;--input-focus-border: #007bff;--modal-bg: #ffffff;--modal-overlay: rgba(0, 0, 0, .5)}[data-theme=dark],html:not([data-gejo-theme]){--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-secondary: #a0aec0;--color-accent: #4f46e5;--color-accent-hover: #4338ca;--color-success: #28a745;--color-success-hover: #218838;--color-danger: #dc3545;--color-danger-hover: #c82333;--color-warning: #ffc107;--bg-primary: #121212;--bg-secondary: #1a1a1a;--bg-tertiary: #2d2d2d;--bg-quaternary: #252525;--bg-gradient-start: #1a1a1a;--bg-gradient-end: #2d2d2d;--bg-surface: #1a1a1a;--text-primary: #ffffff;--text-secondary: #a0aec0;--text-muted: #6c757d;--text-light: #a0aec0;--text-white: #ffffff;--text-heading: #ffffff;--border-light: #2d2d2d;--border-medium: #4b5563;--border-dark: #6c757d;--border-primary: #4f46e5;--shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .3);--shadow-md: 0 .5rem 1rem rgba(0, 0, 0, .4);--shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .5);--shadow-xl: 0 2.5rem 5rem rgba(0, 0, 0, .6);--navbar-bg: #1a1a1a;--navbar-text: #ffffff;--navbar-border: #2d2d2d;--card-bg: #1a1a1a;--card-border: #2d2d2d;--card-shadow: var(--shadow-md);--button-bg: #4f46e5;--button-text: #ffffff;--button-border: #4f46e5;--input-bg: #2d2d2d;--input-border: #4b5563;--input-focus-border: #4f46e5;--modal-bg: #1a1a1a;--modal-overlay: rgba(0, 0, 0, .7)}[data-gejo-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--bg-quaternary: #fafafa;--bg-surface: #ffffff;--text-primary: #213554;--text-secondary: #515978;--text-muted: #6c757d;--text-heading: #1a2b44;--border-light: #e9ecef;--border-medium: #dee2e6;--navbar-bg: #ffffff;--navbar-text: #213554;--navbar-border: #e9ecef;--card-bg: #ffffff;--card-border: #e9ecef;--input-bg: #ffffff;--input-border: #ced4da;--modal-bg: #ffffff}[data-gejo-theme=light] body,[data-gejo-theme=light] .app-shell,[data-gejo-theme=light] .app-main,[data-gejo-theme=light] .page-content,[data-gejo-theme=light] .instructor-page,[data-gejo-theme=light] .course-studio-page{background-color:var(--bg-primary)!important;color:var(--text-primary)!important}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}.app-header{position:relative;background:var(--bg-surface);border-bottom:1px solid var(--border-light);transition:background-color .3s ease,border-color .3s ease}.theme-switcher{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:#18181bb8;color:#e2e8f0;box-shadow:0 8px 18px #0000002e;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}.theme-switcher:hover{transform:translateY(-1px);background:#27272adb;color:#fff;border-color:#94a3b847;box-shadow:0 12px 22px #0000003d}.theme-switcher:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.theme-switcher svg{width:16px;height:16px;flex-shrink:0}.theme-switcher-label{font-size:.875rem;font-weight:500}[data-gejo-theme=light] .theme-switcher{border:1px solid rgba(29,78,216,.16);background:linear-gradient(180deg,#fffffffa,#eff6ffeb);color:#1d4ed8;box-shadow:0 8px 20px #2563eb14}[data-gejo-theme=light] .theme-switcher:hover{transform:translateY(-1px);box-shadow:0 12px 24px #2563eb1f;background:linear-gradient(180deg,#fff,#dcebfff2)}[data-gejo-theme=light] .theme-switcher:focus-visible{outline:2px solid rgba(29,78,216,.42);outline-offset:2px}.theme-toggle{position:absolute;top:50%;right:1rem;transform:translateY(-50%);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;cursor:pointer;transition:all .3s ease;z-index:1000}.theme-toggle:hover{background:var(--bg-tertiary);border-color:var(--border-medium);transform:translateY(-50%) scale(1.05)}.theme-toggle:focus{outline:2px solid var(--color-accent);outline-offset:2px}.site-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--navbar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--navbar-border);position:sticky;top:0;z-index:1000;transition:background-color .3s ease,border-color .3s ease}[data-theme=dark] .site-header{background-color:#1a1a1acc}.logo a{font-weight:700;font-size:1.5rem;color:var(--navbar-text);text-decoration:none;display:flex;align-items:center;gap:.75rem;transition:color .3s ease}.logo a img{height:40px}.main-nav{display:flex;align-items:center;gap:2rem}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{color:var(--text-secondary);text-decoration:none;transition:color .3s ease}.nav-links a:hover{color:var(--navbar-text)}.nav-actions{display:flex;align-items:center;gap:1rem}.nav-actions .btn-primary{background-color:var(--button-bg);color:var(--button-text)}.nav-actions .btn-primary:hover{background-color:var(--color-primary-hover);color:var(--button-text)}.nav-actions .btn-secondary{color:#fff;background:transparent}.nav-actions .user-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--color-primary);background-color:var(--bg-tertiary);padding:4px}.user-menu-container{position:relative}.user-menu-trigger{background:none;border:none;padding:.5rem .8rem;border-radius:9999px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background-color .2s ease}.user-menu-trigger:hover{background-color:var(--bg-tertiary)}.user-menu-caret{width:16px;height:16px;stroke:var(--text-secondary);transition:transform .2s ease,stroke .3s ease}.user-menu-trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.user-menu-trigger[aria-expanded=true] .user-menu-caret{transform:rotate(180deg)}.user-menu-dropdown{position:absolute;top:calc(100% + 10px);right:0;background-color:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;box-shadow:var(--shadow-lg);width:240px;z-index:1001;opacity:0;transform:translateY(-10px);visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s}.user-menu-dropdown.show{opacity:1;transform:translateY(0);visibility:visible}.dropdown-header{padding:1rem;border-bottom:1px solid var(--border-light)}.dropdown-user-name{font-weight:700;color:var(--text-primary);margin:0}.dropdown-user-email{font-size:.875rem;color:var(--text-secondary);margin:0;word-break:break-all}.dropdown-links{list-style:none;padding:.5rem 0;margin:0}.dropdown-links li a{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--text-secondary);text-decoration:none;transition:background-color .2s ease,color .2s ease}.dropdown-links li a:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.dropdown-links li a svg{width:16px;height:16px;stroke:currentColor}.menu-toggle,.menu-toggle .close-icon{display:none}@media (max-width: 768px){.main-nav{display:none;flex-direction:column;position:absolute;top:100%;left:0;width:100%;background-color:var(--navbar-bg);border-top:1px solid var(--navbar-border)}[data-theme=dark] .main-nav{background-color:#1a1a1af2}.main-nav.active{display:flex}.nav-links{flex-direction:column;width:100%;gap:0}.nav-links li{text-align:center;padding:1rem 0;border-bottom:1px solid var(--navbar-border);width:100%}.menu-toggle{display:block;background:none;border:none;color:var(--navbar-text);font-size:2rem;cursor:pointer;line-height:1}.nav-actions{flex-direction:column;padding:1rem;gap:1rem}.site-header.menu-open .menu-toggle .hamburger-icon{display:none}.site-header.menu-open .menu-toggle .close-icon{display:block;font-size:2.5rem}.logo a span{display:none}}.btn{padding:.5rem 1.25rem;border-radius:8px;text-decoration:none;font-weight:700;transition:background-color .3s ease,color .3s ease;display:inline-block;text-align:center;cursor:pointer;border:0}.btn-secondary{color:#fff;background:transparent}.btn-primary{background-color:var(--button-bg);color:var(--button-text)}.btn-primary:hover{background-color:var(--color-primary-hover);color:var(--button-text)}.app-main{flex:1;background:var(--bg-primary);transition:background-color .3s ease}.app-main.loading{display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:40px;height:40px;border:4px solid var(--border-light);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner p{color:var(--text-secondary);font-size:1rem;margin:0}.loading-instructor{display:flex;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--bg-primary);color:var(--text-secondary);font-size:1.1rem;min-height:300px}.loading-instructor:before{content:"";width:24px;height:24px;border:2px solid var(--border-light);border-top:2px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-right:1rem}.loading-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--bg-primary);min-height:300px;text-align:center}.loading-error p{color:var(--color-danger);font-size:1.1rem;margin:0 0 1.5rem}.loading-error .btn{padding:.75rem 1.5rem;background-color:var(--color-primary);color:var(--text-white);border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s ease}.loading-error .btn:hover{background-color:var(--color-primary-hover)}.page-content{width:100%;min-height:100%;background:var(--bg-primary);transition:background-color .3s ease}.container{max-width:1200px;margin:0 auto;padding:2rem}.site-footer{background:var(--color-primary);color:var(--text-white);padding:0;margin-top:auto;transition:background-color .3s ease}[data-theme=dark] .site-footer{background:#1a1a1a;border-top:1px solid #2d2d2d}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:2rem}.footer-section h3,.footer-section h4{margin-bottom:1rem;color:var(--text-white)}.footer-section p{color:var(--text-light);line-height:1.6}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin-bottom:.5rem}.footer-section ul li a{color:var(--text-light);text-decoration:none;transition:color .3s ease}.footer-section ul li a:hover{color:var(--text-white)}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:0;padding-bottom:0;text-align:center}[data-theme=dark] .footer-bottom{border-top:1px solid rgba(255,255,255,.1)}.footer-bottom p{margin:0;color:var(--text-light);font-size:13px}@media (max-width: 768px){.site-footer{padding:0rem 2rem 2rem}}.home-page{background:var(--bg-primary)}.home-page .hero{position:relative;display:flex;justify-content:center;align-items:center;text-align:center;min-height:80vh;padding:4rem 2rem;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);transition:background .3s ease}[data-theme=dark] .home-page .hero{background:linear-gradient(135deg,#121212,#1a1a1a)}.home-page .hero-content{max-width:900px;margin:0 auto;position:relative;z-index:2}.home-page .hero-content h1{font-size:4rem;font-weight:700;margin-bottom:1.5rem;background:linear-gradient(90deg,#4f46e5,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2;animation:fadeInUp .8s ease-out}.home-page .hero-content p{font-size:1.5rem;color:var(--text-secondary);margin-bottom:2.5rem;line-height:1.6;animation:fadeInUp .8s ease-out .2s both}.home-page .hero-actions{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;animation:fadeInUp .8s ease-out .4s both}.home-page .hero-actions .btn{padding:1rem 2.5rem;font-size:1.1rem;border-radius:8px;text-decoration:none;font-weight:600;transition:all .3s ease;box-shadow:var(--shadow-md)}.home-page .hero-actions .btn-primary{background-color:var(--color-primary);color:var(--text-white)}.home-page .hero-actions .btn-primary:hover{background-color:var(--color-primary-hover);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.home-page .hero-actions .btn-secondary{background-color:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}[data-theme=dark] .home-page .hero-actions .btn-secondary{color:var(--text-white)}.home-page .hero-actions .btn-secondary:hover{background-color:var(--color-primary);color:var(--text-white);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.home-page .quick-access{padding:4rem 2rem;background:var(--bg-secondary);transition:background .3s ease}.home-page .quick-access h2{text-align:center;font-size:2.5rem;font-weight:700;margin-bottom:3rem;color:var(--text-primary);background:linear-gradient(90deg,#4f46e5,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-page .access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;max-width:1200px;margin:0 auto}.home-page .access-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:12px;padding:2.5rem 2rem;text-align:center;text-decoration:none;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:1rem;box-shadow:var(--shadow-sm)}.home-page .access-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}[data-theme=dark] .home-page .access-card:hover{box-shadow:0 10px 25px #4f46e526,0 5px 15px #ec48991a}.home-page .access-icon{width:64px;height:64px;background:linear-gradient(135deg,#4f46e5,#ec4899);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;transition:transform .3s ease}.home-page .access-card:hover .access-icon{transform:scale(1.1)}.home-page .access-icon svg{color:#fff;stroke:#fff}.home-page .access-card h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0;transition:color .3s ease}.home-page .access-card p{font-size:.95rem;color:var(--text-secondary);margin:0;line-height:1.6;transition:color .3s ease}.home-page .access-card:hover h3{background:linear-gradient(90deg,#4f46e5,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-page .access-card:hover p{color:var(--text-primary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.container{padding:1rem}.theme-toggle{right:.5rem;width:40px;height:40px;font-size:1rem}.footer-content{grid-template-columns:1fr;gap:1.5rem}.home-page .hero{min-height:70vh;padding:3rem 1.5rem}.home-page .hero-content h1{font-size:2.5rem}.home-page .hero-content p{font-size:1.2rem;margin-bottom:2rem}.home-page .hero-actions{flex-direction:column;gap:1rem}.home-page .hero-actions .btn{width:100%;max-width:300px}.home-page .quick-access{padding:3rem 1.5rem}.home-page .quick-access h2{font-size:2rem;margin-bottom:2rem}.home-page .access-grid{grid-template-columns:1fr;gap:1.5rem}.home-page .access-card{padding:2rem 1.5rem}}
