.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--gradient-surface);padding:var(--space-md)}.login-card{width:100%;max-width:420px;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-xl);padding:var(--space-3xl) var(--space-xl);text-align:center;box-shadow:var(--shadow-xl);animation:fadeInUp var(--transition-slow) ease-out}.login-logo{font-size:3rem;margin-bottom:var(--space-sm)}.login-title{font-size:1.75rem;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-sm)}.login-subtitle{color:var(--text-secondary);font-size:.9375rem;margin-bottom:var(--space-2xl);line-height:1.5}.login-form{display:flex;flex-direction:column;gap:var(--space-md)}.login-input-group{text-align:left}.login-input-group label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.login-input-group input{width:100%;padding:var(--space-sm) var(--space-md);font-size:.9375rem}.login-btn{margin-top:var(--space-sm);padding:var(--space-md) var(--space-lg);font-size:1rem}.login-btn .btn-icon-svg{width:20px;height:20px}.login-error{color:var(--accent-error);font-size:.8125rem;padding:var(--space-sm) var(--space-md);background:#ef444414;border-radius:var(--radius-md)}.login-help{margin-top:var(--space-lg);font-size:.8125rem;color:var(--text-tertiary);line-height:1.6}.login-help a{font-weight:500}.login-features{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--space-2xl);text-align:left}.login-feature{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:.8125rem;color:var(--text-secondary)}.login-feature-icon{font-size:1.25rem;flex-shrink:0}.sidebar{display:flex;flex-direction:column;height:100%;padding:var(--space-md);gap:var(--space-sm)}.sidebar-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.new-chat-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-hover);color:var(--text-primary);font-weight:500;font-size:.875rem;border-radius:var(--radius-md);border:1px solid var(--border-primary);transition:all var(--transition-fast)}.new-chat-btn:hover{background:var(--bg-active);border-color:var(--accent-primary)}.new-chat-btn svg{width:16px;height:16px}.sidebar-section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:var(--space-sm) var(--space-sm) var(--space-xs)}.thread-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.thread-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);position:relative;min-height:40px}.thread-item:focus-within,.thread-item:hover{background:var(--bg-hover)}.thread-item.active{background:var(--bg-active)}.thread-item-title{flex:1;font-size:.875rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-item-editing{background:var(--bg-hover);border:1px solid var(--border-focus)}.thread-title-input{flex:1;min-width:0;font-size:.875rem;padding:6px 10px}.thread-item.active .thread-item-title{color:var(--accent-primary);font-weight:500}.thread-pin-icon{font-size:.75rem;flex-shrink:0}.thread-actions{display:none;gap:2px}.thread-item:focus-within .thread-actions,.thread-item:hover .thread-actions{display:flex}.thread-actions-editing{display:flex}.thread-action-btn{width:24px;height:24px;border-radius:var(--radius-sm);font-size:.75rem;display:flex;align-items:center;justify-content:center}.thread-action-btn:hover{background:var(--bg-active)}.sidebar-footer{border-top:1px solid var(--border-secondary);padding-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.sidebar-footer-link{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;color:var(--text-tertiary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);text-align:left}.sidebar-footer-link:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:.8125rem;text-align:center;padding:var(--space-xl)}.settings-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0f8f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:calc(var(--z-modal) - 1);animation:fadeIn var(--transition-fast) ease-out}.settings-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-secondary);opacity:.92;z-index:calc(var(--z-modal) + 1);display:flex;align-items:center;justify-content:center;animation:fadeIn var(--transition-fast) ease-out}.settings-loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);color:var(--text-tertiary);font-size:.9375rem}.settings-loading-spinner{font-size:1.75rem;animation:spin 1s linear infinite;color:var(--accent-primary)}.settings-panel{position:fixed;top:0;right:0;width:min(520px,100vw);height:100vh;padding:var(--space-xl);background:linear-gradient(180deg,var(--bg-elevated) 0%,var(--bg-secondary) 100%);border-left:1px solid var(--border-primary);box-shadow:var(--shadow-xl);z-index:var(--z-modal);display:flex;flex-direction:column;gap:var(--space-lg);animation:slideInRight var(--transition-base) ease-out}.settings-panel-header{display:flex;justify-content:space-between;gap:var(--space-md)}.settings-panel-eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-primary);margin-bottom:var(--space-xs)}.settings-panel-subtitle{color:var(--text-secondary);max-width:42ch}.settings-panel-close{flex-shrink:0}.settings-panel-form{display:flex;flex-direction:column;gap:var(--space-lg);overflow-y:auto;padding-right:var(--space-xs)}.settings-section{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--border-primary);border-radius:var(--radius-lg);background:var(--gradient-card)}.settings-section-agent{border-color:#0ea58c47}.settings-section-heartbeat{border-color:#6366f147}.settings-toggle-row{align-items:center}.settings-toggle-row>div:first-child{display:flex;flex-direction:column;gap:2px}.settings-toggle-row>div:first-child small{color:var(--text-tertiary);font-size:.8125rem;font-weight:400}.settings-toggle{position:relative;display:inline-flex;align-items:center;width:48px;height:28px;min-height:28px;padding:2px;border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-primary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.settings-toggle.active{background:var(--accent-primary);border-color:var(--accent-primary)}.settings-toggle-knob{display:block;width:22px;height:22px;border-radius:var(--radius-full);background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.settings-toggle.active .settings-toggle-knob{transform:translate(20px)}.settings-heartbeat-card{gap:var(--space-md)}.settings-heartbeat-history-link{justify-self:start;border-color:var(--border-primary);color:var(--accent-primary);font-size:.8125rem}.settings-section-heading{display:flex;flex-direction:column;gap:2px}.settings-section-heading span{font-weight:600}.settings-section-heading small{color:var(--text-tertiary)}.settings-field{display:flex;flex-direction:column;gap:var(--space-xs)}.settings-field span{font-size:.875rem;font-weight:500}.settings-field select,.settings-field input{min-height:44px}.settings-card{display:grid;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border)}.settings-card-row{display:flex;justify-content:space-between;gap:var(--space-md);font-size:.875rem;color:var(--text-secondary)}.settings-card-row strong{color:var(--text-primary);text-align:right}.settings-oauth-card{gap:var(--space-md)}.settings-oauth-row{align-items:center}.settings-oauth-row>div:first-child{display:flex;flex-direction:column;gap:4px}.settings-oauth-badge{display:inline-flex;align-items:center;justify-content:center;min-width:108px;padding:8px 12px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.settings-oauth-badge.success{background:#10b98124;color:var(--accent-success)}.settings-oauth-badge.error{background:#ef444424;color:var(--accent-error)}.settings-oauth-badge.info{background:#3b82f624;color:var(--accent-primary)}.settings-oauth-badge.warning{background:#f59e0b24;color:var(--accent-warning)}.settings-oauth-device-flow{display:grid;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid rgba(59,130,246,.18);background:#3b82f614}.settings-oauth-device-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:.875rem;font-weight:600}.settings-oauth-device-header a{color:var(--accent-primary)}.settings-oauth-device-code{padding:12px 14px;border-radius:var(--radius-md);background:#0f172ac7;color:#f8fafc;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:1.1rem;font-weight:700;letter-spacing:.14em;text-align:center}.settings-oauth-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.settings-helper-text{font-size:.8125rem;color:var(--text-secondary)}.settings-sync-actions{display:grid;gap:var(--space-xs)}.settings-sync-meta{display:grid;gap:6px}.settings-sync-button{justify-self:start;border-color:var(--border-primary);color:var(--text-primary)}.settings-sync-badge{min-width:0;width:fit-content;text-transform:none;letter-spacing:.01em}.settings-sync-button:hover:not(:disabled){border-color:var(--border-focus)}.settings-tools-card{gap:var(--space-md)}.settings-tools-header{align-items:center}.settings-tools-header>div:first-child{display:flex;flex-direction:column;gap:4px}.settings-tool-groups{display:grid;gap:var(--space-sm)}.settings-tool-group{display:grid;gap:6px}.settings-tool-group-title{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.settings-tool-chips{display:flex;flex-wrap:wrap;gap:8px}.settings-tool-chip{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:999px;border:1px solid rgba(14,165,140,.18);background:#0ea58c14;color:var(--text-primary);font-size:.75rem;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace}.settings-status{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.875rem}.settings-status.success{background:#10b9811f;color:var(--accent-success)}.settings-status.error{background:#ef44441f;color:var(--accent-error)}.settings-status.info{background:#3b82f61f;color:var(--accent-primary)}.settings-panel-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-bottom:var(--space-sm)}@media (max-width: 768px){.settings-panel{width:100vw;padding:var(--space-lg)}.settings-card-row,.settings-panel-actions,.settings-oauth-actions{flex-direction:column;align-items:stretch}.settings-oauth-badge{width:100%}.settings-oauth-device-header{flex-direction:column;align-items:flex-start}.settings-sync-button{width:100%;justify-self:stretch}}.heartbeat-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0f8f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:calc(var(--z-modal) - 1);animation:fadeIn var(--transition-fast) ease-out}.heartbeat-panel{position:fixed;top:0;right:0;width:min(520px,100vw);height:100vh;padding:var(--space-xl);background:linear-gradient(180deg,var(--bg-elevated) 0%,var(--bg-secondary) 100%);border-left:1px solid var(--border-primary);box-shadow:var(--shadow-xl);z-index:var(--z-modal);display:flex;flex-direction:column;gap:var(--space-lg);animation:slideInRight var(--transition-base) ease-out}.heartbeat-panel-header{display:flex;justify-content:space-between;gap:var(--space-md)}.heartbeat-panel-eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-primary);margin-bottom:var(--space-xs)}.heartbeat-panel-subtitle{color:var(--text-secondary);max-width:42ch}.heartbeat-panel-close{flex-shrink:0}.heartbeat-panel-actions{display:flex;gap:var(--space-sm)}.heartbeat-panel-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md);padding-right:var(--space-xs)}.heartbeat-loading,.heartbeat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-2xl) var(--space-md);text-align:center;color:var(--text-secondary)}.heartbeat-empty-hint{font-size:.8125rem;color:var(--text-tertiary);max-width:36ch}.heartbeat-history{display:flex;flex-direction:column;gap:var(--space-md)}.heartbeat-entry{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border)}.heartbeat-entry-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.heartbeat-entry-meta{display:flex;flex-direction:column;gap:2px}.heartbeat-entry-time{font-size:.875rem;font-weight:500;color:var(--text-primary)}.heartbeat-entry-duration{font-size:.75rem;color:var(--text-tertiary)}.heartbeat-entry-badge{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:6px 12px;border-radius:999px;font-size:.8125rem;font-weight:700;letter-spacing:.02em}.heartbeat-entry-badge.success{background:#10b98124;color:var(--accent-success)}.heartbeat-entry-badge.warning{background:#f59e0b24;color:var(--accent-warning)}.heartbeat-entry-badge.error{background:#ef444424;color:var(--accent-error)}.heartbeat-checklist{display:flex;flex-direction:column;gap:var(--space-xs)}.heartbeat-checklist-item{display:flex;align-items:center;gap:var(--space-sm);font-size:.8125rem;min-height:28px}.heartbeat-checklist-indicator{display:block;width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.heartbeat-checklist-indicator.pass{background:var(--accent-success)}.heartbeat-checklist-indicator.fail{background:var(--accent-error)}.heartbeat-checklist-label{font-weight:500;color:var(--text-primary);min-width:120px}.heartbeat-checklist-detail{color:var(--text-secondary)}@media (max-width: 768px){.heartbeat-panel{width:100vw;padding:var(--space-lg)}.heartbeat-panel-actions{flex-direction:column;align-items:stretch}.heartbeat-checklist-item{flex-wrap:wrap}.heartbeat-checklist-label{min-width:auto}}.topbar{display:flex;align-items:center;height:var(--topbar-height);padding:0 var(--space-md);background:var(--bg-secondary);border-bottom:1px solid var(--border-secondary);gap:var(--space-md);flex-shrink:0;z-index:var(--z-topbar)}.topbar-left{display:flex;align-items:center;gap:var(--space-sm)}.topbar-toggle{width:36px;height:36px}.topbar-brand{display:flex;align-items:center;gap:var(--space-sm);font-size:1rem;font-weight:600;color:var(--text-primary)}.topbar-brand-icon{font-size:1.25rem}.topbar-center{flex:1;display:flex;align-items:center;justify-content:center}.schema-select{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-full);cursor:pointer;font-size:.8125rem;color:var(--text-secondary);transition:all var(--transition-fast);position:relative}.schema-select:hover{border-color:var(--accent-primary);color:var(--text-primary)}.schema-select-icon{font-size:1rem}.schema-dropdown{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:220px;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-modal);overflow:hidden;animation:fadeInUp var(--transition-fast) ease-out}.schema-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:.875rem;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.schema-option:hover{background:var(--bg-hover)}.schema-option.active{background:var(--bg-active);color:var(--accent-primary)}.schema-option-icon{font-size:1.125rem;width:24px;text-align:center}.schema-option-info{display:flex;flex-direction:column}.schema-option-name{font-weight:500}.schema-option-desc{font-size:.75rem;color:var(--text-tertiary)}.topbar-right{display:flex;align-items:center;gap:var(--space-sm)}.user-avatar{width:32px;height:32px;border-radius:var(--radius-full);border:2px solid var(--border-primary);object-fit:cover;cursor:pointer;transition:border-color var(--transition-fast)}.user-avatar:hover{border-color:var(--accent-primary)}.user-menu{position:absolute;top:calc(var(--topbar-height) + 4px);right:var(--space-md);min-width:180px;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-modal);overflow:hidden;animation:fadeInUp var(--transition-fast) ease-out}.user-menu-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:.875rem;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);width:100%;text-align:left}.user-menu-item:hover{background:var(--bg-hover)}.user-menu-divider{height:1px;background:var(--border-secondary);margin:var(--space-xs) 0}.user-menu-logout{color:var(--accent-error)}.topbar-heartbeat{position:relative}.topbar-heartbeat-dot{display:block;width:10px;height:10px;border-radius:var(--radius-full);transition:background var(--transition-fast)}.topbar-heartbeat-dot.idle{background:var(--text-tertiary)}.topbar-heartbeat-dot.passed{background:var(--accent-success)}.topbar-heartbeat-dot.failed{background:var(--accent-error)}.topbar-heartbeat-dot.running{background:var(--accent-primary);animation:pulse 1.5s ease-in-out infinite}.response-bar{display:flex;align-items:center;gap:2px;padding:var(--space-xs) var(--space-sm);margin-top:var(--space-xs);opacity:0;transition:opacity var(--transition-fast)}.message-bubble:hover .response-bar{opacity:1}.response-bar-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:4px 8px;font-size:.75rem;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.response-bar-btn:disabled{opacity:.7;cursor:wait}.response-bar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.response-bar-btn.active{color:var(--accent-primary)}.response-bar-btn-accent{color:var(--accent-primary);border:1px solid rgba(14,165,140,.18);background:#0ea58c14}.response-bar-btn-accent:hover{background:#0ea58c24;color:var(--accent-primary)}.response-bar-btn svg{width:14px;height:14px}.copied-tooltip{font-size:.6875rem;color:var(--accent-success);font-weight:500;padding:2px 6px;animation:fadeIn var(--transition-fast) ease-out}@media (max-width: 768px){.response-bar{opacity:1;flex-wrap:wrap}}.message-bubble{display:flex;gap:var(--space-md);animation:fadeInUp var(--transition-fast) ease-out;max-width:100%}.message-bubble.user{flex-direction:row-reverse}.message-avatar{width:32px;height:32px;border-radius:var(--radius-full);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;margin-top:4px}.message-avatar img{width:100%;height:100%;border-radius:var(--radius-full);object-fit:cover}.message-avatar.ai{background:var(--gradient-primary);color:#fff;font-size:1rem}.message-content{flex:1;min-width:0}.message-body{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);font-size:.9375rem;line-height:1.7;overflow-wrap:break-word;word-wrap:break-word}.message-bubble.user .message-body{background:var(--user-bubble-bg);color:var(--user-bubble-text);border-bottom-right-radius:var(--radius-sm)}.message-bubble.assistant .message-body{background:var(--ai-bubble-bg);color:var(--ai-bubble-text);border-bottom-left-radius:var(--radius-sm)}.message-bubble.assistant .message-body h1,.message-bubble.assistant .message-body h2,.message-bubble.assistant .message-body h3{margin-top:var(--space-md);margin-bottom:var(--space-sm)}.message-bubble.assistant .message-body h1:first-child,.message-bubble.assistant .message-body h2:first-child,.message-bubble.assistant .message-body h3:first-child{margin-top:0}.message-bubble.assistant .message-body p{margin-bottom:var(--space-sm)}.message-bubble.assistant .message-body p:last-child{margin-bottom:0}.message-bubble.assistant .message-body ul,.message-bubble.assistant .message-body ol{padding-left:var(--space-lg);margin-bottom:var(--space-sm)}.message-bubble.assistant .message-body li{margin-bottom:var(--space-xs)}.message-bubble.assistant .message-body pre{margin:var(--space-sm) 0}.message-bubble.assistant .message-body table{width:100%;border-collapse:collapse;margin:var(--space-sm) 0;font-size:.8125rem}.message-bubble.assistant .message-body th,.message-bubble.assistant .message-body td{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-primary);text-align:left}.message-bubble.assistant .message-body th{background:var(--bg-tertiary);font-weight:600}.message-bubble.assistant .message-body blockquote{border-left:3px solid var(--accent-primary);padding-left:var(--space-md);margin:var(--space-sm) 0;color:var(--text-secondary)}.message-body.streaming:after{content:"▍";animation:pulse 1s infinite;color:var(--accent-primary)}.message-timestamp{font-size:.6875rem;color:var(--text-tertiary);margin-top:var(--space-xs);padding:0 var(--space-sm)}.message-meta-row{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs)}.message-model-tag{display:inline-flex;align-items:center;font-size:.6875rem;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:999px;padding:2px 8px}.message-bubble.user .message-timestamp{text-align:right}.message-bubble.user .message-meta-row{justify-content:flex-end}@media (max-width: 768px){.message-body{padding:var(--space-sm) var(--space-md);font-size:.875rem}}.chat-window{flex:1;overflow-y:auto;padding:var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md);scroll-behavior:smooth}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-2xl);animation:fadeIn var(--transition-slow) ease-out}.chat-empty-icon{font-size:4rem;opacity:.8}.chat-empty-greeting{font-size:1.5rem;font-weight:600;color:var(--text-primary);text-align:center}.chat-empty-subtitle{font-size:.9375rem;color:var(--text-secondary);text-align:center;max-width:480px;line-height:1.6}.suggestion-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);max-width:600px;width:100%;margin-top:var(--space-md)}.suggestion-card{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);background:var(--gradient-card);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);animation:fadeInUp var(--transition-base) ease-out}.suggestion-card:nth-child(1){animation-delay:0ms}.suggestion-card:nth-child(2){animation-delay:50ms}.suggestion-card:nth-child(3){animation-delay:.1s}.suggestion-card:nth-child(4){animation-delay:.15s}.suggestion-card:hover{border-color:var(--accent-primary);background:var(--bg-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.suggestion-card-icon{font-size:1.5rem}.suggestion-card-title{font-size:.875rem;font-weight:500;color:var(--text-primary)}.suggestion-card-desc{font-size:.75rem;color:var(--text-tertiary)}.chat-messages{display:flex;flex-direction:column;gap:var(--space-md);max-width:800px;width:100%;margin:0 auto}.typing-indicator{display:flex;align-items:center;gap:6px;padding:var(--space-md);color:var(--text-tertiary);font-size:.875rem}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:typingDot 1.4s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@media (max-width: 768px){.chat-window{padding:var(--space-md)}.suggestion-cards{grid-template-columns:1fr}.chat-empty-greeting{font-size:1.25rem}}.input-console{display:flex;align-items:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--bg-secondary);border-top:1px solid var(--border-secondary);max-width:800px;width:100%;margin:0 auto}.input-console-wrapper{padding:var(--space-sm) var(--space-xl);background:var(--bg-secondary);border-top:1px solid var(--border-secondary)}.input-field-container{flex:1;display:flex;align-items:flex-end;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);gap:var(--space-sm)}.input-field-container:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px #6366f11f}.input-textarea{flex:1;border:none;background:transparent;padding:var(--space-xs) var(--space-sm);min-height:24px;max-height:200px;line-height:1.5;font-size:.9375rem;color:var(--text-primary);outline:none;resize:none;font-family:var(--font-sans)}.input-textarea::placeholder{color:var(--text-tertiary)}.input-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.input-action-btn{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);transition:all var(--transition-fast);font-size:1rem}.input-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.send-btn{width:36px;height:36px;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--accent-primary-hover);transform:scale(1.05)}.send-btn:disabled{opacity:.4}.send-btn svg{width:18px;height:18px}.input-disclaimer{text-align:center;font-size:.6875rem;color:var(--text-tertiary);padding:var(--space-xs) 0;max-width:800px;margin:0 auto}@media (max-width: 768px){.input-console-wrapper{padding:var(--space-sm) var(--space-md)}.input-console{padding:var(--space-sm) 0}.send-btn,.input-action-btn{width:44px;height:44px}}.layout{display:flex;height:100vh;overflow:hidden;background:var(--bg-primary)}.layout-sidebar{width:var(--sidebar-width);height:100vh;flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;transition:transform var(--transition-base),width var(--transition-base),box-shadow var(--transition-fast);z-index:var(--z-sidebar);overflow:hidden}.layout-sidebar.collapsed{width:0;transform:translate(-100%);border-right:none}.layout-main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;position:relative}@media (max-width: 768px){.layout-sidebar{position:fixed;top:0;left:0;width:85vw;max-width:320px;height:100vh;box-shadow:var(--shadow-xl);z-index:var(--z-modal)}.layout-sidebar.collapsed{transform:translate(-100%);width:85vw;max-width:320px;box-shadow:none;opacity:0;pointer-events:none}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:calc(var(--z-modal) - 1);animation:fadeIn var(--transition-fast) ease-out}.sidebar-overlay.hidden{display:none}}:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--sidebar-width: 280px;--topbar-height: 56px;--input-console-min-height: 64px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.175, .885, .32, 1.275);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .15);--shadow-glow: 0 0 20px rgba(99, 102, 241, .15);--z-sidebar: 100;--z-topbar: 200;--z-modal: 300;--z-toast: 400}[data-theme=light]{--bg-primary: #f8f9fc;--bg-secondary: #ffffff;--bg-tertiary: #f0f1f5;--bg-elevated: #ffffff;--bg-sidebar: #f4f5f9;--bg-input: #ffffff;--bg-hover: rgba(99, 102, 241, .06);--bg-active: rgba(99, 102, 241, .1);--text-primary: #1a1b2e;--text-secondary: #5a5b78;--text-tertiary: #8e8fa8;--text-inverse: #ffffff;--border-primary: #e2e3ef;--border-secondary: #ededf5;--border-focus: #6366f1;--accent-primary: #6366f1;--accent-primary-hover: #5558e8;--accent-secondary: #8b5cf6;--accent-success: #10b981;--accent-warning: #f59e0b;--accent-error: #ef4444;--accent-info: #3b82f6;--gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a78bfa 100%);--gradient-surface: linear-gradient(180deg, #f8f9fc 0%, #eef0f8 100%);--gradient-card: linear-gradient(135deg, rgba(99, 102, 241, .04), rgba(139, 92, 246, .04));--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .5);--user-bubble-bg: #6366f1;--user-bubble-text: #ffffff;--ai-bubble-bg: #f4f5f9;--ai-bubble-text: #1a1b2e;--scrollbar-track: transparent;--scrollbar-thumb: #d1d2e0;--scrollbar-thumb-hover: #b4b5c8;--code-bg: #1e1e2e;--code-text: #cdd6f4}[data-theme=dark]{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a28;--bg-elevated: #161622;--bg-sidebar: #0e0e16;--bg-input: #161622;--bg-hover: rgba(99, 102, 241, .08);--bg-active: rgba(99, 102, 241, .15);--text-primary: #e4e5f1;--text-secondary: #9d9eb8;--text-tertiary: #6b6c88;--text-inverse: #0a0a0f;--border-primary: #2a2a3d;--border-secondary: #1f1f30;--border-focus: #6366f1;--accent-primary: #818cf8;--accent-primary-hover: #6366f1;--accent-secondary: #a78bfa;--accent-success: #34d399;--accent-warning: #fbbf24;--accent-error: #f87171;--accent-info: #60a5fa;--gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #c084fc 100%);--gradient-surface: linear-gradient(180deg, #0a0a0f 0%, #0e0e1a 100%);--gradient-card: linear-gradient(135deg, rgba(99, 102, 241, .06), rgba(139, 92, 246, .06));--glass-bg: rgba(18, 18, 26, .8);--glass-border: rgba(42, 42, 61, .5);--user-bubble-bg: #6366f1;--user-bubble-text: #ffffff;--ai-bubble-bg: #1a1a28;--ai-bubble-text: #e4e5f1;--scrollbar-track: transparent;--scrollbar-thumb: #2a2a3d;--scrollbar-thumb-hover: #3a3a52;--code-bg: #1e1e2e;--code-text: #cdd6f4}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{max-width:100%;overflow-x:hidden}body{font-family:var(--font-sans);font-weight:400;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);overflow:hidden;height:100vh;transition:background-color var(--transition-slow),color var(--transition-slow)}#root{height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--text-primary)}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-primary-hover)}code{font-family:var(--font-mono);font-size:.875em;background:var(--code-bg);color:var(--code-text);padding:2px 6px;border-radius:var(--radius-sm)}pre{font-family:var(--font-mono);font-size:.875rem;background:var(--code-bg);color:var(--code-text);padding:var(--space-md);border-radius:var(--radius-md);overflow-x:auto;line-height:1.5}pre code{background:none;padding:0}button{font-family:var(--font-sans);cursor:pointer;border:none;background:none;font-size:inherit;color:inherit;transition:all var(--transition-fast)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:var(--gradient-primary);color:#fff;font-weight:500;font-size:.9375rem;border-radius:var(--radius-md);border:none;box-shadow:var(--shadow-md),var(--shadow-glow);transition:all var(--transition-base)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-lg),0 0 30px #6366f140}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:transparent;color:var(--text-secondary);font-weight:500;font-size:.875rem;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition-fast)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);transition:all var(--transition-fast)}@media (max-width: 768px){.btn-icon{width:44px;height:44px;min-width:44px;min-height:44px}}.btn-icon:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}input,textarea,select{font-family:var(--font-sans);font-size:1rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #6366f126}textarea{resize:none;line-height:1.5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-base) ease-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button,input,select{min-height:44px}.hidden-mobile{display:flex}.hidden-desktop{display:none}@media (max-width: 1024px){:root{--sidebar-width: 240px}}@media (max-width: 768px){:root{--sidebar-width: 100vw;--topbar-height: 56px}.hidden-mobile{display:none!important}.hidden-desktop{display:flex!important}.w-full-mobile{width:100%!important}}
