#app-container{position:relative}.professor-layout{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}.professor-layout input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]):not([type=file]),.professor-layout select,.professor-layout textarea{background:#fff;color:#0f172a;border-color:#e2e8f0;border-radius:8px;box-shadow:none}.professor-layout input::placeholder,.professor-layout textarea::placeholder{color:#94a3b8}.professor-layout input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]):not([type=file]):focus,.professor-layout select:focus,.professor-layout textarea:focus{background:#fff;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e526}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;width:100%;overflow:hidden;font-family:Inter,sans-serif}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h2{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;border:none;text-shadow:none;font-family:Inter,sans-serif}.modal-form{padding:1.5rem;display:flex;flex-direction:column;gap:.375rem}.modal-form label,.form-label{font-size:.875rem;font-weight:500;color:#374151;font-family:Inter,sans-serif}.modal-form input,.modal-form select,.modal-form textarea{width:100%;padding:.625rem .875rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.925rem;color:#0f172a;background:#fff;box-sizing:border-box;margin-bottom:.5rem;font-family:Inter,sans-serif;box-shadow:none;transition:border-color .15s,box-shadow .15s}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e526;background:#fff}.modal-form input::placeholder,.modal-form textarea::placeholder{color:#94a3b8}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.btn-submit,.btn-primary{display:inline-flex;align-items:center;gap:.375rem;padding:.575rem 1.5rem;border-radius:8px;background:#4f46e5;border:none;color:#fff;font-size:.925rem;font-weight:600;cursor:pointer;margin:0;box-shadow:none;font-family:Inter,sans-serif;transition:background .15s}.btn-submit:hover,.btn-primary:hover{background:#4338ca;transform:none;box-shadow:none;color:#fff}.btn-submit:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-cancel,.btn-secondary{display:inline-flex;align-items:center;gap:.375rem;padding:.575rem 1.25rem;border-radius:8px;background:#fff;border:1px solid #e2e8f0;color:#374151;font-size:.925rem;font-weight:500;cursor:pointer;margin:0;box-shadow:none;font-family:Inter,sans-serif;transition:background .15s,border-color .15s}.btn-cancel:hover,.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1;transform:none;box-shadow:none}.form-error{font-size:.875rem;color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.625rem .875rem;font-family:Inter,sans-serif}.empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1rem;text-align:center;color:#94a3b8}.empty-icon{opacity:.5;animation:empty-float 3s ease-in-out infinite}.empty-title{font-size:1.125rem;font-weight:700;color:#1e293b;margin:0;font-family:Inter,sans-serif}.empty-hint{font-size:.875rem;color:#64748b;margin:0;max-width:320px;font-family:Inter,sans-serif}@keyframes empty-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.mtag{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:99px;font-size:.7rem;font-weight:600;font-family:Inter,sans-serif;white-space:nowrap}.mtag-grammar{background:#ede9fe;color:#5b21b6}.mtag-vocab{background:#fef3c7;color:#92400e}.mtag-ability{background:#dcfce7;color:#166534}.mtag-course{background:#dbeafe;color:#1e40af}.page-header .section-title{font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,var(--section-color, #7c3aed),var(--section-color-2, #ec4899));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.4px;margin:0 0 .25rem;font-family:Inter,sans-serif}.audio-shell,.course-shell,.exercise-shell{display:flex;flex-direction:column;min-height:100dvh;margin:0 auto}.audio-sticky-header,.course-sticky-header{display:flex;align-items:center;gap:.875rem;position:sticky;top:0;z-index:20}.back-btn,.breadcrumb-back{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;cursor:pointer;padding:0}.sticky-title{min-width:0}.sticky-eyebrow{text-transform:uppercase;margin:0;line-height:1}.sticky-title h1{margin:.15rem 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-main,.course-main{display:flex;flex-direction:column;flex:1}.sf-btn-primary,.sub-btn-primary,.cs-cta{background:transparent;border:none;padding:0;cursor:pointer;font-family:var(--font-mono);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.sf-btn__inner,.sub-btn__inner,.cs-cta__inner{position:relative;display:flex;align-items:center;overflow:hidden}.sf-btn__label,.sub-btn__label,.cs-cta__label{flex:1;display:flex;align-items:center;justify-content:center;height:100%;background:var(--color-brand);color:#000;padding:0 1.25rem;transition:transform var(--dur-slower) cubic-bezier(.625,.05,0,1)}.sf-btn__arrow,.sub-btn__arrow,.cs-cta__arrow{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--arrow-w);height:var(--arrow-w);background:var(--color-brand);color:#000;transition:transform var(--dur-slower) cubic-bezier(.625,.05,0,1)}.sf-btn__arrow--l,.sub-btn__arrow--l,.cs-cta__arrow--l{position:absolute;left:0;transform:rotate(-45deg) scale(0);transform-origin:left center}.sf-btn__arrow--r,.sub-btn__arrow--r,.cs-cta__arrow--r{position:absolute;right:0;transform-origin:right center}.sub-back,.cs-back,.header-back-link{display:inline-flex;align-items:center;background:transparent;border:none;cursor:pointer;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-fg-muted);text-decoration:none;transition:color var(--dur-fast)}.sub-back:hover,.cs-back:hover,.header-back-link:hover{color:var(--color-fg)}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-bg, #141314);position:relative;overflow:hidden}.login-watermark{position:absolute;right:-.05em;bottom:-.15em;font-size:clamp(120px,20vw,260px);line-height:1;font-weight:300;opacity:.03;color:var(--color-fg, #eee);pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--font-mono, monospace)}.login-card{width:100%;max-width:380px;padding:40px 36px;border:1px solid var(--color-border, rgba(255,255,255,.08));background:var(--color-bg-surface, var(--color-bg, #141314));position:relative;z-index:1}.login-brand{margin-bottom:2rem}.login-brand-mark{font-family:var(--font-mono, monospace);font-size:var(--text-accent-lg, 1.125rem);color:var(--color-brand, #fd551d);text-transform:uppercase;letter-spacing:.1em;line-height:1;margin:0}.login-brand-sub{font-family:var(--font-mono, monospace);font-size:.7rem;color:var(--color-fg-muted, #818081);margin:4px 0 0;letter-spacing:.05em}.login-heading{font-size:var(--text-h3, 1.75rem);color:var(--color-fg, #eee);text-transform:uppercase;margin:0 0 .375rem;font-weight:var(--font-weight-bold, 700)}.login-desc{font-size:.78rem;color:var(--color-fg-muted, #818081);margin:0 0 1.75rem;line-height:1.6}.social-btns{display:flex;gap:8px}.social-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:10px 12px;background:transparent;border:1px solid var(--color-border, rgba(255,255,255,.12));border-radius:0;color:var(--color-fg, #eee);font-family:var(--font-mono, monospace);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:border-color .2s,background .2s}.social-btn:hover{border-color:var(--color-fg-muted);background:var(--color-hover-bg, rgba(255,255,255,.04))}.login-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--color-fg-muted, #818081);font-family:var(--font-mono, monospace);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border, rgba(255,255,255,.08))}.login-form{display:flex;flex-direction:column;gap:1rem}.login-field{display:flex;flex-direction:column;gap:6px}.login-label{font-family:var(--font-mono, monospace);font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-fg-muted, #818081)}.login-input{width:100%;background:transparent!important;border:1px solid var(--color-border, rgba(255, 255, 255, .12))!important;border-radius:0!important;color:var(--color-fg, #eee)!important;font-family:var(--font-mono, monospace)!important;font-size:.78rem!important;padding:10px 12px!important;outline:none!important;box-shadow:none!important;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.login-input:hover{border-color:var(--color-fg-muted, rgba(255, 255, 255, .28))!important}.login-input:focus{border-color:var(--color-brand, #fd551d)!important;box-shadow:0 0 0 2px #fd551d33!important}.login-input::placeholder{color:var(--color-fg-muted, #818081);opacity:.5}.login-error-text{font-family:var(--font-mono, monospace);font-size:.68rem;color:#ff6868;margin:0}.primary-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--font-mono, monospace);font-weight:500;text-transform:uppercase;letter-spacing:.06em;background:none;border:none;padding:0;outline:none;width:100%;margin-top:.5rem}.primary-btn:disabled{opacity:.32;pointer-events:none}.primary-btn-inner{position:relative;display:flex;align-items:center;gap:6px;width:100%}.primary-btn-icon-left{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-brand, #fd551d);color:#000;flex-shrink:0;transform:rotate(-45deg) scale(0);transition:transform .7s cubic-bezier(.76,0,.24,1)}.primary-btn-label{flex:1;display:flex;align-items:center;justify-content:center;height:44px;background:var(--color-brand, #fd551d);color:#000;font-size:.78rem;padding:0 12px;transform:translate(-50px);transition:transform .7s cubic-bezier(.76,0,.24,1)}.primary-btn-icon-right{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-brand, #fd551d);color:#000;position:absolute;right:0;transform:rotate(0) scale(1);transition:transform .7s cubic-bezier(.76,0,.24,1)}.primary-btn:not(:disabled):hover .primary-btn-icon-left{transform:rotate(0) scale(1)}.primary-btn:not(:disabled):hover .primary-btn-label{transform:translate(0)}.primary-btn:not(:disabled):hover .primary-btn-icon-right{transform:rotate(-45deg) scale(0)}.login-footer{text-align:center;margin-top:1.5rem;font-family:var(--font-mono, monospace);font-size:.68rem;color:var(--color-fg-muted, #818081);text-transform:uppercase;letter-spacing:.05em}.login-footer a{color:var(--color-brand, #fd551d);text-decoration:none;font-weight:500}.login-footer a:hover{text-decoration:underline}.fade-enter-active,.fade-leave-active{transition:opacity .22s ease}.fade-enter-from,.fade-leave-to{opacity:0}html{overflow-x:hidden}body{background-color:var(--color-bg);color:var(--color-fg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;min-height:100dvh;overflow-x:hidden;transition:background-color .25s ease,color .25s ease}
