*{box-sizing:border-box;margin:0;padding:0}:root{--font-sans: "Geist", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Geist Mono", "SF Mono", Consolas, monospace;--font-size-xs: .6875rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--bg-primary: #fefefe;--bg-secondary: #f8f9fa;--bg-tertiary: #f1f3f5;--bg-sidebar: #fafbfc;--bg-elevated: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b;--text-tertiary: #94a3b8;--border-default: #e2e8f0;--border-subtle: #f1f5f9;--accent-50: #eff6ff;--accent-100: #dbeafe;--accent-500: #3b82f6;--accent-600: #2563eb;--success: #10b981;--success-light: #ecfdf5;--warning: #f59e0b;--warning-light: #fffbeb;--error: #ef4444;--border-color: var(--border-default);--border-color-light: var(--border-subtle);--accent-color: var(--accent-600);--accent-hover: var(--accent-500);--success-color: var(--success);--warning-color: var(--warning);--error-color: var(--error);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .04);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .05);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .05), 0 4px 6px -2px rgb(0 0 0 / .03);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .05), 0 10px 10px -5px rgb(0 0 0 / .02);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .25s ease}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*:focus-visible{outline:none}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes ringPulse{0%{transform:scale(1);opacity:.8}to{transform:scale(1.8);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:260px;min-width:260px;background-color:var(--bg-primary);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;height:100vh}.sidebar-header{padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.sidebar-logo{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.logo-emoticon{font-family:Noto Sans,sans-serif;font-size:18px;font-weight:700;letter-spacing:0;line-height:1}.sidebar-header-actions{display:flex;align-items:center;gap:4px}.sidebar-icon-btn{width:28px;height:28px;border-radius:6px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);transition:all .15s ease}.sidebar-icon-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.new-session-btn{display:flex;align-items:center;gap:8px;width:calc(100% - 24px);margin:0 12px 12px;padding:10px 12px;font-size:13px;font-weight:500;font-family:var(--font-sans);color:var(--text-secondary);background-color:transparent;border:1px dashed var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.new-session-btn:hover{background-color:var(--bg-tertiary);border-color:var(--text-tertiary);color:var(--text-primary)}.sidebar-search{padding:0 12px 12px}.sidebar-search input{width:100%;padding:8px 12px;font-size:13px;font-family:var(--font-sans);background-color:transparent;border:none;color:var(--text-primary)}.sidebar-search input:focus{outline:none}.sidebar-search input::placeholder{color:var(--text-tertiary)}.sidebar-sessions{flex:1;overflow-y:auto;padding:0 8px}.session-item{position:relative;padding:10px 12px;border-radius:6px;cursor:pointer;margin-bottom:1px;transition:background-color .15s ease}.session-item:hover{background-color:var(--bg-secondary)}.session-item.active{background-color:var(--bg-tertiary)}.session-item-header{display:flex;align-items:center;gap:8px;margin-bottom:2px}.session-item-title{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;padding-right:20px}.session-status-dot{width:8px;height:8px;min-width:8px;min-height:8px;border-radius:50%;flex-shrink:0;position:relative}.session-status-dot.processing{background-color:var(--success)}.session-status-dot.processing:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1.5px solid var(--success);animation:ringPulse 1.5s ease-out infinite}.session-status-dot.starting{background-color:var(--warning)}.session-status-dot.starting:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1.5px solid var(--warning);animation:ringPulse 1.5s ease-out infinite}.session-item-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-tertiary)}.session-item-repo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.session-item-time{flex-shrink:0}.session-item-delete{position:absolute;top:10px;right:8px;opacity:0;background:none;border:none;color:var(--text-tertiary);padding:2px;cursor:pointer;transition:all .15s ease;border-radius:4px}.session-item:hover .session-item-delete{opacity:1}.session-item-delete:hover{color:var(--error);background-color:#ef44441a}.main-content{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:var(--bg-primary)}.home-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);background:radial-gradient(ellipse 80% 50% at 50% -20%,var(--accent-50),transparent);animation:fadeIn .4s ease-out;position:relative;overflow:hidden}.home-title{font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-8);text-align:center;letter-spacing:-.02em;animation:fadeInDown .5s ease-out .1s backwards;position:relative;z-index:1}.home-input-container{width:100%;max-width:640px;animation:fadeInUp .5s ease-out .2s backwards;position:relative;z-index:1}.home-input-wrapper{position:relative;background-color:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-2xl);padding:var(--space-5) var(--space-5) var(--space-4);box-shadow:var(--shadow-lg);transition:all var(--transition-slow)}.home-input-wrapper:focus-within{border-color:var(--border-default);box-shadow:var(--shadow-xl)}.home-input-wrapper textarea{width:100%;border:none;outline:none;font-size:var(--font-size-base);font-family:var(--font-sans);resize:none;min-height:80px;color:var(--text-primary);background:transparent;line-height:1.6}.home-input-wrapper textarea::placeholder{color:var(--text-tertiary)}.home-input-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.home-input-footer-left{display:flex;align-items:center;gap:var(--space-4)}.home-repo-selector-inline{display:flex;align-items:center;position:relative}.repo-measure{position:absolute;visibility:hidden;white-space:nowrap;font-size:var(--font-size-sm);font-family:var(--font-mono);font-weight:500}.home-session-status{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-secondary);animation:fadeIn .3s ease-out}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:relative}.status-dot.starting{background-color:var(--warning);animation:pulse 1.5s ease-in-out infinite}.status-dot.starting:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1.5px solid var(--warning);animation:ringPulse 2s ease-out infinite}.status-dot.ready{background-color:var(--success)}.status-dot.ready:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1.5px solid var(--success);animation:ringPulse 2s ease-out infinite}.status-dot.pending{background-color:var(--accent-500);animation:pulse 1s ease-in-out infinite}.status-text{color:var(--text-secondary);font-family:var(--font-sans)}.home-repo-selector-inline select{padding:6px 32px 6px 12px;font-size:var(--font-size-sm);font-family:var(--font-mono);background-color:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm);font-weight:500;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.home-repo-selector-inline select:focus{outline:none;border-color:var(--border-default);box-shadow:none}.home-repo-selector-inline select:hover:not(:disabled){background-color:var(--bg-secondary);border-color:var(--text-tertiary)}.home-repo-selector-inline select:disabled{opacity:.6;cursor:not-allowed}.connect-github-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-sans);background-color:#24292e;color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.connect-github-btn:hover{background-color:#3a3f44;transform:translateY(-1px);box-shadow:var(--shadow-md)}.connect-github-btn:active{transform:translateY(0)}.connect-github-btn svg{flex-shrink:0}.home-submit-btn{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-lg);border:none;background-color:var(--accent-600);color:#fff;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.home-submit-btn:hover:not(:disabled){background-color:var(--accent-500);transform:translateY(-1px);box-shadow:var(--shadow-md)}.home-submit-btn:active:not(:disabled){transform:translateY(0)}.home-submit-btn:disabled{background-color:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed;box-shadow:none}.session-status-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-default);font-size:var(--font-size-sm);color:var(--text-secondary)}.status-spinner{width:16px;height:16px;border:2px solid var(--border-default);border-top-color:var(--accent-500);border-radius:50%;animation:spin 1s linear infinite}.auth-page{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-primary);animation:fadeIn .4s ease-out}.auth-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);animation:fadeInDown .5s ease-out .1s backwards}.auth-logo{display:flex;align-items:center;gap:8px;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);text-decoration:none}.auth-logo .logo-emoticon{font-size:1.25em}.auth-content{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.auth-card{width:100%;max-width:340px;text-align:center;padding:var(--space-6);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-xl);box-shadow:0 4px 24px #00000014;animation:fadeInUp .5s ease-out .15s backwards}.auth-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--space-1);color:var(--text-primary);letter-spacing:-.02em}.auth-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:var(--space-6)}.auth-error{background-color:var(--error-light);color:var(--error);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.github-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);border:none;background-color:#24292f;color:#fff;cursor:pointer;transition:all .15s ease}.github-btn:hover:not(:disabled){background-color:#32383f}.github-btn:active:not(:disabled){background-color:#24292f}.github-btn:disabled{background-color:#8b949e;cursor:not-allowed}.github-btn .github-icon{flex-shrink:0}.github-btn .loading-spinner{width:18px;height:18px;border-width:2px}.auth-hint{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-top:var(--space-4)}.chat-container{flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:var(--bg-primary)}.chat-header{display:flex;align-items:center;justify-content:flex-start;padding:12px 20px;border-bottom:1px solid var(--border-subtle);background-color:var(--bg-primary)}.chat-header-info{display:flex;align-items:center;gap:10px}.chat-header-status{display:inline-block;width:8px;height:8px;min-width:8px;min-height:8px;border-radius:50%;background-color:var(--text-tertiary);flex-shrink:0}.chat-header-status.running{background-color:var(--success)}.chat-header-status.paused{background-color:var(--warning)}.chat-header-status.starting{background-color:var(--warning);animation:pulse 1.5s ease-in-out infinite}.chat-header-status.error{background-color:var(--error)}.chat-header-status.idle{background-color:var(--text-tertiary)}.chat-header-title{font-size:16px;font-weight:600;color:var(--text-primary)}.chat-messages{flex:1;overflow-y:auto;background-color:var(--bg-primary)}.chat-messages-inner{max-width:820px;margin:0 auto;padding:24px 20px}.chat-loading-state{position:relative;width:100%;height:300px;margin-top:60px}.message{margin-bottom:20px}.message.user{display:flex;justify-content:flex-end}.message.user .message-content{background-color:#2f2f2f;color:#fff;padding:12px 16px;border-radius:18px;max-width:80%;word-break:break-word}.message.user .message-text{white-space:pre-wrap;font-size:14px;line-height:1.5;color:inherit}.message.assistant{display:block}.message.assistant .message-content{background-color:var(--bg-secondary);border-left:3px solid #8b9a7d;padding:14px 16px;border-radius:0 8px 8px 0}.message.assistant .message-text{white-space:normal;word-break:break-word;font-size:14px;color:var(--text-primary);line-height:1.6}.message.system{display:flex;justify-content:center}.message.system .message-content{background-color:var(--warning-light);color:var(--text-primary);padding:8px 16px;border-radius:8px;font-size:13px}.agent-working{display:flex;align-items:center;gap:10px;padding:12px 0}.agent-working-indicator{display:flex;align-items:center;gap:4px}.agent-working-dot{width:6px;height:6px;border-radius:50%;background-color:var(--text-tertiary);animation:agentWorkingPulse 1.4s ease-in-out infinite}.agent-working-dot:nth-child(2){animation-delay:.2s}.agent-working-dot:nth-child(3){animation-delay:.4s}@keyframes agentWorkingPulse{0%,60%,to{opacity:.3;transform:scale(1)}30%{opacity:1;transform:scale(1.2)}}.agent-working-text{font-size:12px;color:var(--text-tertiary)}.message-tool{display:inline}.message-text code{background-color:#0000000f;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.875em}.message.user .message-text code{background-color:#ffffff26}.message-text pre{background-color:#1e1e1e;border-radius:8px;padding:14px 16px;overflow-x:auto;margin:10px 0}.message-text pre code{background:none;padding:0;color:#e5e5e5}.markdown-content{white-space:normal}.markdown-content *{margin:0;padding:0}.markdown-content p{margin-bottom:8px}.markdown-content p:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin-top:16px;margin-bottom:8px;font-weight:600}.markdown-content>h1:first-child,.markdown-content>h2:first-child,.markdown-content>h3:first-child,.markdown-content>h4:first-child{margin-top:0}.markdown-content ul,.markdown-content ol{margin:4px 0;padding-left:20px}.markdown-content li{margin:2px 0}.markdown-content blockquote{margin:8px 0;padding-left:12px;border-left:3px solid var(--accent-500);color:var(--text-secondary)}.markdown-content hr{border:none;border-top:1px solid var(--border-default);margin:12px 0}.markdown-content a{color:var(--accent-600);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content strong{font-weight:600}.markdown-content code{background-color:var(--bg-tertiary);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:.875em}.tool-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;margin:2px 3px;background-color:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-base);vertical-align:middle}.tool-chip:hover{background-color:var(--bg-tertiary);border-color:var(--border-default);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.tool-chip.running{background-color:var(--warning-light);border-color:var(--warning);animation:pulse 2s ease-in-out infinite}.tool-chip-name{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:500}.tool-chip-arg{color:var(--text-tertiary);font-family:var(--font-mono);font-size:.625rem;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-chip-popover{position:fixed;z-index:1000;background-color:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-3);max-width:400px;max-height:300px;overflow-y:auto;animation:scaleIn .15s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tool-chip-popover-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.tool-chip-popover-title{font-weight:600;font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-primary)}.tool-chip-popover-close{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--text-tertiary);padding:0;line-height:1;transition:color var(--transition-fast)}.tool-chip-popover-close:hover{color:var(--text-primary)}.tool-chip-popover-section{margin-bottom:var(--space-2)}.tool-chip-popover-section:last-child{margin-bottom:0}.tool-chip-popover-label{font-size:.625rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1)}.tool-chip-popover-content{background-color:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-2);font-size:var(--font-size-xs);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:100px;overflow-y:auto;color:var(--text-secondary);border:1px solid var(--border-subtle)}.chat-input-container{padding:16px 20px 24px;background-color:var(--bg-primary)}.chat-input-inner{max-width:820px;margin:0 auto}.chat-input-wrapper{display:flex;align-items:center;gap:12px;background-color:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:10px 10px 10px 16px;transition:all .15s ease}.chat-input-wrapper:focus-within{border-color:var(--text-tertiary)}.chat-input{flex:1;border:none;outline:none;padding:0;font-size:14px;font-family:var(--font-sans);background:transparent;color:var(--text-primary);resize:none;line-height:1.5;min-height:21px;max-height:200px}.chat-input::placeholder{color:var(--text-tertiary)}.chat-input:disabled{opacity:.5}.chat-send-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:none;background-color:var(--text-primary);color:var(--bg-primary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.chat-send-btn:hover:not(:disabled){background-color:var(--text-secondary)}.chat-send-btn:disabled{background-color:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed}.chat-send-btn svg{width:14px;height:14px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);text-align:center;padding:var(--space-8);animation:fadeIn .4s ease-out}.empty-state-icon{font-size:2.5rem;margin-bottom:var(--space-4);opacity:.4}.empty-state p{max-width:400px;font-size:var(--font-size-base);line-height:1.6}.loading-error{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-8);color:var(--text-secondary);animation:fadeIn .4s ease-out}.loading-error p{margin-bottom:var(--space-2);font-size:var(--font-size-base)}.loading-error-hint{color:var(--text-tertiary);font-size:var(--font-size-sm)}.btn{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active:not(:disabled){transform:translateY(0)}.btn-primary{background-color:var(--accent-600);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--accent-500)}.btn-primary:disabled{background-color:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed;box-shadow:none}.btn-secondary{background-color:var(--bg-elevated);border-color:var(--border-default);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-secondary)}.btn-danger{background-color:var(--error);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-sm{padding:6px var(--space-3);font-size:var(--font-size-xs)}.error-banner{background-color:#fef2f2;border:1px solid var(--error);color:var(--error);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4);font-size:var(--font-size-sm)}.loading{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm)}.loading-spinner{width:16px;height:16px;border:2px solid var(--border-default);border-top-color:var(--accent-500);border-radius:50%;animation:spin 1s linear infinite}.thinking{margin-top:var(--space-3);padding-left:36px}.thinking summary{cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500;transition:color var(--transition-fast)}.thinking summary:hover{color:var(--text-primary)}.thinking pre{margin-top:var(--space-2);padding:var(--space-3);background-color:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);white-space:pre-wrap;color:var(--text-secondary);border:1px solid var(--border-subtle)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--border-default) transparent}.sidebar-empty{padding:var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm);animation:fadeIn .3s ease-out}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--border-subtle)}.user-info{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.user-name{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{width:100%;padding:var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-sans);background:none;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base)}.logout-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.logout-btn:active{transform:translateY(0)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a4d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.modal{background-color:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:360px;margin:16px;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:16px 20px 0}.modal-header h3{font-size:15px;font-weight:600;color:var(--text-primary);margin:0}.modal-body{padding:10px 20px 16px}.modal-body p{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.modal-session-title{margin-top:6px!important;font-weight:500;color:var(--text-primary)!important;word-break:break-word}.modal-actions{display:flex;gap:8px;padding:0 20px 16px;justify-content:flex-end}.modal-btn{padding:7px 14px;font-size:13px;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.modal-btn-cancel{background-color:var(--bg-secondary);border:1px solid var(--border-default);color:var(--text-secondary)}.modal-btn-cancel:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.modal-btn-delete{background-color:#b91c1c;border:none;color:#fff}.modal-btn-delete:hover{background-color:#991b1b}.cat-mascot{display:inline-flex;align-items:center;justify-content:center;font-family:Noto Sans,sans-serif;font-size:1.5rem;font-weight:700;color:var(--text-tertiary);letter-spacing:0;line-height:1;-webkit-user-select:none;user-select:none;transition:transform .2s ease,color .2s ease;position:relative;margin-bottom:var(--space-4);z-index:1}.cat-mascot-part{display:inline-block;transition:transform .15s ease}.cat-mascot-eye{transition:opacity .1s ease}.cat-mascot-zzz{position:absolute;top:-8px;right:-12px;font-size:.625rem;color:var(--text-tertiary);opacity:.6;animation:catZzz 2s ease-in-out infinite}.cat-mascot--idle{animation:catFloat 3s ease-in-out infinite}.cat-mascot--typing{animation:catBounce .4s ease-in-out infinite;color:var(--text-secondary)}.cat-mascot--typing .cat-mascot-outer{transform:translateY(-2px)}.cat-mascot--happy{color:var(--text-secondary);transform:scale(1.05)}.cat-mascot--sleepy{color:var(--text-tertiary);opacity:.7}.cat-mascot--blinking .cat-mascot-eye{opacity:.8}@keyframes catFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes catBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes catZzz{0%,to{transform:translateY(0) translate(0);opacity:.6}50%{transform:translateY(-4px) translate(2px);opacity:.3}}@media (prefers-reduced-motion: reduce){.cat-mascot,.cat-mascot--idle,.cat-mascot--typing,.cat-mascot-zzz{animation:none!important}.cat-mascot--typing .cat-mascot-outer,.cat-mascot--happy{transform:none}@keyframes fadeIn{0%,to{opacity:1}}@keyframes fadeInUp{0%,to{opacity:1;transform:none}}@keyframes fadeInDown{0%,to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1}}@keyframes ringPulse{0%,to{transform:scale(1);opacity:0}}}.landing-page{height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden}.landing-header{position:relative;z-index:10;flex-shrink:0;padding:20px 40px;display:flex;align-items:center;justify-content:space-between}.landing-logo{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.landing-logo .logo-emoticon{font-family:Noto Sans,sans-serif;font-size:18px;font-weight:700;letter-spacing:0;line-height:1}.landing-nav-link{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);text-decoration:none;padding:8px 0;transition:all var(--transition-base)}.landing-nav-link:hover{color:var(--text-primary);text-decoration:underline}.landing-nav-link .auth-indicator{display:inline-block;width:8px;height:8px;background-color:var(--success);border-radius:50%;margin-right:6px;vertical-align:middle}.landing-main{position:relative;z-index:10;flex:1;display:flex;align-items:center;gap:64px;padding:0 64px 40px;min-height:0}.landing-hero{flex:1;max-width:480px;padding-top:80px;animation:fadeIn .5s ease-out}.landing-hero h1{font-size:clamp(2rem,4vw,2.75rem);font-weight:600;letter-spacing:-.03em;margin-bottom:14px;color:var(--text-primary);line-height:1.1}.landing-hero p{font-size:clamp(.95rem,1.5vw,1.0625rem);color:var(--text-secondary);line-height:1.6;margin-bottom:28px}.landing-cta{padding:14px 32px;font-size:15px;font-weight:500;font-family:var(--font-sans);border-radius:10px;background:var(--text-primary);color:var(--bg-primary);border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #00000014;text-decoration:none}.landing-cta:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001f}.landing-cta:active{transform:translateY(0)}.landing-video-container{flex:1.4;position:relative;border-radius:12px;overflow:hidden;background:#0a0a0a;box-shadow:0 4px 6px -1px #0000000d,0 16px 40px -8px #0000001f;border:1px solid var(--border-default);animation:fadeIn .6s ease-out .1s backwards;max-height:calc(100vh - 160px)}.landing-video{display:block;width:100%;height:100%;aspect-ratio:16 / 9;object-fit:cover;cursor:pointer}.landing-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:#fffffff2;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all .2s ease;box-shadow:0 4px 20px #0003}.landing-video-play:hover{transform:translate(-50%,-50%) scale(1.06);box-shadow:0 6px 28px #00000040}.landing-video-play svg{margin-left:2px}@media (max-width: 900px){.landing-main{flex-direction:column;padding:24px 24px 32px;gap:24px}.landing-hero{max-width:100%;text-align:center}.landing-video-container{width:100%;max-height:40vh}}.skeleton-box{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-sidebar{pointer-events:none}.skeleton-session-item{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.skeleton-avatar{width:32px;height:32px;border-radius:50%}.skeleton-main{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--space-8)}
