*{margin:0;padding:0}body{background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--mobile-padding:15px;--mobile-gap:12px;--mobile-font-size:14px;--touch-target-size:44px;--mobile-breakpoint:480px;--tablet-breakpoint:768px;--desktop-breakpoint:1024px;--large-desktop-breakpoint:1200px}@media (max-width:480px){html{font-size:14px}.btn,a,button,input,select,textarea{min-height:44px;min-height:var(--touch-target-size);min-width:44px;min-width:var(--touch-target-size)}h1{font-size:1.5rem}h2{font-size:1.3rem}h3{font-size:1.1rem}h4{font-size:1rem}.container,.content,.main{padding:15px;padding:var(--mobile-padding)}.flex-row,.row{flex-direction:column}.flex-row,.grid,.row{gap:12px;gap:var(--mobile-gap)}.grid{grid-template-columns:1fr}.desktop-only{display:none!important}.mobile-only{display:block!important}}@media (min-width:481px) and (max-width:768px){html{font-size:15px}.container,.content,.main{padding:20px}.grid{gap:15px;grid-template-columns:repeat(2,1fr)}.flex-row,.row{flex-direction:row;gap:15px}.tablet-only{display:block}.mobile-only{display:none}}@media (min-width:769px){html{font-size:16px}.container,.content,.main{margin:0 auto;max-width:1200px;padding:25px}.grid{gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.mobile-only,.tablet-only{display:none!important}.desktop-only{display:block}}@media (min-width:1024px){.container,.content,.main{max-width:1400px}}@media (hover:none) and (pointer:coarse){.btn,.clickable,.nav-item,a,button{min-height:44px;min-height:var(--touch-target-size);min-width:44px;min-width:var(--touch-target-size);padding:12px 16px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.loader{border-width:2px}img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (max-width:768px) and (orientation:landscape){.dropdown,.modal{max-height:80vh}}@media (max-width:768px) and (orientation:portrait){.login-container{padding:10px}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.no-print{display:none!important}body{font-size:12pt;line-height:1.4}a{color:#000;text-decoration:none}}.container{padding:15px;padding:var(--mobile-padding);width:100%}@media (min-width:769px){.container{margin:0 auto;max-width:1200px;padding:25px}}.text-center-mobile{text-align:center}@media (min-width:769px){.text-center-mobile{text-align:left}}.hide-mobile{display:none}@media (min-width:769px){.hide-mobile{display:block}}.show-mobile{display:block}@media (min-width:769px){.show-mobile{display:none}}.responsive-text{font-size:14px;font-size:var(--mobile-font-size)}@media (min-width:769px){.responsive-text{font-size:16px}}@media (min-width:1024px){.responsive-text{font-size:18px}}:root{--lms-canvas:#eef2f7;--lms-canvas-accent:#e8edf5;--lms-surface:#fff;--lms-surface-raised:#fff;--lms-border:#dce3ed;--lms-border-subtle:#e8edf3;--lms-text:#0f172a;--lms-text-muted:#64748b;--lms-text-subtle:#94a3b8;--lms-brand:#1d4ed8;--lms-brand-hover:#1e3a8a;--lms-brand-soft:#1d4ed814;--lms-nav:#0f172a;--lms-nav-border:#ffffff14;--lms-success:#059669;--lms-warning:#d97706;--lms-error:#dc2626;--lms-info:#0369a1;--lms-shadow-sm:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f;--lms-shadow-md:0 4px 6px -1px #0f172a0f,0 2px 4px -2px #0f172a0d;--lms-shadow-lg:0 10px 24px -4px #0f172a14,0 4px 8px -4px #0f172a0a;--lms-radius:10px;--lms-radius-lg:14px;--lms-font:"Inter",system-ui,-apple-system,sans-serif;--lms-content-max:1440px;--lms-nav-height:56px;--lms-subnav-height:48px;--cn-primary:var(--lms-brand);--cn-primary-dark:var(--lms-brand-hover);--cn-primary-light:#3b82f6;--cn-surface:var(--lms-surface);--cn-surface-muted:var(--lms-canvas);--cn-border:var(--lms-border);--cn-text:var(--lms-text);--cn-text-secondary:var(--lms-text-muted);--cn-text-muted:var(--lms-text-subtle);--primary-indigo:var(--lms-brand);--secondary-purple:#2563eb;--accent-cyan:var(--lms-info);--primary-color:var(--lms-brand);--secondary-color:#2563eb}body{background-color:var(--lms-canvas);background-image:radial-gradient(ellipse 80% 50% at 50% -20%,#1d4ed80f,#0000),linear-gradient(var(--lms-border-subtle) 1px,#0000 1px),linear-gradient(90deg,var(--lms-border-subtle) 1px,#0000 1px);background-position:0 0,-1px -1px,-1px -1px;background-size:100% 100%,48px 48px,48px 48px;color:var(--lms-text);font-family:var(--lms-font);font-weight:400;letter-spacing:-.011em;line-height:1.5}.lms-page{margin:0 auto;max-width:var(--lms-content-max);padding:24px 28px 32px}.lms-page-header{align-items:flex-start;background:var(--lms-surface);border:1px solid var(--lms-border);border-radius:var(--lms-radius-lg);box-shadow:var(--lms-shadow-sm);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px;padding:16px 20px}.lms-page-header__eyebrow{color:var(--lms-brand);font-size:.72rem;font-weight:600;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.lms-page-header__title{color:var(--lms-text);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin:0 0 4px}.lms-page-header__subtitle{color:var(--lms-text-muted);font-size:.8125rem;margin:0}.lms-page-header__actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.lms-card{background:var(--lms-surface);border:1px solid var(--lms-border);border-radius:var(--lms-radius-lg);box-shadow:var(--lms-shadow-sm);padding:20px}.lms-kpi-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:20px}.lms-kpi{background:var(--lms-surface);border:1px solid var(--lms-border);border-radius:var(--lms-radius-lg);box-shadow:var(--lms-shadow-sm);padding:16px 18px}.lms-kpi__label{color:var(--lms-text-muted);font-size:.75rem;font-weight:600;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.lms-kpi__value{color:var(--lms-text);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.lms-table-shell{background:var(--lms-surface);border:1px solid var(--lms-border);border-radius:var(--lms-radius-lg);box-shadow:var(--lms-shadow-sm);overflow:hidden}.lms-form-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:768px){.lms-page{padding:16px}.lms-form-grid{grid-template-columns:1fr}}.lms-empty{color:var(--lms-text-muted);padding:48px 24px;text-align:center}.lms-empty__title{color:var(--lms-text);font-size:1rem;font-weight:600;margin-bottom:8px}.lms-empty__text{font-size:.875rem;margin-bottom:20px}.lms-badge{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:.6875rem;font-weight:600;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase}.lms-badge--success{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.lms-badge--warning{background:#fffbeb;border-color:#fde68a;color:#b45309}.lms-badge--error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.lms-badge--neutral{background:var(--lms-canvas);border-color:var(--lms-border);color:var(--lms-text-muted)}.lms-loading-screen{align-items:center;color:var(--lms-text-muted);display:flex;flex-direction:column;font-size:.875rem;gap:16px;justify-content:center;min-height:60vh}.btn-download-notes:before,.btn-primary:before,.login-btn:before,[class*=btn-]:before{display:none!important}.btn-add,.btn-download-notes,.btn-header.btn-primary,.btn-primary,.login-btn,.logout-btn{background:var(--lms-brand)!important;background-image:none!important;border-radius:var(--lms-radius)!important;box-shadow:var(--lms-shadow-sm)!important;font-weight:600!important;transform:none!important}.btn-add:hover,.btn-download-notes:hover:not(.downloading),.btn-primary:hover:not(:disabled),.login-btn:hover:not(:disabled){background:var(--lms-brand-hover)!important;box-shadow:var(--lms-shadow-md)!important}.btn-header.btn-secondary,.btn-secondary{background:var(--lms-surface)!important;border:1px solid var(--lms-border)!important;box-shadow:var(--lms-shadow-sm)!important;color:var(--lms-text)!important}.btn-secondary:hover{background:var(--lms-canvas)!important}.animated-gradient-background,.floating-particle,.floating-particles,.floating-shape,.floating-shapes,.geometric-shape,.gradient-overlay,.gradient-sphere,.loading-particle,.loading-particles,.particle,.shimmer,.tech-grid{display:none!important}.dashboard .animated-gradient-background,.dashboard-content .animated-gradient-background,.hero-background,.teacher-dashboard .animated-gradient-background{animation:none!important;background:linear-gradient(135deg,#1e3a8a,#1d4ed8)!important}.gradient-text{-webkit-text-fill-color:var(--lms-brand)!important;background:none!important;color:var(--lms-brand)!important}.admin-dashboard{background:var(--lms-canvas)!important;font-family:var(--lms-font)!important;min-height:100vh}.admin-main-content,.admin-main-full{background:#0000!important}.admin-content{margin:0 auto;max-width:var(--lms-content-max);padding:24px 28px 32px!important}.admin-section{background:var(--lms-surface);border:1px solid var(--lms-border);border-radius:var(--lms-radius-lg);box-shadow:var(--lms-shadow-sm);margin-bottom:20px;padding:20px!important}.admin-section>h2{border-bottom:1px solid var(--lms-border-subtle);color:var(--lms-text)!important;font-size:1.125rem!important;font-weight:700!important;letter-spacing:-.02em;margin-bottom:16px!important;padding-bottom:12px}.glass-card,.stat-card{border:1px solid var(--lms-border)!important;border-radius:var(--lms-radius-lg)!important;box-shadow:var(--lms-shadow-sm)!important}.glass-card.hero-welcome{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--lms-surface)!important;border:1px solid var(--lms-border)!important;box-shadow:var(--lms-shadow-md)!important}.loader{border-top-color:var(--lms-brand)!important}.loading-container{align-items:center;color:var(--lms-text-muted);display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.session-warning-banner{background:#b45309;box-shadow:0 2px 8px #0000001f;color:#fff;font-size:.875rem;left:0;padding:10px 16px;position:fixed;right:0;text-align:center;top:0;z-index:9999}.session-warning-dismiss{background:#0000;border:1px solid #fff9;border-radius:6px;color:#fff;cursor:pointer;font-size:.8125rem;margin-left:16px;min-height:auto;min-width:auto;padding:4px 12px}.toast-container{flex-direction:column;max-width:400px;pointer-events:none;position:fixed;right:20px;top:20px;will-change:transform;z-index:9999999}.toast,.toast-container{display:flex;gap:12px;transform:translateZ(0)}.toast{align-items:center;animation:slideIn .3s ease-out;background:#fff;border:1px solid #0000001a;border-radius:12px;box-shadow:0 8px 30px #00000040;min-width:300px;padding:16px 20px;pointer-events:auto;position:relative}@keyframes slideIn{0%{opacity:0;transform:translateX(400px)}to{opacity:1;transform:translateX(0)}}.toast-success{background:linear-gradient(135deg,#fff,#f0fdf4);border-left-color:#10b981}.toast-error{background:linear-gradient(135deg,#fff,#fef2f2);border-left-color:#ef4444}.toast-warning{background:linear-gradient(135deg,#fff,#fffbeb);border-left-color:#f59e0b}.toast-info{background:linear-gradient(135deg,#fff,#eff6ff);border-left-color:#3b82f6}.toast-icon{border-radius:50%;flex-shrink:0;height:8px;width:8px}.toast-icon--success{background:#059669}.toast-icon--error{background:#dc2626}.toast-icon--warning{background:#d97706}.toast-icon--info{background:#1d4ed8}.toast-message{color:#1f2937;flex:1 1;font-size:14px;font-weight:500;line-height:1.5}.toast-close{background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;font-size:18px;line-height:1;padding:4px;transition:all .2s}.toast-close:hover{background:#0000000d;color:#4b5563}@media (max-width:768px){.toast-container{left:16px;max-width:none;right:16px;top:10px;z-index:9999999}.toast{box-shadow:0 8px 30px #0000004d;min-width:auto;position:relative;transform:translateZ(0);width:100%}}.login-page{background:#f8fafc;display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-brand{align-items:center;background:linear-gradient(160deg,#0f172a,#1e3a8a 55%,#1d4ed8);color:#e2e8f0;display:flex;justify-content:center;padding:48px}.login-brand-inner{max-width:420px}.brand-mark{align-items:center;background:#ffffff1f;border:1px solid #fff3;border-radius:12px;display:flex;font-size:1.1rem;font-weight:700;height:52px;justify-content:center;letter-spacing:.04em;margin-bottom:28px;width:52px}.login-brand h1{color:#fff;font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1.2;margin-bottom:12px}.brand-tagline{color:#94a3b8;font-size:1rem;line-height:1.6;margin-bottom:32px}.brand-features{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0 0 40px;padding:0}.brand-features li{color:#cbd5e1;font-size:.9rem;padding-left:20px;position:relative}.brand-features li:before{background:#3b82f6;border-radius:50%;content:"";height:6px;left:0;position:absolute;top:.55em;width:6px}.brand-company{color:#64748b;font-size:.8rem;letter-spacing:.02em}.login-panel{align-items:center;display:flex;justify-content:center;padding:48px 32px}.login-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 4px 24px #0f172a0f;max-width:420px;padding:40px;width:100%}.login-header h2{color:#0f172a;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:6px}.login-header p{color:#64748b;font-size:.9rem;margin-bottom:28px}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:6px}.form-group label{color:#334155;font-size:.875rem;font-weight:600}.form-group input{background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#0f172a;font-size:.9375rem;padding:11px 14px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.form-group input:focus{border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81f;outline:none}.form-group input::placeholder{color:#94a3b8}.password-field{align-items:center;display:flex;position:relative}.password-field input{padding-right:64px}.toggle-password{background:none;border:none;color:#64748b;cursor:pointer;font-size:.8125rem;font-weight:600;min-height:auto;min-width:auto;padding:4px 0;position:absolute;right:12px}.toggle-password:hover{color:#1d4ed8}.alert{border-radius:8px;font-size:.875rem;line-height:1.4;padding:12px 14px}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.alert-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.login-btn{align-items:center;background:#1d4ed8;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9375rem;font-weight:600;gap:8px;justify-content:center;margin-top:4px;min-height:46px;padding:12px 16px;transition:background .15s ease,box-shadow .15s ease;width:100%}.login-btn:hover:not(:disabled){background:#1e3a8a;box-shadow:0 4px 12px #1d4ed840}.login-btn:disabled{cursor:not-allowed;opacity:.65}.login-btn.locked{background:#64748b}.spinner{animation:spin .7s linear infinite;border:2px solid #ffffff59;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.login-footer{border-top:1px solid #e2e8f0;margin-top:28px;padding-top:20px;text-align:center}.login-footer p{color:#94a3b8;font-size:.75rem}@media (max-width:900px){.login-page{grid-template-columns:1fr}.login-brand{min-height:auto;padding:36px 28px}.login-brand-inner{max-width:100%}.brand-features{margin-bottom:24px}.login-panel{padding:32px 20px 48px}.login-card{padding:28px 24px}}@media (max-width:480px){.login-brand h1{font-size:1.5rem}.brand-tagline{font-size:.9rem}}.lms-confirm-overlay{align-items:center;background:#0f172a73;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000000}.lms-confirm-dialog{background:#fff;background:var(--lms-surface,#fff);border:1px solid #dce3ed;border:1px solid var(--lms-border,#dce3ed);border-radius:14px;border-radius:var(--lms-radius-lg,14px);box-shadow:var(--lms-shadow-lg);max-width:420px;padding:24px;width:100%}.lms-confirm-dialog__title{color:#0f172a;color:var(--lms-text,#0f172a);font-size:1.125rem;font-weight:700;margin:0 0 8px}.lms-confirm-dialog__message{color:#64748b;color:var(--lms-text-muted,#64748b);font-size:.875rem;line-height:1.5;margin:0 0 20px}.lms-confirm-dialog__actions{display:flex;gap:8px;justify-content:flex-end}.lms-confirm-dialog .lms-btn--secondary{background:#fff;background:var(--lms-surface,#fff);border:1px solid #dce3ed;border:1px solid var(--lms-border,#dce3ed);color:#0f172a;color:var(--lms-text,#0f172a)}.lms-confirm-dialog .lms-btn--primary{background:#1d4ed8;background:var(--lms-brand,#1d4ed8);color:#fff}.loader{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#1d4ed8;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.App{min-height:100vh;text-align:left}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{background-color:#282c34;color:#fff;padding:20px}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,system-ui,-apple-system,sans-serif;margin:0;padding:0}@media (max-width:480px){.App{font-size:14px}.modal,.modal-overlay{margin:0 auto!important;max-width:95%!important;padding:15px!important;width:95%!important}.btn,.btn-primary,.btn-secondary,button{font-size:16px;min-height:44px;min-width:44px;padding:12px 16px}input,select,textarea{font-size:16px;min-height:44px;padding:12px}table{font-size:12px}td,th{padding:8px 4px!important}.desktop-only{display:none!important}}@media (max-width:768px){.tablet-only{display:block}.desktop-only{display:none}.admin-content,.container,.dashboard-content{padding:15px}.menu-item,.nav-item{min-height:48px;padding:12px 16px}}@media (min-width:769px){.mobile-only{display:none!important}.tablet-only{display:none}}@media (hover:none) and (pointer:coarse){.btn,.clickable,a,button{min-height:44px;min-width:44px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.loader{border-width:2px}}
/*# sourceMappingURL=main.0ca89aa9.css.map*/