*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#fff;color:#1f2937;line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.header{background:#fff;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:100;border-bottom:1px solid #e5e7eb;padding:0}.header h1{font-size:2.5rem;font-weight:700;color:#1f2937;margin:0;padding:1rem 0;text-align:center}.main{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px);padding:2rem 0}.hero{text-align:center;max-width:800px;margin:0 auto}.hero h1{font-size:3.5rem;font-weight:800;color:#1f2937;margin-bottom:2rem;line-height:1.1}.hero .highlight{color:#2563eb}.hero p{font-size:1.25rem;color:#6b7280;margin-bottom:1rem;line-height:1.7}.hero p:last-of-type{margin-bottom:3rem}.btn{display:inline-block;padding:1rem 2rem;background-color:#2563eb;color:#fff;text-decoration:none;border-radius:.5rem;font-weight:600;font-size:1.1rem;transition:all .3s ease;border:none;cursor:pointer}.btn:hover{background-color:#1d4ed8;transform:translateY(-2px);box-shadow:0 10px 25px #2563eb4d}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f8fafc;padding:2rem 1rem}.auth-card{background:#fff;padding:2.5rem;border-radius:1rem;box-shadow:0 10px 25px #0000001a;width:100%;max-width:400px}.auth-card h2{font-size:2rem;font-weight:700;color:#1f2937;margin-bottom:.5rem;text-align:center}.auth-subtitle{color:#6b7280;text-align:center;margin-bottom:2rem;font-size:1rem}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#374151;font-size:.875rem}.form-group input{padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;transition:border-color .3s ease}.form-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.error-message{background-color:#fef2f2;color:#dc2626;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;border:1px solid #fecaca}.auth-switch{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.auth-switch p{color:#6b7280;font-size:.875rem}.link-btn{background:none;border:none;color:#2563eb;font-weight:600;cursor:pointer;text-decoration:underline;font-size:.875rem}.link-btn:hover{color:#1d4ed8}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover{background-color:#1d4ed8}.btn-secondary{background-color:#6b7280;color:#fff;padding:.5rem 1rem;font-size:.875rem}.btn-secondary:hover{background-color:#4b5563}.btn-outline{background-color:transparent;color:#2563eb;border:2px solid #2563eb;margin-left:1rem}.btn-outline:hover{background-color:#2563eb;color:#fff}.header-content{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;width:100%;min-width:0}.header-left{flex:0 0 auto}.header-left h1{font-size:2.5rem;font-weight:700;color:#1f2937;margin:0}.header-right{flex:0 0 auto}.header-right .user-info{display:flex;align-items:center;gap:1rem}.user-info span{color:#6b7280;font-weight:500;white-space:nowrap}.dashboard-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.role-selector{display:flex;gap:.5rem;background-color:#f1f5f9;padding:.25rem;border-radius:.75rem;border:2px solid #e2e8f0;transition:border-color .3s ease}.role-selector:hover{border-color:#cbd5e1}.role-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .75rem;background:transparent;border:none;border-radius:.5rem;cursor:pointer;transition:all .3s ease;font-weight:500;color:#64748b}.role-option:hover{background-color:#e2e8f0;color:#475569}.role-option.active{background-color:#2563eb;color:#fff;box-shadow:0 4px 12px #2563eb4d;transform:translateY(-1px)}.role-option.active:hover{background-color:#1d4ed8;color:#fff}.role-icon{font-size:1.5rem;line-height:1}.role-option span{font-size:.875rem;font-weight:600}.form-hint{color:#6b7280;font-size:.75rem;margin-top:.25rem;display:block}.teacher-dashboard,.student-dashboard{max-width:1200px;margin:0 auto}.welcome-section{text-align:center;margin-bottom:3rem}.welcome-section h1{font-size:2.5rem;margin-bottom:1rem}.welcome-section p{font-size:1.2rem;color:#6b7280;max-width:600px;margin:0 auto}.action-buttons{display:flex;gap:1rem;justify-content:center;margin-bottom:3rem}.btn-large{padding:1rem 2rem;font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.btn-icon{font-size:1.2rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.dashboard-card{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f1f5f9}.card-header h3{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0}.course-count,.todo-count{background:#e0e7ff;color:#3730a3;padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500}.courses-list{display:flex;flex-direction:column;gap:1rem}.course-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8fafc;border-radius:.75rem;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s ease}.course-item:hover{background:#f1f5f9;border-color:#cbd5e1;transform:translateY(-1px)}.course-info h4{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.course-info p{font-size:.875rem;color:#6b7280;margin:0}.status-badge{padding:.25rem .75rem;border-radius:.5rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.draft{background:#fef3c7;color:#92400e}.status-badge.dropped{background:#fee2e2;color:#dc2626}.status-badge.completed{background:#dbeafe;color:#2563eb}.todo-form{margin-bottom:1.5rem}.todo-input-group{display:flex;gap:.5rem}.todo-input{flex:1;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;transition:border-color .2s ease}.todo-input:focus{outline:none;border-color:#2563eb}.btn-small{padding:.75rem 1rem;font-size:.875rem}.todo-list{display:flex;flex-direction:column;gap:.75rem}.todo-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8fafc;border-radius:.5rem;border:1px solid #e2e8f0;transition:all .2s ease}.todo-item.completed{opacity:.6;background:#f1f5f9}.todo-content{display:flex;align-items:center;gap:.75rem;flex:1}.todo-checkbox{width:1.25rem;height:1.25rem;accent-color:#2563eb}.todo-text{font-size:.875rem;color:#374151;text-decoration:none;transition:text-decoration .2s ease}.todo-item.completed .todo-text{text-decoration:line-through;color:#6b7280}.todo-delete{background:none;border:none;color:#ef4444;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:background-color .2s ease}.todo-delete:hover{background:#fef2f2}.empty-state{text-align:center;color:#6b7280;font-style:italic;padding:2rem}.loading-state{text-align:center;color:#6b7280;padding:2rem}.progress-content{padding:1rem 0}.progress-count{background:#fef3c7;color:#92400e;padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:1rem;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 0;border-bottom:1px solid #e5e7eb;margin-bottom:1.5rem}.modal-header h2{margin:0;font-size:1.5rem;font-weight:600;color:#1f2937}.modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .2s ease}.modal-close:hover{color:#374151}.course-form{padding:0 1.5rem 1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-textarea{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;font-family:inherit;resize:vertical;transition:border-color .2s ease}.form-textarea:focus{outline:none;border-color:#2563eb}.form-select{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;background:#fff;cursor:pointer;transition:border-color .2s ease}.form-select:focus{outline:none;border-color:#2563eb}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.course-exploration{max-width:1200px;margin:0 auto;padding:2rem 0}.exploration-header{text-align:center;margin-bottom:3rem}.exploration-header h1{font-size:2.5rem;margin:1rem 0;color:#1f2937}.exploration-header p{font-size:1.1rem;color:#6b7280}.loading-container,.error-container,.empty-container{text-align:center;padding:4rem 2rem}.error-container .btn{margin-top:1rem}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;margin-top:2rem}.course-card{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb;transition:all .2s ease}.course-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.course-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.course-header h3{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0;flex:1;margin-right:1rem}.course-status{padding:.25rem .75rem;border-radius:.5rem;font-size:.75rem;font-weight:500;text-transform:uppercase;white-space:nowrap}.course-status.active{background:#dcfce7;color:#166534}.course-description{color:#6b7280;line-height:1.6;margin-bottom:1.5rem;min-height:3rem}.course-meta{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.meta-item{display:flex;justify-content:space-between;align-items:center}.meta-label{font-weight:500;color:#374151;font-size:.875rem}.meta-value{color:#6b7280;font-size:.875rem}.course-actions{display:flex;justify-content:center}.btn-success{background:#10b981;color:#fff;border:none}.btn-success:hover{background:#059669}.btn-success:disabled{background:#d1d5db;cursor:not-allowed}.explore-users{max-width:1200px;margin:0 auto;padding:2rem 0}.explore-header{text-align:center;margin-bottom:3rem}.explore-header h1{font-size:2.5rem;margin:1rem 0;color:#1f2937}.explore-header p{font-size:1.1rem;color:#6b7280}.search-filter-section{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:#f8fafc;border-radius:1rem;border:1px solid #e2e8f0}.search-box{width:100%;max-width:500px;margin:0 auto}.search-input{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;transition:border-color .2s ease}.search-input:focus{outline:none;border-color:#2563eb}.filter-buttons{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.filter-btn{padding:.5rem 1rem;border:2px solid #e5e7eb;background:#fff;border-radius:.5rem;cursor:pointer;font-weight:500;transition:all .2s ease;color:#6b7280}.filter-btn:hover{border-color:#cbd5e1;color:#374151}.filter-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin-bottom:3rem}.user-card{background:#f8fafc;border-radius:1rem;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:2px solid #e2e8f0;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;min-height:200px}.user-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:#cbd5e1}.user-card.current-user{border-color:#3b82f6;background:#f1f5f9}.user-card.current-user:hover{border-color:#2563eb;box-shadow:0 4px 12px #3b82f633}.user-avatar{margin-bottom:1.5rem;position:relative;display:flex;justify-content:center;align-items:center;width:70px;height:70px;background:#e0e7ff;border-radius:50%;border:2px solid #c7d2fe}.user-card.current-user .user-avatar{border-color:#3b82f6;background:#dbeafe}.avatar-icon{font-size:2.2rem;display:block}.current-user-badge{position:absolute;top:-8px;right:-8px;background:#3b82f6;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .5rem;border-radius:.75rem;border:2px solid white;box-shadow:0 2px 4px #0000001a}.user-info{margin-bottom:1.5rem;width:100%}.user-details-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem}.user-name-section{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.user-name{font-size:1.2rem;font-weight:700;color:#1f2937;margin:0;line-height:1.2}.user-username{color:#6b7280;font-size:.9rem;margin:0;font-weight:500}.role-badge{padding:.3rem .8rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:#fff;display:inline-block;flex-shrink:0}.user-joined-section{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex-shrink:0}.user-joined,.user-joined-date{color:#6b7280;font-size:.8rem;margin:0;font-weight:500}.user-actions{width:100%}.btn-small{padding:.75rem 1rem;font-size:.875rem;width:100%;border-radius:.75rem;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-small:disabled{opacity:.8;cursor:not-allowed;background:#6b7280;border-color:#6b7280}.btn-small:disabled:hover{background:#6b7280;border-color:#6b7280}@media (max-width: 768px){.header h1{font-size:2rem}.header-content{flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:1rem;padding:1rem 0}.header-left h1{font-size:2rem}.header-right .user-info{display:flex!important;flex-direction:row!important;align-items:center!important;gap:.75rem}.hero h1{font-size:2.5rem}.hero p{font-size:1.1rem}.btn{padding:.875rem 1.75rem;font-size:1rem}.auth-card{padding:2rem}.dashboard-actions{flex-direction:column;align-items:center}.btn-outline{margin-left:0;margin-top:.5rem}.role-option{padding:.75rem .5rem}.role-icon{font-size:1.25rem}.role-option span{font-size:.8rem}.dashboard-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column;align-items:center}.btn-large{width:100%;max-width:300px}.courses-grid,.form-row{grid-template-columns:1fr}.modal-content{margin:1rem;max-height:calc(100vh - 2rem)}.users-grid{grid-template-columns:1fr}.user-details-row{flex-direction:column;align-items:flex-start;gap:.75rem}.user-name-section{flex-direction:column;align-items:flex-start;gap:.25rem}.user-joined-section{align-items:flex-start;text-align:left}.search-filter-section{padding:1rem}.filter-buttons{flex-direction:column;align-items:center}.filter-btn{width:100%;max-width:200px}}@media (max-width: 480px){.container{padding:0 .75rem}.header{padding:0}.hero h1{font-size:2rem}.hero p{font-size:1rem}.auth-card{padding:1.5rem}.header-content{flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:.75rem;padding:.75rem 0}.header-left h1{font-size:1.8rem}.header-right .user-info{display:flex!important;flex-direction:row!important;align-items:center!important;gap:.5rem}.user-info span{font-size:.85rem}.user-info{flex-direction:row;gap:.5rem}}.chat-window{display:flex;flex-direction:column;height:100vh;max-height:80vh;background:#fff;border-radius:1rem;box-shadow:0 10px 25px #0000001a;overflow:hidden;margin:1rem}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#f8fafc;border-bottom:1px solid #e5e7eb}.chat-user-info{display:flex;align-items:center;gap:1rem}.chat-user-info .user-avatar{width:40px;height:40px;background:#e0e7ff;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #c7d2fe}.chat-user-info .avatar-icon{font-size:1.2rem}.chat-user-info .user-details h3{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.chat-user-info .user-details p{margin:0;font-size:.875rem;color:#6b7280}.chat-close-btn{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:.5rem;border-radius:.5rem;transition:all .2s ease}.chat-close-btn:hover{background:#f3f4f6;color:#374151}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.chat-loading,.chat-empty{display:flex;align-items:center;justify-content:center;height:200px;color:#6b7280;font-style:italic}.message{display:flex;margin-bottom:.5rem}.message-sent{justify-content:flex-end}.message-received{justify-content:flex-start}.message-content{max-width:70%;padding:.75rem 1rem;border-radius:1rem;position:relative}.message-sent .message-content{background:#2563eb;color:#fff;border-bottom-right-radius:.25rem}.message-received .message-content{background:#f1f5f9;color:#1f2937;border-bottom-left-radius:.25rem}.message-content p{margin:0;line-height:1.4}.message-time{font-size:.75rem;opacity:.7;margin-top:.25rem;display:block}.chat-error{padding:2rem;background:#fef2f2;color:#dc2626;border-top:1px solid #fecaca;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.chat-error h2{margin:0 0 1rem;color:#dc2626}.chat-error p{margin:0 0 1.5rem;color:#6b7280}.chat-input-form{border-top:1px solid #e5e7eb;padding:1rem 1.5rem;background:#fff}.chat-input-container{display:flex;gap:.75rem;align-items:center}.chat-input{flex:1;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:1rem;font-size:.875rem;transition:border-color .2s ease}.chat-input:focus{outline:none;border-color:#2563eb}.chat-send-btn{padding:.75rem 1.5rem;background:#2563eb;color:#fff;border:none;border-radius:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.chat-send-btn:hover:not(:disabled){background:#1d4ed8}.chat-send-btn:disabled{background:#9ca3af;cursor:not-allowed}.chat-list{display:flex;flex-direction:column;height:100vh;max-height:80vh;background:#fff;border-radius:1rem;box-shadow:0 10px 25px #0000001a;overflow:hidden;margin:1rem}.chat-list-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#f8fafc;border-bottom:1px solid #e5e7eb}.chat-list-header h2{flex:1;margin:0;text-align:center}.back-btn{background:none;border:none;font-size:1.2rem;color:#6b7280;cursor:pointer;padding:.5rem;border-radius:.5rem;transition:all .2s ease}.back-btn:hover{background:#f3f4f6;color:#374151}.conversations-list{flex:1;overflow-y:auto}.conversation-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background-color .2s ease}.conversation-item:hover{background:#f8fafc}.conversation-avatar{width:50px;height:50px;background:#e0e7ff;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #c7d2fe;flex-shrink:0}.conversation-avatar .avatar-icon{font-size:1.5rem}.conversation-details{flex:1;min-width:0}.conversation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.conversation-header h4{margin:0;font-size:1rem;font-weight:600;color:#1f2937}.conversation-time{font-size:.75rem;color:#6b7280;flex-shrink:0}.conversation-preview{margin:0;font-size:.875rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.chat-window,.chat-list{height:100vh;max-height:none;border-radius:0}.chat-header,.chat-list-header{padding:1rem}.chat-messages{padding:.75rem}.chat-input-form,.conversation-item{padding:1rem}.message-content{max-width:85%}}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:2rem;text-align:center;background:#f8fafc}.error-boundary h2{color:#dc2626;margin-bottom:1rem}.error-boundary p{color:#6b7280;margin-bottom:2rem;max-width:400px}.file-preview-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f3f4f6;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.file-preview{display:flex;align-items:center;gap:.5rem;flex:1}.file-icon{font-size:1.25rem}.file-name{font-weight:500;color:#374151;margin:0}.file-size{color:#6b7280;font-size:.875rem;margin:0}.file-remove-btn{background:#ef4444;color:#fff;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.75rem}.file-remove-btn:hover{background:#dc2626}.file-attach-btn{background:#6b7280;color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;margin-right:.5rem}.file-attach-btn:hover{background:#4b5563}.file-attach-btn:disabled{background:#d1d5db;cursor:not-allowed}.file-message{display:flex;flex-direction:column;gap:.5rem}.message-image{max-width:200px;max-height:200px;border-radius:8px;cursor:pointer;object-fit:cover}.message-video{max-width:300px;max-height:200px;border-radius:8px}.message-audio{width:100%;max-width:300px}.file-preview{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:.5rem}.file-info{flex:1}.file-download-btn{background:#3b82f6;color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;display:inline-block}.file-download-btn:hover{background:#2563eb}.new-chat-btn{margin-left:auto!important;padding:.5rem .75rem!important;font-size:.8rem!important;min-width:auto!important;max-width:120px!important;white-space:nowrap!important;flex-shrink:0!important;width:auto!important;height:36px!important;line-height:1!important}.course-player{min-height:100vh;background:#f8fafc}.course-player-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.course-player-header h1{margin:0;font-size:1.5rem;color:#1f2937}.course-progress{background:#e0e7ff;color:#3730a3;padding:.5rem 1rem;border-radius:1rem;font-size:.875rem;font-weight:500}.course-player-layout{display:flex;min-height:calc(100vh - 80px)}.course-sidebar{width:300px;background:#fff;border-right:1px solid #e5e7eb;padding:1.5rem;overflow-y:auto}.course-sidebar h3{margin:0 0 1rem;color:#1f2937;font-size:1.1rem}.chapter-list{display:flex;flex-direction:column;gap:.5rem}.chapter-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:.5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.chapter-item:hover{background:#f8fafc;border-color:#e5e7eb}.chapter-item.active{background:#e0e7ff;border-color:#3b82f6}.chapter-number{background:#6b7280;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.chapter-item.active .chapter-number{background:#3b82f6}.chapter-info h4{margin:0 0 .25rem;font-size:.875rem;font-weight:600;color:#1f2937;line-height:1.3}.chapter-info p{margin:0;font-size:.75rem;color:#6b7280;line-height:1.4}.course-main-content{flex:1;padding:2rem;overflow-y:auto}.chapter-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.chapter-header h2{margin:0 0 .5rem;color:#1f2937;font-size:2rem}.chapter-description{margin:0;color:#6b7280;font-size:1.1rem;line-height:1.6}.chapter-content{margin-bottom:3rem}.content-item{margin-bottom:2rem}.content-text{font-size:1.1rem;line-height:1.7;color:#374151}.content-image{text-align:center;margin:1.5rem 0}.content-video{margin:1.5rem 0}.video-container{position:relative;width:100%;height:0;padding-bottom:56.25%;overflow:hidden;border-radius:8px;box-shadow:0 4px 6px #0000001a}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.content-code{background:#1f2937;border-radius:8px;overflow:hidden;margin:1.5rem 0;box-shadow:0 4px 6px #0000001a}.code-header{background:#374151;padding:.75rem 1rem;border-bottom:1px solid #4b5563}.code-language{color:#e5e7eb;font-size:.875rem;font-weight:500;text-transform:uppercase}.code-block{margin:0;padding:1.5rem;background:#1f2937;color:#e5e7eb;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;line-height:1.5;overflow-x:auto}.content-quiz{background:#f8fafc;border:2px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin:1.5rem 0}.quiz-question h4{margin:0 0 1rem;color:#1f2937;font-size:1.1rem}.quiz-options{display:flex;flex-direction:column;gap:.75rem}.quiz-option{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s ease}.quiz-option:hover{border-color:#3b82f6;background:#f0f9ff}.quiz-option input[type=radio]{margin:0}.quiz-option label{margin:0;cursor:pointer;color:#374151;font-weight:500}.chapter-navigation{display:flex;justify-content:space-between;padding-top:2rem;border-top:1px solid #e5e7eb}.empty-content{text-align:center;padding:3rem;color:#6b7280}.content-blocks{display:flex;flex-direction:column;gap:1rem}.content-block{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.content-block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.add-content-buttons{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}@media (max-width: 768px){.course-player-layout{flex-direction:column}.course-sidebar{width:100%;border-right:none;border-bottom:1px solid #e5e7eb}.course-main-content{padding:1rem}.chapter-header h2{font-size:1.5rem}.chapter-navigation{flex-direction:column;gap:1rem}.add-content-buttons{flex-direction:column}.add-content-buttons button{width:100%}}.challenge-item{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;margin-bottom:1rem;transition:all .2s ease}.challenge-item:hover{border-color:#3b82f6;box-shadow:0 4px 6px -1px #0000001a}.challenge-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.challenge-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.challenge-meta{display:flex;gap:.5rem;align-items:center;font-size:.875rem;color:#6b7280;margin-top:.25rem}.challenge-type-badge{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase}.challenge-type-quiz{background-color:#dbeafe;color:#1e40af}.challenge-type-coding{background-color:#dcfce7;color:#166534}.challenge-type-question{background-color:#fef3c7;color:#92400e}.challenge-type-discussion{background-color:#e0e7ff;color:#3730a3}.difficulty-badge{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase}.difficulty-easy{background-color:#dcfce7;color:#166534}.difficulty-medium{background-color:#fef3c7;color:#92400e}.difficulty-hard{background-color:#fecaca;color:#991b1b}.submission-status{font-weight:600;font-size:.875rem}.submission-correct{color:#16a34a}.submission-incorrect{color:#dc2626}.submission-not-attempted{color:#6b7280}.course-completion-section{margin:2rem 0;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:1rem;color:#fff}.completion-card{text-align:center;max-width:600px;margin:0 auto}.completion-card h3{font-size:2rem;margin-bottom:1rem;color:#fff}.completion-card p{font-size:1.1rem;margin-bottom:1.5rem;opacity:.9}.completion-success{background:#ffffff1a;padding:1.5rem;border-radius:.5rem;border:2px solid rgba(34,197,94,.3)}.completion-success p{margin:.5rem 0;font-size:1.1rem}.completion-actions{display:flex;flex-direction:column;align-items:center;gap:1rem}.deadline-warning{background:#ffc10733;padding:1rem;border-radius:.5rem;border:1px solid rgba(255,193,7,.3);margin-bottom:1rem}.deadline-warning p{margin:.25rem 0;font-size:.95rem}.btn-success{background:#22c55e;color:#fff;border:none;padding:1rem 2rem;font-size:1.1rem;font-weight:600;border-radius:.5rem;cursor:pointer;transition:all .2s ease}.btn-success:hover:not(:disabled){background:#16a34a;transform:translateY(-2px);box-shadow:0 4px 12px #22c55e4d}.btn-success:disabled{opacity:.6;cursor:not-allowed}.btn-large{padding:1.25rem 2.5rem;font-size:1.2rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:1rem;padding:0;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0 0 .5rem;color:#111827;font-size:1.5rem}.modal-header p{margin:0;color:#6b7280;font-size:.95rem}.modal-body{padding:1.5rem}.deadline-info{background:#f3f4f6;padding:1rem;border-radius:.5rem;margin-top:1rem}.deadline-info p{margin:.5rem 0;font-size:.9rem;color:#374151}.modal-footer{padding:1rem 1.5rem 1.5rem;display:flex;gap:.75rem;justify-content:flex-end;border-top:1px solid #e5e7eb}.deadline-banner{margin-bottom:1rem}.deadline-banner>div{padding:.75rem 1rem;border-radius:.5rem;font-weight:500;text-align:center;margin-bottom:.5rem}.deadline-expired{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.deadline-urgent{background:#fef3c7;border:1px solid #fde68a;color:#d97706;animation:pulse 2s infinite}.deadline-warning{background:#fef3c7;border:1px solid #fde68a;color:#d97706}.deadline-info{background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.course-status-container{display:flex;gap:.5rem;flex-wrap:wrap}.course-status.completed{background:#22c55e;color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase}.btn-completed{background:#6b7280!important;color:#fff!important;cursor:not-allowed!important;opacity:.7!important}.btn-completed:hover{background:#6b7280!important;transform:none!important;box-shadow:none!important}.completed-date{color:#22c55e!important;font-weight:600}.exploration-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.header-content{flex:1;text-align:center}.header-content h1{margin:0 0 .5rem}.header-content p{margin:0}.btn-small{padding:.35rem .6rem;font-size:.9rem}.chapter-item.completed{background:#f0f9ff;border-left:4px solid #22c55e}.chapter-item.completed .chapter-number{background:#22c55e;color:#fff}.chapter-item.locked{background:#f9fafb;opacity:.6;border-left:4px solid #d1d5db}.chapter-item.locked .chapter-number{background:#d1d5db;color:#6b7280}.chapter-status{font-size:.75rem;font-weight:600;text-transform:uppercase;padding:.25rem .5rem;border-radius:.25rem;margin-top:.5rem;display:inline-block}.chapter-status.completed{background:#dcfce7;color:#166534}.chapter-status.locked{background:#f3f4f6;color:#6b7280}.chapter-completion-section{margin:2rem 0;padding:1.5rem;background:#f8fafc;border-radius:.75rem;border:1px solid #e2e8f0}.chapter-completion-card{text-align:center;max-width:600px;margin:0 auto}.chapter-completion-card h4{margin:0 0 1rem;color:#1f2937;font-size:1.25rem}.chapter-completion-card p{margin:0 0 1.5rem;color:#6b7280;line-height:1.5}.chapter-completed{background:#f0fdf4;padding:1.5rem;border-radius:.5rem;border:1px solid #bbf7d0}.chapter-completed h4{color:#166534;margin-bottom:.5rem}.chapter-completed p{color:#15803d;margin:0}.chapter-completion-actions{background:#fef3c7;padding:1.5rem;border-radius:.5rem;border:1px solid #fde68a}.chapter-completion-actions h4{color:#92400e;margin-bottom:.5rem}.chapter-completion-actions p{color:#a16207;margin:0 0 1rem}
