:root{--chat-glass-bg:hsla(0,0%,100%,.85);--chat-glass-border:hsla(0,0%,100%,.18);--chat-glass-shadow:0 8px 32px 0 rgba(31,38,135,.37);--chat-glass-blur:blur(10px);--chat-primary:#6366f1;--chat-primary-dark:#4f46e5;--chat-primary-light:#818cf8;--chat-accent:#10b981;--chat-danger:#ef4444;--chat-warning:#f59e0b;--chat-gray-50:#f9fafb;--chat-gray-100:#f3f4f6;--chat-gray-200:#e5e7eb;--chat-gray-300:#d1d5db;--chat-gray-400:#9ca3af;--chat-gray-500:#6b7280;--chat-gray-600:#4b5563;--chat-gray-700:#374151;--chat-gray-800:#1f2937;--chat-gray-900:#111827}.dark{--chat-glass-bg:rgba(17,24,39,.85);--chat-glass-border:hsla(0,0%,100%,.08);--chat-glass-shadow:0 8px 32px 0 rgba(0,0,0,.37)}.glass-morphism{border:1px solid var(--chat-glass-border)}.course-chat,.glass-morphism{background:var(--chat-glass-bg);backdrop-filter:var(--chat-glass-blur);-webkit-backdrop-filter:var(--chat-glass-blur);box-shadow:var(--chat-glass-shadow)}.course-chat{display:flex;flex-direction:column;height:100%;max-height:520px;border-radius:16px;border:1px solid var(--chat-glass-border);overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.course-chat:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(16,185,129,.1));z-index:-1;border-radius:16px}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-slideInUp{animation:slideInUp .3s cubic-bezier(.4,0,.2,1)}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-scaleIn{animation:scaleIn .3s cubic-bezier(.4,0,.2,1)}.course-chat.floating{position:fixed!important;bottom:100px!important;right:32px!important;left:auto!important;top:auto!important;width:360px;max-height:500px;animation:slideInUp .3s ease-out;z-index:99998}.course-chat.minimized{transform:scale(0);opacity:0;pointer-events:none}.chat-header{background:linear-gradient(135deg,var(--chat-primary) 0,var(--chat-primary-dark) 100%);color:#fff;padding:12px 16px;border-radius:16px 16px 0 0;position:relative;overflow:hidden}.chat-header:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,hsla(0,0%,100%,.1) 0,transparent 70%);animation:pulse 3s ease-in-out infinite}.chat-header-content{display:flex;align-items:center;gap:16px;position:relative;z-index:1}.chat-header-icon{font-size:20px;background:hsla(0,0%,100%,.2);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.1);transition:all .3s ease}.chat-header-icon:hover{transform:scale(1.05);box-shadow:0 6px 20px rgba(0,0,0,.15)}.chat-header h3{margin:0;font-size:16px;font-weight:700;letter-spacing:-.02em}.chat-status{font-size:11px;opacity:.9;display:flex;align-items:center;gap:4px;margin-top:2px}.chat-status:before{content:"";width:8px;height:8px;background:#22c55e;border-radius:50%;display:inline-block;box-shadow:0 0 0 2px rgba(34,197,94,.3);animation:statusPulse 2s ease-in-out infinite}@keyframes statusPulse{0%{box-shadow:0 0 0 2px rgba(34,197,94,.3)}50%{box-shadow:0 0 0 4px rgba(34,197,94,.1)}to{box-shadow:0 0 0 2px rgba(34,197,94,.3)}}.chat-messages{flex:1;overflow-y:auto;padding:12px;background:linear-gradient(180deg,rgba(249,250,251,.5) 0,rgba(243,244,246,.5));scroll-behavior:smooth;position:relative}.dark .chat-messages{background:linear-gradient(180deg,rgba(17,24,39,.5) 0,rgba(31,41,55,.5))}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:4px;-webkit-transition:background .2s ease;transition:background .2s ease}.chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.dark .chat-messages::-webkit-scrollbar-track{background:hsla(0,0%,100%,.05)}.dark .chat-messages::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2)}.dark .chat-messages::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}.chat-message{display:flex;gap:12px;margin-bottom:16px;animation:messageSlide .4s cubic-bezier(.34,1.56,.64,1)}@keyframes messageSlide{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-message.user{flex-direction:row-reverse}.message-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--chat-gray-200) 0,var(--chat-gray-300) 100%);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:transform .3s ease}.message-avatar:hover{transform:scale(1.1)}.chat-message.user .message-avatar{background:linear-gradient(135deg,var(--chat-primary-light) 0,var(--chat-primary) 100%)}.message-content{max-width:75%;flex:1;min-width:0;overflow:hidden}.message-header{display:flex;align-items:center;gap:10px;margin-bottom:6px;padding:0 4px}.message-role{font-size:12px;font-weight:600;color:var(--chat-gray-700);letter-spacing:-.01em}.dark .message-role{color:var(--chat-gray-300)}.message-time{font-size:10px;color:var(--chat-gray-500);opacity:.8}.message-text{background:#fff;padding:10px 16px;border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);position:relative;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;transition:all .2s ease;border:1px solid rgba(0,0,0,.05);font-size:14px;line-height:1.4}.dark .message-text{background:var(--chat-gray-800);border-color:hsla(0,0%,100%,.05);color:var(--chat-gray-100)}.message-text:hover{box-shadow:0 4px 6px rgba(0,0,0,.07),0 2px 4px rgba(0,0,0,.04);transform:translateY(-1px)}.chat-message.user .message-text{background:linear-gradient(135deg,var(--chat-primary) 0,var(--chat-primary-dark) 100%);color:#fff;border:none}.chat-message.user .message-text:hover{box-shadow:0 4px 12px rgba(99,102,241,.3)}.message-text.streaming:after{content:"";position:absolute;bottom:4px;right:4px;width:8px;height:8px;background:var(--primary-color,#6366f1);border-radius:50%;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.cursor{animation:blink 1s infinite;color:var(--primary-color,#6366f1);font-weight:700}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.message-text h1,.message-text h2,.message-text h3{margin-top:12px;margin-bottom:6px;font-size:1.1em}.message-text p{margin:6px 0;line-height:1.4;font-size:14px}.message-text ol,.message-text ul{margin:6px 0;padding-left:20px;font-size:14px}.message-text li{margin:3px 0;line-height:1.4}.inline-code{background:rgba(0,0,0,.06);padding:2px 4px;border-radius:3px;font-family:Consolas,Monaco,monospace;font-size:.85em}.chat-message.user .inline-code{background:hsla(0,0%,100%,.2)}.code-block{margin:12px 0;border-radius:8px;overflow:hidden;background:#1e1e1e}.code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#2d2d2d;border-bottom:1px solid #3d3d3d}.code-language{font-size:12px;color:#888;text-transform:uppercase}.copy-button{background:transparent;border:none;color:#888;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.copy-button:hover{background:#3d3d3d;color:#fff}.course-link{color:var(--primary-color,#6366f1);text-decoration:none;border-bottom:1px solid transparent;transition:all .2s ease;display:inline-flex;align-items:center;gap:2px}.course-link:hover{border-bottom-color:var(--primary-color,#6366f1)}.link-icon{opacity:.7;transition:transform .2s ease}.course-link:hover .link-icon{transform:translate(2px,-2px)}.external-link{color:var(--primary-color,#6366f1);text-decoration:underline}.typing-indicator{display:flex;align-items:center;gap:4px;padding:10px 16px;margin-left:44px;background:hsla(0,0%,100%,.8);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);width:-moz-fit-content;width:fit-content;animation:fadeIn .3s ease-out}.dark .typing-indicator{background:rgba(31,41,55,.8)}.typing-dot{width:8px;height:8px;background:linear-gradient(135deg,var(--chat-primary) 0,var(--chat-primary-light) 100%);border-radius:50%;animation:typing 1.4s ease-in-out infinite;box-shadow:0 2px 4px rgba(99,102,241,.3)}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0) scale(1);opacity:.7}30%{transform:translateY(-12px) scale(1.2);opacity:1}}.loading-spinner{display:inline-block;width:20px;height:20px;border-radius:50%;border:3px solid rgba(99,102,241,.2);border-top:3px solid var(--chat-primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-skeleton{background:linear-gradient(90deg,rgba(0,0,0,.05) 25%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 75%);background-size:200% 100%;animation:skeleton 1.5s ease-in-out infinite;border-radius:8px}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.chat-quick-actions{display:flex;gap:6px;padding:8px;background:linear-gradient(90deg,rgba(249,250,251,.8) 0,rgba(243,244,246,.8));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--chat-glass-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;position:relative;flex-wrap:nowrap;align-items:center;justify-content:flex-start}.dark .chat-quick-actions{background:linear-gradient(90deg,rgba(31,41,55,.8) 0,rgba(17,24,39,.8))}.chat-quick-actions:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(99,102,241,.3),transparent);animation:shimmer 4s ease-in-out infinite}.chat-quick-actions::-webkit-scrollbar{height:6px}.chat-quick-actions::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:3px}.chat-quick-actions::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:3px}.quick-action-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:2px solid rgba(99,102,241,.2);background:hsla(0,0%,100%,.8);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:18px;font-size:11px;font-weight:500;color:var(--chat-gray-700);cursor:pointer;white-space:nowrap;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;flex-shrink:0;max-width:120px}.dark .quick-action-btn{background:rgba(31,41,55,.8);color:var(--chat-gray-200);border-color:rgba(99,102,241,.3)}.quick-action-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(99,102,241,.3) 0,transparent 70%);transform:translate(-50%,-50%);transition:width .6s,height .6s}.quick-action-btn:hover:not(:disabled){background:var(--chat-primary);color:#fff;border-color:var(--chat-primary);transform:translateY(-2px);box-shadow:0 4px 16px rgba(99,102,241,.3)}.quick-action-btn:hover:not(:disabled):before{width:200px;height:200px}.quick-action-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px rgba(99,102,241,.3)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.quick-action-icon{font-size:12px;transition:transform .3s ease;flex-shrink:0}.quick-action-btn span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-input-container{display:flex;gap:10px;padding:12px 16px;background:var(--chat-glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--chat-glass-border);align-items:flex-end;position:relative}.chat-input-container:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(99,102,241,.5),transparent);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.chat-input{flex:1;border:2px solid rgba(0,0,0,.1);border-radius:20px;padding:8px 16px;font-size:13px;resize:none;outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);max-height:100px;line-height:1.4;background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dark .chat-input{background:rgba(31,41,55,.9);border-color:hsla(0,0%,100%,.1);color:#fff}.chat-input:focus{border-color:var(--chat-primary);box-shadow:0 0 0 4px rgba(99,102,241,.1);transform:translateY(-1px)}.chat-input:disabled{background:rgba(0,0,0,.05);cursor:not-allowed;opacity:.6}.chat-send-btn{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--chat-primary) 0,var(--chat-primary-dark) 100%);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0;box-shadow:0 4px 12px rgba(99,102,241,.3);position:relative;overflow:hidden}.chat-send-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:hsla(0,0%,100%,.3);transform:translate(-50%,-50%);transition:width .6s,height .6s}.chat-send-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 6px 20px rgba(99,102,241,.4)}.chat-send-btn:hover:not(:disabled):before{width:100px;height:100px}.chat-send-btn:active:not(:disabled){transform:scale(.95)}.chat-send-btn:disabled{background:linear-gradient(135deg,var(--chat-gray-300) 0,var(--chat-gray-400) 100%);cursor:not-allowed;box-shadow:none}@media (prefers-color-scheme:dark){.course-chat{--chat-bg:#1f2937;--chat-messages-bg:#111827;--message-bg:#374151;--user-message-bg:#6366f1;--avatar-bg:#374151;--user-avatar-bg:#4c1d95;--text-primary:#f3f4f6;--text-secondary:#d1d5db;--text-muted:#9ca3af;--border-color:#374151;--quick-actions-bg:#1f2937}.chat-input-container{background:#1f2937}.quick-action-btn{background:#374151;color:#f3f4f6}.inline-code{background:hsla(0,0%,100%,.1)}.code-block{background:#0d1117;border:1px solid hsla(0,0%,100%,.1)}.code-header{background:#161b22;border-bottom-color:#30363d}.chat-header{background:linear-gradient(135deg,#4f46e5,#3730a3)}.message-text{box-shadow:0 1px 3px rgba(0,0,0,.3)}.chat-quick-actions{box-shadow:0 -1px 0 hsla(0,0%,100%,.1)}.floating-chat-button{background:linear-gradient(135deg,#6366f1,#4f46e5);box-shadow:0 4px 20px rgba(99,102,241,.4)}.chat-overlay{background:rgba(0,0,0,.7)}.chat-status:before{box-shadow:0 0 0 2px rgba(34,197,94,.5)}}.floating-chat-button{position:fixed!important;bottom:32px!important;right:32px!important;left:auto!important;top:auto!important;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 20px rgba(99,102,241,.4),0 2px 8px rgba(0,0,0,.1);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:99999;display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden;transform:translateZ(0);backface-visibility:hidden}.floating-chat-button:before{content:"";position:absolute;width:100%;height:100%;background:radial-gradient(circle at center,hsla(0,0%,100%,.3) 0,transparent 70%);animation:floatingPulse 2s ease-in-out infinite}.floating-chat-button:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg,var(--chat-primary-light),var(--chat-primary-dark));border-radius:50%;z-index:-1;opacity:0;transition:opacity .3s ease}@keyframes floatingPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:.4}}.floating-chat-button:hover{transform:scale(1.1);box-shadow:0 6px 30px rgba(99,102,241,.4)}.floating-chat-button:hover:after{opacity:1}.floating-chat-button:active{transform:scale(.95)}.floating-chat-button-icon{position:relative;z-index:1;transition:transform .3s ease}.floating-chat-button.open .floating-chat-button-icon{transform:rotate(45deg)}.floating-chat-badge{position:absolute;top:-4px;right:-4px;min-width:24px;height:24px;padding:0 6px;background:var(--chat-danger);color:#fff;border-radius:12px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(239,68,68,.4);animation:badgeBounce .5s ease-out}@keyframes badgeBounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.chat-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;opacity:0;pointer-events:none;transition:opacity .3s ease}.chat-overlay.visible{opacity:1;pointer-events:auto}@media (max-width:768px){.course-chat{max-height:100vh;height:100vh;border-radius:0}.course-chat.floating{width:100%;max-width:100%;bottom:0;right:0;left:0}.chat-header,.course-chat.floating{border-radius:20px 20px 0 0}.message-content{max-width:85%}.chat-messages{padding:16px}.chat-quick-actions{padding:6px 8px}.quick-action-btn{font-size:10px;padding:5px 8px;max-width:100px}.quick-action-icon{font-size:12px}.chat-input-container{padding:12px 16px}.floating-chat-button{width:56px;height:56px;bottom:16px!important;right:16px!important;left:auto!important;font-size:24px}}