:root{--bg-primary:#0d0d0d;--bg-secondary:#1a1a1a;--bg-tertiary:#242424;--bg-hover:#2a2a2a;--accent-primary:#4ade80;--accent-secondary:#22c55e;--text-primary:#e5e5e5;--text-secondary:#a3a3a3;--text-tertiary:#737373;--border-color:#2a2a2a;--cyan:#06b6d4;--orange:#fb923c;--purple:#a78bfa;}*{margin:0;padding:0;box-sizing:border-box;}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;overflow:hidden;}.mobile-menu-btn{display:none;position:fixed;top:20px;left:20px;z-index:10001;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border:1px solid var(--border-color);border-radius:12px;padding:12px;cursor:pointer;color:var(--text-primary);transition:all 0.3s cubic-bezier(0.68,-0.55,0.265,1.55);box-shadow:0 4px 15px rgba(0,0,0,0.2);}.mobile-menu-btn:hover{background:linear-gradient(135deg,var(--bg-hover) 0%,var(--bg-tertiary) 100%);border-color:var(--accent-primary);box-shadow:0 6px 20px rgba(74,222,128,0.2);transform:translateY(-1px);}.mobile-menu-btn:active{transform:translateY(0);}.mobile-menu-btn svg{width:20px;height:20px;stroke-width:2;transition:all 0.3s cubic-bezier(0.68,-0.55,0.265,1.55);}.mobile-menu-btn .menu-icon{transform-origin:center;}.mobile-menu-btn .close-icon{transform-origin:center;animation:rotate-scale-up 0.3s cubic-bezier(0.68,-0.55,0.265,1.55) both;}@keyframes rotate-scale-up{0%{transform:scale(0) rotateZ(-180deg);opacity:0;}100%{transform:scale(1) rotateZ(0deg);opacity:1;}}@keyframes slide-in-left{0%{transform:translateX(-100%);opacity:0;}100%{transform:translateX(0);opacity:1;}}@keyframes fade-in-overlay{0%{opacity:0;backdrop-filter:blur(0px);}100%{opacity:1;backdrop-filter:blur(2px);}}@keyframes scale-up-center{0%{transform:scale(0.8);opacity:0;}100%{transform:scale(1);opacity:1;}}@keyframes gradient-shift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}.nav-badge{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);color:#000;font-weight:600;font-size:12px;min-width:24px;height:20px;border-radius:10px;padding:2px 8px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(74,222,128,0.3);border:1px solid rgba(255,255,255,0.1);transition:all 0.2s ease;}.nav-badge:hover{box-shadow:0 4px 12px rgba(74,222,128,0.4);}.nav-badge-new{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);color:#000;font-weight:700;font-size:10px;padding:2px 6px;border-radius:8px;box-shadow:0 2px 8px rgba(74,222,128,0.4);border:1px solid rgba(255,255,255,0.2);text-transform:uppercase;letter-spacing:0.5px;}.tab-content{animation:fade-slide-in 0.5s cubic-bezier(0.68,-0.55,0.265,1.55) both;}@keyframes fade-slide-in{0%{opacity:0;transform:translateY(30px) scale(0.95);}100%{opacity:1;transform:translateY(0) scale(1);}}.class-card{opacity:1;transform:translateY(0);animation:none;}.class-card.loaded{animation:slide-up-fade 0.6s cubic-bezier(0.68,-0.55,0.265,1.55) both;}@keyframes slide-up-fade{0%{opacity:0;transform:translateY(30px) scale(0.9);}100%{opacity:1;transform:translateY(0) scale(1);}}.class-card.loaded:nth-child(1){animation-delay:0.1s;}.class-card.loaded:nth-child(2){animation-delay:0.2s;}.class-card.loaded:nth-child(3){animation-delay:0.3s;}.class-card.loaded:nth-child(4){animation-delay:0.4s;}.class-card.loaded:nth-child(5){animation-delay:0.5s;}.class-card.loaded:nth-child(6){animation-delay:0.6s;}.scroll-loading{display:flex;justify-content:center;align-items:center;padding:40px 20px;color:var(--text-secondary);font-size:14px;}.scroll-spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top:2px solid var(--accent-primary);border-radius:50%;margin-right:12px;animation:spin 1s linear infinite;}@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}.loading-shimmer{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;}@keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}.sidebar.mobile-open .nav-item{animation:slide-in-staggered 0.4s cubic-bezier(0.68,-0.55,0.265,1.55) both;}.sidebar.mobile-open .nav-item:nth-child(1){animation-delay:0.1s;}.sidebar.mobile-open .nav-item:nth-child(2){animation-delay:0.15s;}.sidebar.mobile-open .nav-item:nth-child(3){animation-delay:0.2s;}.sidebar.mobile-open .nav-item:nth-child(4){animation-delay:0.25s;}@keyframes slide-in-staggered{0%{transform:translateX(-20px);opacity:0;}100%{transform:translateX(0);opacity:1;}}.mobile-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:999;backdrop-filter:blur(2px);}::-webkit-scrollbar{width:8px;height:8px;}::-webkit-scrollbar-track{background:var(--bg-primary);}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px;}::-webkit-scrollbar-thumb:hover{background:var(--border-color);}*{scrollbar-width:thin;scrollbar-color:var(--bg-tertiary) var(--bg-primary);}@media (max-width:768px){.mobile-menu-btn{display:block !important;}.mobile-overlay.active{display:block;}.sidebar{position:fixed !important;top:0;left:-280px;z-index:1000;height:100vh;width:280px;transition:left 0.4s cubic-bezier(0.68,-0.55,0.265,1.55);box-shadow:2px 0 10px rgba(0,0,0,0.3);}.sidebar.mobile-open{left:0;animation:slide-in-left 0.4s cubic-bezier(0.68,-0.55,0.265,1.55) both;}.nav-item{transition:all 0.2s ease;transform-origin:left center;}.nav-item:hover{transform:translateX(4px) scale(1.02);background:var(--bg-hover);}.class-card{transition:all 0.2s ease;transform-origin:center;}.class-card:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 4px 12px rgba(74,222,128,0.1);}.class-card:active{transform:none;}.nav-item{transition:all 0.2s ease;transform-origin:left center;}.nav-item:hover{transform:translateX(4px);background:var(--bg-hover);}.class-card{transition:all 0.2s ease;transform-origin:center;}.class-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(74,222,128,0.1);}.class-card:active{transform:none;}.main-wrapper{margin-left:0 !important;width:100% !important;padding:70px 16px 16px 16px;}.content-header{flex-direction:column;gap:16px;align-items:flex-start;}.header-stats{flex-wrap:wrap;gap:8px;}.stat-pill{font-size:14px;padding:6px 12px;}.search-container{margin-bottom:16px !important;}.class-card{padding:16px;}.card-meta{flex-wrap:wrap;gap:6px;}.meta-tag{font-size:12px;padding:4px 8px;}.offsets-table-container{font-size:14px;}.offsets-table th,.offsets-table td{padding:8px 4px;}.detail-header-new{flex-direction:column;gap:16px;align-items:flex-start;}.detail-title-section{width:100%;}.members-table-new .table-row-new{padding:8px;}.ai-container{flex-direction:column;height:auto;max-height:calc(100vh - 150px);}.ai-chat{height:400px;margin-bottom:16px;}.ai-suggestions{flex-shrink:0;}.ai-container{flex-direction:column !important;height:calc(100vh - 140px) !important;}.ai-chat{height:60vh !important;margin-bottom:12px !important;}.ai-suggestions{width:100% !important;height:auto !important;max-height:30vh !important;overflow-y:auto;}.chat-messages{padding:12px !important;}.chat-input-container{padding:12px !important;}.message-text{font-size:12px !important;padding:10px 12px !important;}.suggestion-btn{font-size:11px !important;padding:8px 10px !important;margin-bottom:6px !important;}.page-title{font-size:24px;}}@media (max-width:480px){.main-wrapper{padding:70px 12px 12px 12px;}.class-card{padding:12px;}.page-title{font-size:20px;}.ai-container{height:calc(100vh - 120px) !important;gap:8px !important;}.ai-chat{height:55vh !important;margin-bottom:8px !important;}.ai-suggestions{max-height:25vh !important;padding:12px !important;}.chat-messages{padding:8px !important;gap:12px !important;}.chat-input-container{padding:8px !important;gap:8px !important;}.chat-input{font-size:12px !important;padding:8px 10px !important;}.send-btn{width:36px !important;height:36px !important;}.message-avatar{width:28px !important;height:28px !important;}.message-text{font-size:11px !important;padding:8px 10px !important;}.suggestion-btn{font-size:10px !important;padding:6px 8px !important;margin-bottom:4px !important;}.suggestions-title{font-size:11px !important;margin-bottom:8px !important;}.offsets-table th:nth-child(3),.offsets-table td:nth-child(3),.offsets-table th:nth-child(5),.offsets-table td:nth-child(5){display:none;}.members-table-new .col-type-new{display:none;}.members-table-new .col-member-new{width:40%;}.members-table-new .col-offset-new{width:35%;}.members-table-new .col-size-new{width:20%;}.members-table-new .col-actions-new{width:5%;}}#app{display:flex;height:100vh;}.sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;}.logo{padding:20px 16px;border-bottom:1px solid var(--border-color);}.logo-icon{display:none;}.logo-text{display:flex;flex-direction:column;}.logo-title{font-size:16px;font-weight:700;color:var(--text-primary);}.logo-version{font-size:12px;color:var(--text-tertiary);font-weight:400;}.nav-menu{flex:1;padding:8px 0;overflow-y:auto;}.nav-item{display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border:none;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all 0.15s ease;width:100%;text-align:left;}.nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary);}.nav-item.active{background:var(--bg-tertiary);color:var(--accent-primary);}.nav-icon{display:none;}.nav-badge{margin-left:auto;font-size:11px;color:var(--text-tertiary);}.nav-badge-new{margin-left:auto;background:var(--accent-primary);color:#000;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;}.sidebar-footer{padding:16px;border-top:1px solid var(--border-color);}.sdk-info{margin-bottom:12px;}.sdk-label{font-size:11px;color:var(--text-tertiary);display:block;margin-bottom:4px;}.sdk-value{font-size:12px;color:var(--text-secondary);font-family:'Consolas',monospace;}.status-indicator{display:flex;align-items:center;gap:8px;padding:8px;background:var(--bg-tertiary);border-radius:4px;}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);}.status-indicator.online .status-dot{background:var(--accent-primary);}.status-text{font-size:12px;color:var(--text-secondary);}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary);}.tab-content{flex:1;display:flex;flex-direction:column;overflow:hidden;}.content-header{padding:16px 24px;background:var(--bg-primary);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);}.page-title{font-size:18px;font-weight:600;color:var(--accent-primary);}.header-stats{display:flex;gap:16px;}.stat-pill{font-size:12px;color:var(--text-tertiary);}.stat-pill.ai-pill{color:var(--accent-primary);}.stat-icon{display:none;}.search-container{position:relative;padding:16px 24px;}.search-icon{position:absolute;left:36px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text-tertiary);pointer-events:none;}.search-input{width:100%;padding:10px 16px 10px 44px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;outline:none;transition:all 0.15s ease;}.search-input:focus{border-color:var(--accent-primary);background:var(--bg-tertiary);}.search-input::placeholder{color:var(--text-tertiary);}.search-clear{position:absolute;right:36px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:20px;cursor:pointer;border-radius:4px;transition:all 0.15s ease;user-select:none;}.search-clear:hover{background:var(--bg-hover);color:var(--text-primary);}.search-input-new{width:100%;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;}.search-input-new:focus{outline:none;border-color:var(--accent-primary);}.search-input-new::placeholder{color:var(--text-tertiary);}.search-clear{display:none;}.classes-grid{flex:1;overflow:hidden;display:flex;flex-direction:column;}.virtual-scroll-container{flex:1;overflow-y:auto;background:var(--bg-primary);}.virtual-scroll-container::-webkit-scrollbar{width:10px;}.virtual-scroll-container::-webkit-scrollbar-track{background:var(--bg-primary);}.virtual-scroll-container::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:5px;}.virtual-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--bg-hover);}.class-card{padding:12px 24px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background 0.15s ease;}.class-card:hover{background:var(--bg-secondary);}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}.class-name-new{font-size:14px;font-weight:500;color:var(--text-primary);}.highlight{background:#facc15;color:#000;padding:2px 4px;border-radius:3px;font-weight:600;}.card-arrow{display:none;}.card-meta{display:flex;gap:12px;font-size:12px;}.meta-tag{display:inline-flex;align-items:center;gap:4px;color:var(--text-tertiary);}.tag-icon{display:none;}.match-tag{color:var(--accent-primary);font-weight:500;}.parent-tag{color:var(--orange);}.members-tag{color:var(--text-tertiary);}.size-tag{color:var(--text-tertiary);font-family:'Consolas',monospace;}.class-detail-new{flex:1;display:flex;flex-direction:column;overflow:hidden;}.detail-header-new{padding:20px 24px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);}.back-button{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);font-size:12px;cursor:pointer;margin-bottom:12px;}.back-button:hover{background:var(--bg-tertiary);color:var(--text-primary);}.back-button svg{width:14px;height:14px;stroke-width:2;}.detail-title-section{display:flex;align-items:center;gap:12px;}.detail-title-new{font-size:20px;font-weight:600;color:var(--accent-primary);}.icon-btn{width:32px;height:32px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;}.icon-btn:hover{background:var(--bg-tertiary);color:var(--accent-primary);}.icon-btn svg{width:16px;height:16px;stroke-width:2;}.detail-tabs{display:flex;gap:4px;padding:0 24px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);}.tab-btn{padding:12px 24px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-tertiary);font-size:13px;font-weight:500;cursor:pointer;transition:all 0.15s ease;}.tab-btn:hover{color:var(--text-primary);}.tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary);}.detail-info-grid{padding:20px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);}.info-card{display:flex;flex-direction:column;gap:4px;}.info-card-icon{display:none;}.info-card-content{display:flex;flex-direction:column;}.info-card-label{font-size:11px;color:var(--text-tertiary);text-transform:lowercase;}.info-card-value{font-size:14px;color:var(--text-primary);font-weight:500;}.parent-link-new{color:var(--orange);}.members-table-new{flex:1;overflow-y:auto;background:var(--bg-primary);}.table-header-new{position:sticky;top:0;display:grid;grid-template-columns:200px 1fr 120px 100px 60px;gap:16px;padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-size:11px;color:var(--text-tertiary);font-weight:500;z-index:10;}.table-row-new{display:grid;grid-template-columns:200px 1fr 120px 100px 60px;gap:16px;padding:12px 24px;border-bottom:1px solid var(--border-color);transition:background 0.15s ease;}.table-row-new:hover{background:var(--bg-secondary);}.table-col-new{display:flex;align-items:center;font-size:13px;overflow:hidden;}.type-badge-new{color:var(--cyan);font-family:'Consolas',monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.type-badge-new.clickable{cursor:pointer;}.type-badge-new.clickable:hover{text-decoration:underline;}.member-name-new{color:var(--text-primary);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.offset-value-new{color:var(--text-tertiary);font-family:'Consolas',monospace;font-size:12px;}.size-value-new{color:var(--text-tertiary);font-family:'Consolas',monospace;font-size:12px;}.action-btn{width:24px;height:24px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;}.action-btn:hover{color:var(--accent-primary);}.action-btn svg{width:14px;height:14px;stroke-width:2;}.offsets-grid{padding:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;overflow-y:auto;}.offsets-table-container{padding:0 24px 24px 24px;overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 240px);}.offsets-table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:8px;overflow:hidden;}.offsets-table thead{background:var(--bg-primary);position:sticky;top:0;z-index:10;}.offsets-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:0.5px;border-bottom:1px solid var(--border-color);}.offsets-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color 0.15s ease;}.offsets-table tbody tr:hover{background:var(--bg-primary);}.offsets-table tbody tr:last-child{border-bottom:none;}.offsets-table td{padding:12px 16px;font-size:13px;color:var(--text-secondary);}.offset-member-name{font-weight:600;color:var(--text-primary);font-family:'Courier New',monospace;}.offset-class-name{color:var(--text-secondary);}.offset-type{color:var(--text-tertiary);font-family:'Courier New',monospace;font-size:12px;}.offset-value{font-weight:500;}.offset-size{color:var(--text-tertiary);font-size:12px;}.offset-description{color:var(--text-secondary);font-size:12px;font-style:italic;line-height:1.3;}.add-offset-btn{padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all 0.15s ease;}.add-offset-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);}.personal-offsets-list{padding:24px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:calc(100vh - 200px);}.personal-offset-item{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;transition:all 0.15s ease;}.personal-offset-item:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);}.personal-offset-info{display:flex;flex-direction:column;gap:4px;flex:1;}.personal-offset-name{font-size:14px;font-weight:600;color:var(--text-primary);}.personal-offset-value{font-family:'Courier New',monospace;font-size:13px;color:var(--accent-primary);}.personal-offset-desc{font-size:12px;color:var(--text-tertiary);}.personal-offset-actions{display:flex;gap:8px;}.personal-action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all 0.15s ease;}.personal-action-btn svg{width:16px;height:16px;color:var(--text-secondary);}.personal-action-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);}.personal-action-btn:hover svg{color:var(--text-primary);}.offset-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:16px;}.offset-card:hover{border-color:var(--accent-primary);}.offset-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}.offset-name{font-size:12px;font-weight:600;color:var(--text-primary);font-family:'Consolas',monospace;}.icon-btn-small{width:24px;height:24px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;}.icon-btn-small:hover{color:var(--accent-primary);}.icon-btn-small svg{width:14px;height:14px;stroke-width:2;}.offset-value{font-size:16px;font-weight:600;color:var(--accent-primary);font-family:'Consolas',monospace;}.offset-description{font-size:11px;color:var(--text-tertiary);margin-top:4px;}.ai-container{display:flex;gap:20px;padding:24px;height:100%;overflow:hidden;}.ai-chat{flex:1;display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;overflow:hidden;}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;}.chat-message{display:flex;gap:12px;}.message-avatar{width:32px;height:32px;border-radius:6px;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;flex-shrink:0;}.message-avatar svg{width:16px;height:16px;stroke:var(--text-tertiary);stroke-width:2;}.chat-message.assistant .message-avatar{background:var(--accent-primary);}.chat-message.assistant .message-avatar svg{stroke:#000;}.message-content{flex:1;}.message-text{background:var(--bg-tertiary);padding:12px 14px;border-radius:6px;color:var(--text-primary);font-size:13px;line-height:1.5;}.copy-code-btn{margin-top:8px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}.copy-code-btn:hover{background:var(--bg-hover);color:var(--accent-primary);}.copy-code-btn svg{width:12px;height:12px;stroke-width:2;}.typing-indicator{display:flex;gap:4px;}.typing-indicator span{width:6px;height:6px;background:var(--text-tertiary);border-radius:50%;animation:typing 1.4s infinite;}.typing-indicator span:nth-child(2){animation-delay:0.2s;}.typing-indicator span:nth-child(3){animation-delay:0.4s;}@keyframes typing{0%,60%,100%{transform:translateY(0);}30%{transform:translateY(-6px);}}.chat-input-container{display:flex;gap:12px;padding:16px;border-top:1px solid var(--border-color);}.chat-input{flex:1;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:13px;}.chat-input:focus{outline:none;border-color:var(--accent-primary);}.send-btn{width:40px;height:40px;background:var(--accent-primary);border:none;border-radius:4px;color:#000;cursor:pointer;display:flex;align-items:center;justify-content:center;}.send-btn:disabled{opacity:0.5;cursor:not-allowed;}.send-btn:hover:not(:disabled){background:var(--accent-secondary);}.send-btn svg{width:16px;height:16px;stroke-width:2;}.ai-suggestions{width:280px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:20px;overflow-y:auto;}.suggestions-title{font-size:12px;font-weight:600;color:var(--text-primary);margin-bottom:12px;}.suggestion-btn{width:100%;text-align:left;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);font-size:12px;cursor:pointer;margin-bottom:8px;}.suggestion-btn:hover{background:var(--bg-hover);color:var(--text-primary);}.loading-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top:3px solid var(--accent-primary);border-radius:50%;animation:spin 0.8s linear infinite;}@keyframes spin{to{transform:rotate(360deg);}}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;}.empty-icon{width:48px;height:48px;stroke:var(--text-tertiary);stroke-width:1.5;}.empty-state h3{font-size:16px;font-weight:500;color:var(--text-secondary);}.empty-state p{font-size:13px;color:var(--text-tertiary);}.error-banner{display:flex;align-items:center;gap:12px;margin:16px 24px;padding:12px 16px;background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);border-radius:4px;color:#ef4444;font-size:13px;}.error-icon{width:20px;height:20px;stroke-width:2;}