@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@300;400;500;600;700;800&display=swap";
:root{--primary-50:#eef2ff;--primary-100:#e0e7ff;--primary-200:#c7d2fe;--primary-300:#a5b4fc;--primary-400:#818cf8;--primary-500:#6366f1;--primary-600:#4f46e5;--primary-700:#4338ca;--primary-800:#3730a3;--primary-900:#312e81;--accent-green:#22c55e;--accent-blue:#3b82f6;--accent-red:#ef4444;--accent-orange:#f97316;--accent-purple:#a855f7;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--font-family:"Noto Sans Thai", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--z-header:100;--z-sidebar:200;--z-overlay:300;--z-modal:400;--sidebar-width:380px;--header-height:60px;--input-height:64px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--msg-own-bg:linear-gradient(135deg, #6366f1, #4f46e5);--msg-own-text:#fff}:root,[data-theme=dark]{--bg-primary:#0a0a0f;--bg-secondary:#111118;--bg-tertiary:#1a1a24;--bg-elevated:#22222e;--bg-hover:#2a2a38;--bg-active:#32324a;--surface-card:#191928cc;--surface-glass:#ffffff08;--surface-glass-border:#ffffff0f;--text-primary:#f0f0f5;--text-secondary:#9d9db5;--text-tertiary:#6b6b80;--text-inverse:#0a0a0f;--msg-other-bg:#22222e;--msg-other-text:#f0f0f5;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff26;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 30px #00000080;--shadow-glow:0 0 20px #6366f126;--signin-btn-bg:#fff;--signin-btn-text:#1f1f1f;--own-msg-time-color:#ffffff80;--signin-gradient-1:#6366f114;--signin-gradient-2:#a855f70f;--signin-gradient-3:#3b82f60a}[data-theme=light]{--bg-primary:#f5f5fa;--bg-secondary:#fff;--bg-tertiary:#eeeef4;--bg-elevated:#fff;--bg-hover:#6366f10f;--bg-active:#6366f11f;--surface-card:#fffffff2;--surface-glass:#ffffffb3;--surface-glass-border:#00000014;--text-primary:#1a1a2e;--text-secondary:#4a4a66;--text-tertiary:#8888a4;--text-inverse:#fff;--msg-other-bg:#e8e8f0;--msg-other-text:#1a1a2e;--border-subtle:#0000000f;--border-default:#0000001a;--border-strong:#0000002e;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 30px #0000001a;--shadow-glow:0 0 20px #6366f114;--signin-btn-bg:#1a1a2e;--signin-btn-text:#fff;--own-msg-time-color:#6366f180;--signin-gradient-1:#6366f10f;--signin-gradient-2:#a855f70d;--signin-gradient-3:#3b82f60a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100vw;height:100dvh;line-height:1.5;overflow:hidden}#__next{height:100%}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea{color:inherit;background:0 0;border:none;outline:none;font-family:inherit}ul,ol{list-style:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes messagePop{0%{opacity:0;transform:scale(.8)translateY(10px)}60%{transform:scale(1.02)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes sendPulse{0%{transform:scale(1)}50%{transform:scale(.9)}to{transform:scale(1)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.signin-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.signin-page:before{content:"";background:radial-gradient(circle at 30% 40%, var(--signin-gradient-1) 0%, transparent 50%), radial-gradient(circle at 70% 60%, var(--signin-gradient-2) 0%, transparent 50%), radial-gradient(circle at 50% 50%, var(--signin-gradient-3) 0%, transparent 50%);background-size:200% 200%;width:200%;height:200%;animation:15s infinite gradientShift;position:absolute;top:-50%;left:-50%}.signin-card{z-index:1;background:var(--surface-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--surface-glass-border);border-radius:var(--radius-xl);padding:var(--space-3xl) var(--space-2xl);width:100%;max-width:420px;margin:var(--space-lg);text-align:center;animation:scaleIn .5s var(--transition-spring);box-shadow:var(--shadow-lg), var(--shadow-glow);position:relative}.signin-logo{margin-bottom:var(--space-lg);font-size:3rem;animation:3s ease-in-out infinite float}.signin-title{font-size:var(--font-size-2xl);background:linear-gradient(135deg, var(--text-primary), var(--primary-400));-webkit-text-fill-color:transparent;margin-bottom:var(--space-sm);-webkit-background-clip:text;background-clip:text;font-weight:800}.signin-subtitle{font-size:var(--font-size-base);color:var(--text-secondary);margin-bottom:var(--space-2xl)}.signin-btn{justify-content:center;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-xl);background:var(--signin-btn-bg);color:var(--signin-btn-text);border-radius:var(--radius-md);font-size:var(--font-size-md);transition:all var(--transition-base);box-shadow:var(--shadow-md);font-weight:600;display:flex}.signin-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.signin-btn:active{transform:translateY(0)}.signin-btn svg{width:20px;height:20px}.signin-domain{margin-top:var(--space-xl);font-size:var(--font-size-xs);color:var(--text-tertiary)}.app-shell{width:100%;height:100dvh;display:flex;overflow:hidden}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-subtle);width:100%;height:100dvh;z-index:var(--z-sidebar);flex-direction:column;display:flex;position:relative}.sidebar-header{padding:var(--space-lg) var(--space-lg) var(--space-md);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar-title{font-size:var(--font-size-xl);background:linear-gradient(135deg, var(--text-primary), var(--primary-400));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.sidebar-avatar-btn{border-radius:var(--radius-full);border:2px solid var(--border-default);width:36px;height:36px;transition:border-color var(--transition-fast);overflow:hidden}.sidebar-avatar-btn:hover{border-color:var(--primary-400)}.sidebar-avatar-btn img{object-fit:cover;width:100%;height:100%}.search-container{padding:0 var(--space-lg) var(--space-md);flex-shrink:0}.search-box{align-items:center;gap:var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);transition:all var(--transition-fast);display:flex}.search-box:focus-within{border-color:var(--primary-500);box-shadow:0 0 0 3px #6366f11a}.search-icon{color:var(--text-tertiary);flex-shrink:0;width:18px;height:18px}.search-input{font-size:var(--font-size-base);color:var(--text-primary);padding:var(--space-xs) 0;background:0 0;flex:1}.search-input::placeholder{color:var(--text-tertiary)}.search-clear{border-radius:var(--radius-full);width:20px;height:20px;color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.search-clear:hover{background:var(--bg-hover);color:var(--text-primary)}.project-list{padding:0 var(--space-sm);flex:1;overflow-y:auto}.project-list-empty{padding:var(--space-3xl) var(--space-xl);color:var(--text-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.project-list-empty-icon{margin-bottom:var(--space-md);opacity:.5;font-size:2.5rem}.project-list-empty-text{font-size:var(--font-size-base)}.project-card{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);animation:.3s fadeIn;display:flex;position:relative}.project-card:hover{background:var(--bg-hover)}.project-card.active{background:var(--bg-active)}.project-card-avatar{border-radius:var(--radius-md);width:48px;height:48px;font-size:var(--font-size-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex;position:relative}.project-card-info{flex:1;min-width:0}.project-card-header{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:2px;display:flex}.project-card-name{font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.project-card-time{font-size:var(--font-size-xs);color:var(--text-tertiary);flex-shrink:0}.project-card-preview{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.project-card-message{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.project-card-number{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:2px}.unread-badge{background:var(--primary-500);color:#fff;border-radius:var(--radius-full);min-width:20px;height:20px;animation:scaleIn .3s var(--transition-spring);flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;font-size:.6875rem;font-weight:700;display:flex}.chat-area{background:var(--bg-primary);flex-direction:column;flex:1;height:100dvh;display:flex;position:relative}.chat-empty{height:100%;color:var(--text-tertiary);text-align:center;padding:var(--space-xl);flex-direction:column;justify-content:center;align-items:center;display:flex}.chat-empty-icon{margin-bottom:var(--space-lg);opacity:.3;font-size:4rem}.chat-empty-title{font-size:var(--font-size-xl);color:var(--text-secondary);margin-bottom:var(--space-sm);font-weight:600}.chat-empty-text{font-size:var(--font-size-base);max-width:280px}.chat-header{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:var(--z-header);flex-shrink:0;display:flex}.chat-back-btn{border-radius:var(--radius-full);width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.chat-back-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.chat-header-info{flex:1;min-width:0}.chat-header-name{font-size:var(--font-size-md);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.chat-header-subtitle{font-size:var(--font-size-xs);color:var(--text-tertiary)}.messages-container{padding:var(--space-lg);gap:var(--space-xs);flex-direction:column;flex:1;display:flex;overflow-y:auto}.messages-date-divider{padding:var(--space-md) 0;justify-content:center;align-items:center;display:flex}.messages-date-divider span{font-size:var(--font-size-xs);color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full)}.message-row{gap:var(--space-sm);max-width:80%;animation:.3s messagePop;display:flex}.message-row.own{flex-direction:row-reverse;align-self:flex-end}.message-row.other{align-self:flex-start}.message-avatar-container{flex-shrink:0;align-self:flex-end;width:28px}.message-avatar{border-radius:var(--radius-full);width:28px;height:28px;font-size:var(--font-size-xs);color:#fff;justify-content:center;align-items:center;font-weight:700;display:flex}.message-content-wrapper{flex-direction:column;gap:2px;display:flex}.message-sender{font-size:var(--font-size-xs);color:var(--text-tertiary);padding:0 var(--space-sm);font-weight:500}.message-bubble{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-base);word-break:break-word;white-space:pre-wrap;line-height:1.5;position:relative}.message-row.own .message-bubble{background:var(--msg-own-bg);color:var(--msg-own-text);border-bottom-right-radius:var(--space-xs)}.message-row.other .message-bubble{background:var(--msg-other-bg);color:var(--msg-other-text);border-bottom-left-radius:var(--space-xs)}.message-time{color:var(--text-tertiary);padding:0 var(--space-sm);margin-top:2px;font-size:.625rem}.message-row.own .message-time{text-align:right;color:var(--own-msg-time-color)}.message-row.consecutive .message-avatar-container{visibility:hidden}.message-row.consecutive .message-sender{display:none}.message-row.own.consecutive .message-bubble{border-radius:var(--radius-lg);border-bottom-right-radius:var(--space-xs);border-top-right-radius:var(--space-xs)}.message-row.other.consecutive .message-bubble{border-radius:var(--radius-lg);border-bottom-left-radius:var(--space-xs);border-top-left-radius:var(--space-xs)}.chat-input-container{padding:var(--space-sm) var(--space-lg) var(--space-lg);background:var(--bg-secondary);border-top:1px solid var(--border-subtle);flex-shrink:0}.chat-input-box{align-items:flex-end;gap:var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-lg);transition:border-color var(--transition-fast);display:flex}.chat-input-box:focus-within{border-color:var(--primary-500)}.chat-input-textarea{resize:none;font-size:var(--font-size-base);max-height:120px;padding:var(--space-xs) 0;color:var(--text-primary);flex:1;line-height:1.5}.chat-input-textarea::placeholder{color:var(--text-tertiary)}.chat-send-btn{border-radius:var(--radius-md);background:var(--primary-500);color:#fff;width:40px;height:40px;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-send-btn:hover:not(:disabled){background:var(--primary-600);transform:scale(1.05)}.chat-send-btn:active:not(:disabled){animation:.2s sendPulse}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.chat-input-readonly{padding:var(--space-md) var(--space-lg);text-align:center;font-size:var(--font-size-sm);color:var(--text-tertiary);background:var(--bg-secondary);border-top:1px solid var(--border-subtle)}.loading-container{padding:var(--space-2xl);justify-content:center;align-items:center;display:flex}.loading-spinner{border:3px solid var(--border-default);border-top-color:var(--primary-500);border-radius:var(--radius-full);width:32px;height:32px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--bg-tertiary) 25%, var(--bg-elevated) 50%, var(--bg-tertiary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.typing-indicator{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-xs);color:var(--text-tertiary);animation:.3s fadeIn;display:flex}.typing-dots{gap:3px;display:flex}.typing-dots span{background:var(--text-tertiary);border-radius:var(--radius-full);width:5px;height:5px;animation:1.4s ease-in-out infinite pulse}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.user-menu{top:calc(var(--header-height) + var(--space-sm));right:var(--space-md);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-sm);box-shadow:var(--shadow-lg);z-index:var(--z-modal);min-width:200px;animation:.15s scaleIn;position:absolute}.user-menu-item{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-base);color:var(--text-secondary);width:100%;transition:all var(--transition-fast);display:flex}.user-menu-item:hover{background:var(--bg-hover);color:var(--text-primary)}.user-menu-divider{background:var(--border-subtle);height:1px;margin:var(--space-xs) 0}.user-menu-name{padding:var(--space-sm) var(--space-md);font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-xs)}.user-menu-email{font-weight:400;font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:2px;display:block}.user-menu-theme{padding:var(--space-sm) var(--space-md)}.user-menu-theme-label{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.user-menu-theme-options{background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);gap:2px;padding:3px;display:flex}.theme-btn{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);color:var(--text-tertiary);transition:all var(--transition-fast);text-align:center;border-radius:6px;flex:1;font-weight:500}.theme-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.theme-btn.active{background:var(--primary-500);color:#fff;box-shadow:var(--shadow-sm)}@media (min-width:768px){.sidebar{width:var(--sidebar-width);max-width:var(--sidebar-width);flex-shrink:0}.chat-back-btn{display:none}.chat-area{border-left:1px solid var(--border-subtle)}}@media (max-width:767px){.sidebar.has-active-chat{display:none}.chat-area{z-index:var(--z-sidebar);animation:.25s slideInRight;position:fixed;inset:0}.chat-area.hidden-mobile{display:none}}@supports (padding:env(safe-area-inset-top)){.sidebar-header{padding-top:calc(var(--space-lg) + env(safe-area-inset-top))}.chat-header{padding-top:calc(var(--space-md) + env(safe-area-inset-top))}.chat-input-container{padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom))}}
