*{box-sizing:border-box;margin:0}*,body{padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.header{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.1);position:-webkit-sticky;position:sticky;top:0;z-index:1000}.header-content{max-width:1200px;margin:0 auto;padding:15px 20px;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700;color:#333;cursor:pointer;transition:color .3s}.logo:hover{color:#667eea}.auth-buttons,.header-nav{display:flex;align-items:center;gap:15px}.container{max-width:800px;margin:0 auto;padding:40px 20px}.card{background:#fff;border-radius:12px;padding:40px;box-shadow:0 10px 40px rgba(0,0,0,.1)}h1{font-size:2.5rem;margin-bottom:10px;color:#333}.subtitle{color:#666;font-size:1.1rem;margin-bottom:30px}.form-group{margin-bottom:20px}label{display:block;margin-bottom:8px;font-weight:600;color:#333}textarea{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .3s}textarea:focus{outline:none;border-color:#667eea}textarea:disabled{background-color:#f5f5f5}.question-block{margin-bottom:30px;padding:20px;background:#f8f9fa;border-radius:8px}.question-block h3{margin-bottom:15px;color:#333;font-size:1.2rem}.options{display:flex;flex-direction:column;gap:10px}.option-label{display:flex;align-items:center;padding:12px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .3s}.option-label:hover{border-color:#667eea;background:#f0f4ff}.option-label input[type=radio]{margin-right:12px;width:18px;height:18px;cursor:pointer}.option-text{flex:1 1}.btn-primary,.btn-secondary{padding:14px 28px;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:100%}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px rgba(102,126,234,.4)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#e0e0e0;color:#333}.btn-secondary:hover:not(:disabled){background:#d0d0d0}.button-group{display:flex;gap:15px;margin-top:30px}.button-group .btn-primary{flex:1 1}.error{background:#fee;color:#c33;padding:12px;border-radius:8px;margin-bottom:20px;border:1px solid #fcc}.score-display{margin:40px 0}.score-circle,.score-display{display:flex;justify-content:center}.score-circle{width:150px;height:150px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);flex-direction:column;align-items:center;color:#fff;box-shadow:0 10px 30px rgba(102,126,234,.3)}.score-number{font-size:3rem;font-weight:700}.score-label{font-size:1rem;opacity:.9}.feedback-section{margin:30px 0;padding:20px;background:#f8f9fa;border-radius:8px}.feedback-section h3{margin-bottom:15px;color:#333}.feedback-text{color:#666;line-height:1.6}.section{margin:30px 0;padding:20px;background:#f8f9fa;border-radius:8px}.section h2{margin-bottom:15px;color:#333;font-size:1.3rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-header h2{margin:0}.search-input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .3s}.search-input:focus{outline:none;border-color:#667eea}.search-results{margin-top:20px}.search-results h3{margin-bottom:15px;color:#333}.result-item{background:#fff;padding:15px;border-radius:8px;margin-bottom:10px;border:1px solid #e0e0e0}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.similarity-score{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:600}.result-content{color:#666;line-height:1.6}.document-list{display:flex;flex-direction:column;gap:10px}.document-item{display:flex;justify-content:space-between;align-items:flex-start;background:#fff;padding:15px;border-radius:8px;border:1px solid #e0e0e0}.document-content{flex:1 1;margin-right:15px}.document-content p{color:#333;margin-bottom:5px}.document-meta{color:#999;font-size:.85rem}.btn-delete{background:#fee;color:#c33;border:1px solid #fcc;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s}.btn-delete:hover{background:#fcc;border-color:#c99}.btn-danger{background:#fee;color:#c33;border:1px solid #fcc;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s}.btn-danger:hover{background:#fcc;border-color:#c99}.empty-state{color:#999;text-align:center;padding:40px 20px;font-style:italic}.checkbox-group{margin-bottom:20px}.checkbox-label{display:flex;align-items:flex-start;cursor:pointer;padding:12px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;transition:all .3s}.checkbox-label:hover{border-color:#667eea;background:#f0f4ff}.checkbox-label input[type=checkbox]{margin-right:12px;margin-top:3px;width:18px;height:18px;cursor:pointer}.checkbox-text{flex:1 1;color:#333;line-height:1.5}.navigation-links{margin-top:20px;text-align:center}.btn-link{background:none;border:none;color:#667eea;font-size:1rem;cursor:pointer;text-decoration:underline;padding:10px;transition:color .3s}.btn-link:hover{color:#764ba2}.input-field{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .3s}.input-field:focus{outline:none;border-color:#667eea}.input-field:disabled{background-color:#f5f5f5}.auth-links{margin-top:20px;text-align:center;color:#666}.auth-links p{margin:0}.auth-links .btn-link{background:none;border:none;color:#667eea;font-size:1rem;cursor:pointer;text-decoration:underline;padding:0;margin-left:5px}.auth-links .btn-link:hover{color:#764ba2}.user-menu{position:relative}.user-menu-button{background:none;border:none;color:#667eea;font-size:1rem;cursor:pointer;padding:10px;display:flex;align-items:center;gap:8px}.user-menu-button:hover{color:#764ba2}.user-dropdown{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);min-width:200px;z-index:1000;display:none}.user-dropdown.show{display:block}.user-dropdown-item{padding:12px 16px;cursor:pointer;transition:background .3s;border:none;background:none;width:100%;text-align:left;font-size:.95rem;color:#333}.user-dropdown-item:hover{background:#f0f4ff}.user-dropdown-item.danger{color:#c33}.user-dropdown-item.danger:hover{background:#fee}.user-dropdown-divider{height:1px;background:#e0e0e0;margin:0}.document-title{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f0f4ff;border-radius:6px;cursor:pointer;transition:background .3s;margin-bottom:8px}.document-title:hover{background:#e0e8ff}.document-title-text{font-weight:600;color:#333;flex:1 1}.expand-icon{color:#667eea;font-size:.8rem;margin-left:8px}.document-full-content{background:#f8f9fa;padding:12px;border-radius:6px;margin-bottom:8px;color:#666;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.document-actions{display:flex;gap:8px;align-items:center}.btn-edit{background:#e0e8ff;color:#667eea;border:1px solid #c4d0ff;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s}.btn-edit:hover{background:#c4d0ff;border-color:#a8b8ff}.edit-form{background:#f0f4ff;padding:16px;border-radius:8px;margin-bottom:8px;border:2px solid #667eea}.edit-form .form-group{margin-bottom:12px}.edit-form label{display:block;margin-bottom:6px;font-weight:600;color:#333}.edit-buttons{display:flex;gap:8px;margin-top:12px}.mode-toggle{display:flex;gap:12px;margin-bottom:24px}.mode-toggle button{flex:1 1;padding:12px;border:2px solid #667eea;background:#fff;color:#667eea;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s}.mode-toggle button.active{background:#667eea;color:#fff}.mode-toggle button:hover:not(.active){background:#f0f4ff}.flashcard-container{display:flex;flex-direction:column;align-items:center;gap:16px}.flashcard{width:100%;max-width:500px;height:300px;perspective:1000px}.flashcard-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .6s;transform-style:preserve-3d;cursor:pointer}.flashcard-inner.flipped{transform:rotateY(180deg)}.flashcard-back,.flashcard-front{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.flashcard-front{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.flashcard-back{background:linear-gradient(135deg,#764ba2,#667eea);color:#fff;transform:rotateY(180deg)}.flashcard-back h3,.flashcard-front h3{font-size:1.2rem;margin-bottom:16px}.flashcard-back p,.flashcard-front p{font-size:1.1rem;line-height:1.6}.flashcard-controls{display:flex;align-items:center;gap:16px}.flashcard-controls button{padding:8px 16px;border:2px solid #667eea;background:#fff;color:#667eea;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s}.flashcard-controls button:hover:not(:disabled){background:#667eea;color:#fff}.flashcard-controls button:disabled{opacity:.5;cursor:not-allowed}.qa-container{display:flex;flex-direction:column;gap:16px}.conversation{max-height:400px;overflow-y:auto;border:2px solid #e0e0e0;border-radius:8px;padding:16px;background:#f8f9fa}.message{margin-bottom:12px;padding:12px;border-radius:8px}.message.user{background:#e0e8ff;align-self:flex-end;margin-left:40px}.message.assistant{background:#f0f4ff;align-self:flex-start;margin-right:40px}.message strong{display:block;margin-bottom:4px;font-size:.9rem}.message p{margin:0;line-height:1.6}.qa-form{display:flex;gap:12px;align-items:center}.qa-form input{flex:1 1;padding:12px 16px;border:2px solid #e0e0e0;border-radius:24px;font-size:1rem;transition:border-color .3s}.qa-form input:focus{outline:none;border-color:#667eea}.qa-form button{padding:8px 12px;white-space:nowrap;border-radius:24px;font-size:.9rem;width:60px}.feedback-content{background:#f8f9fa;border-radius:8px;padding:20px;margin-top:16px}.feedback-item{margin-bottom:16px;padding:16px;border-radius:6px;background:#fff;border:1px solid #e0e0e0;box-shadow:0 2px 4px rgba(0,0,0,.05)}.feedback-item:last-child{margin-bottom:0}.feedback-item.summary{background:#e7f3ff;border:1px solid #667eea}.question-title{display:block;margin-bottom:8px;font-size:1rem;color:#667eea}.feedback-item p{margin:0;line-height:1.6;color:#333}.questions-section{margin-top:24px}.question-box{margin-bottom:20px;padding:20px;border-radius:8px;background:#fff;border:1px solid #e0e0e0;box-shadow:0 2px 8px rgba(0,0,0,.1)}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #f0f0f0}.question-number{font-weight:700;font-size:1.1rem;color:#667eea}.status-badge{padding:6px 12px;border-radius:20px;font-size:.9rem;font-weight:600}.status-badge.correct{background:#d4edda;color:#155724}.status-badge.incorrect{background:#f8d7da;color:#721c24}.question-content{margin-top:16px}.question-text{font-weight:600;font-size:1.05rem;color:#333;margin-bottom:16px;line-height:1.6}.options-list{display:flex;flex-direction:column;gap:8px}.option-item{display:flex;align-items:center;padding:10px 14px;border-radius:6px;background:#f8f9fa;border:2px solid #e0e0e0;transition:all .2s}.option-item.correct-option{background:#d4edda;border-color:#28a745}.option-item.wrong-option{background:#f8d7da;border-color:#dc3545}.option-key{font-weight:700;margin-right:10px;min-width:24px}.option-value{flex:1 1}.correct-mark{color:#28a745}.correct-mark,.wrong-mark{font-weight:700;font-size:1.2rem;margin-left:10px}.wrong-mark{color:#dc3545}.explanation-box{margin-top:16px;padding:14px 18px;background:#fff9e6;border-left:4px solid #ffc107;border-radius:6px}.explanation-box strong{display:block;margin-bottom:8px;color:#856404;font-size:.95rem}.explanation-box p{margin:0;line-height:1.6;color:#333;font-size:.95rem}.summary-section{margin-top:32px;padding:24px;background:#f8f9fa;border-radius:8px;border:2px solid #e0e0e0}.summary-section h3{margin-top:0;margin-bottom:20px;color:#667eea;font-size:1.3rem}.summary-item{margin-bottom:20px;padding:16px;border-radius:6px}.summary-item:last-child{margin-bottom:0}.summary-item.strengths{background:#d4edda;border-left:4px solid #28a745}.summary-item.weaknesses{background:#f8d7da;border-left:4px solid #dc3545}.summary-item.suggestions{background:#fff3cd;border-left:4px solid #ffc107}.summary-item h4{margin-top:0;margin-bottom:12px;font-size:1.1rem;color:#333}.summary-item ul{margin:0;padding-left:20px}.summary-item li{margin-bottom:8px;line-height:1.6;color:#333}.summary-item li:last-child{margin-bottom:0}.learning-plan-container{margin-top:1.5rem}.progress-section{margin-bottom:2rem;padding:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff}.progress-section h3{margin:0 0 1rem;font-size:1.2rem}.progress-bar-container{display:flex;align-items:center;gap:1rem}.progress-bar{flex:1 1;height:24px;background:hsla(0,0%,100%,.3);border-radius:12px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);transition:width .3s ease;border-radius:12px}.progress-text{font-weight:700;min-width:100px;text-align:right}.plan-steps{margin-bottom:2rem}.plan-steps h3{margin-bottom:1rem;font-size:1.2rem;color:#333}.plan-step{padding:1.5rem;margin-bottom:1rem;background:#f9f9f9;border-radius:8px;border-left:4px solid #667eea;transition:transform .2s ease}.plan-step:hover{transform:translateX(5px)}.plan-step.completed{border-left-color:#4caf50;background:#f0f9f0}.plan-step.clickable{cursor:pointer}.plan-step.clickable:hover{background:#e8eaf6;transform:translateX(8px)}.step-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.step-number{font-weight:700;color:#667eea;font-size:1rem}.plan-step.completed .step-number{color:#4caf50}.step-status{padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:700;background:#e0e0e0;color:#666}.step-status.completed{background:#4caf50;color:#fff}.step-title{margin:0 0 .5rem;font-size:1.1rem;color:#333}.step-description{margin:0;color:#666;line-height:1.6}.step-hint{margin:.5rem 0 0;font-size:.875rem;color:#667eea;font-style:italic}.step-reference{color:#667eea;text-decoration:underline;cursor:pointer;font-weight:600}.step-reference:hover{color:#5568d3}