:root{--lms-blue-50: hsl(217, 100%, 97%);--lms-blue-100: hsl(217, 91%, 92%);--lms-blue-500: hsl(217, 91%, 60%);--lms-blue-600: hsl(217, 91%, 52%);--lms-blue-700: hsl(217, 91%, 42%);--lms-violet-50: hsl(262, 83%, 97%);--lms-violet-500:hsl(262, 83%, 58%);--lms-violet-600:hsl(262, 83%, 50%);--lms-bg: hsl(220, 14%, 96%);--lms-surface: hsl(0, 0%, 100%);--lms-surface-2: hsl(220, 14%, 98%);--lms-border: hsl(220, 13%, 91%);--lms-text: hsl(222, 47%, 11%);--lms-text-muted: hsl(220, 9%, 46%);--lms-text-faint: hsl(220, 9%, 72%);--lms-primary: hsl(217, 91%, 60%);--lms-primary-h: hsl(217, 91%, 52%);--lms-accent: hsl(262, 83%, 58%);--lms-accent-h: hsl(262, 83%, 50%);--lms-success: hsl(158, 64%, 45%);--lms-warning: hsl(38, 92%, 50%);--lms-danger: hsl(0, 84%, 60%);--lms-info: hsl(199, 89%, 48%);--lms-sidebar-bg: hsl(222, 28%, 12%);--lms-sidebar-text: hsl(220, 14%, 75%);--lms-sidebar-active-bg: hsl(217, 91%, 60%);--lms-sidebar-active-text: hsl(0, 0%, 100%);--lms-shadow-xs: 0 1px 2px rgba(0,0,0,.05);--lms-shadow-sm: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--lms-shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);--lms-shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);--lms-shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04);--lms-shadow-2xl: 0 25px 50px -12px rgba(0,0,0,.25);--lms-font: "Inter", -apple-system, sans-serif;--lms-radius-sm: 6px;--lms-radius: 10px;--lms-radius-md: 14px;--lms-radius-lg: 18px;--lms-radius-xl: 24px;--lms-radius-full: 9999px;--lms-dur-fast: .15s;--lms-dur: .25s;--lms-dur-slow: .4s;--lms-ease: cubic-bezier(.4, 0, .2, 1);--lms-ease-spring:cubic-bezier(.34, 1.56, .64, 1);--lms-sidebar-w: 260px;--lms-topnav-h: 60px}[data-theme=dark]{--lms-bg: hsl(224, 20%, 10%);--lms-surface: hsl(224, 15%, 14%);--lms-surface-2: hsl(224, 15%, 17%);--lms-border: hsl(224, 15%, 22%);--lms-text: hsl(220, 14%, 92%);--lms-text-muted: hsl(220, 9%, 60%);--lms-text-faint: hsl(220, 9%, 40%)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--lms-font);font-size:15px;color:var(--lms-text);background:var(--lms-bg);line-height:1.6;-webkit-font-smoothing:antialiased}#lms-app{min-height:100vh;display:flex;flex-direction:column}a{color:var(--lms-primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}button{cursor:pointer;font-family:inherit;border:none;background:none}input,select,textarea{font-family:inherit}.lms-initial-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px}.lms-loader-logo{display:flex;align-items:center;gap:10px;font-size:28px;font-weight:800;color:var(--lms-primary)}.lms-loader-logo i{font-size:32px}.lms-loader-bar{width:200px;height:4px;border-radius:var(--lms-radius-full);background:var(--lms-border);overflow:hidden}.lms-loader-fill{height:100%;background:var(--lms-primary);border-radius:inherit;animation:lms-loading-bar 1.5s ease-in-out infinite}@keyframes lms-loading-bar{0%{width:0;transform:translate(0)}50%{width:60%}to{width:0;transform:translate(200px)}}.lms-initial-loader p{color:var(--lms-text-muted);font-size:13px}.lms-h1{font-size:32px;font-weight:800;letter-spacing:-.5px;line-height:1.2}.lms-h2{font-size:22px;font-weight:700;letter-spacing:-.3px}.lms-h3{font-size:17px;font-weight:600}.lms-h4{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--lms-text-muted)}.lms-mono{font-family:SFMono-Regular,Consolas,monospace;font-size:13px}.lms-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;border-radius:var(--lms-radius);transition:all var(--lms-dur) var(--lms-ease);border:1.5px solid transparent;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lms-btn:active{transform:scale(.97)}.lms-btn:disabled{opacity:.55;pointer-events:none}.lms-btn-primary{background:var(--lms-primary);color:#fff;box-shadow:0 4px 12px #3c83f64d}.lms-btn-primary:hover{background:var(--lms-primary-h);box-shadow:0 4px 16px #3c83f666}.lms-btn-accent{background:var(--lms-accent);color:#fff;box-shadow:0 4px 12px #7c3bed47}.lms-btn-accent:hover{background:var(--lms-accent-h)}.lms-btn-outline{background:transparent;border-color:var(--lms-border);color:var(--lms-text)}.lms-btn-outline:hover{background:var(--lms-surface-2);border-color:var(--lms-primary);color:var(--lms-primary)}.lms-btn-ghost{background:transparent;color:var(--lms-text-muted)}.lms-btn-ghost:hover{background:var(--lms-surface-2);color:var(--lms-text)}.lms-btn-danger{background:var(--lms-danger);color:#fff;box-shadow:0 4px 12px #ef434340}.lms-btn-danger:hover{background:#eb1e1e}.lms-btn-success{background:var(--lms-success);color:#fff}.lms-btn-success:hover{background:#239f71}.lms-btn-sm{padding:6px 14px;font-size:13px;border-radius:var(--lms-radius-sm)}.lms-btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--lms-radius-md)}.lms-btn-block{width:100%}.lms-btn-icon{padding:10px;aspect-ratio:1;border-radius:var(--lms-radius)}.lms-card{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-card-body{padding:20px}.lms-card-header{padding:16px 20px;border-bottom:1px solid var(--lms-border);font-weight:700;font-size:15px}.lms-card-footer{padding:14px 20px;border-top:1px solid var(--lms-border);background:var(--lms-surface-2)}.lms-label{display:block;font-size:13px;font-weight:600;color:var(--lms-text-muted);margin-bottom:6px}.lms-input{width:100%;padding:10px 14px;font-size:14px;border:1.5px solid var(--lms-border);border-radius:var(--lms-radius);background:var(--lms-surface);color:var(--lms-text);transition:border-color var(--lms-dur-fast),box-shadow var(--lms-dur-fast);outline:none}.lms-input:focus{border-color:var(--lms-primary);box-shadow:0 0 0 3px #3c83f626}.lms-input::-moz-placeholder{color:var(--lms-text-faint)}.lms-input::placeholder{color:var(--lms-text-faint)}.lms-input-error{border-color:var(--lms-danger)}.lms-input-error:focus{box-shadow:0 0 0 3px #ef434326}.lms-field-error{font-size:12px;color:var(--lms-danger);margin-top:4px}.lms-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%239ca3af'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}.lms-textarea{resize:vertical;min-height:100px}.lms-input-group{position:relative}.lms-input-group .lms-input{padding-right:42px}.lms-pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--lms-text-faint);font-size:15px;background:none;border:none;cursor:pointer;transition:color var(--lms-dur-fast)}.lms-pw-toggle:hover{color:var(--lms-primary)}.lms-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:700;border-radius:var(--lms-radius-full);text-transform:uppercase;letter-spacing:.04em}.lms-badge-primary{background:#3c83f61f;color:var(--lms-primary)}.lms-badge-accent{background:#7c3bed1f;color:var(--lms-accent)}.lms-badge-success{background:#29bc861f;color:var(--lms-success)}.lms-badge-warning{background:#f59f0a1f;color:var(--lms-warning)}.lms-badge-danger{background:#ef43431f;color:var(--lms-danger)}.lms-badge-gray{background:var(--lms-border);color:var(--lms-text-muted)}.lms-progress-bar{width:100%;height:6px;background:var(--lms-border);border-radius:var(--lms-radius-full);overflow:hidden}.lms-progress-fill{height:100%;border-radius:inherit;background:var(--lms-primary);transition:width .8s var(--lms-ease)}.lms-progress-ring{transform:rotate(-90deg)}.lms-progress-ring-bg{fill:none;stroke:var(--lms-border)}.lms-progress-ring-fg{fill:none;stroke:var(--lms-primary);stroke-linecap:round;transition:stroke-dashoffset 1s var(--lms-ease)}.lms-sidebar{width:var(--lms-sidebar-w);min-height:100vh;flex-shrink:0;background:var(--lms-sidebar-bg);display:flex;flex-direction:column;border-right:1px solid transparent}.lms-sidebar-logo{padding:22px 20px 16px;display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;color:#fff;border-bottom:1px solid hsl(0 0% 100% / 8%)}.lms-sidebar-logo i{font-size:22px;color:var(--lms-blue-500)}.lms-sidebar-logo small{font-size:11px;font-weight:400;color:#fff6;display:block}.lms-sidebar-nav{flex:1;padding:12px 10px;overflow-y:auto}.lms-nav-section-label{font-size:10px;font-weight:800;letter-spacing:.1em;color:#ffffff4d;padding:12px 10px 6px;text-transform:uppercase}.lms-nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--lms-radius-sm);font-size:14px;font-weight:500;color:var(--lms-sidebar-text);cursor:pointer;transition:all var(--lms-dur-fast);position:relative;margin-bottom:2px}.lms-nav-item i{width:18px;text-align:center;font-size:15px;flex-shrink:0}.lms-nav-item:hover{background:#ffffff14;color:#fff}.lms-nav-item.active{background:var(--lms-primary);color:#fff;font-weight:600;box-shadow:0 4px 12px #3c83f64d}.lms-nav-badge{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:var(--lms-danger);color:#fff;font-size:10px;font-weight:800;min-width:18px;height:18px;border-radius:var(--lms-radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px}.lms-sidebar-user{padding:16px;border-top:1px solid hsl(0 0% 100% / 8%)}.lms-sidebar-avatar{width:36px;height:36px;border-radius:var(--lms-radius-full);background:var(--lms-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex-shrink:0}.lms-topnav{height:var(--lms-topnav-h);background:var(--lms-surface);border-bottom:1px solid var(--lms-border);display:flex;align-items:center;padding:0 24px;gap:16px;position:sticky;top:0;z-index:90;box-shadow:var(--lms-shadow-xs)}.lms-topnav-brand{font-size:18px;font-weight:800;color:var(--lms-primary);display:flex;align-items:center;gap:8px;margin-right:8px}.lms-tab-bar{display:flex;align-items:center;gap:2px;flex:1;overflow-x:auto}.lms-tab-bar::-webkit-scrollbar{display:none}.lms-tab-btn{padding:8px 14px;font-size:13px;font-weight:500;border-radius:var(--lms-radius-sm);color:var(--lms-text-muted);white-space:nowrap;transition:all var(--lms-dur-fast);position:relative}.lms-tab-btn:hover{background:var(--lms-surface-2);color:var(--lms-text)}.lms-tab-btn.active{background:#3c83f61a;color:var(--lms-primary);font-weight:700}.lms-table-wrap{overflow-x:auto;border-radius:var(--lms-radius-lg);border:1px solid var(--lms-border);background:var(--lms-surface)}.lms-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}.lms-table th{padding:12px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lms-text-muted);background:var(--lms-surface-2);border-bottom:1px solid var(--lms-border);white-space:nowrap}.lms-table td{padding:14px 16px;border-bottom:1px solid var(--lms-border);color:var(--lms-text);vertical-align:middle}.lms-table tr:last-child td{border-bottom:none}.lms-table tr:hover td{background:var(--lms-surface-2)}@keyframes lms-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.lms-skeleton{border-radius:var(--lms-radius-sm);background:linear-gradient(90deg,var(--lms-border) 25%,var(--lms-surface-2) 50%,var(--lms-border) 75%);background-size:800px 100%;animation:lms-shimmer 1.4s infinite}.lms-skeleton-text{height:14px;margin-bottom:8px}.lms-skeleton-title{height:22px;margin-bottom:12px;width:60%}.lms-skeleton-card{height:180px;border-radius:var(--lms-radius-lg)}.lms-overlay{position:fixed;inset:0;background:#0000007f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;animation:lms-fade-in var(--lms-dur-fast) var(--lms-ease)}.lms-modal{background:var(--lms-surface);border-radius:var(--lms-radius-xl);box-shadow:var(--lms-shadow-2xl);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;animation:lms-slide-up var(--lms-dur) var(--lms-ease-spring)}.lms-modal-lg{max-width:780px}.lms-modal-header{padding:20px 24px;border-bottom:1px solid var(--lms-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.lms-modal-header h3{font-size:17px;font-weight:700}.lms-modal-close{width:32px;height:32px;border-radius:var(--lms-radius);display:flex;align-items:center;justify-content:center;color:var(--lms-text-muted);font-size:18px;transition:all var(--lms-dur-fast)}.lms-modal-close:hover{background:var(--lms-surface-2);color:var(--lms-danger)}.lms-modal-body{padding:24px;overflow-y:auto;flex:1}.lms-modal-footer{padding:16px 24px;border-top:1px solid var(--lms-border);display:flex;gap:10px;justify-content:flex-end;flex-shrink:0;background:var(--lms-surface-2);border-radius:0 0 var(--lms-radius-xl) var(--lms-radius-xl)}.lms-confirm-icon{width:52px;height:52px;border-radius:var(--lms-radius-md);display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 16px}.lms-confirm-icon.danger{background:#ef43431f;color:var(--lms-danger)}.lms-confirm-icon.info{background:#3c83f61f;color:var(--lms-primary)}#lms-toast-container{position:fixed;bottom:24px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:340px}.lms-toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--lms-radius-md);background:var(--lms-surface);border:1.5px solid var(--lms-border);box-shadow:var(--lms-shadow-xl);font-size:14px;animation:lms-slide-up var(--lms-dur) var(--lms-ease-spring);min-width:260px;position:relative;overflow:hidden}.lms-toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.lms-toast-info:before{background:var(--lms-info)}.lms-toast-success:before{background:var(--lms-success)}.lms-toast-error:before{background:var(--lms-danger)}.lms-toast-warning:before{background:var(--lms-warning)}.lms-toast-icon{font-size:16px;margin-top:1px;flex-shrink:0}.lms-toast-info .lms-toast-icon{color:var(--lms-info)}.lms-toast-success .lms-toast-icon{color:var(--lms-success)}.lms-toast-error .lms-toast-icon{color:var(--lms-danger)}.lms-toast-warning .lms-toast-icon{color:var(--lms-warning)}.lms-toast-title{font-weight:700;font-size:13px}.lms-toast-body{color:var(--lms-text-muted);font-size:13px;margin-top:2px}.lms-toast-close{position:absolute;top:10px;right:10px;color:var(--lms-text-faint);font-size:13px}.lms-toast-exit{animation:lms-toast-out .2s var(--lms-ease) forwards}@keyframes lms-toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%);max-height:0;padding:0;margin:0}}.lms-keyboard{display:flex;flex-direction:column;gap:5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lms-kb-row{display:flex;gap:4px;justify-content:center}.lms-key{min-width:36px;height:40px;border-radius:var(--lms-radius-sm);background:var(--lms-surface-2);border:1.5px solid var(--lms-border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--lms-text-faint);transition:all var(--lms-dur-fast);position:relative}.lms-key.unlocked{color:var(--lms-text)}.lms-key.key-next{border-color:var(--lms-primary);color:var(--lms-primary);background:#3c83f61a;animation:lms-key-pulse 1s ease-in-out infinite}.lms-key.key-correct{background:#29bc8633;border-color:var(--lms-success);color:var(--lms-success)}.lms-key.key-error{background:#ef434333;border-color:var(--lms-danger);color:var(--lms-danger)}@keyframes lms-key-pulse{0%,to{box-shadow:0 0 #3c83f64d}50%{box-shadow:0 0 0 6px #3c83f600}}.finger-lp{border-color:#b447eb}.finger-lr{border-color:#30abe8}.finger-lm{border-color:#1fd699}.finger-li,.finger-ri{border-color:#ee9d2b}.finger-rm{border-color:#1fd699}.finger-rr{border-color:#30abe8}.finger-rp{border-color:#b447eb}.key-backspace{min-width:70px}.key-tab{min-width:56px}.key-caps{min-width:62px}.key-enter{min-width:80px}.key-shift,.key-shift-r{min-width:88px}.key-space{min-width:240px}.lms-type-display{font-family:SFMono-Regular,Consolas,monospace;font-size:22px;line-height:1.8;letter-spacing:.04em;padding:24px;background:var(--lms-surface);border-radius:var(--lms-radius-lg);border:1.5px solid var(--lms-border);word-break:break-all;min-height:120px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lms-char-pending{color:var(--lms-text-faint)}.lms-char-correct{color:var(--lms-success)}.lms-char-error{color:var(--lms-danger);text-decoration:underline;background:#ef43431a}.lms-char-cursor{border-left:2px solid var(--lms-primary);margin-left:-2px;animation:lms-blink 1s step-end infinite}@keyframes lms-blink{50%{opacity:0}}.lms-metrics-bar{display:flex;gap:20px;padding:14px 20px;background:var(--lms-surface);border-radius:var(--lms-radius-md);border:1px solid var(--lms-border)}.lms-metric{text-align:center}.lms-metric-value{font-size:26px;font-weight:800;color:var(--lms-text);line-height:1}.lms-metric-label{font-size:11px;color:var(--lms-text-muted);font-weight:600;text-transform:uppercase;margin-top:2px}.lms-video-wrap{position:relative;background:#000;border-radius:var(--lms-radius-lg);overflow:hidden;aspect-ratio:16/9;box-shadow:0 8px 32px #00000040;cursor:pointer}.lms-video-wrap video{width:100%;height:100%;display:block}.lms-video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000d9);padding:32px 16px 14px;opacity:0;transition:opacity .3s ease;z-index:10}.lms-video-wrap:hover .lms-video-controls,.lms-video-wrap.controls-visible .lms-video-controls{opacity:1}.lms-video-progress{width:100%;height:4px;border-radius:var(--lms-radius-full);background:#fff3;cursor:pointer;margin-bottom:10px;position:relative;transition:height .15s ease}.lms-video-progress:hover{height:6px}.lms-video-progress-fill{height:100%;background:var(--lms-primary);border-radius:inherit;pointer-events:none;position:relative;transition:width .05s linear}.lms-video-progress-buf{height:100%;background:#ffffff40;border-radius:inherit;position:absolute;top:0;pointer-events:none}.lms-vid-progress-thumb{position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background:var(--lms-primary);border:2px solid #fff;box-shadow:0 2px 6px #0006;opacity:0;transition:opacity .15s}.lms-video-progress:hover .lms-vid-progress-thumb{opacity:1}.lms-vid-seek-tooltip{position:absolute;bottom:70px;transform:translate(-50%);background:#1a1a1ae5;color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;pointer-events:none;z-index:15;opacity:0;transition:opacity .15s;font-variant-numeric:tabular-nums}.lms-vid-ctrl-btn{background:none;border:none;color:#ffffffd9;font-size:16px;padding:6px;cursor:pointer;border-radius:6px;transition:all .15s;display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.lms-vid-ctrl-btn:hover{color:#fff;background:#ffffff1f}.lms-vid-volume-group{display:flex;align-items:center;gap:2px;position:relative}.lms-vid-volume-slider-wrap{width:0;overflow:hidden;transition:width .25s var(--lms-ease)}.lms-vid-volume-group:hover .lms-vid-volume-slider-wrap{width:80px}.lms-vid-volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:80px;height:4px;border-radius:3px;background:#ffffff4d;outline:none;cursor:pointer}.lms-vid-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;border:none;cursor:pointer;box-shadow:0 1px 4px #0000004d}.lms-vid-volume-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:none;cursor:pointer}.lms-vid-speed-sel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;color:#ffffffd9;border:1px solid hsl(0 0% 100% / 15%);border-radius:6px;font-size:12px;font-weight:600;padding:4px 8px;cursor:pointer;outline:none;transition:all .15s;font-variant-numeric:tabular-nums}.lms-vid-speed-sel:hover{background:#ffffff2e;color:#fff}.lms-vid-speed-sel option{background:#161b27;color:#fff}.lms-vid-center-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;pointer-events:auto;transition:opacity .3s}.lms-vid-center-play-btn{width:64px;height:64px;border-radius:50%;background:#0000007f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;transition:all .2s;border:2px solid hsl(0 0% 100% / 20%);opacity:0;transform:scale(.8)}.lms-vid-center-play--paused .lms-vid-center-play-btn,.lms-video-wrap:hover .lms-vid-center-play-btn{opacity:1;transform:scale(1)}.lms-vid-center-play-btn:hover{background:#3c83f6b3;transform:scale(1.08);border-color:#fff6}.lms-chat-wrap{display:flex;height:calc(100vh - var(--lms-topnav-h) - 48px)}.lms-chat-sidebar{width:300px;flex-shrink:0;border-right:1px solid var(--lms-border);display:flex;flex-direction:column;background:var(--lms-surface);border-radius:var(--lms-radius-lg) 0 0 var(--lms-radius-lg);overflow:hidden}.lms-chat-main{flex:1;display:flex;flex-direction:column;background:var(--lms-surface);border-radius:0 var(--lms-radius-lg) var(--lms-radius-lg) 0;overflow:hidden}.lms-chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}.lms-bubble{max-width:70%}.lms-bubble-mine{align-self:flex-end}.lms-bubble-theirs{align-self:flex-start}.lms-bubble-text{padding:10px 14px;border-radius:18px;font-size:14px;line-height:1.5}.lms-bubble-mine .lms-bubble-text{background:var(--lms-primary);color:#fff;border-bottom-right-radius:4px}.lms-bubble-theirs .lms-bubble-text{background:var(--lms-surface-2);color:var(--lms-text);border-bottom-left-radius:4px;border:1px solid var(--lms-border)}.lms-bubble-time{font-size:10px;color:var(--lms-text-faint);margin-top:3px}.lms-typing-indicator span{display:inline-block;width:6px;height:6px;background:var(--lms-text-faint);border-radius:50%;margin:0 2px;animation:lms-typing-dot 1.2s ease-in-out infinite}.lms-typing-indicator span:nth-child(2){animation-delay:.2s}.lms-typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes lms-typing-dot{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}.lms-notif-drawer{position:fixed;right:0;top:0;bottom:0;width:360px;background:var(--lms-surface);border-left:1px solid var(--lms-border);box-shadow:var(--lms-shadow-2xl);z-index:500;display:flex;flex-direction:column;animation:lms-slide-from-right var(--lms-dur) var(--lms-ease-spring)}@keyframes lms-slide-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}.lms-kpi-card{background:var(--lms-surface);border:1px solid var(--lms-border);border-radius:var(--lms-radius-lg);padding:20px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--lms-shadow-sm)}.lms-kpi-icon{width:44px;height:44px;border-radius:var(--lms-radius);display:flex;align-items:center;justify-content:center;font-size:18px}.lms-kpi-value{font-size:32px;font-weight:800;line-height:1}.lms-kpi-label{font-size:13px;color:var(--lms-text-muted);font-weight:500}.lms-course-card{background:var(--lms-surface);border:1px solid var(--lms-border);border-radius:var(--lms-radius-lg);box-shadow:var(--lms-shadow-sm);overflow:hidden;transition:all var(--lms-dur);display:flex;flex-direction:column}.lms-course-card:hover{transform:translateY(-2px);box-shadow:var(--lms-shadow-lg)}.lms-course-thumb{height:140px;background:linear-gradient(135deg,#3c83f6,#7c3bed);display:flex;align-items:center;justify-content:center;font-size:40px;color:#fff}.lms-course-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:10px}.lms-course-rating{display:flex;gap:3px}.lms-star{color:#f59f0a;font-size:13px}.lms-star-empty{color:var(--lms-border)}.lms-xp-bar-wrap{background:var(--lms-border);height:8px;border-radius:var(--lms-radius-full);overflow:hidden}.lms-xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--lms-primary),var(--lms-accent));border-radius:inherit;transition:width 1s var(--lms-ease)}.lms-level-badge{display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,#3c83f6,#7c3bed);color:#fff;padding:4px 12px;border-radius:var(--lms-radius-full);font-size:12px;font-weight:700}.lms-streak-badge{display:inline-flex;align-items:center;gap:4px;background:#f59f0a1f;color:#dc8f09;padding:4px 10px;border-radius:var(--lms-radius-full);font-size:12px;font-weight:700}.lms-dropzone{border:2px dashed var(--lms-border);border-radius:var(--lms-radius-lg);padding:40px 20px;text-align:center;cursor:pointer;transition:all var(--lms-dur)}.lms-dropzone:hover,.lms-dropzone.dragover{border-color:var(--lms-primary);background:#3c83f60a}.lms-dropzone i{font-size:32px;color:var(--lms-text-faint);margin-bottom:10px}.lms-auth-wrap{min-height:100vh;display:flex}.lms-auth-left{flex:1;background:linear-gradient(135deg,#1a202e,#121721);padding:60px;display:flex;flex-direction:column;justify-content:center}.lms-auth-right{width:500px;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--lms-surface)}.lms-auth-form{width:100%;max-width:380px}.lms-role-toggle-wrap{position:relative;display:flex;background:#eeeff299;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--lms-radius-full);padding:4px;margin-bottom:28px;border:1.5px solid hsl(220 13% 88% / 80%);box-shadow:inset 0 1px 3px #0000000f;overflow:hidden}[data-theme=dark] .lms-role-toggle-wrap{background:#272b35b3;border-color:#3d425299}.lms-role-toggle-slider{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);background:linear-gradient(135deg,var(--lms-primary),var(--lms-accent));border-radius:var(--lms-radius-full);transition:transform .38s var(--lms-ease-spring);box-shadow:0 2px 8px #3c83f659,0 0 0 1px #3c83f626;z-index:1}.lms-role-toggle-wrap[data-active=admin] .lms-role-toggle-slider{transform:translate(100%)}.lms-role-toggle-btn{position:relative;z-index:2;flex:1;padding:10px 16px;border:none;background:none;border-radius:var(--lms-radius-full);text-align:center;font-size:14px;font-weight:600;color:var(--lms-text-muted);cursor:pointer;transition:color .25s ease;display:flex;align-items:center;justify-content:center;gap:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lms-role-toggle-btn.active{color:#fff;text-shadow:0 1px 2px hsl(0 0% 0% / 15%)}.lms-role-toggle-btn:hover:not(.active){color:var(--lms-text)}.lms-role-tab-wrap{display:flex;background:var(--lms-surface-2);border-radius:var(--lms-radius-md);padding:4px;gap:4px;margin-bottom:28px;border:1px solid var(--lms-border)}.lms-role-tab{flex:1;padding:9px;border-radius:var(--lms-radius);text-align:center;font-size:14px;font-weight:600;color:var(--lms-text-muted);transition:all var(--lms-dur-fast);cursor:pointer}.lms-role-tab.active{background:var(--lms-surface);color:var(--lms-primary);box-shadow:var(--lms-shadow-sm)}.lms-logout-btn{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1.5px solid hsl(0 84% 60% / 20%);border-radius:var(--lms-radius);background:#ef434314;color:#ef4343cc;font-size:13px;font-weight:600;cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden}.lms-logout-btn:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,hsl(0 84% 60% / 12%) 0%,transparent 70%);opacity:0;transition:opacity .25s ease}.lms-logout-btn:hover{background:#ef434326;border-color:#ef434366;color:#ef4343;box-shadow:0 0 16px #ef434326;transform:translateY(-1px)}.lms-logout-btn:hover:before{opacity:1}.lms-logout-btn:active{transform:translateY(0)}.lms-admin-logout-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--lms-radius);border:1.5px solid var(--lms-border);background:var(--lms-surface-2);color:var(--lms-text-muted);font-size:16px;cursor:pointer;transition:all .25s ease;position:relative}.lms-admin-logout-btn:hover{background:#ef434326;border-color:#ef434366;color:#f37272;box-shadow:0 0 14px #ef434333}.lms-admin-logout-btn .lms-tooltip{position:absolute;bottom:-32px;left:50%;transform:translate(-50%) translateY(4px);padding:4px 10px;background:#1a202e;color:#fff;font-size:11px;font-weight:600;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s ease}.lms-admin-logout-btn:hover .lms-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.lms-reading-progress{position:fixed;top:0;left:0;height:3px;background:var(--lms-primary);z-index:1000;transition:width .1s linear}.lms-confetti-wrap{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}.lms-confetti-piece{position:absolute;width:8px;height:8px;animation:lms-confetti-fall linear forwards}@keyframes lms-confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes lms-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lms-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes lms-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.lms-anim-fade{animation:lms-fade-in var(--lms-dur) var(--lms-ease)}.lms-anim-up{animation:lms-slide-up var(--lms-dur) var(--lms-ease-spring)}.lms-anim-scale{animation:lms-scale-in var(--lms-dur) var(--lms-ease-spring)}.lms-stagger>*{animation:lms-slide-up var(--lms-dur) var(--lms-ease-spring) both}.lms-stagger>*:nth-child(1){animation-delay:0ms}.lms-stagger>*:nth-child(2){animation-delay:50ms}.lms-stagger>*:nth-child(3){animation-delay:.1s}.lms-stagger>*:nth-child(4){animation-delay:.15s}.lms-stagger>*:nth-child(5){animation-delay:.2s}.lms-stagger>*:nth-child(6){animation-delay:.25s}.lms-prose{max-width:720px;line-height:1.75}.lms-prose h1,.lms-prose h2,.lms-prose h3{font-weight:700;margin:1.5em 0 .5em;line-height:1.3}.lms-prose h1{font-size:28px}.lms-prose h2{font-size:22px;border-bottom:1px solid var(--lms-border);padding-bottom:8px}.lms-prose h3{font-size:18px}.lms-prose p{margin:.8em 0}.lms-prose ul,.lms-prose ol{padding-left:24px;margin:.8em 0}.lms-prose li{margin:.4em 0}.lms-prose code{font-family:monospace;background:var(--lms-surface-2);padding:2px 5px;border-radius:4px;font-size:.9em}.lms-prose pre{background:#1e1e2e;color:#cdd6f4;border-radius:var(--lms-radius-md);padding:20px;overflow-x:auto;margin:1em 0}.lms-prose pre code{background:none;padding:0;font-size:13px}.lms-prose blockquote{border-left:4px solid var(--lms-primary);padding:12px 16px;margin:1em 0;background:#3c83f60d;border-radius:0 var(--lms-radius-sm) var(--lms-radius-sm) 0}.lms-prose table{border-collapse:collapse;width:100%;margin:1em 0}.lms-prose th,.lms-prose td{border:1px solid var(--lms-border);padding:10px 12px}.lms-prose th{background:var(--lms-surface-2);font-weight:600}.lms-prose a{color:var(--lms-primary)}.lms-prose img{max-width:100%;border-radius:var(--lms-radius-md)}.lms-prose strong{font-weight:700}.lms-prose em{font-style:italic}.lms-flex{display:flex}.lms-flex-1{flex:1}.lms-items-center{align-items:center}.lms-justify-between{justify-content:space-between}.lms-gap-2{gap:8px}.lms-gap-3{gap:12px}.lms-gap-4{gap:16px}.lms-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.lms-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.lms-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.lms-p-4{padding:16px}.lms-p-6{padding:24px}.lms-mt-4{margin-top:16px}.lms-mb-4{margin-bottom:16px}.lms-w-full{width:100%}.lms-text-sm{font-size:13px}.lms-text-xs{font-size:11px}.lms-text-muted{color:var(--lms-text-muted)}.lms-hidden{display:none!important}.lms-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lms-divider{height:1px;background:var(--lms-border);margin:16px 0}.lms-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1024px){.lms-sidebar{width:220px}:root{--lms-sidebar-w: 220px}.lms-grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.lms-auth-left{display:none}.lms-auth-right{width:100%}.lms-sidebar{position:fixed;left:-100%;z-index:300;transition:left var(--lms-dur)}.lms-sidebar.open{left:0}.lms-grid-3{grid-template-columns:repeat(2,1fr)}.lms-grid-2{grid-template-columns:1fr}.lms-chat-sidebar{display:none}}@media(max-width:480px){.lms-grid-3,.lms-grid-2{grid-template-columns:1fr}.lms-notif-drawer{width:100%}.lms-modal{border-radius:var(--lms-radius-lg)}}.lms-theme-toggle{width:40px;height:22px;border-radius:var(--lms-radius-full);background:var(--lms-border);position:relative;cursor:pointer;transition:background var(--lms-dur)}.lms-theme-toggle.active{background:var(--lms-primary)}.lms-theme-toggle:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:inherit;background:#fff;transition:left var(--lms-dur) var(--lms-ease-spring)}.lms-theme-toggle.active:after{left:calc(100% - 19px)}:focus-visible{outline:3px solid hsl(217 91% 60% / 50%);outline-offset:2px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--lms-border);border-radius:var(--lms-radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--lms-text-faint)}
