@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Inter:wght@400;500;600&display=swap";
:root{--background:#faf8f5;--sidebar-bg:#f5f0e6;--sidebar-border:#e6dfd3;--chat-bg:#fff;--primary:#8c7355;--primary-gradient:linear-gradient(135deg, #a68b6a 0%, #8c7355 100%);--text-main:#3e3328;--text-muted:#8c8275;--user-msg:#f0ebd8;--craig-msg:#fff}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-main);background-color:var(--chat-bg);background-image:radial-gradient(at 0 0,#100f1508 0,#0000 50%),radial-gradient(at 50% 0,#2f3e6a08 0,#0000 50%),radial-gradient(at 100% 0,#72274108 0,#0000 50%);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}h1,h2,h3,h4,h5,h6{font-family:Outfit,sans-serif}.app-container{width:100vw;height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);-webkit-backdrop-filter:blur(12px);border-right:1px solid var(--sidebar-border);z-index:10;flex-direction:column;width:320px;display:flex;box-shadow:4px 0 24px #00000005}.sidebar-header{border-bottom:1px solid var(--sidebar-border);padding:24px 20px}.new-chat-btn{width:100%;color:var(--primary);cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#a68b6a33 0%,#8c735533 100%);border:1px solid #8c73551a;border-radius:12px;padding:12px;font-family:Outfit,sans-serif;font-size:15px;font-weight:600;transition:all .2s}.new-chat-btn:hover{background:linear-gradient(135deg,#a68b6a4d 0%,#8c73554d 100%);transform:translateY(-1px)}.sidebar-section{flex-direction:column;display:flex}.section-header{cursor:pointer;width:100%;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 12px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;transition:all .2s;display:flex}.section-header:hover{color:var(--primary)}.sidebar-content{flex:1;padding:20px;overflow-y:auto}.sidebar-help{color:var(--text-muted);margin-bottom:16px;font-size:13px;line-height:1.5}.prompt-pill{text-align:left;cursor:pointer;width:100%;color:var(--text-main);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff9;border:1px solid #e2e8f0cc;border-radius:12px;margin-bottom:10px;padding:14px 16px;font-size:14px;line-height:1.5;transition:all .2s;display:block}.prompt-pill:hover{border-color:var(--primary);background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #6366f114}.history-item,.favorite-item{cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:12px 14px;transition:all .2s;display:flex}.history-item:hover,.favorite-item:hover{background:#fff9}.history-item.active{background:#fffc;font-weight:600}.history-title{white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:14px;font-weight:500;overflow:hidden}.favorite-content{-webkit-line-clamp:3;color:var(--text-muted);-webkit-box-orient:vertical;font-size:13px;font-style:italic;display:-webkit-box;overflow:hidden}.delete-btn{color:#ef4444;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;padding:6px;transition:all .2s}.history-item:hover .delete-btn,.favorite-item:hover .delete-btn{opacity:.6}.delete-btn:hover{background:#fee2e2;opacity:1!important}.sidebar-footer{border-top:1px solid var(--sidebar-border);background:#fff6;padding:20px}.logout-btn{border:1px solid var(--sidebar-border);cursor:pointer;width:100%;color:var(--text-muted);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px;font-family:Outfit,sans-serif;font-weight:500;transition:all .2s;display:flex}.logout-btn:hover{color:#ef4444;background:#fee2e2;border-color:#fca5a5}.main-chat-area{flex-direction:column;flex:1;display:flex;position:relative}.chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:28px;padding:32px 24px;display:flex;overflow-y:auto}.message-wrapper{gap:16px;width:100%;max-width:860px;margin:0 auto;animation:.3s ease-out forwards fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-wrapper.user{flex-direction:row-reverse}.message-avatar{border:1px solid var(--sidebar-border);background:#fff;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden;box-shadow:0 4px 12px #0000000f}.message-avatar.user-avatar{background:var(--primary-gradient);color:#fff;border:none;font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.message-avatar.craig-avatar{color:var(--primary);background:#fff}.message-content{max-width:85%;font-size:15px;line-height:1.7;position:relative}.message-wrapper:not(.user) .message-content{background:var(--craig-msg);border:1px solid var(--sidebar-border);border-radius:4px 20px 20px;padding:18px 24px;box-shadow:0 4px 16px #00000005}.message-content.user-layout{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.user-text-bubble{background:var(--user-msg);border:1px solid #fffc;border-radius:20px 4px 20px 20px;padding:18px 24px;box-shadow:0 4px 12px #00000008}.save-fav-btn{border:1px solid var(--sidebar-border);cursor:pointer;color:#fbbf24;opacity:0;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s cubic-bezier(.175,.885,.32,1.275);display:flex;position:absolute;top:-12px;right:-12px;transform:scale(.9);box-shadow:0 4px 12px #00000014}.message-wrapper.assistant:hover .save-fav-btn{opacity:1;transform:scale(1)}.save-fav-btn:hover{background:#fef3c7;border-color:#fde68a}.action-btn{color:#a3a3a3;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.action-btn:hover{color:#6366f1;background-color:#6366f11a}.message-wrapper.assistant:hover .message-actions-container{opacity:1!important}.chat-input-wrapper{background:linear-gradient(to top, var(--chat-bg) 60%, transparent);width:100%;max-width:860px;margin:0 auto;padding:24px}.chat-form{-webkit-backdrop-filter:blur(12px);border:1px solid var(--sidebar-border);background:#fffc;border-radius:24px;gap:12px;padding:10px;transition:box-shadow .3s;display:flex;box-shadow:0 8px 32px #0000000d}.chat-form:focus-within{border-color:#6366f14d;box-shadow:0 8px 32px #6366f126}.chat-input{color:var(--text-main);background:0 0;border:none;outline:none;flex:1;padding:12px 20px;font-family:Inter,sans-serif;font-size:15px}.chat-input::placeholder{color:#94a3b8}.chat-submit{background:var(--primary-gradient);color:#fff;letter-spacing:.5px;cursor:pointer;border:none;border-radius:16px;padding:0 28px;font-family:Outfit,sans-serif;font-size:15px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #6366f133}.chat-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #6366f14d}.chat-submit:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;margin-top:8vh;animation:.4s ease-out fadeIn;display:flex}.empty-state-logo{background:var(--primary-gradient);color:#fff;border-radius:24px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:24px;font-family:Outfit,sans-serif;font-size:32px;font-weight:700;display:flex;transform:rotate(-5deg);box-shadow:0 8px 24px #6366f140}.empty-state h2{color:#1e293b;letter-spacing:-.5px;margin-bottom:8px;font-size:28px}.empty-state p{color:#64748b;margin-bottom:40px;font-size:16px}.empty-prompts-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;width:100%;max-width:700px;display:grid}.empty-prompt-card{cursor:pointer;text-align:left;color:#334155;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb3;border:1px solid #e2e8f0cc;border-radius:16px;align-items:center;gap:12px;padding:16px 20px;font-family:Inter,sans-serif;font-size:14px;transition:all .2s;display:flex}.empty-prompt-card:hover{border-color:var(--primary);background:#fff;transform:translateY(-2px);box-shadow:0 8px 24px #0000000a}.empty-prompt-card .prompt-icon{color:var(--primary);opacity:.8}.chat-stop{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:16px;justify-content:center;align-items:center;padding:0 24px;transition:all .2s;display:flex}.chat-stop:hover{color:#ef4444;background:#fee2e2}.chat-footer-text{text-align:center;color:#94a3b8;margin-top:12px;font-size:12px}.markdown-prose{line-height:1.6}.markdown-prose p{margin-bottom:12px}.markdown-prose p:last-child{margin-bottom:0}.markdown-prose ul,.markdown-prose ol{margin-bottom:12px;padding-left:24px}.markdown-prose li{margin-bottom:6px}.markdown-prose strong{color:#0f172a;font-weight:600}.markdown-prose .inline-code{color:#db2777;background:#0000000d;border-radius:4px;padding:2px 6px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9em}.markdown-prose h1,.markdown-prose h2,.markdown-prose h3{color:#1e293b;margin-top:24px;margin-bottom:12px}.markdown-prose h3{font-size:1.1em}.thinking-bubble{align-items:center;gap:4px;display:flex;padding:18px 24px!important}.dot{background-color:var(--primary);opacity:.6;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both bounce}.dot:first-child{animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-attach{cursor:pointer;color:#64748b;background:0 0;border:none;justify-content:center;align-items:center;padding:0 12px;transition:all .2s;display:flex}.chat-attach:hover:not(:disabled){color:var(--primary);transform:translateY(-1px)}.chat-attach:disabled{opacity:.5;cursor:not-allowed}.chat-input{resize:none;min-height:48px;max-height:150px;padding:14px 20px;line-height:1.5}.homework-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;opacity:0;pointer-events:none;background:#0006;width:100vw;height:100vh;transition:opacity .3s;position:fixed;top:0;left:0}.homework-overlay.open{opacity:1;pointer-events:all}.homework-panel{z-index:50;background:#fff;flex-direction:column;width:400px;max-width:100vw;height:100vh;transition:right .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:-400px;box-shadow:-5px 0 25px #0000001a}.homework-panel.open{right:0}.homework-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:24px;display:flex}.homework-header h2{color:var(--primary);margin:0;font-family:Outfit,sans-serif;font-size:20px;font-weight:600}.close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.close-btn:hover{background:var(--border);color:var(--primary)}.homework-content{flex:1;padding:24px;overflow-y:auto}.empty-homework{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:15px}.task-list{flex-direction:column;gap:12px;display:flex}.task-item{border:1px solid var(--border);background:#fff;border-radius:12px;align-items:flex-start;gap:12px;padding:16px;transition:all .2s;display:flex}.task-item:hover{border-color:#e2d9d0;box-shadow:0 4px 12px #00000008}.task-item.completed{opacity:.6;background:var(--bg)}.task-item.completed .task-text{color:var(--text-muted);text-decoration:line-through}.task-check{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;margin-top:2px;padding:0}.task-check:hover{color:var(--primary)}.completed-icon{color:#10b981}.task-text{color:var(--text);flex:1;font-size:15px;line-height:1.4}.task-delete{cursor:pointer;color:var(--border);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px;transition:all .2s}.task-item:hover .task-delete{color:var(--text-muted)}.task-delete:hover{background:#fee2e2;color:#ef4444!important}.loading-text{color:var(--text-muted);text-align:center}.profile-modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background-color:#1e293b66;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.profile-modal{border:1px solid var(--sidebar-border);background:#fff;border-radius:16px;width:100%;max-width:500px;padding:32px 40px;position:relative;box-shadow:0 12px 32px #0000001a}.close-modal-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex;position:absolute;top:16px;right:16px}.close-modal-btn:hover{color:var(--text-main);background-color:#f1f5f9}.profile-card-header h1{color:var(--text-main);margin:0;font-family:Outfit,sans-serif;font-size:24px;font-weight:600}.profile-card-header p{color:var(--text-muted);margin:8px 0 24px;font-size:15px}.profile-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-main);font-size:14px;font-weight:500}.profile-input{border:1px solid var(--sidebar-border);background-color:#faf8f5;border-radius:8px;padding:12px 16px;font-family:Inter,sans-serif;font-size:15px;transition:all .2s}.profile-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #8c73551a}.form-hint{color:var(--text-muted);font-size:12px}.form-actions{justify-content:flex-end;margin-top:16px;display:flex}.save-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;padding:12px 24px;font-size:15px;font-weight:500;transition:all .2s;display:flex}.save-btn:hover:not(:disabled){background:#735e45}.save-btn:disabled{opacity:.6;cursor:not-allowed}.profile-message{border-radius:8px;margin-bottom:24px;padding:12px 16px;font-size:14px;font-weight:500}.profile-message.success{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.profile-message.error{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.file-attachment-card{background-color:#faf8f5;border:1px solid #eae2d6;border-radius:12px;align-items:center;gap:12px;max-width:300px;margin-top:12px;padding:12px 16px;transition:all .2s;display:flex;box-shadow:0 2px 8px #00000005}.file-attachment-card:hover{border-color:var(--primary);background-color:#fff;box-shadow:0 4px 12px #6366f10d}.file-attachment-icon{color:#8c7355;background-color:#f1ebd9;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.file-attachment-info{flex-direction:column;gap:2px;display:flex;overflow:hidden}.file-attachment-name{color:#3e3328;white-space:nowrap;text-overflow:ellipsis;font-family:Inter,sans-serif;font-size:14px;font-weight:500;overflow:hidden}.file-attachment-type{color:#8c7355;font-family:Inter,sans-serif;font-size:12px}.file-attachment-card.top-attachment{background-color:#ffffffe6;border-radius:20px 20px 4px;margin-top:0}.admin-layout{background-color:var(--background);justify-content:center;align-items:flex-start;height:100vh;padding:40px;display:flex;overflow-y:auto}.admin-container{width:100%;max-width:800px}.admin-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.admin-title h1{color:var(--text-main);margin-bottom:4px;font-size:28px}.admin-title p{color:var(--text-muted);font-size:15px}.btn-secondary{border:1px solid var(--sidebar-border);color:var(--text-main);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s}.btn-secondary:hover{background:var(--sidebar-bg)}.admin-upload-zone{border:1px dashed var(--sidebar-border);text-align:center;background:#fff;border-radius:16px;margin-bottom:32px;padding:40px;transition:all .2s;position:relative;box-shadow:0 4px 12px #00000005}.admin-upload-zone:hover{border-color:var(--primary);background:#fafafa}.admin-upload-input{opacity:0;cursor:pointer;z-index:10;width:100%;height:100%;position:absolute;inset:0}.upload-icon-wrapper{background:var(--sidebar-bg);width:64px;height:64px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.admin-upload-zone h3{color:var(--text-main);margin-bottom:8px;font-size:18px}.admin-upload-zone p{color:var(--text-muted);font-size:14px}.admin-card{border:1px solid var(--sidebar-border);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 12px #00000005}.admin-card-header{background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);padding:16px 24px}.admin-card-header h3{color:var(--text-main);margin:0;font-size:16px}.admin-empty{text-align:center;color:var(--text-muted);padding:48px}.admin-empty-icon{color:var(--sidebar-border);justify-content:center;margin:0 auto 16px;display:flex}.doc-list{margin:0;padding:0;list-style:none}.doc-item{border-bottom:1px solid var(--sidebar-border);justify-content:space-between;align-items:center;padding:16px 24px;transition:background .2s;display:flex}.doc-item:last-child{border-bottom:none}.doc-item:hover{background:var(--sidebar-bg)}.doc-info{align-items:center;gap:16px;display:flex}.doc-icon{background:var(--sidebar-bg);width:40px;height:40px;color:var(--primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-title{color:var(--text-main);margin-bottom:4px;font-size:15px;font-weight:500}.doc-meta{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.doc-tag{background:var(--background);border-radius:12px;padding:2px 8px;font-size:11px;font-weight:500}.btn-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.btn-icon:hover{color:#ef4444;background:#fee2e2}.admin-loading{background:var(--background);justify-content:center;align-items:center;height:100vh;display:flex}.admin-error{background:var(--background);text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:40px;display:flex}.admin-error h2{color:var(--text-main);margin-top:16px;margin-bottom:8px}.admin-error p{color:var(--text-muted);margin-bottom:24px}.btn-primary{background:var(--primary-gradient);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:opacity .2s}.btn-primary:hover{opacity:.9}
