:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#000;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#000;overflow:hidden;position:fixed;inset:0}.header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e5e5e5;background:#fff;position:relative;flex-shrink:0}.header-right{display:flex;align-items:center;gap:1rem}.new-chat-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:#fff;color:#000;border:1px solid #e5e5e5;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}.new-chat-btn:hover{border-color:#000;background:#fafafa}.new-chat-btn svg{flex-shrink:0}.scroll-area{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:#fafafa;-webkit-overflow-scrolling:touch}.logo-container{display:flex;align-items:center}.logo{font-size:1.75rem;font-weight:600;letter-spacing:-.5px;color:#000;margin:0}.logo-image{height:4rem;width:auto;max-width:320px;object-fit:contain}.infinity{color:#000;font-weight:400;display:inline-block;margin:0 1px}.semester-selector{display:flex;align-items:center;gap:.75rem}.semester-selector label{font-size:.875rem;color:#666;font-weight:500}.semester-input{padding:.5rem .75rem;border:1px solid #e5e5e5;border-radius:6px;font-size:.875rem;background:#fff;color:#000;font-family:inherit;transition:border-color .2s;min-width:120px}.semester-input:focus{outline:none;border-color:#000}.messages{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.messages::-webkit-scrollbar{width:8px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:4px}.messages::-webkit-scrollbar-thumb:hover{background:#b0b0b0}.message{display:flex;max-width:75%;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;margin-left:auto}.message.assistant{align-self:flex-start}.message-content{padding:1rem 1.25rem;border-radius:18px;line-height:1.6;font-size:.9375rem}.message.user .message-content{background:#000;color:#fff;border-bottom-right-radius:4px}.message.assistant .message-content{background:#fff;color:#000;border:1px solid #e5e5e5;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000000a}.message-content p{margin:0;margin-bottom:.5rem}.message-content p:last-child{margin-bottom:0}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin:.75rem 0 .5rem;font-weight:600;line-height:1.4}.message-content h1:first-child,.message-content h2:first-child,.message-content h3:first-child,.message-content h4:first-child,.message-content h5:first-child,.message-content h6:first-child{margin-top:0}.message-content h1{font-size:1.5rem}.message-content h2{font-size:1.25rem}.message-content h3{font-size:1.125rem}.message-content ul,.message-content ol{margin:.5rem 0;padding-left:1.5rem}.message-content li{margin:.25rem 0;line-height:1.6}.message-content ul ul,.message-content ol ol,.message-content ul ol,.message-content ol ul{margin:.25rem 0}.message-content strong{font-weight:600}.message-content em{font-style:italic}.message-content code{background:#0000000d;padding:.125rem .375rem;border-radius:4px;font-size:.875em;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.message.user .message-content code{background:#fff3}.message-content pre{background:#0000000d;padding:.75rem;border-radius:6px;overflow-x:auto;margin:.5rem 0}.message.user .message-content pre{background:#ffffff26}.message-content pre code{background:none;padding:0}.message-content blockquote{border-left:3px solid rgba(0,0,0,.2);padding-left:1rem;margin:.5rem 0;font-style:italic}.message.user .message-content blockquote{border-left-color:#ffffff4d}.message-content hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:1rem 0}.message.user .message-content hr{border-top-color:#fff3}.message-content a{color:inherit;text-decoration:underline;text-decoration-color:#0000004d;text-underline-offset:2px}.message.user .message-content a{text-decoration-color:#ffffff80}.message-content a:hover{text-decoration-color:#0009}.message.user .message-content a:hover{text-decoration-color:#fffc}.course-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #f0f0f0}.course-button{padding:.625rem 1.25rem;background:#000;color:#fff;border:none;border-radius:20px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit;letter-spacing:.3px}.course-button:hover:not(:disabled){background:#333;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.course-button:active:not(:disabled){transform:translateY(0)}.course-button:disabled{opacity:.5;cursor:not-allowed}.input-form{display:flex;gap:.75rem;padding:1.5rem 2rem;border-top:1px solid #e5e5e5;background:#fff;flex-shrink:0}.action-bar{display:flex;gap:.75rem;padding:.75rem 2rem;border-top:1px solid #e5e5e5;background:#fff;flex-shrink:0;flex-wrap:wrap}.action-button{padding:.6rem 1rem;border-radius:999px;border:1px solid #000000;background:#fff;color:#000;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.action-button:hover:not(:disabled){background:#000;color:#fff;transform:translateY(-1px)}.action-button:disabled{opacity:.5;cursor:not-allowed}.message-input{flex:1;padding:.875rem 1.25rem;border:1px solid #e5e5e5;border-radius:24px;font-size:.9375rem;font-family:inherit;background:#fafafa;color:#000;transition:all .2s}.message-input:focus{outline:none;border-color:#000;background:#fff}.message-input:disabled{opacity:.6;cursor:not-allowed}.send-button{padding:.875rem 2rem;background:#000;color:#fff;border:none;border-radius:24px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap}.send-button:hover:not(:disabled){background:#333;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.send-button:active:not(:disabled){transform:translateY(0)}.send-button:disabled{opacity:.5;cursor:not-allowed}.typing-indicator{display:flex;gap:4px;padding:.5rem 0}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:#666;animation:typing 1.4s infinite}.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:.7}30%{transform:translateY(-10px);opacity:1}}.footer{padding:1rem 2rem;border-top:1px solid #e5e5e5;background:#fff;text-align:center;flex-shrink:0}.demo-notice{margin:0;font-size:.75rem;color:#666;font-weight:400;letter-spacing:.3px}@media(max-width:768px){.header{padding:.75rem 1rem;flex-direction:row;gap:.5rem;align-items:center;flex-wrap:wrap}.header-right{gap:.5rem}.new-chat-btn{padding:.4rem .6rem;font-size:.75rem}.logo-container{flex:1;min-width:0}.logo-image{height:1.25rem;max-width:90px}.semester-selector{flex-shrink:0;gap:.5rem}.semester-selector label{font-size:.75rem}.semester-input{padding:.4rem .6rem;font-size:.75rem;min-width:100px}.messages{padding:1rem;gap:1rem}.message{max-width:85%}.action-bar{padding:.6rem 1rem;gap:.5rem}.action-button{padding:.5rem .85rem;font-size:.8rem}.input-form{padding:1rem}.footer{padding:.75rem 1rem}.demo-notice{font-size:.7rem}}
