@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-dark: #070b16;--bg-deep: #0c1222;--bg-gradient: linear-gradient(140deg, #070b16 0%, #0f1629 35%, #151c38 65%, #0e1a30 100%);--surface-color: rgba(15, 23, 50, .55);--surface-elevated: rgba(22, 33, 62, .6);--surface-border: rgba(255, 255, 255, .07);--surface-border-hover: rgba(255, 255, 255, .14);--primary: #818cf8;--primary-hover: #6366f1;--primary-glow: rgba(129, 140, 248, .35);--primary-soft: rgba(129, 140, 248, .08);--secondary: #a78bfa;--accent-teal: #2dd4bf;--accent-amber: #fbbf24;--danger: #f87171;--danger-bg: rgba(248, 113, 113, .08);--success: #34d399;--success-bg: rgba(52, 211, 153, .08);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .08);--text-main: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #64748b;--text-dim: #475569;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .2);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .35), 0 4px 12px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .45), 0 8px 20px rgba(0, 0, 0, .3);--shadow-glow: 0 0 20px var(--primary-glow), 0 0 60px rgba(129, 140, 248, .1);--shadow-glow-sm: 0 0 10px rgba(129, 140, 248, .2);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .04);--glass-blur: 16px;--glass-bg: rgba(15, 23, 50, .5);--glass-bg-heavy: rgba(10, 17, 40, .7);--glass-shine: linear-gradient(135deg, rgba(255,255,255,.06) 0%, transparent 50%);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-full: 9999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--transition-fast: .15s var(--ease-out);--transition-base: .25s var(--ease-out);--transition-slow: .4s var(--ease-out);--gradient-primary: linear-gradient(135deg, #818cf8 0%, #a78bfa 100%);--gradient-accent: linear-gradient(135deg, #818cf8 0%, #2dd4bf 100%);--gradient-warm: linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #34d399 100%);--gradient-cool: linear-gradient(135deg, #7c3aed 0%, #2563eb 50%, #0891b2 100%);--surface-0: rgba(15, 23, 50, .3);--surface-1: rgba(15, 23, 50, .55);--surface-2: rgba(15, 23, 50, .78);--surface-3: rgba(10, 17, 40, .92);--hover-lift: translateY(-2px);--focus-glow: 0 0 0 3px rgba(129, 140, 248, .18);--glow-primary: 0 0 24px rgba(129, 140, 248, .35);--glow-accent: 0 0 24px rgba(45, 212, 191, .35);--glow-warm: 0 0 24px rgba(251, 191, 36, .35)}.modern-card{position:relative;border-radius:var(--radius-lg);background:radial-gradient(ellipse at top left,rgba(129,140,248,.08) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(45,212,191,.06) 0%,transparent 50%),var(--surface-1);border:1px solid rgba(129,140,248,.15);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:0 16px 40px -16px #00000073,inset 0 1px #ffffff0a;overflow:hidden}.modern-card.elevated{background:radial-gradient(ellipse at top left,rgba(129,140,248,.12) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(45,212,191,.08) 0%,transparent 50%),var(--surface-2);box-shadow:0 24px 60px -16px #0000008c,inset 0 1px #ffffff0f}.modern-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.7rem 1.15rem;background:var(--gradient-cool);border:none;border-radius:var(--radius-md);color:#fff;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;overflow:hidden;transition:all var(--transition-base);box-shadow:0 8px 24px -8px var(--primary-glow);letter-spacing:.01em}.modern-btn:hover:not(:disabled){transform:var(--hover-lift);box-shadow:0 14px 32px -8px var(--primary-glow)}.modern-btn:active:not(:disabled){transform:translateY(0)}.modern-btn:disabled{opacity:.55;cursor:not-allowed}.modern-btn:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transform:translate(-100%);transition:transform .7s;pointer-events:none}.modern-btn:hover:not(:disabled):before{transform:translate(100%)}.modern-btn-ghost{background:transparent;border:1px solid rgba(129,140,248,.4);color:var(--text-main);box-shadow:none}.modern-btn-ghost:hover:not(:disabled){background:#818cf81a;border-color:var(--primary);box-shadow:0 4px 16px -4px var(--primary-glow)}.modern-btn-danger{background:linear-gradient(135deg,#ef4444,#f87171);box-shadow:0 8px 24px -8px #ef444466}.modern-btn-success{background:var(--gradient-success);box-shadow:0 8px 24px -8px #10b98166}.modern-input{width:100%;padding:.7rem .9rem;background:#0000004d;border:1px solid rgba(129,140,248,.18);border-radius:var(--radius-md);color:var(--text-main);font-family:inherit;font-size:.88rem;transition:all var(--transition-base);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modern-input::placeholder{color:var(--text-muted)}.modern-input:focus{outline:none;border-color:var(--primary);background:#0006;box-shadow:var(--focus-glow)}.modern-stat-chip{padding:.75rem .9rem;background:linear-gradient(180deg,#818cf814,#a78bfa0a);border:1px solid rgba(129,140,248,.18);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--transition-base)}.modern-stat-chip:hover{transform:var(--hover-lift);border-color:#818cf866;box-shadow:0 8px 20px -8px var(--primary-glow)}.modern-stat-value{font-size:1.4rem;font-weight:800;color:var(--text-main);line-height:1;margin-bottom:.2rem;font-variant-numeric:tabular-nums}.modern-stat-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.modern-gradient-text{background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:-.01em}@keyframes modern-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.modern-pulse-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent-teal);box-shadow:0 0 12px var(--accent-teal);animation:modern-pulse 2s ease-in-out infinite}.modern-hover-lift{transition:all var(--transition-base)}.modern-hover-lift:hover{transform:var(--hover-lift);box-shadow:0 12px 28px -8px var(--primary-glow)}.ui-btn:hover:not(:disabled) .ui-btn-shine{transform:translate(100%)!important}@keyframes bg-orb-orbit{0%{transform:rotate(0) translate(8%) rotate(0)}to{transform:rotate(360deg) translate(8%) rotate(-360deg)}}@keyframes bg-grid-drift{0%{transform:translate(0)}to{transform:translate(36px,36px)}}@keyframes card-accent-pulse{0%,to{opacity:.25}50%{opacity:.7}}@keyframes bg-glyph-drift{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(10px,-15px) rotate(5deg)}50%{transform:translate(-8px,-25px) rotate(-3deg)}75%{transform:translate(12px,-10px) rotate(7deg)}}@keyframes bg-code-fall{0%{transform:translateY(-20%);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(160vh);opacity:0}}@keyframes bg-pulse-dot{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}@keyframes bg-scan-sweep{0%,to{top:-2%;opacity:0}10%{opacity:.8}50%{top:100%;opacity:.5}90%{opacity:.8}}.has-animated-bg{position:relative;overflow:hidden}.has-animated-bg:before{content:"";position:absolute;inset:-2px;background-image:linear-gradient(rgba(139,92,246,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.06) 1px,transparent 1px);background-size:36px 36px;animation:bg-grid-drift 22s linear infinite;pointer-events:none;z-index:0}.has-animated-bg:after{content:"";position:absolute;width:200%;height:200%;top:-50%;left:-50%;background:radial-gradient(circle at 50% 50%,rgba(124,58,237,.1) 0%,rgba(34,211,238,.06) 25%,transparent 50%);animation:bg-orb-orbit 18s linear infinite;pointer-events:none;z-index:0}.has-animated-bg>*{position:relative;z-index:1}.has-animated-bg.warm:after{background:radial-gradient(circle at 50% 50%,rgba(251,191,36,.1) 0%,rgba(239,68,68,.06) 25%,transparent 50%)}.has-animated-bg.success:after{background:radial-gradient(circle at 50% 50%,rgba(16,185,129,.1) 0%,rgba(45,212,191,.06) 25%,transparent 50%)}.modern-card{position:relative}.modern-card:before{content:"";position:absolute;bottom:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.45;animation:card-accent-pulse 4s ease-in-out infinite;pointer-events:none;z-index:0}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-gradient);background-attachment:fixed;color:var(--text-main);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;font-size:16px;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0}#root{flex-grow:1;display:flex;flex-direction:column;position:relative;z-index:1}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--shadow-inset);position:relative;overflow:hidden}.glass-panel:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.6;animation:card-accent-pulse 4s ease-in-out infinite;pointer-events:none;z-index:2}.glass-panel-heavy{background:var(--glass-bg-heavy);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl),var(--shadow-inset)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin-bottom:.5em;color:var(--text-main);letter-spacing:-.02em}h1{font-size:2.25rem;font-weight:800;background:linear-gradient(135deg,var(--text-main) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}h2{font-size:1.75rem}h3{font-size:1.25rem}p{color:var(--text-secondary);line-height:1.7;margin-bottom:1rem}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--secondary)}.input-group{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.5rem}.input-label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;transition:color var(--transition-fast)}.input-group:focus-within .input-label{color:var(--primary)}.form-input{width:100%;padding:.75rem 1rem;background:#0a0f2399;border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-main);font-size:.95rem;font-family:inherit;transition:all var(--transition-base);outline:none;box-shadow:inset 0 1px 3px #0003}.form-input:hover{border-color:var(--surface-border-hover)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #818cf826,inset 0 1px 3px #0003;background:#0a0f23cc}.form-input::placeholder{color:var(--text-dim)}select.form-input,select{color-scheme:dark;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}select.form-input option,select option{background:#131b35;color:#e2e8f0;padding:.5rem}select.form-input option:checked,select option:checked{background:#818cf84d;color:#c4b5fd}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.4rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;font-family:inherit;cursor:pointer;transition:all var(--transition-base);border:none;outline:none;position:relative;overflow:hidden;letter-spacing:.01em}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}.btn:hover:after{opacity:1}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);color:#fff;box-shadow:var(--shadow-md),0 0 20px #818cf826}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-glow),var(--shadow-md);filter:brightness(1.1)}.btn-primary:active:not(:disabled){transform:translateY(1px);filter:brightness(.95)}.btn-secondary{background:#ffffff0a;color:var(--text-main);border:1px solid var(--surface-border);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:#ffffff14;border-color:var(--surface-border-hover);transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:var(--shadow-md)}.btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 20px #ef44444d,var(--shadow-md);filter:brightness(1.1)}.btn-ghost{background:transparent;color:var(--text-muted);padding:.5rem .75rem}.btn-ghost:hover:not(:disabled){color:var(--text-main);background:#ffffff0d}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;filter:none!important}.btn-small{padding:.4rem .75rem;font-size:.8rem}.btn-icon{padding:.5rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;position:relative;overflow:hidden}.auth-bg-shape1{position:absolute;top:-15%;left:-10%;width:55vw;height:55vw;border-radius:50%;background:radial-gradient(circle,rgba(129,140,248,.12) 0%,transparent 65%);z-index:0;filter:blur(60px);pointer-events:none;animation:float-slow 20s ease-in-out infinite}.auth-bg-shape2{position:absolute;bottom:-20%;right:-10%;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(circle,rgba(45,212,191,.08) 0%,transparent 65%);z-index:0;filter:blur(60px);pointer-events:none;animation:float-slow 25s ease-in-out infinite reverse}@keyframes float-slow{0%,to{transform:translate(0) scale(1)}33%{transform:translate(2%,-3%) scale(1.03)}66%{transform:translate(-2%,2%) scale(.97)}}.auth-card{width:100%;max-width:440px;padding:2.5rem;position:relative;z-index:10;animation:fadeSlideUp .6s var(--ease-out)}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h2{background:linear-gradient(135deg,var(--text-main),var(--primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:1.75rem}.auth-header p{color:var(--text-muted);font-size:.9rem}.auth-icon{width:48px;height:48px;color:var(--primary);margin-bottom:1rem;filter:drop-shadow(0 0 12px var(--primary-glow))}.auth-nav{display:flex;gap:.5rem;margin-bottom:2rem;position:relative;background:#0003;padding:.3rem;border-radius:var(--radius-sm)}.auth-nav:after{display:none}.auth-nav-tab{flex-grow:1;text-align:center;padding:.6rem;background:none;border:none;color:var(--text-muted);font-weight:600;cursor:pointer;position:relative;transition:all var(--transition-base);font-size:.9rem;border-radius:.35rem;font-family:inherit}.auth-nav-tab:hover{color:var(--text-secondary)}.auth-nav-tab.active{color:#fff;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);box-shadow:var(--shadow-glow-sm)}.auth-nav-tab.active:after{display:none}.form-error{color:var(--danger);background:var(--danger-bg);border:1px solid rgba(248,113,113,.15);padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:.5rem;animation:shake .4s ease-in-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dashboard-container{min-height:100vh;display:flex;flex-direction:column}.navbar{padding:.85rem 2rem;background:#070b16bf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--surface-border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50;box-shadow:0 4px 30px #0000004d}.navbar:after{content:"";position:absolute;bottom:-1px;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(129,140,248,.15),transparent);pointer-events:none}.nav-brand{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.15rem;color:var(--text-main);letter-spacing:-.01em}.nav-user{display:flex;align-items:center;gap:1.25rem}.user-info{display:flex;align-items:center;gap:.75rem}.avatar{width:38px;height:38px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary) 0%,#a78bfa 100%);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;border:2px solid rgba(255,255,255,.1);box-shadow:0 0 15px #818cf833;flex-shrink:0}.user-text{display:flex;flex-direction:column}.user-name{font-weight:600;font-size:.9rem;line-height:1.2}.user-handle{font-size:.75rem;color:var(--text-muted)}.dashboard-content{flex-grow:1;padding:2.5rem 2rem;max-width:1200px;margin:0 auto;width:100%}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:2rem}.info-card{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;transition:all var(--transition-base);position:relative}.info-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-xl),0 0 30px #818cf82e;border-color:#818cf859}.card-header{display:flex;align-items:center;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--surface-border)}.card-header-icon{color:var(--primary);filter:drop-shadow(0 0 6px var(--primary-glow))}.card-title{margin-bottom:0;font-size:1.05rem;font-weight:700}.card-body{flex-grow:1}.data-row{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.03);transition:background var(--transition-fast)}.data-row:hover{background:#ffffff05;margin:0 -.5rem;padding-left:.5rem;padding-right:.5rem;border-radius:var(--radius-sm)}.data-row:last-child{border-bottom:none}.data-label{color:var(--text-muted);font-size:.875rem}.data-value{font-weight:600;color:var(--text-main);text-align:right}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;color:var(--text-muted)}.loading-container p{font-size:.9rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;animation:pulse-text 2s ease-in-out infinite}@keyframes pulse-text{0%,to{opacity:.5}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:42px;height:42px;border:3px solid rgba(129,140,248,.15);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;box-shadow:0 0 15px #818cf826}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glow-pulse{0%,to{opacity:.5}50%{opacity:1}}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#04060ebf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content{background:var(--glass-bg-heavy);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--surface-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 80px #0000004d;display:flex;flex-direction:column;animation:modalSlideUp .3s var(--ease-out);overflow:hidden;max-height:90vh}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--surface-border);background:#ffffff05}.modal-header h3{margin:0;font-size:1.1rem}.modal-body{padding:1.5rem;overflow-y:auto}.dashboard-content-app{padding:1.5rem 2rem;max-width:1400px}.teacher-layout,.student-layout{display:grid;gap:1.25rem;animation:fadeSlideUp .3s ease-out}.student-layout .glass-panel{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.info-card{transition:transform .2s ease,box-shadow .2s ease}.info-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg),0 0 20px #818cf80f}.teacher-layout{display:grid;grid-template-columns:280px 1fr;gap:1.25rem}.sidebar{padding:0;display:flex;flex-direction:column;height:calc(100vh - 80px);position:sticky;top:70px;border-radius:var(--radius-xl);overflow:hidden}.section-title{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted);margin-bottom:0;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.mini-form{display:flex;gap:.5rem}.mini-form .form-input{padding:.5rem .75rem;font-size:.85rem}.class-list{display:flex;flex-direction:column;gap:.35rem;overflow-y:auto}.class-item{background:#ffffff05;border:1px solid rgba(255,255,255,.04);padding:.7rem 1rem;border-radius:var(--radius-sm);text-align:left;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);font-weight:500;font-size:.9rem;font-family:inherit}.class-item:hover{background:#818cf80f;border-color:#818cf826;color:var(--text-main)}.class-item.active{background:linear-gradient(135deg,#818cf826,#6366f11a);color:#fff;border-color:#818cf859;box-shadow:var(--shadow-glow-sm)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem}.vertical-form{display:flex;flex-direction:column;gap:1rem}.vertical-form textarea{resize:vertical;min-height:80px}.mt-2{margin-top:1.5rem}.mb-2{margin-bottom:1.5rem}.mb-0{margin-bottom:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:1rem}.p-4{padding:1rem}.flex-grow{flex-grow:1}.flex-col{display:flex;flex-direction:column}.align-center{align-items:center}@media(min-width:768px){.col-span-2{grid-column:span 2}}.badge{background:#818cf81a;color:var(--primary);padding:.2rem .65rem;border-radius:var(--radius-full);font-size:.7rem;font-weight:700;border:1px solid rgba(129,140,248,.2);display:inline-flex;align-items:center;justify-content:center;gap:.25rem;white-space:nowrap;letter-spacing:.02em;text-transform:uppercase}.avatar-teacher{background:linear-gradient(135deg,var(--accent-amber) 0%,#d97706 100%)}.text-success{color:var(--success)}.text-muted{color:var(--text-muted)}.font-medium{font-weight:500}.text-sm{font-size:.85rem}.stat-pill{background:#ffffff0f;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:500;color:var(--text-secondary);border:1px solid rgba(255,255,255,.05)}.assignments-list{display:flex;flex-direction:column;gap:.75rem;padding:.5rem 0}.assignment-item{background:#0a0f2366;border:1px solid var(--surface-border);padding:1.25rem;border-radius:var(--radius-md);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;transition:all var(--transition-base);position:relative}.assignment-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary);border-radius:3px 0 0 3px;opacity:0;transition:opacity var(--transition-fast)}.assignment-item:hover{background:#0a0f2399;border-color:#818cf826;transform:translate(2px)}.assignment-item:hover:before{opacity:1}.assignment-item.is-done{border-color:#34d39926;background:#34d39908}.assignment-item.is-done:before{background:var(--success);opacity:.6}.assign-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.due-date{font-size:.75rem;color:var(--danger);display:flex;align-items:center;gap:.25rem;font-weight:600}.floating-chat{position:fixed;bottom:2rem;right:2rem;width:360px;height:500px;z-index:100;display:flex;flex-direction:column;border-radius:var(--radius-xl);animation:chatSlideUp .35s var(--ease-out);box-shadow:var(--shadow-xl),0 0 60px #0000004d}@keyframes chatSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-close{position:absolute;top:-2.8rem;right:0;z-index:101}.chat-close button{background:#0a0f23cc;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);padding:.4rem .8rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;transition:all .2s ease;cursor:pointer}.chat-close button:hover{background:#f871711a;color:var(--danger);border-color:#f871714d}.chat-container{display:flex;flex-direction:column;height:100%;border-radius:var(--radius-xl);overflow:hidden;background:var(--glass-bg-heavy);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--surface-border)}.chat-header{padding:1rem 1.25rem;background:#ffffff08;border-bottom:1px solid var(--surface-border)}.chat-header h4{margin:0;font-size:.95rem;font-weight:700}.chat-messages{flex-grow:1;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.6rem}.chat-empty{text-align:center;color:var(--text-dim);margin-top:auto;margin-bottom:auto;font-size:.85rem}.chat-bubble-wrapper{display:flex;width:100%;animation:fadeSlideUp .2s var(--ease-out)}.chat-bubble-wrapper.is-me{justify-content:flex-end}.chat-bubble-wrapper.is-them{justify-content:flex-start}.chat-bubble{max-width:80%;padding:.6rem 1rem;border-radius:var(--radius-lg);font-size:.875rem;line-height:1.5;word-wrap:break-word}.is-me .chat-bubble{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border-bottom-right-radius:.3rem;box-shadow:0 2px 8px #818cf833}.is-them .chat-bubble{background:#ffffff0f;color:var(--text-main);border-bottom-left-radius:.3rem;border:1px solid rgba(255,255,255,.04)}.chat-input-area{display:flex;padding:.75rem 1rem;gap:.5rem;background:#00000026;border-top:1px solid var(--surface-border)}.chat-input{margin:0;font-size:.875rem;padding:.5rem .85rem;border-radius:var(--radius-full)}@keyframes pulse-glow{0%{box-shadow:0 0 #f87171b3}70%{box-shadow:0 0 0 8px #f8717100}to{box-shadow:0 0 #f8717100}}.notification-dot{display:inline-block;width:8px;height:8px;background-color:var(--danger);border-radius:50%;animation:pulse-glow 2s infinite}.notification-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;background:var(--danger-bg);border:1px solid rgba(248,113,113,.15);border-radius:var(--radius-full);color:var(--danger);font-size:.7rem;font-weight:700}.ql-toolbar.ql-snow{background:#ffffff05!important;border:1px solid rgba(129,140,248,.12)!important;border-radius:var(--radius-md) var(--radius-md) 0 0!important;padding:.5rem .75rem!important}.ql-container.ql-snow{border:1px solid rgba(129,140,248,.12)!important;border-top:none!important;border-radius:0 0 var(--radius-md) var(--radius-md)!important;background:#0a0f2380!important;font-family:inherit!important;font-size:.92rem!important;color:var(--text-main)!important;min-height:100px}.ql-editor{color:var(--text-main)!important;min-height:100px}.ql-editor.ql-blank:before{color:var(--text-dim)!important;font-style:normal!important;opacity:.7}.ql-toolbar .ql-stroke{stroke:var(--text-muted)!important}.ql-toolbar .ql-fill{fill:var(--text-muted)!important}.ql-toolbar .ql-picker-label{color:var(--text-muted)!important}.ql-toolbar button:hover .ql-stroke,.ql-toolbar .ql-active .ql-stroke{stroke:var(--secondary)!important}.ql-toolbar button:hover .ql-fill,.ql-toolbar .ql-active .ql-fill{fill:var(--secondary)!important}.ql-toolbar button:hover,.ql-toolbar .ql-active{background:#818cf81a!important;border-radius:.3rem!important}.ql-toolbar .ql-picker-label:hover,.ql-toolbar .ql-picker-label.ql-active{color:var(--secondary)!important}.ql-toolbar .ql-picker-options{background:var(--glass-bg-heavy)!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;border:1px solid rgba(129,140,248,.15)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-xl)!important;padding:.3rem!important}.ql-toolbar .ql-picker-item{color:var(--text-muted)!important;padding:.3rem .6rem!important;border-radius:.3rem!important}.ql-toolbar .ql-picker-item:hover{color:var(--text-main)!important;background:#818cf814!important}.ql-snow .ql-tooltip{background:var(--glass-bg-heavy)!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;border:1px solid rgba(129,140,248,.2)!important;color:var(--text-main)!important;box-shadow:var(--shadow-xl)!important;border-radius:var(--radius-sm)!important}.ql-editor h1,.ql-editor h2,.ql-editor h3{color:var(--text-main)!important;margin-bottom:.5rem}.ql-editor p{margin-bottom:.3rem}.ql-editor ul,.ql-editor ol{color:var(--text-main);padding-left:1.5rem}.announcement-card{position:relative;padding:1.25rem 1.4rem;border-radius:var(--radius-md);background:#0a0f2366;border:1px solid rgba(255,255,255,.04);border-left:3px solid rgba(251,191,36,.4);transition:all var(--transition-base)}.announcement-card:hover{background:#0a0f238c;border-color:#fbbf241a;border-left-color:#fbbf24b3;transform:translate(2px)}.announcement-card .ann-content{font-size:.92rem;line-height:1.7;color:var(--text-main)}.announcement-card .ann-content h1,.announcement-card .ann-content h2,.announcement-card .ann-content h3{margin-top:.5rem;margin-bottom:.3rem;color:var(--text-main)}.announcement-card .ann-content p{margin:.25rem 0}.announcement-card .ann-content ul,.announcement-card .ann-content ol{padding-left:1.5rem;margin:.3rem 0}.announcement-card .ann-content strong{color:#e2e8f0}.quill-disabled{line-height:1.7;color:var(--text-main);font-size:.92rem}.quill-disabled h1,.quill-disabled h2,.quill-disabled h3{color:var(--text-main);margin-bottom:.3rem}.quill-disabled p{margin:.2rem 0}.quill-disabled ul,.quill-disabled ol{padding-left:1.5rem;margin:.2rem 0}.quill-disabled strong{color:#e2e8f0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#ffffff26}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}@media(max-width:768px){.teacher-layout{grid-template-columns:1fr}.hidden-mobile{display:none}.sidebar{height:auto;position:static}.navbar{padding:.75rem 1rem}.dashboard-content{padding:1.5rem 1rem}.dashboard-content-app{padding:1rem}.grid-cards,.grid-2{grid-template-columns:1fr}.auth-card{padding:1.75rem}h1{font-size:1.75rem}h2{font-size:1.35rem}.floating-chat{bottom:0;right:0;width:100%;height:60vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0}}@media(max-width:480px){.auth-card{padding:1.5rem}.navbar{padding:.6rem .75rem}.user-text{display:none}.nav-user{gap:.75rem}}@media(max-width:768px){[class$=-layout]{flex-direction:column!important}[class$=-sidebar]{max-height:200px;overflow-y:auto;border-bottom:1px solid var(--surface-border);margin-bottom:.5rem}.ui-tabs button{min-height:44px}label:has(input[type=radio]),label:has(input[type=checkbox]){min-height:44px;padding:.6rem .85rem!important}}::selection{background:#818cf84d;color:#fff}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@keyframes ui-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-modal-scale-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ui-toast-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes ui-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ui-badge-pulse{0%,to{box-shadow:0 0 #818cf873,inset 0 1px #ffffff0f}50%{box-shadow:0 0 0 6px #818cf800,inset 0 1px #ffffff0f}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes ambient-float{0%,to{transform:translateY(0) translate(0)}25%{transform:translateY(-15px) translate(5px)}50%{transform:translateY(-5px) translate(-5px)}75%{transform:translateY(-20px) translate(3px)}}@keyframes ambient-drift{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-10vh) rotate(360deg);opacity:0}}@keyframes ambient-pulse{0%,to{opacity:.3}50%{opacity:.7}}@keyframes ambient-scan{0%{top:-2px}to{top:100%}}@keyframes ambient-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ambient-flicker{0%,to{opacity:.8}50%{opacity:.4}25%,75%{opacity:.6}}@keyframes ambient-radar{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ambient-sonar{0%{transform:scale(0);opacity:.6}to{transform:scale(4);opacity:0}}@keyframes ambient-bubble{0%{transform:translateY(0) scale(1);opacity:.6}to{transform:translateY(-100vh) scale(.3);opacity:0}}@keyframes ambient-spark{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}@keyframes ambient-gear{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes ambient-meteor{0%{transform:translate(-100px) translateY(-100px) rotate(45deg);opacity:0}10%{opacity:.6}to{transform:translate(200vw) translateY(200vh) rotate(45deg);opacity:0}}@keyframes ambient-electricity{0%,to{clip-path:inset(0 100% 0 0)}50%{clip-path:inset(0 0 0 0)}}.web-module:after{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(20,184,166,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(20,184,166,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0;animation:ambient-pulse 8s ease-in-out infinite}.js-module:after{content:"";position:fixed;inset:0;background:radial-gradient(circle at 15% 85%,rgba(57,255,20,.04) 0%,transparent 40%),radial-gradient(circle at 85% 15%,rgba(0,212,255,.03) 0%,transparent 40%);pointer-events:none;z-index:0;animation:ambient-flicker 3s ease-in-out infinite}.sql-module:after{content:"";position:fixed;inset:0;background:radial-gradient(circle at 5% 50%,rgba(212,160,23,.06) 0%,transparent 30%),radial-gradient(circle at 95% 50%,rgba(212,160,23,.06) 0%,transparent 30%);pointer-events:none;z-index:0;animation:ambient-flicker 4s ease-in-out infinite}.pseudo-module:after{content:"⊕";position:fixed;bottom:2rem;right:2rem;font-size:4rem;color:#2a5a8c0f;pointer-events:none;z-index:0;animation:ambient-rotate 30s linear infinite}.java-module:after{content:"";position:fixed;bottom:3rem;right:3rem;width:120px;height:120px;border-radius:50%;border:1px solid rgba(0,230,118,.08);pointer-events:none;z-index:0}.java-module:after{content:"";position:fixed;bottom:3rem;right:3rem;width:120px;height:120px;border-radius:50%;border:1px solid rgba(0,230,118,.06);background:conic-gradient(from 0deg,transparent 0deg,rgba(0,230,118,.08) 30deg,transparent 60deg);pointer-events:none;z-index:0;animation:ambient-radar 4s linear infinite}.cs-module:after{content:"";position:fixed;bottom:0;left:0;right:0;height:200px;background:radial-gradient(circle at 20% 90%,rgba(129,140,248,.05) 0%,transparent 40%),radial-gradient(circle at 80% 95%,rgba(245,158,11,.04) 0%,transparent 40%),radial-gradient(circle at 50% 100%,rgba(239,68,68,.03) 0%,transparent 50%);pointer-events:none;z-index:0;animation:ambient-pulse 5s ease-in-out infinite}.game-module:after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 0% 50%,rgba(255,215,0,.04) 0%,transparent 30%),radial-gradient(ellipse at 100% 50%,rgba(255,215,0,.04) 0%,transparent 30%);pointer-events:none;z-index:0;animation:ambient-flicker 3.5s ease-in-out infinite}.git-module:after{content:"⚙";position:fixed;bottom:2rem;left:2rem;font-size:6rem;color:#4fc3f70a;pointer-events:none;z-index:0;animation:ambient-gear 20s linear infinite}.linux-module:after{content:"";position:fixed;bottom:4rem;right:4rem;width:80px;height:80px;border-radius:50%;border:1px solid rgba(0,255,65,.06);pointer-events:none;z-index:0;animation:ambient-sonar 3s ease-out infinite}.network-module:after{content:"";position:fixed;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(79,195,247,.15) 20%,rgba(79,195,247,.25) 50%,rgba(79,195,247,.15) 80%,transparent 100%);pointer-events:none;z-index:0;animation:ambient-scan 6s linear infinite}.ds-module:after{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(0,137,123,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(0,137,123,.02) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:0;animation:ambient-pulse 6s ease-in-out infinite}.app-module:after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(124,58,237,.04) 0%,transparent 50%);pointer-events:none;z-index:0;animation:ambient-pulse 4s ease-in-out infinite}.algo-module:after{content:"";position:fixed;bottom:0;left:30%;right:30%;height:300px;background:radial-gradient(ellipse at 50% 100%,rgba(255,152,0,.04) 0%,transparent 60%);pointer-events:none;z-index:0;animation:ambient-float 8s ease-in-out infinite}.regex-module:after{content:"";position:fixed;inset:0;border:2px solid rgba(239,68,68,0);pointer-events:none;z-index:0;animation:regex-warning 4s ease-in-out infinite}@keyframes regex-warning{0%,to{border-color:#ef444400}50%{border-color:#ef444408}}.ai-module:after{content:"";position:fixed;inset:0;background:radial-gradient(circle at 70% 80%,rgba(251,191,36,.03) 0%,transparent 30%),radial-gradient(circle at 30% 20%,rgba(168,85,247,.03) 0%,transparent 30%);pointer-events:none;z-index:0;animation:ambient-pulse 5s ease-in-out infinite}.datascience-module:after{content:"";position:fixed;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(56,189,248,.2) 50%,transparent 100%);pointer-events:none;z-index:0;animation:ambient-scan 8s linear infinite}.robotics-module:after{content:"";position:fixed;bottom:0;left:0;right:0;height:150px;background:linear-gradient(to top,rgba(239,68,68,.03) 0%,transparent 100%);pointer-events:none;z-index:0;animation:ambient-pulse 6s ease-in-out infinite}.api-module:after{content:"";position:fixed;inset:0;background:linear-gradient(135deg,transparent 48%,rgba(99,102,241,.02) 49%,rgba(99,102,241,.02) 51%,transparent 52%),linear-gradient(135deg,transparent 68%,rgba(99,102,241,.015) 69%,rgba(99,102,241,.015) 71%,transparent 72%);background-size:100% 100%;pointer-events:none;z-index:0;animation:ambient-pulse 3s ease-in-out infinite}:root{--mm-primary: #7c3aed;--mm-accent: #22d3ee;--mm-surface: rgba(15, 23, 42, .85);--mm-surface-elevated: rgba(20, 28, 50, .92);--mm-border: rgba(139, 92, 246, .25);--mm-border-strong: rgba(139, 92, 246, .45);--mm-text: #e2e8f0;--mm-text-muted: #94a3b8;--mm-text-dim: #64748b;--mm-glow: rgba(139, 92, 246, .35)}@keyframes mm-grid-shift{0%{transform:translate(0)}to{transform:translate(32px,32px)}}@keyframes mm-scan-sweep{0%,to{top:0%;opacity:0}10%{opacity:.8}50%{top:100%;opacity:.5}90%{opacity:.8}}@keyframes mm-pulse-dot{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}@keyframes mm-shine-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes mm-float-drift{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(8px,-12px) rotate(4deg)}50%{transform:translate(-6px,-22px) rotate(-2deg)}75%{transform:translate(10px,-8px) rotate(6deg)}}@keyframes mm-soft-pulse{0%,to{box-shadow:0 0 8px var(--mm-glow)}50%{box-shadow:0 0 22px var(--mm-glow),0 0 4px var(--mm-glow)}}@keyframes mm-fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes mm-spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mm-card{position:relative;border-radius:1rem;overflow:hidden;background:radial-gradient(ellipse at top left,color-mix(in srgb,var(--mm-primary) 18%,transparent) 0%,transparent 50%),radial-gradient(ellipse at bottom right,color-mix(in srgb,var(--mm-accent) 12%,transparent) 0%,transparent 50%),var(--mm-surface);border:1px solid var(--mm-border);box-shadow:0 16px 40px -16px var(--mm-glow),0 0 0 1px color-mix(in srgb,var(--mm-primary) 8%,transparent),inset 0 1px #ffffff0f;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mm-card-content{position:relative;z-index:2}.mm-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.mm-bg-grid{position:absolute;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--mm-primary) 6%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--mm-primary) 6%,transparent) 1px,transparent 1px);background-size:32px 32px;animation:mm-grid-shift 22s linear infinite;pointer-events:none}.mm-bg-scan{position:absolute;left:-50%;width:200%;height:2px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--mm-accent) 0%,transparent) 30%,color-mix(in srgb,var(--mm-accent) 60%,transparent) 50%,color-mix(in srgb,var(--mm-accent) 0%,transparent) 70%,transparent 100%);animation:mm-scan-sweep 9s ease-in-out infinite;pointer-events:none}.mm-bg-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--mm-accent);box-shadow:0 0 12px var(--mm-accent);animation:mm-pulse-dot 2s ease-in-out infinite;pointer-events:none}.mm-bg-glyph{position:absolute;font-family:Fira Code,Consolas,monospace;font-weight:700;color:color-mix(in srgb,var(--mm-primary) 30%,transparent);text-shadow:0 0 12px color-mix(in srgb,var(--mm-primary) 40%,transparent);animation:mm-float-drift linear infinite;pointer-events:none;-webkit-user-select:none;user-select:none}.mm-bg-corner{position:absolute;width:100px;height:100px;pointer-events:none;opacity:.4}.mm-bg-corner.tl{top:0;left:0}.mm-bg-corner.br{bottom:0;right:0;transform:rotate(180deg)}.mm-bg-corner:before{content:"";position:absolute;top:20px;left:0;width:64px;height:1px;background:linear-gradient(90deg,var(--mm-primary),transparent)}.mm-bg-corner:after{content:"";position:absolute;top:0;left:20px;width:1px;height:64px;background:linear-gradient(180deg,var(--mm-primary),transparent)}.mm-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.7rem 1.1rem;background:linear-gradient(135deg,var(--mm-primary),color-mix(in srgb,var(--mm-primary) 65%,var(--mm-accent)));border:none;border-radius:.6rem;color:#fff;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;overflow:hidden;transition:all .25s cubic-bezier(.16,1,.3,1);box-shadow:0 8px 24px -8px var(--mm-glow);letter-spacing:.01em}.mm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 32px -8px var(--mm-glow)}.mm-btn:active:not(:disabled){transform:translateY(0)}.mm-btn:disabled{opacity:.6;cursor:not-allowed}.mm-btn:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transform:translate(-100%);transition:transform .7s}.mm-btn:hover:not(:disabled):before{transform:translate(100%)}.mm-btn-ghost{background:transparent;border:1px solid var(--mm-border-strong);color:var(--mm-text);box-shadow:none}.mm-btn-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--mm-primary) 10%,transparent);border-color:var(--mm-primary);box-shadow:0 4px 16px -4px var(--mm-glow)}.mm-stat-chip{padding:.7rem .85rem;background:linear-gradient(180deg,color-mix(in srgb,var(--mm-primary) 8%,transparent),color-mix(in srgb,var(--mm-primary) 4%,transparent));border:1px solid var(--mm-border);border-radius:.6rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .25s cubic-bezier(.16,1,.3,1)}.mm-stat-chip:hover{transform:translateY(-2px);border-color:var(--mm-border-strong);box-shadow:0 8px 20px -8px var(--mm-glow)}.mm-stat-value{font-size:1.25rem;font-weight:800;color:var(--mm-text);line-height:1;margin-bottom:.2rem;font-variant-numeric:tabular-nums}.mm-stat-label{font-size:.65rem;color:var(--mm-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.mm-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;background:color-mix(in srgb,var(--mm-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--mm-accent) 30%,transparent);border-radius:999px;font-size:.7rem;color:var(--mm-accent);font-weight:600}.mm-badge-primary{background:color-mix(in srgb,var(--mm-primary) 12%,transparent);border-color:color-mix(in srgb,var(--mm-primary) 35%,transparent);color:color-mix(in srgb,var(--mm-primary) 75%,white)}.mm-gradient-title{background:linear-gradient(90deg,var(--mm-primary) 0%,var(--mm-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:-.01em}.mm-progress-track{width:100%;height:6px;background:#0006;border-radius:3px;overflow:hidden}.mm-progress-fill{height:100%;background:linear-gradient(90deg,var(--mm-primary),var(--mm-accent));transition:width .4s ease;box-shadow:0 0 10px var(--mm-glow)}.mm-topbar-modern{position:relative;background:radial-gradient(ellipse at 0% 50%,color-mix(in srgb,var(--mm-primary) 14%,transparent) 0%,transparent 50%),var(--mm-surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--mm-border);overflow:hidden}.mm-topbar-modern:after{content:"";position:absolute;bottom:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--mm-accent),transparent);opacity:.5;animation:mm-soft-pulse 4s ease-in-out infinite;pointer-events:none}.mm-topbar-gamification{display:flex;align-items:center;gap:.65rem;margin-left:auto;z-index:1}.mm-xp-display{font-size:.7rem;color:var(--mm-accent);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em}.mm-completion-badge{font-size:.72rem;font-weight:700;padding:.22rem .65rem;border-radius:999px;background:color-mix(in srgb,var(--mm-primary) 12%,transparent);border:1px solid var(--mm-border-strong);color:color-mix(in srgb,var(--mm-primary) 80%,white)}.mm-sidebar-modern{background:linear-gradient(180deg,color-mix(in srgb,var(--mm-primary) 4%,transparent),transparent 30%),var(--mm-surface);border-right:1px solid var(--mm-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mm-lesson-btn{position:relative;display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;background:transparent;border:1px solid transparent;border-radius:.5rem;color:var(--mm-text);font-family:inherit;font-size:.82rem;font-weight:500;cursor:pointer;text-align:left;transition:all .2s cubic-bezier(.16,1,.3,1);margin:.15rem 0;width:100%;overflow:hidden}.mm-lesson-btn:hover:not(:disabled){background:color-mix(in srgb,var(--mm-primary) 10%,transparent);border-color:color-mix(in srgb,var(--mm-primary) 25%,transparent);transform:translate(3px)}.mm-lesson-btn-active{background:linear-gradient(90deg,color-mix(in srgb,var(--mm-primary) 22%,transparent),color-mix(in srgb,var(--mm-primary) 8%,transparent));border-color:var(--mm-border-strong);color:#fff;box-shadow:inset 3px 0 0 var(--mm-accent),0 4px 12px -4px var(--mm-glow)}.mm-lesson-btn-completed{color:color-mix(in srgb,var(--mm-accent) 70%,white)}.mm-lesson-btn:disabled{opacity:.4;cursor:not-allowed}.mm-section-card{padding:.75rem;background:#00000040;border:1px solid var(--mm-border);border-radius:.55rem;transition:all .25s ease}.mm-section-card:hover{border-color:var(--mm-border-strong);transform:translateY(-1px)}.mm-section-card .label{font-size:.6rem;color:var(--mm-primary);text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:.3rem}.mm-section-card .title{font-size:.85rem;color:var(--mm-text);font-weight:700;margin-bottom:.15rem}.mm-section-card .meta{font-size:.7rem;color:var(--mm-text-dim)}.mm-fade-in{animation:mm-fade-in-up .4s cubic-bezier(.16,1,.3,1) both}.mm-glow-on-hover{transition:box-shadow .3s ease}.mm-glow-on-hover:hover{box-shadow:0 0 20px var(--mm-glow)}.auth-page{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:hidden;background:radial-gradient(ellipse at 20% 20%,rgba(124,58,237,.18) 0%,transparent 55%),radial-gradient(ellipse at 80% 80%,rgba(34,211,238,.14) 0%,transparent 55%),linear-gradient(140deg,#060914,#0c1424,#0a1020)}.auth-bg{position:absolute;inset:0;pointer-events:none;z-index:0}.auth-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(139,92,246,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.06) 1px,transparent 1px);background-size:40px 40px;animation:auth-grid-shift 28s linear infinite}@keyframes auth-grid-shift{0%{transform:translate(0)}to{transform:translate(40px,40px)}}.auth-code-column{position:absolute;top:-25%;font-family:Fira Code,Consolas,monospace;font-size:.7rem;font-weight:600;color:#22d3ee4d;white-space:pre;line-height:1.4;text-shadow:0 0 8px rgba(34,211,238,.4);animation:auth-code-fall linear infinite;-webkit-user-select:none;user-select:none;pointer-events:none}@keyframes auth-code-fall{0%{transform:translateY(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(180vh);opacity:0}}.auth-glyph{position:absolute;font-family:Fira Code,monospace;font-weight:700;color:#a78bfa40;text-shadow:0 0 12px rgba(167,139,250,.35);animation:auth-glyph-drift linear infinite;-webkit-user-select:none;user-select:none;pointer-events:none}@keyframes auth-glyph-drift{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(15px,-25px) rotate(8deg)}50%{transform:translate(-12px,-40px) rotate(-5deg)}75%{transform:translate(20px,-18px) rotate(10deg)}}.auth-scan{position:absolute;left:-50%;width:200%;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(34,211,238,.5) 50%,transparent 100%);animation:auth-scan-sweep 12s ease-in-out infinite}@keyframes auth-scan-sweep{0%,to{top:0%;opacity:0}10%{opacity:.7}50%{top:100%;opacity:.5}90%{opacity:.7}}.auth-pulse-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#22d3eecc;box-shadow:0 0 14px #22d3eecc;animation:auth-pulse 2.5s ease-in-out infinite}@keyframes auth-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}.auth-content{position:relative;z-index:1;width:100%;max-width:460px;animation:auth-fade-in .6s cubic-bezier(.16,1,.3,1)}@keyframes auth-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-brand{text-align:center;margin-bottom:2rem}.auth-brand-icon{width:72px;height:72px;border-radius:1.25rem;background:linear-gradient(135deg,#7c3aed,#2563eb,#0891b2);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;box-shadow:0 12px 36px #7c3aed73,0 0 0 1px #a78bfa4d,inset 0 1px #ffffff26;position:relative}.auth-brand-icon:before{content:"";position:absolute;inset:-2px;border-radius:1.35rem;background:linear-gradient(135deg,#7c3aed66,#22d3ee4d);filter:blur(12px);z-index:-1;opacity:.8}.auth-brand-title{font-size:2.2rem;font-weight:900;margin:0;background:linear-gradient(90deg,#a78bfa,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.auth-brand-subtitle{color:#94a3b8;font-size:.92rem;margin:.6rem 0 0;font-weight:500}.auth-card{position:relative;padding:2rem;border-radius:1.4rem;background:radial-gradient(ellipse at top left,rgba(124,58,237,.12) 0%,transparent 55%),radial-gradient(ellipse at bottom right,rgba(34,211,238,.08) 0%,transparent 55%),#0f172ad9;border:1px solid rgba(139,92,246,.22);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 24px 60px -16px #7c3aed59,0 0 0 1px #a78bfa14,inset 0 1px #ffffff0f;overflow:hidden}.auth-tabs{display:flex;background:#00000059;border:1px solid rgba(139,92,246,.12);border-radius:.7rem;padding:4px;margin-bottom:1.75rem}.auth-tab{flex:1;padding:.65rem;border-radius:.55rem;border:none;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;gap:.45rem;background:transparent;color:#64748b}.auth-tab.active{background:linear-gradient(135deg,#7c3aed,#2563eb,#0891b2);color:#fff;box-shadow:0 4px 16px #7c3aed66}.auth-tab.active.signup{background:linear-gradient(135deg,#14b8a6,#2dd4bf);box-shadow:0 4px 16px #2dd4bf66}.auth-label{display:block;font-size:.72rem;font-weight:700;color:#a78bfa;margin-bottom:.45rem;text-transform:uppercase;letter-spacing:.08em}.auth-field{margin-bottom:1.15rem;position:relative}.auth-input{width:100%;padding:.85rem 1rem;background:#00000059;border:1px solid rgba(139,92,246,.2);border-radius:.6rem;color:#e2e8f0;font-family:inherit;font-size:.92rem;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-input::placeholder{color:#64748b}.auth-input:focus{outline:none;border-color:#8b5cf699;background:#00000073;box-shadow:0 0 0 3px #8b5cf626}.auth-input.has-icon-right{padding-right:2.85rem}.auth-input-icon-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#64748b;display:flex;padding:.25rem;transition:color .2s}.auth-input-icon-btn:hover{color:#a78bfa}.auth-help-text{font-size:.72rem;color:#475569;margin:.45rem 0 0;line-height:1.4}.auth-error{padding:.8rem 1rem;border-radius:.6rem;background:linear-gradient(135deg,#ef444426,#f8717114);border:1px solid rgba(248,113,113,.3);color:#fca5a5;font-size:.82rem;font-weight:500;margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.auth-submit{position:relative;width:100%;padding:.95rem;border-radius:.7rem;border:none;font-family:inherit;font-size:.95rem;font-weight:800;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);background:linear-gradient(135deg,#7c3aed,#2563eb,#0891b2);color:#fff;box-shadow:0 12px 32px #7c3aed66;display:flex;align-items:center;justify-content:center;gap:.55rem;overflow:hidden;letter-spacing:.02em}.auth-submit.signup{background:linear-gradient(135deg,#0891b2,#14b8a6,#2dd4bf);box-shadow:0 12px 32px #2dd4bf66}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 40px #7c3aed80}.auth-submit.signup:hover:not(:disabled){box-shadow:0 18px 40px #2dd4bf80}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-submit:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transition:left .7s}.auth-submit:hover:not(:disabled):before{left:100%}.auth-footer{text-align:center;font-size:.74rem;color:#475569;margin-top:1.5rem;display:flex;align-items:center;justify-content:center;gap:.4rem}.auth-footer-dot{width:6px;height:6px;border-radius:50%;background:#22d3ee;box-shadow:0 0 8px #22d3ee;animation:auth-pulse 2.5s ease-in-out infinite}.auth-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite;display:inline-block}@keyframes auth-spin{to{transform:rotate(360deg)}}
