.office-viewer{max-width:700px;margin:0 auto}.office-description{margin-bottom:20px;padding:16px 20px;color:var(--gray-700);font-size:.95rem;line-height:1.6}.office-description p{margin:6px 0}.office-file-links{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.office-file-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--primary);font-weight:500;font-size:.9rem;text-decoration:none;transition:all .2s ease}.office-file-btn:hover{background:#3b82f60d;border-color:var(--primary)}.office-file-btn-pdf{color:#dc2626}.office-file-btn-pdf:hover{background:#dc26260d;border-color:#dc2626}.office-upload-zone{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--gray-50)}.office-upload-zone:hover,.office-upload-zone.dragging{border-color:var(--primary);background:#3b82f60d}.office-upload-icon{font-size:3rem;color:var(--gray-400);margin-bottom:15px}.office-upload-zone p{color:var(--gray-500);margin:5px 0;font-size:.95rem}.office-upload-zone .hint{font-size:.85rem;color:var(--gray-400)}.office-file-selected{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--gray-50);border-radius:var(--radius-md);margin-top:15px;border:1px solid var(--gray-200)}.office-file-selected .file-name{display:flex;align-items:center;gap:8px;color:var(--gray-700);font-weight:500}.office-file-selected .remove-btn{background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:1.1rem;padding:4px}.office-file-selected .remove-btn:hover{color:var(--error)}.office-submit-btn{display:block;margin:20px auto 0;padding:12px 40px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.office-submit-btn:hover{opacity:.9}.office-submit-btn:disabled{opacity:.5;cursor:not-allowed}.office-loading{text-align:center;padding:60px 20px}.office-loading .spinner{width:48px;height:48px;border:4px solid var(--gray-200);border-top:4px solid var(--primary);border-radius:50%;animation:office-spin .8s linear infinite;margin:0 auto 20px}@keyframes office-spin{to{transform:rotate(360deg)}}.office-loading p{color:var(--gray-500);font-size:1rem}.office-results{padding:10px 0;animation:offFadeInUp .5s ease-out}.office-results.is-celebration{animation:offCelebrate .6s ease-out}.office-score-header{text-align:center;padding:30px 20px;background:var(--gray-50);border-radius:var(--radius-lg);margin-bottom:20px}.office-score-label{color:var(--gray-500);font-size:.9rem;margin-top:4px}.office-ring-wrap{position:relative;width:150px;height:150px;margin:0 auto 8px}.office-ring-svg{position:absolute;top:0;left:0}.office-ring-progress{animation:offRingFill 1.2s cubic-bezier(.4,0,.2,1) forwards}@keyframes offRingFill{0%{stroke-dashoffset:var(--ring-circ)}to{stroke-dashoffset:var(--ring-target)}}.office-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;line-height:1}.office-ring-score{font-size:2rem;font-weight:800}.office-ring-divider{font-size:1.3rem;font-weight:400;color:var(--gray-400);margin:0 2px}.office-ring-max{font-size:1.3rem;font-weight:600;color:var(--gray-500)}.office-ring-label{font-size:.75rem;font-weight:600;color:var(--gray-400);margin-top:4px;letter-spacing:.5px}.office-msg-box{margin-top:14px;padding:12px 18px;font-size:.9rem;font-weight:500;border-radius:var(--radius-md);animation:offFadeInUp .5s ease-out .3s both}.office-msg-box.msg-success{background:#10b98114;color:var(--success);border:1px solid rgba(16,185,129,.25)}.office-msg-box.msg-partial{background:#f59e0b14;color:#b45309;border:1px solid rgba(245,158,11,.25)}.office-msg-box.msg-error{background:#ef444414;color:var(--error);border:1px solid rgba(239,68,68,.25)}.office-rounding-note{margin-top:8px;font-size:.78rem;color:var(--gray-500);text-align:center}.office-criterion-animated{animation:offSlideIn .4s ease-out both}@keyframes offSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.office-check-item.check-pass{background:#10b9810a}.office-check-item.check-fail{background:#ef44440a}@keyframes offFadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes offCelebrate{0%{transform:scale(1)}50%{transform:scale(1.015);box-shadow:0 8px 40px #10b98133}to{transform:scale(1)}}.office-actions{display:flex;justify-content:center;gap:12px;margin-bottom:25px}.office-actions button{padding:8px 20px;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.office-details-btn{background:var(--primary);color:#fff;border:none}.office-details-btn:hover{opacity:.9}.office-reset-btn{background:#fff;color:var(--gray-600);border:1px solid var(--gray-300)}.office-reset-btn:hover{border-color:var(--gray-400)}.office-criterion{border:1px solid var(--gray-200);border-radius:var(--radius-md);margin-bottom:10px;overflow:hidden}.office-criterion-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--gray-50);cursor:pointer;-webkit-user-select:none;user-select:none}.office-criterion-header:hover{background:var(--gray-100)}.office-criterion-name{font-weight:600;color:var(--gray-700);font-size:.95rem}.office-criterion-score{font-weight:600;font-size:.9rem;padding:3px 10px;border-radius:var(--radius-full)}.office-criterion-score.full{background:#22c55e1a;color:var(--success)}.office-criterion-score.partial{background:#f59e0b1a;color:#d97706}.office-criterion-score.zero{background:#ef44441a;color:var(--error)}.office-checks-list{padding:0;border-top:1px solid var(--gray-200)}.office-check-item{display:flex;align-items:flex-start;gap:10px;padding:8px 16px;border-bottom:1px solid var(--gray-100);font-size:.85rem}.office-check-item:last-child{border-bottom:none}.office-check-icon{flex-shrink:0;margin-top:2px;font-size:.9rem}.office-check-icon.pass{color:var(--success)}.office-check-icon.fail{color:var(--error)}.office-check-desc{flex:1;color:var(--gray-600)}.office-check-pts{flex-shrink:0;font-weight:500;color:var(--gray-500);font-size:.8rem}.office-error{text-align:center;padding:20px;color:var(--error);background:#ef44440d;border-radius:var(--radius-md);margin-top:15px}.karel-app-layout{--color-primary: #6366f1;--color-primary-dark: #4f46e5;--color-primary-light: #818cf8;--color-success: #10b981;--color-success-dark: #059669;--color-success-light: #34d399;--color-error: #ef4444;--color-error-dark: #dc2626;--color-error-light: #f87171;--color-warning: #f59e0b;--color-warning-dark: #d97706;--color-bg-primary: #0f0f1a;--color-bg-secondary: #1a1a2e;--color-bg-tertiary: #16213e;--color-bg-card: #1e1e32;--color-bg-hover: #2a2a45;--color-text-primary: #f8fafc;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-border: #334155;--color-border-light: #475569;--color-karel: #6366f1;--color-beeper: #fbbf24;--color-wall: #1e293b;--color-grid: #334155;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--sidebar-width: 380px}.karel-app-layout{display:flex;height:calc(100vh - 80px);width:100%;overflow:hidden;font-family:var(--font-sans);background:var(--color-bg-primary);color:var(--color-text-primary)}.karel-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100%;background:linear-gradient(180deg,#1a1a2e,#16162a);border-right:1px solid rgba(99,102,241,.1);display:flex;flex-direction:column;overflow:hidden;box-shadow:2px 0 20px #0000004d}.karel-sidebar-header{padding:var(--spacing-xl);border-bottom:1px solid rgba(255,255,255,.05);background:#6366f10d}.karel-sidebar-logo{display:flex;align-items:center;gap:var(--spacing-md)}.karel-sidebar-logo-icon{width:56px;height:56px;background:linear-gradient(135deg,#6366f1,#818cf8);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.75rem;box-shadow:0 8px 24px #6366f166}.karel-sidebar-logo-text h1{font-size:1.5rem;font-weight:700;background:linear-gradient(90deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#54a0ff,#5f27cd,#ff6b6b);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rainbowMove 3s linear infinite;margin-bottom:4px}.karel-sidebar-logo-text span{font-size:.75rem;color:var(--color-text-muted);font-weight:500;letter-spacing:.5px}.karel-sidebar-content{flex:1;overflow-y:auto;padding:var(--spacing-lg);padding-top:var(--spacing-md)}.karel-main-menu{display:flex;flex-direction:column;gap:var(--spacing-xs)}.karel-menu-section{margin-bottom:var(--spacing-xs)}.karel-menu-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);position:relative}.karel-menu-header:hover{background:#ffffff14;border-color:#6366f14d}.karel-menu-header.active{background:#6366f126;border-color:#6366f166}.karel-menu-icon{font-size:1.25rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.karel-menu-title{flex:1;font-weight:600;font-size:.95rem;color:var(--color-text-primary)}.karel-menu-arrow{font-size:1.5rem;font-weight:600;color:var(--color-text-muted);transition:all .3s ease;display:inline-block}.karel-menu-header:hover .karel-menu-arrow{color:var(--color-primary);transform:scale(1.15) rotate(90deg)}.karel-menu-header.active .karel-menu-arrow{color:var(--color-primary)}.karel-menu-items{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-xs);margin-left:var(--spacing-lg);padding-left:var(--spacing-md);border-left:2px solid rgba(99,102,241,.2)}.karel-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#ffffff05;border:1px solid rgba(255,255,255,.03);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal)}.karel-menu-item:hover{background:#ffffff0f;border-color:#6366f133;transform:translate(2px)}.karel-menu-item.active{background:#6366f133;border-color:#6366f166}.karel-menu-item.completed{border-color:#10b98180;background:#10b98114;position:relative}.karel-menu-item.completed:after{content:"";position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px;height:8px;background:#10b981;border-radius:50%;box-shadow:0 0 8px #10b981cc;animation:karelCompletionPulse 2s infinite}@keyframes karelCompletionPulse{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.6;transform:translateY(-50%) scale(1.2)}}.karel-item-number{width:28px;height:28px;background:#ffffff0d;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;color:var(--color-text-secondary);transition:all var(--transition-normal)}.karel-menu-item.active .karel-item-number{background:var(--color-primary);color:#fff}.karel-menu-item.completed .karel-item-number{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 8px #10b98166;animation:karelSuccessGlow 2s ease-in-out infinite}@keyframes karelSuccessGlow{0%,to{box-shadow:0 2px 8px #10b98166}50%{box-shadow:0 2px 12px #10b98199}}.karel-item-title{flex:1;font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.karel-menu-item.active .karel-item-title{color:var(--color-text-primary);font-weight:600}.karel-main-content{flex:1;height:100%;overflow-y:auto;background:var(--color-bg-primary)}.karel-content-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl)}.karel-home-page{text-align:center;padding:var(--spacing-2xl)}.karel-home-page h1{font-size:2.5rem;margin-bottom:var(--spacing-md);background:linear-gradient(135deg,#a5b4fc,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.karel-home-page p{color:var(--color-text-secondary);font-size:1.1rem}.karel-assignment-header{margin-bottom:var(--spacing-xl)}.karel-assignment-header h2{font-size:1.75rem;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.karel-assignment-description{color:var(--color-text-secondary);font-size:.95rem;line-height:1.7;max-width:800px}.karel-assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);align-items:stretch}@media (max-width: 1400px){.karel-assignment-grid{grid-template-columns:1fr}}.karel-assignment-column{display:flex;flex-direction:column}.karel-code-editor-wrapper{flex:1;position:relative;min-height:450px}.karel-code-editor-wrapper>.code-editor-container{position:absolute;top:0;left:0;right:0;bottom:0}.karel-status-panel-wrapper{margin-top:var(--spacing-lg)}.karel-section-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:.05em}.karel-section-title-icon{font-size:1rem}.karel-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.karel-app-layout ::-webkit-scrollbar{width:8px;height:8px}.karel-app-layout ::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-full)}.karel-app-layout ::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.karel-app-layout ::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}.karel-app-layout .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-sans);font-size:.875rem;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.karel-app-layout .btn:disabled{opacity:.5;cursor:not-allowed}.karel-app-layout .btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;box-shadow:var(--shadow-md)}.karel-app-layout .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary));box-shadow:var(--shadow-glow);transform:translateY(-1px)}.karel-app-layout .btn-success{background:linear-gradient(135deg,var(--color-success),var(--color-success-dark));color:#fff}.karel-app-layout .btn-success:hover:not(:disabled){background:linear-gradient(135deg,var(--color-success-light),var(--color-success))}.karel-app-layout .btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.karel-app-layout .btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-light)}.karel-app-layout .badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.karel-app-layout .badge-success{background:#10b98133;color:var(--color-success-light);border:1px solid var(--color-success)}.karel-app-layout .badge-error{background:#ef444433;color:var(--color-error-light);border:1px solid var(--color-error)}.karel-app-layout .spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:karelSpin .8s linear infinite}@keyframes karelSpin{to{transform:rotate(360deg)}}.code-editor-container{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}.code-editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.code-editor-tabs{display:flex;align-items:center;gap:var(--spacing-sm)}.code-editor-tab{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-card);border-radius:var(--radius-sm);font-size:.8rem;color:var(--color-text-secondary)}.code-editor-tab-icon{color:var(--color-primary)}.code-editor-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.code-editor-body{display:flex;flex:1;overflow:hidden}.code-editor-line-numbers{padding-top:var(--spacing-md);padding-left:var(--spacing-md);padding-right:var(--spacing-sm);padding-bottom:var(--spacing-md);background:var(--color-bg-tertiary);border-right:1px solid var(--color-border);text-align:right;-webkit-user-select:none;user-select:none;font-family:var(--font-mono);font-size:.85rem;line-height:1.6;color:var(--color-text-muted);min-width:45px;overflow-y:auto;overflow-x:hidden}.code-editor-line-numbers::-webkit-scrollbar{display:none}.code-editor-line-numbers .line-number{line-height:1.6;height:1.6em;padding:0;margin:0}.code-editor-textarea-wrapper{flex:1;position:relative;overflow:hidden}.code-editor-textarea{position:absolute;top:0;left:0;width:100%;height:100%;padding:var(--spacing-md);font-family:var(--font-mono);font-size:.85rem;line-height:1.6;color:transparent;background:transparent;border:none;outline:none;resize:none;caret-color:var(--color-text-primary);white-space:pre;overflow-y:auto;overflow-x:auto;z-index:2}.code-editor-highlight{position:absolute;top:0;left:0;width:100%;height:100%;padding:var(--spacing-md);margin:0;font-family:var(--font-mono);font-size:.85rem;line-height:1.6;color:var(--color-text-primary);background:var(--color-bg-card);white-space:pre;overflow:auto;pointer-events:none;z-index:1}.code-editor-highlight .current-line{background:#fbbf2440!important;box-shadow:inset 4px 0 #f59e0b!important}.code-editor-highlight .code-line{display:block;line-height:1.6;min-height:1.6em}.code-editor-highlight .code-line.active{background:#00d9ff33;border-left:3px solid #00d9ff;padding-left:5px;margin-left:-5px}@keyframes pulse-line{0%,to{background:#fbbf2440}50%{background:#fbbf2459}}.code-editor-highlight .keyword{color:#c792ea}.code-editor-highlight .function{color:#82aaff}.code-editor-highlight .string{color:#c3e88d}.code-editor-highlight .comment{color:#546e7a;font-style:italic}.code-editor-highlight .number{color:#f78c6c}.code-editor-highlight .builtin{color:#ffcb6b}.code-editor-highlight .decorator,.code-editor-highlight .operator,.code-editor-highlight .punctuation{color:#89ddff}.code-editor-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border-top:1px solid var(--color-border)}.code-editor-info{display:flex;align-items:center;gap:var(--spacing-md);font-size:.75rem;color:var(--color-text-muted)}.code-editor-run-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:linear-gradient(135deg,var(--color-success),var(--color-success-dark));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.code-editor-run-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--color-success-light),var(--color-success));transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.code-editor-run-btn:disabled{opacity:.6;cursor:not-allowed}.code-editor-run-btn .icon{font-size:1rem}.karel-world-container{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-lg);overflow:hidden;color:#1e293b}.karel-world-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:#f8fafc;border-bottom:1px solid #e2e8f0}.karel-world-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;font-weight:500}.karel-world-title-icon{font-size:1rem}.karel-world-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.karel-world-control-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-sm);color:#64748b;cursor:pointer;transition:all var(--transition-fast);font-size:.875rem}.karel-world-control-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-light)}.karel-world-canvas-container{padding:var(--spacing-md);display:flex;align-items:center;justify-content:center;min-height:300px;background:#f1f5f9}.karel-world-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:#f8fafc;border-top:1px solid #e2e8f0;font-size:.75rem;color:#64748b}.karel-world-info{display:flex;align-items:center;gap:var(--spacing-md)}.karel-world-info-item{display:flex;align-items:center;gap:var(--spacing-xs)}.karel-world-info-icon{font-size:.875rem}.speed-control{display:flex;align-items:center;gap:var(--spacing-sm)}.speed-control-label{font-size:.75rem;color:var(--color-text-muted)}.speed-control-slider{width:80px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#e2e8f0;border-radius:var(--radius-full);outline:none}.speed-control-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--color-primary);border-radius:50%;cursor:pointer;transition:transform var(--transition-fast)}.speed-control-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.status-panel{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.status-panel-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:.875rem;font-weight:500}.status-panel-icon{font-size:1rem}.status-panel-content{padding:var(--spacing-lg)}.status-idle{color:var(--color-text-secondary)}.status-success{color:var(--color-success-light)}.status-error{color:var(--color-error-light)}.status-running{color:var(--color-primary-light)}.status-success-message{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md)}.status-success-icon{width:64px;height:64px;background:linear-gradient(135deg,var(--color-success),var(--color-success-dark));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;box-shadow:0 0 30px #10b98166;animation:pulse-success 2s infinite}@keyframes pulse-success{0%,to{box-shadow:0 0 20px #10b98166}50%{box-shadow:0 0 40px #10b98199}}.status-success-title{font-size:1.25rem;font-weight:600;color:var(--color-success-light)}.status-success-subtitle{font-size:.875rem;color:var(--color-text-secondary)}.status-error-message{display:flex;flex-direction:column;gap:var(--spacing-md)}.status-error-header{display:flex;align-items:center;gap:var(--spacing-md)}.status-error-icon{width:48px;height:48px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.status-error-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.status-error-subtitle{font-size:.75rem;color:var(--color-text-muted)}.status-error-details{padding:var(--spacing-md);background:#fbbf241a;border-left:3px solid #fbbf24;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word;line-height:1.6}.status-idle-message{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md);padding:var(--spacing-lg)}.status-idle-icon{font-size:2rem;opacity:.5}.status-idle-text{color:var(--color-text-muted);font-size:.9rem}.status-running-message{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg)}.status-running-spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.status-running-text{color:var(--color-primary-light);font-weight:500}.lesson-world{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin:var(--spacing-xl) 0;overflow:hidden}.lesson-world-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.lesson-world-title{font-weight:600;color:var(--color-text-primary);font-size:.95rem}.lesson-world-reset{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast)}.lesson-world-reset:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.lesson-world-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);min-height:400px;padding:var(--spacing-md)}.lesson-world-editor{border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;overflow:hidden}.lesson-world-editor .code-editor-container{border:none;border-radius:0;flex:1}.lesson-world-canvas{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:transparent;padding:0;gap:10px}.lesson-world-canvas .karel-world-container{width:100%;height:100%}.lesson-world-error{padding:var(--spacing-lg);text-align:center;color:var(--color-error);background:#ef44441a;border-radius:var(--radius-md)}.lesson-world-error-msg{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#ef44441a;border-top:1px solid rgba(239,68,68,.2);color:var(--color-error);font-size:.85rem}.lesson-world-hints{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#3b82f61a;border-top:1px solid rgba(59,130,246,.2);color:var(--color-primary);font-size:.85rem}.error-icon,.hints-icon{flex-shrink:0}@media (max-width: 900px){.lesson-world-container{grid-template-columns:1fr}.lesson-world-editor{border-right:none;border-bottom:1px solid var(--color-border);min-height:300px}.lesson-world-canvas{min-height:300px}}.world-selector-container{position:relative;display:inline-block;margin-right:15px}.world-selector-btn{padding:6px 12px;background:linear-gradient(to bottom,#f8f9fa,#e9ecef);border:1px solid #ced4da;border-radius:4px;color:#495057;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:6px;font-family:inherit;transition:all .2s;outline:none}.world-selector-btn:hover:not(:disabled){background:#e2e6ea;border-color:#adb5bd}.world-selector-btn:disabled{opacity:.65;cursor:not-allowed}.world-selector-menu{position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px #0000002d;z-index:1000;min-width:100px;padding:4px 0}.world-selector-item{padding:6px 20px;clear:both;font-weight:400;color:#212529;text-align:left;white-space:nowrap;cursor:pointer;font-size:.9rem;transition:background-color .15s ease-in-out}.world-selector-item:hover{background-color:#f8f9fa;color:#16181b}.world-selector-item.active{background-color:#e9ecef;font-weight:600}.theory-page{--color-primary: #6366f1;--color-bg-secondary: #1a1a2e;--color-bg-tertiary: #16213e;--color-bg-card: #1e1e32;--color-text-primary: #f8fafc;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-border: #334155;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--border-radius-lg: 12px;--border-radius-full: 9999px;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;padding:0;width:100%;margin:0 auto;animation:fadeIn .3s ease-in}.theory-empty{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-muted)}.theory-header{margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border)}.theory-number{display:inline-block;background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;margin-bottom:var(--spacing-sm)}.theory-title{font-size:2rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.theory-description{font-size:1.125rem;color:var(--color-text-secondary)}.theory-content{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-xl)}.theory-content h1{font-size:1.75rem;font-weight:700;color:var(--color-text-primary);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md)}.theory-content h1:first-child{margin-top:0}.theory-content h2{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.theory-content h3{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-top:var(--spacing-md);margin-bottom:var(--spacing-sm)}.theory-content p{color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--spacing-md)}.theory-content li{color:var(--color-text-secondary);line-height:1.7;margin-left:var(--spacing-lg);margin-bottom:var(--spacing-xs)}.theory-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--spacing-lg) 0}.theory-note{background:var(--color-bg-tertiary);border-left:3px solid var(--color-primary);padding:var(--spacing-md);margin:var(--spacing-md) 0;font-style:italic;color:var(--color-text-secondary)}.code-block{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);margin:var(--spacing-lg) 0;overflow-x:auto}.code-block pre{margin:0;font-family:var(--font-mono);font-size:.85rem;line-height:1.6}.code-block code{color:var(--color-text-primary)}.code-line{display:block;min-height:1.6em;line-height:1.6;white-space:pre}.code-keyword{color:#c792ea}.code-function{color:#82aaff}.code-string{color:#c3e88d}.code-number{color:#f78c6c}.code-comment{color:#546e7a;font-style:italic}.code-builtin{color:#ffcb6b}.code-punctuation{color:#89ddff}.theory-page .inline-code,.theory-content .inline-code{background:#1e1e32!important;color:#82aaff!important;padding:3px 10px!important;border-radius:6px!important;font-family:JetBrains Mono,Fira Code,Consolas,monospace!important;font-size:.9em!important;border:1px solid #334155!important;display:inline-block;line-height:1.4}.theory-page .inline-code .code-builtin,.theory-content .inline-code .code-builtin{color:#ffcb6b!important}.theory-page .inline-code .code-function,.theory-content .inline-code .code-function{color:#82aaff!important}.theory-page .inline-code .code-punctuation,.theory-content .inline-code .code-punctuation{color:#89ddff!important}.theory-image{margin:var(--spacing-xl) 0;text-align:center}.theory-image img{max-width:100%;height:auto;border-radius:var(--border-radius-lg);box-shadow:0 8px 24px #0000001f;border:1px solid var(--color-border)}.world-placeholder{background:linear-gradient(135deg,#1e3a5f,#0d1b2a);border-radius:var(--border-radius-lg);padding:var(--spacing-2xl);margin:var(--spacing-xl) 0;border:2px dashed rgba(137,180,250,.3)}.world-placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md)}.world-icon{font-size:3rem;animation:bounce 2s ease-in-out infinite}.world-text{color:#89b4fa;font-weight:500;font-size:1.1rem}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.world-placeholder.interactive{border-color:#fab38780;background:linear-gradient(135deg,#2d1f3d,#1a1a2e)}.world-hint{margin-top:var(--spacing-md);color:#fab387;font-size:.9rem;text-align:center}.theory-table{width:100%;border-collapse:collapse;margin:var(--spacing-lg) 0;color:var(--color-text-secondary)}.theory-table th,.theory-table td{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);text-align:left}.theory-table th{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);font-weight:700}.theory-table tr:nth-child(2n){background-color:var(--color-bg-card)}.karel-home-page{--color-primary: #6366f1;--color-primary-dark: #4f46e5;--color-bg-secondary: #1a1a2e;--color-text-primary: #f8fafc;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-border: #334155;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--border-radius-lg: 12px;--border-radius-md: 8px;padding:var(--spacing-2xl);max-width:1200px;margin:0 auto;animation:karelFadeIn .3s ease-in}@keyframes karelFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.home-hero{text-align:center;margin-bottom:var(--spacing-2xl)}.home-hero-icon{font-size:5rem;margin-bottom:var(--spacing-md)}.home-hero-icon img{animation:karelBounce 3s ease-in-out infinite}@keyframes karelBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.karel-home-page .home-title,.home-title{font-size:2.5rem!important;font-weight:700!important;background:linear-gradient(90deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#54a0ff,#5f27cd,#ff6b6b)!important;background-size:200% auto!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;animation:rainbowMove 3s linear infinite!important;margin-bottom:var(--spacing-sm);color:transparent!important}@keyframes rainbowMove{0%{background-position:0% center}to{background-position:200% center}}.home-subtitle{font-size:1.125rem;color:var(--color-text-secondary);max-width:600px;margin:0 auto;line-height:1.6}.home-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}@media (max-width: 600px){.home-cards{grid-template-columns:1fr}}.home-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);text-align:center;cursor:pointer;transition:all .2s ease}.home-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #6366f133;border-color:var(--color-primary)}.home-card-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.home-card h2{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.home-card p{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.5}.home-card-button{background:var(--color-primary);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s ease}.home-card-button:hover{background:var(--color-primary-dark)}.home-footer{text-align:center;padding-top:var(--spacing-xl);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.875rem}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #818cf8;--secondary: #0ea5e9;--accent: #f59e0b;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--white: #ffffff;--black: #000000;--gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--gradient-hero: linear-gradient(135deg, #1e1b4b 0%, #312e81 50%, #4338ca 100%);--gradient-card: linear-gradient(135deg, rgba(255, 255, 255, .1) 0%, rgba(255, 255, 255, .05) 100%);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-glow: 0 0 40px rgba(99, 102, 241, .3);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--font-family: "Noto Sans Georgian", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family);font-size:16px;line-height:1.6;color:var(--gray-800);background-color:var(--gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.layout{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.main{flex:1}.header{background:var(--white);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2}.header .container{display:flex;align-items:center;justify-content:space-between;height:70px}.logo{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.5rem;font-weight:700;background:linear-gradient(90deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#54a0ff,#5f27cd,#ff6b6b);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:twitonRainbow 3s linear infinite;transition:var(--transition-base)}.logo:hover{filter:brightness(1.2)}.logo-icon{font-size:1.75rem}.nav{display:flex;align-items:center;gap:var(--spacing-lg)}.nav-link{color:var(--gray-600);font-weight:500;transition:var(--transition-base);position:relative}.nav-link:hover{color:var(--primary)}.nav-link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--primary);transition:var(--transition-base)}.nav-link:hover:after{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:.95rem;font-weight:600;border-radius:var(--radius-lg);border:2px solid transparent;transition:all var(--transition-base);white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--gradient-primary);color:var(--white);box-shadow:var(--shadow)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md),var(--shadow-glow)}.btn-outline{background:transparent;color:var(--primary);border-color:var(--primary)}.btn-outline:hover:not(:disabled){background:var(--primary);color:var(--white)}.btn-danger{background:var(--error);color:var(--white)}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1.1rem}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.875rem}.btn-block{width:100%}.footer{background:var(--gray-900);color:var(--gray-400);padding:var(--spacing-xl) 0;text-align:center}.home{overflow:hidden}.hero{background:var(--gradient-hero);color:var(--white);padding:var(--spacing-3xl) 0;position:relative;overflow:hidden;min-height:500px;display:flex;align-items:center;justify-content:center}.hero-content{text-align:center;position:relative;z-index:2;max-width:800px;margin:0 auto;padding:0 var(--spacing-lg)}.hero-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg);background:linear-gradient(90deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#54a0ff,#5f27cd,#ff6b6b);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:twitonRainbow 3s linear infinite}.highlight{background:linear-gradient(90deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#54a0ff,#5f27cd,#ff6b6b);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:twitonRainbow 3s linear infinite}@keyframes twitonRainbow{0%{background-position:0% center}to{background-position:200% center}}.hero-subtitle{font-size:clamp(1rem,2.5vw,1.25rem);color:#fffc;margin-bottom:var(--spacing-xl)}.hero-buttons{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.hero-decoration{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.floating-shape{position:absolute;border-radius:50%;opacity:.1;animation:float 6s ease-in-out infinite}.shape-1{width:300px;height:300px;background:var(--primary-light);top:-100px;right:-100px;animation-delay:0s}.shape-2{width:200px;height:200px;background:var(--accent);bottom:-50px;left:10%;animation-delay:2s}.shape-3{width:150px;height:150px;background:var(--secondary);top:50%;left:-50px;animation-delay:4s}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}.features{padding:var(--spacing-3xl) 0;background:var(--white)}.section-title{text-align:center;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700;margin-bottom:var(--spacing-2xl);color:var(--gray-900)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl)}.feature-card{background:var(--gray-50);padding:var(--spacing-xl);border-radius:var(--radius-xl);text-align:center;transition:all var(--transition-base);border:1px solid var(--gray-200)}.feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--primary-light)}.feature-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.feature-card h3{color:var(--gray-900);margin-bottom:var(--spacing-sm);font-size:1.25rem}.feature-card p{color:var(--gray-600);font-size:.95rem}.stats{padding:var(--spacing-3xl) 0;background:var(--gradient-hero);color:var(--white)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-xl);text-align:center}.stat-number{display:block;font-size:clamp(2rem,5vw,3rem);font-weight:700;margin-bottom:var(--spacing-xs)}.stat-label{color:#fffc;font-size:1rem}.auth-page{min-height:calc(100vh - 140px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-lg);background:linear-gradient(135deg,var(--gray-100) 0%,var(--gray-200) 100%)}.auth-container{width:100%;max-width:450px}.auth-card{background:var(--white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);padding:var(--spacing-2xl)}.register-card{max-width:500px}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-header h1{font-size:1.75rem;color:var(--gray-900);margin-bottom:var(--spacing-sm)}.auth-header p{color:var(--gray-600)}.auth-buttons{display:flex;flex-direction:column;gap:var(--spacing-md)}.dropdown{position:relative;display:inline-block}.dropdown-menu{display:none;position:absolute;top:100%;left:0;background-color:var(--white);min-width:160px;box-shadow:var(--shadow-lg);border-radius:var(--radius-md);padding:var(--spacing-xs) 0;z-index:1000;border:1px solid var(--gray-200)}.dropdown:hover .dropdown-menu{display:block;animation:fadeIn .2s ease-in-out}.dropdown-item{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--gray-700);transition:var(--transition-base);text-decoration:none}.dropdown-item:hover{background-color:var(--gray-100);color:var(--primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.mobile-menu-btn{display:none;background:none;border:none;font-size:1.5rem;color:var(--gray-800);cursor:pointer;z-index:101}.mobile-only{display:none}.auth-buttons-group{display:flex;align-items:center}@media (max-width: 768px){.header .container{padding:0 var(--spacing-md)}.mobile-menu-btn{display:block}.nav{position:fixed;top:0;right:-100%;width:70%;height:100vh;background:var(--white);flex-direction:column;padding:80px var(--spacing-lg) var(--spacing-xl);box-shadow:-5px 0 15px #0000001a;transition:right .3s ease-in-out;align-items:flex-start;gap:var(--spacing-md);z-index:100;overflow-y:auto}.nav.nav-open{right:0}.nav-link{font-size:1.1rem;width:100%;padding:var(--spacing-sm) 0}.nav-icon{margin-right:8px}.dropdown{width:100%}.dropdown-menu{position:static;box-shadow:none;border:none;padding-left:var(--spacing-lg);background:var(--gray-50);display:none}.dropdown.active .dropdown-menu{display:block}.dropdown:hover .dropdown-menu{display:none}.dropdown.active:hover .dropdown-menu{display:block}.auth-buttons-group{flex-direction:column;align-items:flex-start;width:100%;gap:var(--spacing-md)}.btn{width:100%}.mobile-only{display:inline;margin-left:.5rem}}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);font-size:1rem;font-weight:600;border:2px solid var(--gray-200);background:var(--white);transition:all var(--transition-base)}.oauth-icon{width:24px;height:24px}.google-btn:hover{border-color:#4285f4;background:#f8faff}.github-btn{background:var(--gray-900);color:var(--white);border-color:var(--gray-900)}.github-btn:hover{background:var(--gray-800)}.auth-info{margin-top:var(--spacing-xl);padding:var(--spacing-md);background:var(--gray-50);border-radius:var(--radius-lg);font-size:.875rem;color:var(--gray-600)}.info-icon{margin-right:var(--spacing-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-weight:600;color:var(--gray-700);font-size:.9rem}.form-group input,.form-group select{padding:var(--spacing-md);border:2px solid var(--gray-200);border-radius:var(--radius-lg);font-size:1rem;transition:var(--transition-base);background:var(--white)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a}.form-group input::placeholder{color:var(--gray-400)}.role-selector{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.role-option{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);border:2px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base)}.role-option input{display:none}.role-option.selected,.role-option:hover{border-color:var(--primary);background:#6366f10d}.role-option.selected{background:#6366f11a}.role-icon{font-size:2rem}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-md)}.profile-page{padding:var(--spacing-2xl) 0}.profile-header{display:flex;align-items:center;gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl);background:var(--gradient-primary);border-radius:var(--radius-2xl);color:var(--white)}.profile-avatar{width:80px;height:80px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;flex-shrink:0}.profile-info h1{font-size:1.5rem;margin-bottom:var(--spacing-xs)}.role-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:.875rem;font-weight:600;background:#fff3}.role-admin{background:var(--error)}.role-teacher{background:var(--success)}.role-student{background:var(--secondary)}.profile-content{display:grid;gap:var(--spacing-xl)}.profile-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:var(--spacing-xl)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--gray-200)}.card-header h2{font-size:1.25rem;color:var(--gray-900)}.profile-details{display:grid;gap:var(--spacing-md)}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.detail-label{color:var(--gray-500);font-size:.9rem}.detail-value{font-weight:500;color:var(--gray-800)}.profile-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.security-options{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);font-size:.95rem}.alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.alert-success{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);background:var(--gray-50)}.spinner{width:48px;height:48px;border:4px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.header .container{padding:0 var(--spacing-md)}.nav{gap:var(--spacing-md)}.nav-link{font-size:.9rem}.hero{padding:var(--spacing-2xl) 0;min-height:auto}.hero-buttons{flex-direction:column;align-items:center}.form-row,.role-selector{grid-template-columns:1fr}.profile-header{flex-direction:column;text-align:center}.auth-card{padding:var(--spacing-lg)}.detail-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.form-actions,.security-options{flex-direction:column}.security-options .btn{width:100%}}.learning-container{display:flex;height:calc(100vh - 70px);background:var(--white);overflow:hidden}.learning-sidebar{width:340px;background-color:var(--gray-100);border-right:1px solid var(--gray-200);display:flex;flex-direction:column;flex-shrink:0;padding-top:var(--spacing-xl);height:100%;overflow:hidden}.sidebar-header{padding:0 var(--spacing-xl) var(--spacing-md)}.sidebar-header h2{font-size:1.5rem;color:var(--gray-900);font-weight:700}.sidebar-divider{height:1px;background-color:var(--gray-300);width:90%;margin:0 auto var(--spacing-lg)}.sidebar-nav{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:0 var(--spacing-lg)}.sidebar-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-lg);color:var(--gray-700);font-weight:500;cursor:pointer;transition:all var(--transition-base)}.sidebar-item:hover{background-color:var(--white);color:var(--primary);box-shadow:var(--shadow-sm)}.sidebar-icon{font-size:1.2rem}.learning-main{flex:1;padding:var(--spacing-xl);background-color:var(--white);overflow-y:auto;height:100%}.main-header{text-align:center;margin-bottom:var(--spacing-2xl)}.main-header h1{font-size:1.75rem;color:var(--gray-800);font-weight:700}.content-search-area{margin-bottom:var(--spacing-2xl);padding-left:var(--spacing-lg)}.search-label{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--gray-600);font-weight:600;margin-bottom:var(--spacing-sm);font-size:1.1rem}.content-divider{height:1px;background-color:var(--gray-300);width:80%}.courses-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg);padding:var(--spacing-md)}@media (max-width: 1400px){.courses-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1100px){.courses-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.courses-grid{grid-template-columns:1fr}}.course-card{position:relative;background:var(--white);padding:0;border-radius:var(--radius-lg);border:1px solid var(--gray-200);transition:all var(--transition-base);overflow:hidden}.course-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-light)}.course-card-image{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block}.course-card-content{padding:var(--spacing-md)}.trash-btn{position:absolute;top:10px;right:10px;background-color:#ffffffe6;color:var(--gray-500);padding:8px;border-radius:var(--radius-full);transition:all .2s;z-index:10;border:1px solid var(--gray-200);box-shadow:var(--shadow-sm)}.trash-btn:hover{background-color:var(--error);color:var(--white);border-color:var(--error)}.course-detail-view{background:var(--white);border-radius:var(--radius-xl);padding:var(--spacing-2xl);max-width:900px;margin:0 auto}.detail-header{text-align:center;margin-bottom:var(--spacing-lg)}.detail-header h2{font-size:1.5rem;color:var(--gray-900);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin:0}.detail-actions{display:flex;justify-content:center;margin-bottom:var(--spacing-xl)}.detail-info{margin-top:var(--spacing-xl)}.detail-info h3{margin-bottom:var(--spacing-sm);color:var(--gray-800);font-size:1.2rem}.detail-title-row{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);margin:var(--spacing-lg) 0}.detail-title-row h2{margin:0;font-size:1.4rem;color:var(--gray-900)}.course-description-text{text-align:center;color:var(--gray-600);line-height:1.8;font-size:1rem}.status-icon{font-size:1.3rem}.section-divider-top{border-top:1px solid var(--gray-200);padding-top:var(--spacing-lg)}.content-divider-full{height:1px;background-color:var(--gray-200);width:100%;margin-bottom:var(--spacing-lg)}.no-courses-text{grid-column:1 / -1;text-align:center;color:var(--gray-500);padding:var(--spacing-2xl)}.empty-state{grid-column:1 / -1;text-align:center;padding:var(--spacing-3xl) var(--spacing-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.management-view{max-width:1000px;margin:0 auto}.management-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.section-actions{display:flex;justify-content:flex-start}.section-subtitle{font-size:1.25rem;color:var(--gray-700);font-weight:600;margin-top:var(--spacing-sm)}.content-divider-full{height:1px;background-color:var(--gray-300);width:100%}.management-list.empty{padding:var(--spacing-2xl);text-align:center;color:var(--gray-500);background:var(--gray-50);border-radius:var(--radius-lg);border:1px dashed var(--gray-300)}.no-data-text{font-size:.95rem}.sidebar-item.active{background-color:var(--white);color:var(--primary);box-shadow:var(--shadow-sm)}.create-course-view{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-xl)}.toggle-group{margin-top:var(--spacing-md)}.toggle-header{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xs)}.toggle-label{font-weight:600;color:var(--gray-800);min-width:120px}.toggle-label.dimmed{color:var(--gray-400)}.toggle-explanation{font-size:.85rem;color:var(--gray-600);font-style:italic;line-height:1.4}.form-section{display:flex;flex-direction:column}.section-title-with-icon{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-xs);font-size:1.1rem}.section-title-with-icon svg{color:var(--primary)}.image-upload-area{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:flex-start}.image-hint{font-size:.875rem;color:var(--gray-500)}.image-preview-container{margin-top:var(--spacing-md);position:relative;width:100%;max-width:320px}.course-image-preview{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--gray-200);display:block}.form-actions-right{display:flex;justify-content:flex-end;margin-top:var(--spacing-xl)}.switch{position:relative;display:inline-block;width:50px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--gray-300);transition:.4s}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:var(--primary)}input:focus+.slider{box-shadow:0 0 1px var(--primary)}input:checked+.slider:before{transform:translate(26px)}.slider.round{border-radius:24px}.slider.round:before{border-radius:50%}.managed-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-md);padding:var(--spacing-md) 0}.managed-item-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--spacing-md);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);transition:transform .2s,box-shadow .2s}.managed-item-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.managed-item-info{flex:1}.managed-item-info h3{margin:0 0 var(--spacing-xs) 0;font-size:1.1rem;color:var(--gray-900)}.item-author,.item-stats{font-size:.85rem;color:var(--gray-600);margin:0}.managed-item-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.settings-btn{color:var(--gray-500);padding:var(--spacing-xs);border-radius:var(--radius-full);transition:color .2s,background-color .2s;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.settings-btn:hover{background-color:var(--gray-100);color:var(--primary)}.course-author{font-size:.85rem;color:var(--gray-500);margin-bottom:var(--spacing-md)}.course-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.course-header h3{margin:0;flex:1}.course-type-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;white-space:nowrap}.course-type-badge.open{background:#22c55e26;color:#16a34a}.course-type-badge.closed{background:#ef444426;color:#dc2626}.join-actions{margin-top:var(--spacing-md)}.closed-join{display:flex;flex-direction:column;gap:var(--spacing-xs)}.code-input{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.9rem}.request-access{font-size:.75rem;text-align:center;margin-top:var(--spacing-xs)}.request-access a{color:var(--primary);text-decoration:none}.request-access a:hover{text-decoration:underline}@media (max-width: 480px){.logo-text{font-size:1.25rem}}.closed-course-actions{display:flex;flex-direction:column;gap:var(--spacing-md);max-width:400px;align-items:center}.code-input-lg{padding:var(--spacing-md)!important;font-size:1.1rem!important;text-align:center;letter-spacing:2px}.request-access-lg{text-align:center;margin-top:var(--spacing-sm);font-size:.95rem;color:var(--gray-600)}.request-access-lg a{color:var(--primary);font-weight:500;text-decoration:none}.request-access-lg a:hover{text-decoration:underline}.rich-text-editor{border:2px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--white);overflow:hidden}.rte-toolbar{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--gray-50);border-bottom:1px solid var(--gray-200);flex-wrap:wrap}.rte-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;transition:all var(--transition-fast)}.rte-btn:hover:not(:disabled){background:var(--gray-200);color:var(--gray-800)}.rte-content details,.course-description-content details,.module-content-text details{border:1px solid var(--gray-200);border-radius:var(--radius-md);margin:var(--spacing-md) 0;overflow:hidden;background:var(--white);display:block}.rte-content summary,.course-description-content summary,.module-content-text summary{background:var(--gray-50);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer!important;font-weight:600;color:var(--gray-700);font-family:var(--font-family);-webkit-user-select:none;user-select:none;pointer-events:auto!important;display:list-item!important;list-style:disclosure-closed inside!important}.rte-content details[open] summary,.course-description-content details[open] summary,.module-content-text details[open] summary{border-bottom:1px solid var(--gray-200);list-style:disclosure-open inside!important;margin-bottom:0}.rte-content summary::-webkit-details-marker,.course-description-content summary::-webkit-details-marker,.module-content-text summary::-webkit-details-marker{display:inline-block!important;color:var(--gray-500);margin-right:6px}.rte-content details>*:not(summary),.course-description-content details>*:not(summary),.module-content-text details>*:not(summary){padding:var(--spacing-md);margin:0;display:block}.rte-btn:disabled{opacity:.4;cursor:not-allowed}.rte-btn.active{background:var(--primary);color:var(--white)}.rte-heading-btn{font-weight:700;font-size:.85rem;width:auto;padding:0 var(--spacing-sm)}.rte-youtube-btn{color:red}.rte-youtube-btn:hover{background:#ff00001a;color:#c00}.rte-translate-btn{color:#4285f4}.rte-translate-btn:hover{background:#4285f41a;color:#1a73e8}.rte-font-size{padding:2px var(--spacing-sm);border:1px solid var(--gray-300);line-height:1.5;border-radius:var(--radius-md);background:var(--white);font-size:.875rem;color:var(--gray-700);cursor:pointer;min-width:60px}.rte-font-size:focus{outline:none;border-color:var(--primary)}.rte-divider{width:1px;height:24px;background:var(--gray-300);margin:0 var(--spacing-xs)}.rte-content{min-height:200px;max-height:500px;overflow-y:auto;padding:var(--spacing-md);font-size:1rem;line-height:1.7;color:var(--gray-800)}.rte-content:focus{outline:none}.rte-content:empty:before{content:attr(data-placeholder);color:var(--gray-400);pointer-events:none}.rte-content h1{font-size:2rem;font-weight:700;margin:var(--spacing-md) 0;color:var(--gray-900)}.rte-content h2{font-size:1.5rem;font-weight:600;margin:var(--spacing-md) 0;color:var(--gray-800)}.rte-content p{margin:var(--spacing-sm) 0}.youtube-embed{margin:var(--spacing-md) 0;position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius-lg);background:var(--gray-900)}.youtube-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.rte-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.rte-modal{background:var(--white);border-radius:var(--radius-xl);width:100%;max-width:500px;margin:var(--spacing-md);box-shadow:var(--shadow-lg);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.rte-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200)}.rte-modal-header h3{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.1rem;color:var(--gray-800);margin:0}.rte-modal-header h3 svg{color:red}.rte-modal-close{background:none;border:none;font-size:1.2rem;color:var(--gray-500);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-md);transition:all var(--transition-fast)}.rte-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.rte-modal-body{padding:var(--spacing-lg)}.rte-modal-body .form-input{width:100%;padding:var(--spacing-md);border:2px solid var(--gray-200);border-radius:var(--radius-lg);font-size:1rem}.rte-modal-body .form-input:focus{outline:none;border-color:var(--primary)}.rte-modal-hint{margin-top:var(--spacing-sm);font-size:.85rem;color:var(--gray-500)}.rte-modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--gray-200)}.course-description-content{text-align:left;color:var(--gray-700);line-height:1.8}.course-description-content h1,.course-description-content h2{margin:var(--spacing-md) 0}.course-description-content .youtube-embed{max-width:100%}.rte-content{font-family:Calibri,Segoe UI,Arial,sans-serif}.inline-code{font-family:Consolas,Courier New,monospace;border:1px solid #000;padding:0 6px;background-color:#f5f5f5;border-radius:3px}.code-block1{font-family:Consolas,Courier New,monospace;font-size:14px;background-color:#f6f8fa;border:1px solid #d0d7de;padding:0 16px 10px;white-space:pre;line-height:1.5;margin:10px 0;display:block}.youtube-embed,.youtube-embed-wrapper{display:block!important;clear:both!important;margin:30px 0!important;position:relative!important;z-index:1;width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.youtube-embed iframe,.youtube-embed-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.rte-content .youtube-embed+*,.course-description-content .youtube-embed+*,.rte-content .youtube-embed~*,.course-description-content .youtube-embed~*{clear:both;display:block}.input-error::placeholder{color:var(--error);opacity:.8}.input-error{border-color:var(--error)!important;animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{background:#fff;border-radius:var(--radius-lg);padding:15px 20px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 12px #00000026;min-width:300px;max-width:400px;animation:slideIn .3s ease;pointer-events:auto;border-left:5px solid transparent}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--error)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--primary)}.toast-icon{display:flex;align-items:center;justify-content:center;font-size:1.2rem}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--error)}.toast-warning .toast-icon{color:var(--warning)}.toast-info .toast-icon{color:var(--primary)}.toast-message{color:var(--gray-800);font-size:.95rem;font-weight:500}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}.modal-content{background:#fff;border-radius:var(--radius-xl);padding:0;width:90%;max-width:400px;box-shadow:0 10px 25px #0003;animation:scaleIn .2s ease;overflow:hidden}.modal-header{padding:20px 24px;border-bottom:1px solid var(--gray-200)}.modal-header h3{margin:0;font-size:1.2rem;color:var(--gray-900)}.modal-body{padding:24px;color:var(--gray-700);font-size:1rem;line-height:1.5}.modal-actions{padding:20px 24px;background:var(--gray-50);display:flex;justify-content:flex-end;gap:10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.code-block-wrapper{position:relative;margin:20px 0;border-radius:12px;overflow:hidden;background:#1e1e2e;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#181825;border-bottom:1px solid #313244}.code-language-label{font-size:12px;font-weight:600;color:#cba6f7;text-transform:uppercase;letter-spacing:.5px}.code-copy-btn{position:absolute;top:8px;right:12px;padding:6px 12px;font-size:12px;font-weight:500;color:#cdd6f4;background:#45475a;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;z-index:10}.code-copy-btn:hover{background:#585b70;color:#fff}.code-copy-btn:active{transform:scale(.95)}pre.code-block{margin:0;padding:20px;overflow-x:auto;background:#1e1e2e}pre.code-block code{display:block;font-family:JetBrains Mono,Fira Code,Consolas,Monaco,monospace;font-size:14px;line-height:1.6;color:#cdd6f4;white-space:pre;-moz-tab-size:4;tab-size:4}.code-block-wrapper code .keyword{color:#cba6f7}.code-block-wrapper code .string{color:#a6e3a1}.code-block-wrapper code .number{color:#fab387}.code-block-wrapper code .comment{color:#6c7086;font-style:italic}.code-block-wrapper code .function{color:#89b4fa}.code-block-wrapper code .class-name{color:#f9e2af}.code-block-wrapper code .operator{color:#89dceb}.code-block-wrapper code .punctuation{color:#9399b2}pre.code-block::-webkit-scrollbar{height:8px}pre.code-block::-webkit-scrollbar-track{background:#181825;border-radius:4px}pre.code-block::-webkit-scrollbar-thumb{background:#45475a;border-radius:4px}pre.code-block::-webkit-scrollbar-thumb:hover{background:#585b70}.rte-content .code-block-wrapper{margin:15px 0}.course-description-content .code-block-wrapper,.module-content .code-block-wrapper{margin:20px 0}.learning-sidebar.course-sidebar{display:flex;flex-direction:column;height:100%;overflow:hidden}.learning-sidebar.course-sidebar .sidebar-nav.sidebar-modules-scroll{flex:1;overflow-y:auto;padding:0;gap:0}.learning-sidebar.course-sidebar .sidebar-modules-scroll::-webkit-scrollbar{width:8px}.learning-sidebar.course-sidebar .sidebar-modules-scroll::-webkit-scrollbar-track{background:var(--gray-200)}.learning-sidebar.course-sidebar .sidebar-modules-scroll::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:4px}.learning-sidebar.course-sidebar .sidebar-modules-scroll::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.course-content-area{padding:30px 40px;overflow-y:auto;height:calc(100vh - 100px);background:var(--gray-50)}.course-content-area::-webkit-scrollbar{width:8px}.course-content-area::-webkit-scrollbar-track{background:var(--gray-100)}.course-content-area::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}.course-content-area::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.module-content-view .module-title{font-size:1.8rem;color:var(--gray-900);margin-bottom:10px}.course-content-main{flex:1;padding:30px 40px;overflow-y:auto;background:var(--gray-50);height:100%}.course-content-main::-webkit-scrollbar{width:8px}.course-content-main::-webkit-scrollbar-track{background:var(--gray-100)}.course-content-main::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}.course-content-main::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.module-content-view h2,.course-about-view h2{font-size:1.8rem;color:var(--gray-900);margin-bottom:10px}.module-content-text{color:var(--gray-600);font-size:1rem;line-height:1.7}.course-info-header{display:flex;gap:20px;margin-bottom:25px;padding:20px;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.course-detail-image{width:200px;height:auto;border-radius:var(--radius-md);object-fit:cover;aspect-ratio:16/9}.course-meta h3{font-size:1.3rem;color:var(--gray-900);margin-bottom:8px}.course-meta p{color:var(--gray-600);font-size:.95rem}@media (max-width: 900px){.course-content-layout{flex-direction:column;height:auto}.course-modules-sidebar{width:100%;min-width:100%;border-right:none;border-bottom:1px solid var(--gray-200);max-height:200px}.course-content-main{padding:20px}.course-info-header{flex-direction:column}.course-detail-image{width:100%;max-width:300px}}.content-divider-full.space-bottom{margin-bottom:20px}.management-section.spaced-top{margin-top:var(--spacing-2xl)}.clickable-title{cursor:pointer}.rte-content a,.course-description-content a,.module-content-text a{color:var(--primary);text-decoration:underline;font-weight:500;cursor:pointer;transition:color .2s ease}.rte-content a:hover,.course-description-content a:hover,.module-content-text a:hover{color:var(--primary-dark)}.rte-content ul,.course-description-content ul,.module-content-text ul{list-style-type:disc;padding-left:1.5rem;margin:10px 0}.rte-content ol,.course-description-content ol,.module-content-text ol{list-style-type:decimal;padding-left:1.5rem;margin:10px 0}.rte-content li,.course-description-content li,.module-content-text li{margin-bottom:5px}.sidebar-item,.course-title-item,.sub-module-item{position:relative;border-left:5px solid transparent!important;border-right:none!important;transition:all .2s ease}.sidebar-item:hover,.course-title-item:hover,.sub-module-item:hover{background:#fff!important;color:var(--primary);box-shadow:0 2px 5px #0000000d}.sidebar-item.active,.course-title-item.active,.sub-module-item.active{background:#fff!important;color:var(--primary);border-left-color:var(--primary)!important;border-right:none!important;font-weight:600;box-shadow:0 1px 3px #0000000d}.sub-module-item{border-bottom:1px solid transparent}.create-course-container{padding:var(--spacing-md) 0}.form-group-spaced{margin-bottom:var(--spacing-lg)}.form-label-bold{display:block;margin-bottom:var(--spacing-xs);font-weight:600}.full-width-input{width:100%;padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--gray-200)}.top-spacing-sm{margin-top:var(--spacing-sm)!important}.top-spacing-md{margin-top:var(--spacing-md)}.top-spacing-xl{margin-top:var(--spacing-xl)}.learning-container{display:flex;min-height:100vh;position:relative}.learning-sidebar{width:300px;min-width:300px;background:var(--gray-100);border-right:1px solid var(--gray-200);padding:var(--spacing-lg);overflow-y:auto}.learning-main{flex:1;overflow-y:auto}.learning-sidebar.editor-sidebar{display:flex;flex-direction:column}.sidebar-header-row{display:flex;align-items:center;gap:1rem;flex-shrink:0}.sidebar-header h2.sidebar-title{font-size:1.2rem;margin:0;display:flex;align-items:center;gap:.5rem}.sidebar-info-block{padding:0 var(--spacing-lg);margin-bottom:10px;flex-shrink:0}.sidebar-info-label{font-size:.9rem;color:var(--gray-500);margin:0 0 .5rem}.sidebar-info-value{font-weight:600;color:var(--gray-800);font-size:.95rem;line-height:1.4;margin:0}.sidebar-info-value a{text-decoration:none;color:inherit}.sidebar-modules-list{overflow-y:auto;padding:10px 0;flex:1}.sidebar-module-item{padding:6px 1.5rem;cursor:pointer;line-height:1.2;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;color:var(--gray-700);background-color:transparent;transition:all .2s ease;border-left:5px solid transparent}.sidebar-module-item:hover{background-color:#fff;color:var(--primary);box-shadow:0 2px 5px #0000000d}.sidebar-module-item.active{background-color:#fff;color:var(--primary);border-left-color:var(--primary);font-weight:600}.sidebar-module-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;flex:1}.sidebar-submodule-item{padding:6px 1.5rem 6px 2.5rem;cursor:pointer;line-height:1.2;font-size:.85rem;color:var(--gray-600);background-color:transparent;transition:all .2s ease;border-left:5px solid transparent}.sidebar-submodule-item:hover{background-color:#fff;color:var(--primary)}.sidebar-submodule-item.active{background-color:var(--gray-200);color:var(--primary);border-left-color:var(--primary)}.sidebar-submodules-container{background-color:var(--gray-50)}.sidebar-module-toggle{background:none;border:none;cursor:pointer;color:var(--gray-500);font-size:1em;padding:5px;display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.sidebar-module-toggle.expanded{transform:rotate(135deg)}.sidebar-nav-actions{display:flex;flex-direction:column;gap:5px;padding:5px 0}.sidebar-divider.flex-shrink{flex-shrink:0}.sidebar-divider.no-margin{margin:0}.sidebar-divider.small-margin{margin:5px auto}.btn-icon{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--gray-600);display:flex;align-items:center;justify-content:center;padding:5px;transition:color .2s}.btn-icon:hover{color:var(--primary)}.hamburger-menu{position:relative;width:42px;height:42px;border-radius:var(--radius-md);background:var(--gray-100);transition:all .3s ease}.hamburger-menu:hover{background:var(--primary-light);color:#fff;transform:scale(1.05)}.hamburger-menu.active{background:var(--primary);color:#fff}.hamburger-menu svg{transition:transform .3s ease}.hamburger-menu:active svg{transform:rotate(90deg)}.main-header-row{display:flex;align-items:center;gap:15px}.sidebar-item-danger,.sidebar-item-danger:hover{color:var(--error)!important}.sidebar-item-danger.active{color:var(--error)!important;border-left-color:var(--error)!important}@media (max-width: 768px){.learning-sidebar.editor-sidebar{position:fixed;top:0;left:-100%;height:100vh;width:280px;max-width:85vw;background:#fff;z-index:1000;transition:left .3s ease;box-shadow:2px 0 10px #0000001a;overflow-y:auto;will-change:left}.learning-container.sidebar-visible .learning-sidebar.editor-sidebar{left:0}.sidebar-mobile-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999;cursor:pointer}.learning-container.sidebar-visible .sidebar-mobile-overlay{display:block}.learning-main{width:100%!important;margin-left:0!important}.create-course-view{padding:var(--spacing-md)}.form-section{padding:var(--spacing-sm)}.main-header{padding:var(--spacing-sm) var(--spacing-md)}.section-title-with-icon{font-size:.9rem}.hamburger-menu{width:48px!important;height:48px!important;font-size:1.5rem!important;background:var(--primary)!important;color:#fff!important;box-shadow:0 2px 8px #6366f14d}.hamburger-menu:hover{background:var(--primary-dark)!important;transform:scale(1.1)!important}.hamburger-menu.active{background:var(--error)!important}.learning-container:before{content:"";position:fixed;left:0;top:50%;transform:translateY(-50%);width:4px;height:80px;background:linear-gradient(to right,var(--primary),transparent);opacity:.3;z-index:10;pointer-events:none;animation:swipeHint 2s ease-in-out infinite}.learning-container.sidebar-visible:before{display:none}@keyframes swipeHint{0%,to{opacity:.3;width:4px}50%{opacity:.6;width:6px}}.btn-icon{font-size:1.4rem;padding:8px}.sidebar-header{padding:var(--spacing-md)}.sidebar-modules-list{padding:5px 0}.data-table{font-size:.85rem}.data-table th,.data-table td{padding:8px 6px}}@media (max-width: 1024px) and (min-width: 769px){.learning-sidebar.editor-sidebar{width:250px}}
