:root{font-family:Poppins,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}@media (max-width: 768px){body{margin:0;padding:0;display:block;min-width:100%;min-height:100dvh;height:100dvh;overflow:hidden}}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@keyframes slide-in-sidebar{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-out-sidebar{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.chat-toggle-button{position:fixed;bottom:20px;right:20px;width:60px;height:60px;background-color:#f3b705;border-radius:50%;border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;box-shadow:0 0 10px #0000001a;z-index:1001}.chat-toggle-button img{width:30px;height:30px}@media (max-width: 768px){.chat-toggle-button{bottom:15px;right:15px;width:50px;height:50px}.chat-toggle-button img{width:24px;height:24px}}.chat-widget{position:fixed;top:0;right:0;width:500px;height:100vh;background-color:#fff;border-left:1px solid #eee;box-shadow:-2px 0 10px #0000001a;display:flex;flex-direction:column;animation:slide-in-sidebar .3s ease-out;z-index:1000}.chat-widget.closing{animation:slide-out-sidebar .3s ease-out}@media (max-width: 768px){.chat-widget{width:100%;height:100dvh;right:0;top:0;border-left:none;box-shadow:none}}.chat-header{background:linear-gradient(125deg,#f3b705,#ffc107);color:#fff;padding:15px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.chat-header h2{margin:0;font-size:1.2em}@media (max-width: 768px){.chat-header{padding:12px}.chat-header h2{font-size:1em}}.header-actions{display:flex;gap:8px;align-items:center}.clear-chat-button{background:none;border:none;color:#fff;font-size:1.2em;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.clear-chat-button img{filter:invert(1)}.clear-chat-button:hover{background-color:#fff3;transform:scale(1.1)}.clear-chat-button:active{transform:scale(.95)}.close-button{background:none;border:none;color:#fff;font-size:1.5em;cursor:pointer;padding:0}.close-icon{filter:invert(1)}.chat-body{margin-top:10px;padding:10px;flex:1;overflow-y:auto;background:linear-gradient(180deg,#fafbfc,#f1f3f4);scroll-behavior:smooth}.chat-body::-webkit-scrollbar{width:6px}.chat-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.chat-body::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.chat-body::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.message-container{display:flex;align-items:flex-start;animation:fade-in .3s ease-out;margin-bottom:12px}.message-container.user{justify-content:flex-end}.message-container.bot{align-items:flex-reverse;justify-content:flex-reverse}@media (max-width: 768px){.message-container{margin-bottom:8px}}.avatar{width:36px;height:36px;border-radius:50%;margin-right:12px;flex-shrink:0;border:2px solid #e1e5e9}.message-container.user .avatar{margin-left:12px;margin-right:0;order:2}.message{padding:0 16px;border-radius:18px;max-width:70%;word-wrap:break-word;line-height:1.4;font-size:14px;position:relative}@media (max-width: 768px){.message{max-width:85%;font-size:13px;padding:0 12px}}.message.user{background:linear-gradient(135deg,#f3b705,#ffc107);color:#fdffe2;box-shadow:0 2px 8px #f3b7054d}.message.bot{background-color:#f8f9fa;color:#2d3748;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a}.chat-footer{padding:15px;border-top:1px solid #e2e8f0;display:flex;flex-shrink:0;background-color:#fff;gap:8px}.chat-footer input{flex:1;padding:12px 16px;border:2px solid #e2e8f0;border-radius:24px;font-size:14px;transition:border-color .2s ease}@media (max-width: 768px){.chat-footer{padding:10px;gap:6px}.chat-footer input{font-size:16px;padding:10px 12px}.chat-footer button{padding:10px 16px;font-size:13px}}.chat-footer input:focus{outline:none;border-color:#f3b705;box-shadow:0 0 0 3px #f3b7051a}.chat-footer button{background:linear-gradient(135deg,#f3b705,#ffc107);color:#fff;border:none;padding:12px 20px;border-radius:24px;margin-left:0;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s ease;box-shadow:0 2px 4px #f3b70533}.chat-footer button:hover{transform:translateY(-1px);box-shadow:0 4px 8px #f3b7054d}.chat-footer button:active{transform:translateY(0)}.chat-footer button:disabled{background:linear-gradient(135deg,#cbd5e0,#a0aec0);cursor:not-allowed;opacity:.6;transform:none;box-shadow:0 2px 4px #0000001a}.chat-footer button:disabled:hover{transform:none;box-shadow:0 2px 4px #0000001a}.chat-input{border-radius:20px;border:1px solid #ccc;padding:10px 15px;font-size:1em;background-color:#f9f9f9;color:#333}.chat-input:focus{outline:none}.chat-input:disabled{background-color:#e2e8f0;color:#a0aec0;border-color:#cbd5e0}.typing-indicator{display:flex;align-items:center;padding:12px 16px;background-color:#f8f9fa;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 1px 3px #0000001a;position:relative}.typing-indicator:after{content:"";position:absolute;bottom:0;left:-8px;width:0;height:0;border-right:8px solid #f8f9fa;border-top:8px solid transparent;border-bottom:8px solid transparent}.typing-indicator span{height:6px;width:6px;background-color:#718096;border-radius:50%;display:inline-block;margin:0 2px;animation:typing 1.4s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-8px);opacity:1}}.suggestions-container{display:flex;flex-wrap:wrap;justify-content:flex-start;margin-left:50px;margin-top:5px;margin-bottom:10px;animation:fade-in .3s ease-out}@media (max-width: 768px){.suggestions-container{margin-left:45px}.suggestions-container .suggestion-chip{font-size:.75em}}.suggestion-chip{background-color:#f0f0f0;border:1px solid #ddd;border-radius:10px;padding:6px 10px;margin:5px;cursor:pointer;font-size:.8em;color:#f3b705;transition:background-color .2s;font-weight:500}.suggestion-chip:hover{background-color:#e6e6e6}.message-break{display:block;margin-top:10px}.study-plan-actions{display:flex;gap:8px;margin-left:50px;margin-top:12px;margin-bottom:12px;animation:fade-in .3s ease-out}@media (max-width: 768px){.study-plan-actions{flex-direction:column;margin-left:10px;margin-right:10px;gap:6px}.study-plan-actions .action-button{width:100%}}.action-button{padding:10px 16px;border:none;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a;flex:1}.confirm-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.confirm-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.confirm-button:active{transform:translateY(0)}.modify-button{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.modify-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px #f59e0b4d}.modify-button:active{transform:translateY(0)}.study-plan-options{display:flex;flex-direction:column;gap:8px;margin-left:50px;margin-top:12px;margin-bottom:12px;animation:fade-in .3s ease-out}@media (max-width: 768px){.study-plan-options{margin-left:10px;margin-right:10px;gap:6px}.study-plan-options .option-button{font-size:13px;padding:10px 12px}}.option-button{padding:12px 16px;border:2px solid #F3B705;background:#fff;color:#f3b705;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #5b1da71a;text-align:left}.option-button:hover:not(:disabled){background:linear-gradient(135deg,#f3b705,#ffc107);color:#fff;transform:translateY(-1px);box-shadow:0 4px 8px #f3b7054d}.option-button:active:not(:disabled){transform:translateY(0)}.option-button:disabled{background-color:#f0f0f0;border-color:#cbd5e0;color:#a0aec0;cursor:not-allowed;opacity:.6;transform:none}.modify-feedback-form{padding:15px;border-top:1px solid #e2e8f0;background-color:#fafbfc;flex-shrink:0}.form-container{display:flex;flex-direction:column;gap:12px;animation:fade-in .3s ease-out}.form-container h3{margin:0;font-size:14px;font-weight:600;color:#2d3748}.feedback-textarea{padding:12px;border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;resize:vertical;transition:border-color .2s ease;color:#2d3748;background-color:#fff}.feedback-textarea:focus{outline:none;border-color:#f3b705;box-shadow:0 0 0 3px #f3b7051a}.feedback-textarea::placeholder{color:#a0aec0}.form-buttons{display:flex;gap:8px}.cancel-button,.submit-button{flex:1;padding:12px 16px;border:none;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.cancel-button{background-color:#f8f9fa;color:#4a5568;border:1px solid #e2e8f0}.cancel-button:hover{background-color:#f0f0f0;transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.cancel-button:active{transform:translateY(0)}.submit-button{background:linear-gradient(135deg,#f3b705,#ffc107);color:#fff}.submit-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px #f3b7054d}.submit-button:active{transform:translateY(0)}.submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.uploader-container{padding:10px 15px;border-top:1px solid #eee;background-color:#f9f9f9;animation:slide-in .3s ease-out}@media (max-width: 768px){.uploader-container{padding:8px 10px}}.file-inputs-section{animation:slide-in .3s ease-out}.file-input-container{display:flex;align-items:center;margin-bottom:10px}@media (max-width: 768px){.file-input-container{flex-direction:column;align-items:stretch}}.file-input-label{flex-grow:1;background-color:#fff;border:1px dashed #F3B705;border-radius:8px;padding:12px 15px;font-size:.9em;color:#555;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .2s}.file-input-label:hover{background-color:#fdfaff;border-style:solid}.file-input-hidden{display:none}.file-input-actions{display:flex;flex-direction:column;gap:10px;margin-top:10px}.add-file-btn{width:100%;background-color:#f5f5f5;color:#f3b705;border:2px solid #F3B705;padding:10px 15px;border-radius:8px;cursor:pointer;font-size:.95em;font-weight:600;transition:all .2s}.add-file-btn:hover{background-color:#f0e8ff}.add-file-btn:active{transform:scale(.98)}.upload-success-icon{margin-left:10px;color:#28a745;flex-shrink:0;animation:pop-in .3s ease-out}.submit-transcripts-btn{width:100%;background-color:#f3b705;color:#fff;border:none;padding:12px 15px;border-radius:8px;margin-top:5px;cursor:pointer;font-size:1em;font-weight:600;transition:background-color .2s}.submit-transcripts-btn:hover{background-color:#d39f06}.submit-transcripts-btn:disabled{opacity:.6;cursor:not-allowed}.upload-progress-section{animation:fade-in .3s ease-out}.progress-info{margin-bottom:20px;padding:12px;background-color:#e8f4f8;border-radius:8px;border-left:4px solid #F3B705}.processing-file{margin:0;font-size:.9em;font-weight:500;color:#f3b705}.progress-stages{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.progress-stage{display:flex;align-items:center;gap:12px;padding:10px 12px;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;transition:all .3s ease}.progress-stage.active{background-color:#f0f7ff;border-color:#0077b6;box-shadow:0 2px 8px #0077b61a}.progress-stage.complete{background-color:#f0fdf4;border-color:#22c55e}.stage-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.loading-spinner{animation:spin 1.5s linear infinite;color:#0077b6}.stage-pending{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#ccc;font-size:18px;line-height:1}.stage-label{font-size:.9em;color:#555;font-weight:500;transition:color .3s ease}.progress-stage.active .stage-label{color:#0077b6;font-weight:600}.progress-stage.complete .stage-label{color:#22c55e}.progress-message{padding:12px 14px;background-color:#fff;border-left:4px solid #F3B705;border-radius:4px;animation:slide-in .4s ease-out}.progress-message p{margin:0;font-size:.85em;color:#444;line-height:1.5}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.subject-selector{padding:10px 15px;border-top:1px solid #eee;background-color:#fcfcfc;max-height:400px;overflow-y:auto}@media (max-width: 768px){.subject-selector{padding:8px 10px}}.subject-selector p{margin:0 0 10px;font-size:.9em;color:#555;font-weight:500}.no-subjects{padding:10px;background-color:#fff3cd;color:#856404;border:1px solid #ffeeba;border-radius:4px;font-size:.85em}.subject-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.subject-item{display:flex;flex-direction:column;gap:6px}.subject-chip{padding:8px 12px;font-size:.85em;font-weight:500;border-radius:6px;border:1px solid #ddd;background-color:#fff;color:#333;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left}@media (max-width: 768px){.subject-chip{font-size:.8em;padding:10px}}.subject-chip:hover{background-color:#f5f5f5;border-color:#bbb}.subject-item.selected .subject-chip{background-color:#f3b705;color:#fff;border-color:#f3b705}.rank-badge{font-size:.75em;font-weight:700;background-color:#ffffff4d;padding:2px 6px;border-radius:12px;margin-left:8px}.error-message{padding:8px;margin-bottom:10px;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;font-size:.85em}.submit-subjects-btn{width:100%;padding:10px;border:none;border-radius:5px;background-color:#28a745;color:#fff;font-size:.9em;font-weight:600;cursor:pointer;transition:background-color .2s ease}.submit-subjects-btn:hover:not(:disabled){background-color:#218838}.submit-subjects-btn:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.auth-form-container{padding:10px 15px;border-top:1px solid #eee;background-color:#f9f9f9;animation:slide-in .3s ease-out}@media (max-width: 768px){.auth-form-container{padding:8px 10px}}.auth-form-prompt{font-size:.9em;color:#555;margin-bottom:15px;text-align:center}.auth-form{display:flex;flex-direction:column;gap:10px}.form-row{display:flex;gap:10px}@media (max-width: 768px){.form-row{flex-direction:column;gap:8px}.form-row .auth-input{width:100%}}.auth-input{padding:12px 15px;border:1px solid #ccc;border-radius:8px;font-size:.9em;background-color:#fff;color:#333;transition:border-color .2s,box-shadow .2s}.auth-input:focus{outline:none;border-color:#f3b705;box-shadow:0 0 0 2px #f3b70533}.auth-input.half-width{flex-basis:50%}.auth-input.full-width{flex-basis:100%}.auth-submit-btn{width:100%;background-color:#f3b705;color:#fff;border:none;padding:12px 15px;border-radius:8px;margin-top:5px;cursor:pointer;font-size:1em;font-weight:600;transition:background-color .2s}.auth-submit-btn:hover{background-color:#f3b705}.auth-error{color:#d93025;font-size:.85em;text-align:center;margin:0}.otp-inputs-container{display:flex;justify-content:center;gap:8px;margin-top:10px}.otp-input{width:40px;height:45px;text-align:center;font-size:1.2em;border:1px solid #ccc;border-radius:8px;background-color:#fff;color:#333;transition:border-color .2s,box-shadow .2s}@media (max-width: 768px){.otp-inputs-container{gap:6px}.otp-input{width:35px;height:40px;font-size:1em}}.otp-input:focus{outline:none;border-color:#f3b705;box-shadow:0 0 0 2px #f3b70533}@keyframes slide-in{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}#root{max-width:1280px;margin:0 auto;padding:2rem}@media (max-width: 768px){#root{max-width:100%;padding:0;margin:0;width:100%;height:100dvh}}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
