:root{--color-primary:#d4940a;--color-primary-light:#e5a000;--color-primary-lighter:#f5c842;--color-primary-dark:#b37a00;--color-primary-gradient:linear-gradient(135deg,#e5a000 0%,#d4940a 100%);--color-accent:#e5a000;--color-accent-hover:#d4940a;--color-accent-light:#e5a0001a;--color-success:#22c55e;--color-success-light:#dcfce7;--color-success-dark:#166534;--color-error:#ef4444;--color-error-light:#fee2e2;--color-error-dark:#991b1b;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-warning-dark:#92400e;--color-info:#3b82f6;--color-info-light:#dbeafe;--color-info-dark:#1e40af;--color-admin:#805ad5;--color-admin-light:#e9d8fd;--color-admin-gradient:linear-gradient(135deg,#9f7aea 0%,#805ad5 100%);--color-text-primary:#1a1a1a;--color-text-secondary:#4a4a4a;--color-text-muted:#8a8a8a;--color-text-inverse:#fff;--color-text-link:#d4940a;--color-bg-primary:#fff;--color-bg-secondary:#f9f9f5;--color-bg-tertiary:#f3f3ec;--color-bg-sidebar:#f9f9f5;--color-bg-hover:#efefe8;--color-bg-dark:#1f2937;--color-bg-overlay:#00000080;--color-bg-overlay-light:#0000004d;--color-border:#e8e8e0;--color-border-light:#f0f0e8;--color-border-dark:#d8d8d0;--color-border-focus:#d4940a;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:40px;--spacing-3xl:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 10px 40px #0000001f;--shadow-xl:0 20px 60px #00000026;--shadow-primary:0 4px 12px #d4940a40;--shadow-hover:0 2px 8px #00000014;--font-family-base:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-family-mono:"SF Mono","Consolas","Monaco","Courier New",monospace;--font-size-xs:11px;--font-size-sm:13px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-3xl:24px;--font-size-4xl:28px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.6;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--transition-slower:.5s ease;--z-dropdown:100;--z-sticky:500;--z-fixed:1000;--z-modal-backdrop:9999;--z-modal:10000;--z-toast:10001;--z-context-menu:10002;--sidebar-width:280px;--sidebar-width-collapsed:60px;--admin-sidebar-width:260px;--header-height:56px;--settings-panel-width:350px;--chat-input-max-width:800px}[data-theme=dark]{--color-primary:#e5a000;--color-primary-light:#f5c842;--color-primary-lighter:#ffd966;--color-primary-dark:#d4940a;--color-primary-gradient:linear-gradient(135deg,#e5a000 0%,#f5c842 100%);--color-accent:#f5c842;--color-accent-hover:#e5a000;--color-accent-light:#f5c84226;--color-text-primary:#f5f5f0;--color-text-secondary:#c8c8c0;--color-text-muted:#8a8a80;--color-text-inverse:#1a1a1a;--color-text-link:#f5c842;--color-bg-primary:#1a1a18;--color-bg-secondary:#252522;--color-bg-tertiary:#2f2f2a;--color-bg-sidebar:#1f1f1c;--color-bg-hover:#3a3a34;--color-bg-dark:#0f0f0d;--color-bg-overlay:#000000b3;--color-bg-overlay-light:#00000080;--color-border:#3a3a34;--color-border-light:#2f2f2a;--color-border-dark:#4a4a44;--color-border-focus:#e5a000;--shadow-xs:0 1px 2px #0003;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 10px 40px #00000080;--shadow-xl:0 20px 60px #0009;--shadow-primary:0 4px 12px #e5a0004d;--shadow-hover:0 2px 8px #0000004d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#e5a000;--color-primary-light:#f5c842;--color-primary-lighter:#ffd966;--color-primary-dark:#d4940a;--color-primary-gradient:linear-gradient(135deg,#e5a000 0%,#f5c842 100%);--color-accent:#f5c842;--color-accent-hover:#e5a000;--color-accent-light:#f5c84226;--color-text-primary:#f5f5f0;--color-text-secondary:#c8c8c0;--color-text-muted:#8a8a80;--color-text-inverse:#1a1a1a;--color-text-link:#f5c842;--color-bg-primary:#1a1a18;--color-bg-secondary:#252522;--color-bg-tertiary:#2f2f2a;--color-bg-sidebar:#1f1f1c;--color-bg-hover:#3a3a34;--color-bg-dark:#0f0f0d;--color-bg-overlay:#000000b3;--color-bg-overlay-light:#00000080;--color-border:#3a3a34;--color-border-light:#2f2f2a;--color-border-dark:#4a4a44;--color-border-focus:#e5a000;--shadow-xs:0 1px 2px #0003;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 10px 40px #00000080;--shadow-xl:0 20px 60px #0009;--shadow-primary:0 4px 12px #e5a0004d;--shadow-hover:0 2px 8px #0000004d}}[data-theme=teal]{--color-primary:#074755;--color-primary-light:#538c98;--color-primary-lighter:#a2d7db;--color-primary-dark:#053d49;--color-primary-gradient:linear-gradient(135deg,#538c98 0%,#a2d7db 100%);--color-accent:#074755;--color-accent-hover:#538c98;--color-accent-light:#0747551a;--color-text-link:#074755;--color-border-focus:#074755;--shadow-primary:0 4px 12px #0747554d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none;font-size:16px}html,body{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-width:320px}#root{width:100%;height:100%}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-inverse)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{line-height:var(--line-height-relaxed);margin:0}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-light)}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.6}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background-color:#0000;border:none;outline:none}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}ul,ol{list-style:none}img,svg,video{max-width:100%;height:auto;display:block}table{border-collapse:collapse;border-spacing:0}hr{border:none;border-top:1px solid var(--color-border)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-primary-lighter);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-light)}*{scrollbar-width:thin;scrollbar-color:var(--color-primary-lighter)var(--color-bg-secondary)}::selection{background-color:var(--color-primary-lighter);color:var(--color-primary-dark)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes typing{0%,60%,to{opacity:.7;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-spin{animation:1s linear infinite spin}.animate-fade-in{animation:fadeIn var(--transition-slow)ease-out}.animate-slide-up{animation:slideUp var(--transition-slow)ease-out}.animate-slide-down{animation:slideDown var(--transition-slow)ease-out}.animate-slide-in-left{animation:slideInLeft var(--transition-slow)ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-slow)ease-out}.animate-bounce{animation:1s ease-in-out infinite bounce}.animate-pulse{animation:1s ease-in-out infinite pulse}.animate-shake{animation:.5s ease-in-out shake}.animate-scale-in{animation:scaleIn var(--transition-slow)ease-out}.spinner-sm{border-width:2px;width:24px;height:24px}.spinner-lg{border-width:4px;width:48px;height:48px}.spinner-light{border-color:#fff #ffffff4d #ffffff4d}.typing-dots{background:var(--color-bg-primary);border-radius:var(--radius-2xl);gap:5px;padding:12px 16px;display:flex}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);border:none;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn svg{stroke:currentColor;flex-shrink:0;width:18px;height:18px}.btn-sm{padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--font-size-sm)}.btn-sm svg{width:16px;height:16px}.btn-lg{padding:12px var(--spacing-lg);font-size:var(--font-size-lg)}.btn-lg svg{width:20px;height:20px}.btn-block{width:100%}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary-gradient{background:var(--color-primary-gradient);color:var(--color-text-inverse)}.btn-primary-gradient:hover:not(:disabled){opacity:.9;box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:var(--color-border-dark)}.btn-outline{color:var(--color-primary);border:2px solid var(--color-primary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-primary);color:var(--color-text-inverse)}.btn-outline-light{color:var(--color-text-inverse);background:0 0;border:1px solid #ffffff4d}.btn-outline-light:hover:not(:disabled){background:#fff3}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-danger{background:var(--color-error);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background:var(--color-error-dark)}.btn-danger-outline{color:var(--color-error);border:2px solid var(--color-error);background:0 0}.btn-danger-outline:hover:not(:disabled){background:var(--color-error);color:var(--color-text-inverse)}.btn-success{background:var(--color-success);color:var(--color-text-inverse)}.btn-success:hover:not(:disabled){background:var(--color-success-dark)}.btn-success-light{background:var(--color-success-light);color:var(--color-success-dark)}.btn-success-light:hover:not(:disabled){background:var(--color-success);color:var(--color-text-inverse)}.btn-warning{background:var(--color-warning);color:var(--color-text-inverse)}.btn-warning:hover:not(:disabled){background:var(--color-warning-dark)}.btn-link{color:var(--color-primary);background:0 0;padding:0;text-decoration:underline}.btn-link:hover:not(:disabled){color:var(--color-primary-light)}.btn-icon{border-radius:var(--radius-md);width:36px;height:36px;padding:0}.btn-icon-sm{width:28px;height:28px}.btn-icon-lg{width:44px;height:44px}.btn-icon-round{border-radius:var(--radius-full)}.btn-group{gap:var(--spacing-sm);display:flex}.btn-group-vertical{flex-direction:column}.btn-loading{pointer-events:none;position:relative;color:#0000!important}.btn-loading:after{content:"";border-radius:var(--radius-full);border:2px solid;border-top-color:#0000;width:16px;height:16px;animation:1s linear infinite spin;position:absolute}.form-group-sm{margin-bottom:var(--spacing-md)}.form-label{margin-bottom:var(--spacing-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);display:block}.form-label-required:after{content:" *";color:var(--color-error)}.form-label-sm{font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.form-label-uppercase{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;font-weight:var(--font-weight-semibold)}.form-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:var(--font-size-lg);background:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-base),box-shadow var(--transition-base);padding:12px;font-family:inherit}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0747551a}.form-input:disabled{background:var(--color-bg-secondary);color:var(--color-text-muted);cursor:not-allowed}.form-input::placeholder{color:var(--color-text-muted)}.form-input-sm{padding:var(--spacing-sm)10px;font-size:var(--font-size-base)}.form-input-lg{padding:14px var(--spacing-md);font-size:var(--font-size-xl)}.form-input-error{border-color:var(--color-error)}.form-input-error:focus{box-shadow:0 0 0 3px #ef44441a}.form-input-success{border-color:var(--color-success)}.form-textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-size:var(--font-size-base);background:var(--color-bg-primary);color:var(--color-text-primary);resize:vertical;min-height:100px;transition:border-color var(--transition-base),box-shadow var(--transition-base);padding:12px;font-family:inherit}.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0747551a}.form-select{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-size:var(--font-size-base);background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;appearance:none;transition:border-color var(--transition-base);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding:10px 36px 10px 12px;font-family:inherit}.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0747551a}.form-select:disabled{background-color:var(--color-bg-secondary);cursor:not-allowed}.form-checkbox{cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-primary);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.form-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary);flex-shrink:0}.form-checkbox-sm input[type=checkbox]{width:16px;height:16px}.form-radio{cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-primary);align-items:center;gap:10px;display:flex}.form-radio input[type=radio]{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary)}.form-error{color:var(--color-error-dark);background-color:var(--color-error-light);border-radius:var(--radius-sm);font-size:var(--font-size-base);margin-bottom:15px;padding:10px}.form-error-text{font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--spacing-xs)}.form-help{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-xs)}.form-search{align-items:center;gap:var(--spacing-sm);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);transition:border-color var(--transition-base);padding:10px 12px;display:flex}.form-search:focus-within{border-color:var(--color-primary)}.form-search svg{stroke:var(--color-text-muted);flex-shrink:0}.form-search input{font-size:var(--font-size-base);color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1}.form-search input::placeholder{color:var(--color-text-muted)}.form-inline{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.form-inline .form-group{margin-bottom:0}.filter-group{flex-direction:column;gap:6px;display:flex}.filter-group .form-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;margin-bottom:0}.filter-group .form-input,.filter-group .form-select{min-width:140px}.badge{padding:var(--spacing-xs)10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.badge-sm{padding:2px var(--spacing-sm);font-size:10px}.badge-lg{font-size:var(--font-size-sm);padding:6px 14px}.badge-primary{color:var(--color-primary);background:#0747551a}.badge-secondary{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge-success{background:var(--color-success-light);color:var(--color-success-dark)}.badge-error{background:var(--color-error-light);color:var(--color-error-dark)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.badge-info{background:var(--color-info-light);color:var(--color-info-dark)}.badge-admin{background:var(--color-admin-light);color:var(--color-admin)}.badge-pending{background:var(--color-warning-light);color:var(--color-warning-dark)}.badge-approved{background:var(--color-success-light);color:var(--color-success-dark)}.badge-rejected{background:var(--color-error-light);color:var(--color-error-dark)}.badge-user{background:var(--color-info-light);color:var(--color-info-dark)}.badge-round{border-radius:var(--radius-full);text-align:center;justify-content:center;min-width:20px;height:20px;padding:0 6px}.badge-round-sm{min-width:16px;height:16px;font-size:10px}.badge-notification{background:var(--color-error);color:var(--color-text-inverse);border-radius:var(--radius-full);min-width:18px;height:18px;font-size:10px;font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;padding:0 5px;display:flex}.badge-dot{border-radius:var(--radius-full);width:8px;height:8px;padding:0}.badge-dot-success{background:var(--color-success)}.badge-dot-error{background:var(--color-error)}.badge-dot-warning{background:var(--color-warning)}.badge-dot-info{background:var(--color-info)}.badge-outline{background:0 0;border:1px solid}.badge-outline-primary{color:var(--color-primary);border-color:var(--color-primary)}.badge-outline-success{color:var(--color-success);border-color:var(--color-success)}.badge-outline-error{color:var(--color-error);border-color:var(--color-error)}.card{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-bordered{border:1px solid var(--color-border);box-shadow:none}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.card-header-gradient{background:var(--color-primary-gradient);color:var(--color-text-inverse);border-bottom:none}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0}.card-body{padding:var(--spacing-lg)}.card-body-sm{padding:var(--spacing-md)}.card-body-lg{padding:var(--spacing-xl)}.card-footer{padding:var(--spacing-md)var(--spacing-lg);border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.profile-card{text-align:center;padding:var(--spacing-lg)}.profile-avatar{border-radius:var(--radius-full);background:var(--color-primary-gradient);width:80px;height:80px;color:var(--color-text-inverse);font-size:32px;font-weight:var(--font-weight-semibold);margin:0 auto var(--spacing-md);justify-content:center;align-items:center;display:flex}.profile-avatar-sm{width:48px;height:48px;font-size:20px}.profile-avatar-lg{width:120px;height:120px;font-size:48px}.profile-name{margin:0 0 var(--spacing-xs);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.profile-role{font-size:var(--font-size-base);color:var(--color-text-secondary)}.info-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md)}.info-item{border-bottom:1px solid var(--color-border);padding:12px 0}.info-item:last-child{border-bottom:none}.info-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-xs);display:block}.info-value{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.tool-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base);flex-direction:column;display:flex}.tool-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary);transform:translateY(-4px)}.tool-icon{margin-bottom:var(--spacing-md);font-size:2.5rem}.tool-name{font-size:1.1rem;font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-sm)0;color:var(--color-primary);font-family:var(--font-family-mono)}.tool-desc{color:var(--color-text-secondary);font-size:.9rem;line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-lg);flex-grow:1}.tool-footer{justify-content:space-between;align-items:center;display:flex}.empty-card{text-align:center;padding:var(--spacing-3xl)var(--spacing-lg);color:var(--color-text-secondary)}.empty-icon{margin-bottom:var(--spacing-md);font-size:48px}.empty-title{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.empty-hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.modal-overlay{background:var(--color-bg-overlay);z-index:var(--z-modal);animation:fadeIn var(--transition-base);padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay-light{background:var(--color-bg-overlay-light)}.modal-overlay-dark{background:#000c}.modal{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:480px;max-height:90vh;animation:slideUp var(--transition-slow);flex-direction:column;display:flex;overflow:hidden}.modal-sm{max-width:360px}.modal-lg{max-width:640px}.modal-xl{max-width:900px}.modal-full{border-radius:0;max-width:100%;max-height:100vh}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-header h3,.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);font-size:var(--font-size-3xl);transition:all var(--transition-base);justify-content:center;align-items:center;line-height:1;display:flex}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-body{padding:var(--spacing-lg);flex:1;overflow-y:auto}.modal-body p{margin:0 0 var(--spacing-md)0;color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.modal-body p:last-child{margin-bottom:0}.modal-footer{padding:var(--spacing-md)var(--spacing-lg);border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;gap:12px;display:flex}.modal-footer-left{justify-content:flex-start}.modal-footer-center{justify-content:center}.modal-footer-between{justify-content:space-between}.modal-btn{padding:10px var(--spacing-lg);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);transition:all var(--transition-base)}.modal-btn-cancel{background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary)}.modal-btn-cancel:hover{background:var(--color-bg-tertiary)}.modal-btn-confirm{background:var(--color-primary);color:var(--color-text-inverse)}.modal-btn-confirm:hover:not(:disabled){background:var(--color-primary-dark)}.modal-btn-danger{background:var(--color-error);color:var(--color-text-inverse)}.modal-btn-danger:hover:not(:disabled){background:var(--color-error-dark)}.modal-warning{font-size:var(--font-size-base);color:var(--color-error)!important}@media (max-width:768px){.modal-overlay{padding:0}.modal{border-radius:0;max-width:100%;max-height:100vh}.modal-header,.modal-body,.modal-footer{padding:var(--spacing-md)}}.table-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table-container-scrollable{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{padding:14px var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.table th{background:var(--color-bg-secondary);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px}.table td{color:var(--color-text-primary);font-size:var(--font-size-base)}.table tbody tr:hover{background:var(--color-bg-secondary)}.table tbody tr:last-child td{border-bottom:none}.table-sm th,.table-sm td{font-size:var(--font-size-sm);padding:10px 12px}.table-lg th,.table-lg td{padding:var(--spacing-md)var(--spacing-lg)}.table-striped tbody tr:nth-child(2n){background:var(--color-bg-tertiary)}.table-striped tbody tr:nth-child(2n):hover{background:var(--color-bg-secondary)}.table-bordered,.table-bordered th,.table-bordered td{border:1px solid var(--color-border)}.table-cell-id{font-weight:var(--font-weight-medium);color:var(--color-primary)}.table-cell-actions{gap:var(--spacing-sm);align-items:center;display:flex}.table-cell-empty{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-2xl)!important}.table-cell-center{text-align:center}.table-cell-right{text-align:right}.table-fixed-header{position:relative}.table-fixed-header th{z-index:1;position:sticky;top:0}.table-action-btn{border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:all var(--transition-base);padding:6px 10px}.table-action-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--color-bg-primary);color:var(--color-text-primary);padding:6px 10px}.table-action-select:focus{border-color:var(--color-primary)}.table-delete-btn{font-size:var(--font-size-lg);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-xs);color:var(--color-error);transition:background var(--transition-base)}.table-delete-btn:hover:not(:disabled){background:var(--color-error-light)}.table-pagination{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg)0;display:flex}.table-pagination button{padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.table-pagination button:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-border-dark)}.table-pagination-info{color:var(--color-text-secondary);font-size:var(--font-size-base)}@media (max-width:768px){.table-responsive{width:100%;display:block;overflow-x:auto}.table-responsive .table{min-width:600px}}.auth-container,.login-container,.signup-container{background:var(--color-bg-secondary);min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.auth-card,.login-card,.signup-card{background:var(--color-bg-primary);border-radius:var(--radius-2xl);padding:var(--spacing-2xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.auth-card h2,.login-card h2,.signup-card h2{margin:0 0 var(--spacing-xl)0;color:var(--color-text-primary);text-align:center;font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold)}.auth-form-group,.form-group{margin-bottom:var(--spacing-lg)}.auth-form-group label,.form-group label{margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);display:block}.auth-form-group input,.form-group input{border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;font-size:var(--font-size-md);background:var(--color-bg-secondary);color:var(--color-text-primary);transition:all var(--transition-base);box-sizing:border-box;padding:12px 14px}.auth-form-group input:focus,.form-group input:focus{border-color:var(--color-primary);background:var(--color-bg-primary);box-shadow:0 0 0 3px var(--color-accent-light);outline:none}.auth-form-group input::placeholder,.form-group input::placeholder{color:var(--color-text-muted)}.auth-error,.error-message{color:var(--color-error-dark);margin-bottom:var(--spacing-md);background-color:var(--color-error-light);border-radius:var(--radius-lg);font-size:var(--font-size-sm);border:1px solid var(--color-error);padding:12px 14px}.auth-submit,.submit-button{background:var(--color-primary);width:100%;color:var(--color-text-inverse);border-radius:var(--radius-lg);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);transition:all var(--transition-base);margin-top:var(--spacing-sm);cursor:pointer;border:none;padding:12px}.auth-submit:hover:not(:disabled),.submit-button:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.auth-submit:disabled,.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-switch,.switch-auth{margin-top:var(--spacing-lg);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-link,.link-button{color:var(--color-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-base);background:0 0;border:none;margin-left:4px}.auth-link:hover,.link-button:hover{color:var(--color-primary-dark);text-decoration:underline}.auth-card.success-card,.signup-card.success-card{text-align:center}.auth-card.success-card h2,.signup-card.success-card h2{color:var(--color-success);margin-bottom:var(--spacing-md)}.auth-success-icon,.success-icon{margin-bottom:var(--spacing-md);font-size:64px}.auth-success-message,.success-message{font-size:var(--font-size-lg);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.auth-pending-notice,.pending-notice{font-size:var(--font-size-md);color:var(--color-primary);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-sm)}.auth-pending-info,.pending-info{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.auth-loading{background:var(--color-bg-secondary);justify-content:center;align-items:center;min-height:100vh;display:flex}.App{background:var(--color-bg-secondary);height:100vh;display:flex;overflow:hidden}.chat-container{background:var(--color-bg-primary);height:100%;transition:margin-left var(--transition-slow);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.chat-body{flex:1;display:flex;overflow:hidden}.chat-messages-area{min-width:0;transition:flex var(--transition-base);flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-container.detail-open .chat-messages-area{flex:1}@media (min-width:769px){.chat-container.sidebar-open{margin-left:0}}.main-content{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.settings-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;animation:.2s ease-out fadeIn;display:block;position:fixed;inset:0}.pending-container{background:var(--color-bg-secondary);min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.pending-container.rejected{background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%)}.pending-card{background:var(--color-bg-primary);border-radius:var(--radius-2xl);padding:var(--spacing-2xl);text-align:center;width:100%;max-width:450px;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);animation:slideUp var(--transition-slower)}.pending-icon{margin-bottom:var(--spacing-lg);font-size:64px}.pending-card h2{color:var(--color-primary);margin-bottom:var(--spacing-md);font-size:1.8rem}.rejected .pending-card h2{color:var(--color-error)}.pending-card p{color:var(--color-text-secondary);font-size:1rem;line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-sm)}.pending-card .pending-info{color:var(--color-text-muted);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);font-size:.9rem}.pending-card .logout-button{margin-top:var(--spacing-lg);background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-full);font-size:1rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-slow);border:none;padding:12px 24px}.rejected .pending-card .logout-button{background:var(--color-error)}.pending-card .logout-button:hover{box-shadow:var(--shadow-primary);transform:translateY(-2px)}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.prompt-settings-modal{z-index:1001;background:var(--color-bg-primary);border-radius:var(--radius-xl);border:1px solid var(--color-border);width:90%;max-width:600px;max-height:85vh;animation:.2s ease-out modalSlideIn;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 25px 50px -12px #00000040}@keyframes modalSlideIn{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}@media (max-width:768px){.prompt-settings-modal{border-radius:var(--radius-xl)var(--radius-xl)0 0;width:95%;max-height:90vh;animation:.3s ease-out modalSlideUp;inset:auto 0 0;transform:none}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}}.tools-settings-modal{z-index:1001;background:var(--color-bg-primary);border-radius:var(--radius-xl);border:1px solid var(--color-border);flex-direction:column;width:90%;max-width:700px;height:85vh;max-height:85vh;animation:.2s ease-out modalSlideIn;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 25px 50px -12px #00000040}@media (max-width:768px){.tools-settings-modal{border-radius:var(--radius-xl)var(--radius-xl)0 0;width:95%;max-height:90vh;animation:.3s ease-out modalSlideUp;inset:auto 0 0;transform:none}}.project-settings-modal{z-index:1001;background:var(--color-bg-primary);border-radius:var(--radius-xl);border:1px solid var(--color-border);width:90%;max-width:700px;max-height:85vh;animation:.2s ease-out modalSlideIn;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 25px 50px -12px #00000040}@media (max-width:768px){.project-settings-modal{border-radius:var(--radius-xl)var(--radius-xl)0 0;width:95%;max-height:90vh;animation:.3s ease-out modalSlideUp;inset:auto 0 0;transform:none}}.download-files-container{position:relative}.download-files-btn{width:36px;height:36px;color:var(--color-text-muted);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.download-files-btn:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-hover)}.download-files-btn.active{color:var(--color-primary);background:var(--color-accent-light)}.download-files-btn.has-files{color:var(--color-primary)}.download-files-btn:disabled{opacity:.4;cursor:not-allowed}.file-count-badge{background:var(--color-primary);min-width:16px;height:16px;color:var(--color-text-inverse);font-size:10px;font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);justify-content:center;align-items:center;padding:0 4px;display:flex;position:absolute;top:2px;right:2px}.download-files-popup{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:320px;max-height:400px;box-shadow:var(--shadow-lg);z-index:1000;animation:.2s ease-out slideUp;position:absolute;bottom:calc(100% + 8px);left:0;overflow:hidden}@media (max-width:480px){.download-files-popup{width:calc(100vw - 32px);left:50%;transform:translate(-50%)}}.popup-header{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.popup-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.popup-refresh-btn{width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.popup-refresh-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.popup-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.popup-content{max-height:340px;overflow-y:auto}.popup-loading{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl);color:var(--color-text-muted);font-size:var(--font-size-sm);flex-direction:column;display:flex}.loading-spinner{font-size:24px;animation:1s linear infinite spin}.popup-empty{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl);color:var(--color-text-muted);text-align:center;font-size:var(--font-size-sm);flex-direction:column;display:flex}.empty-icon{opacity:.5;font-size:32px}.files-list{padding:var(--spacing-sm)}.file-item{border-radius:var(--radius-md);transition:all var(--transition-base);align-items:center;gap:10px;padding:10px 12px;display:flex}.file-item:hover{background:var(--color-bg-hover)}.file-item.downloading{opacity:.7}.file-icon{flex-shrink:0;font-size:20px}.file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.file-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.file-download-btn{background:var(--color-primary);width:32px;height:32px;color:var(--color-text-inverse);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.file-download-btn:hover:not(:disabled){background:var(--color-primary-dark)}.file-download-btn:disabled{cursor:not-allowed;opacity:.6}.chat-input-wrapper{padding:var(--spacing-md)var(--spacing-lg)var(--spacing-lg);background:var(--color-bg-primary);border-top:1px solid var(--color-border-light)}.chat-input-inner{max-width:var(--chat-input-max-width);margin:0 auto}.attached-files{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.attached-file{align-items:center;gap:var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);padding:6px 10px;display:flex}.attached-file .file-icon{font-size:16px}.attached-file .file-details{flex-direction:column;gap:2px;display:flex}.attached-file .file-name{color:var(--color-text-primary);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.attached-file .file-size{font-size:var(--font-size-xs);color:var(--color-text-muted)}.attached-file .remove-file{width:20px;height:20px;color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.attached-file .remove-file:hover{background:var(--color-error-light);color:var(--color-error)}.input-form{align-items:flex-end;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);transition:all var(--transition-base);display:flex;position:relative}.input-form:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-accent-light)}.input-form.dragging{border-color:var(--color-primary);background:var(--color-accent-light);border-style:dashed}.input-form.disabled{opacity:.6;cursor:not-allowed}.drag-overlay{justify-content:center;align-items:center;gap:var(--spacing-sm);background:var(--color-accent-light);border-radius:var(--radius-2xl);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);z-index:10;flex-direction:column;display:flex;position:absolute;inset:0}.input-actions-left,.input-actions-right{align-items:center;gap:4px;display:flex}.action-btn{width:36px;height:36px;color:var(--color-text-muted);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.action-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.action-btn:disabled{opacity:.4;cursor:not-allowed}.input-form textarea{min-height:36px;max-height:200px;font-size:var(--font-size-md);font-family:inherit;line-height:var(--line-height-normal);color:var(--color-text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;padding:8px 0}.input-form textarea::placeholder{color:var(--color-text-muted)}.input-form textarea:disabled{cursor:not-allowed}.send-btn{background:var(--color-primary);width:36px;height:36px;color:var(--color-text-inverse);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;display:flex}.send-btn:hover:not(:disabled){background:var(--color-primary-dark);transform:scale(1.05)}.send-btn:disabled{background:var(--color-bg-tertiary);color:var(--color-text-muted);cursor:not-allowed;transform:none}.send-btn .spinner{animation:1s linear infinite spin}@media (max-width:768px){.chat-input-wrapper{padding:var(--spacing-sm)var(--spacing-md)var(--spacing-md)}.input-form{padding:var(--spacing-xs)var(--spacing-sm)}.action-btn,.send-btn{width:32px;height:32px}.input-form textarea{font-size:var(--font-size-base)}}.message{margin-bottom:var(--spacing-md);animation:slideUp var(--transition-slow)ease-out;display:flex}.message.user{justify-content:flex-end}.message.ai{justify-content:flex-start}.message-content{max-width:85%}@media (min-width:769px){.message-content{max-width:75%}}.message-content.has-chart{max-width:95%}@media (min-width:769px){.message-content.has-chart{max-width:85%}}.message-bubble{border-radius:var(--radius-xl);word-wrap:break-word;font-size:var(--font-size-md);line-height:var(--line-height-relaxed);padding:12px 16px}.message.user .message-bubble{background:var(--color-primary);color:var(--color-text-inverse);border-bottom-right-radius:var(--radius-xs)}.message.ai .message-bubble{background:var(--color-bg-secondary);color:var(--color-text-primary);border-bottom-left-radius:var(--radius-xs)}.message.error .message-bubble{background:var(--color-error-light);color:var(--color-error-dark);border:1px solid var(--color-error)}.message-text{white-space:pre-wrap}.message-text.markdown-content{white-space:pre-wrap;word-break:break-word}.message-text.markdown-content strong{font-weight:var(--font-weight-semibold)}.message-text.markdown-content em{font-style:italic}.message-text.markdown-content code.inline-code{border-radius:var(--radius-xs);font-family:var(--font-family-mono);background:#0000000f;padding:2px 6px;font-size:.9em}.message-text.markdown-content .markdown-heading{margin:var(--spacing-md)0 var(--spacing-sm)0;color:var(--color-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.message-text.markdown-content h1.markdown-heading{border-bottom:1px solid var(--color-border);padding-bottom:6px;font-size:1.4em}.message-text.markdown-content h2.markdown-heading{font-size:1.2em}.message-text.markdown-content h3.markdown-heading{font-size:1.1em}.markdown-table-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);margin:12px 0;overflow-x:auto}.markdown-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm);background:var(--color-bg-primary);min-width:max-content}.markdown-table th,.markdown-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:10px 12px}.markdown-table th{background:var(--color-bg-tertiary);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.markdown-table tbody tr:hover{background:var(--color-bg-hover)}.message-files{gap:var(--spacing-sm);flex-direction:column;margin-bottom:12px;display:flex}.message-file-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)10px;border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base);background:#ffffff26;display:flex}.message-file-item:hover{background:#ffffff40}.message.ai .message-file-item{background:var(--color-bg-primary);border:1px solid var(--color-border)}.message.ai .message-file-item:hover{border-color:var(--color-primary)}.message-file-icon{flex-shrink:0;font-size:18px}.message-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.message-file-name{font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.message.user .message-file-name{color:var(--color-text-inverse)}.message.ai .message-file-name{color:var(--color-text-primary)}.message-file-size{font-size:var(--font-size-xs);opacity:.8}.message-file-item.loading{opacity:.7;pointer-events:none}.message-file-loading{animation:1s ease-in-out infinite pulse}.message-time{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-xs);padding:0 var(--spacing-sm)}.message.user .message-time{text-align:right}.message.ai .message-time{text-align:left}.generated-files-section{background:var(--color-accent-light);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-top:16px;padding:12px}.generated-files-header{align-items:center;gap:var(--spacing-sm);border-bottom:1px solid var(--color-border);margin-bottom:10px;padding-bottom:8px;display:flex}.generated-files-icon{font-size:18px}.generated-files-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.generated-files-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.generated-file-item{background:var(--color-bg-primary);border-radius:var(--radius-md);transition:all var(--transition-base);border:1px solid #0000;align-items:center;gap:10px;padding:10px 12px;display:flex}.generated-file-item:hover{border-color:var(--color-primary)}.generated-file-item.downloading{opacity:.7}.generated-file-icon{flex-shrink:0;font-size:20px}.generated-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.generated-file-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.generated-file-size{font-size:var(--font-size-xs);color:var(--color-text-muted)}.generated-file-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.file-type-badge{background:var(--color-primary-light,#e8dcc8);color:var(--color-primary-dark,#8b6914);text-transform:uppercase;letter-spacing:.3px;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.file-type-badge.csv{color:#155724;background:#d4edda}.file-type-badge.pickle{color:#004085;background:#cce5ff}.file-desc{color:var(--color-text-muted);font-size:11px}.generated-files-count{color:var(--color-text-muted);background:#0000000d;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:12px}.generated-file-download-btn{background:var(--color-primary);width:32px;height:32px;color:var(--color-text-inverse);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.generated-file-download-btn:hover:not(:disabled){background:var(--color-primary-dark)}.generated-file-download-btn:disabled{cursor:not-allowed;opacity:.6}.download-spinner{animation:1s linear infinite spin}.message-chart{background:var(--color-bg-primary);border-radius:var(--radius-md);border:1px solid var(--color-border);margin-top:12px;padding:12px}.chart-placeholder{padding:var(--spacing-lg);text-align:center;color:var(--color-text-muted)}.chart-wrapper.clickable,.table-wrapper.clickable{cursor:pointer;border-radius:var(--radius-md);transition:all .2s;position:relative}.chart-wrapper.clickable:hover,.table-wrapper.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.expand-hint{color:#fff;opacity:0;pointer-events:none;background:#000000b3;border-radius:4px;padding:4px 8px;font-size:12px;transition:opacity .2s;position:absolute;top:8px;right:8px}.chart-wrapper.clickable:hover .expand-hint,.table-wrapper.clickable:hover .expand-hint{opacity:1}.code-execution-section{background:var(--color-bg-tertiary,#f0ede6);border:1px solid var(--color-border,#e8e4dc);border-radius:var(--radius-lg);margin-top:12px;padding:14px;transition:all .2s}.code-execution-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.code-execution-header-left,.code-execution-header-right{align-items:center;gap:8px;display:flex}.code-execution-icon{font-size:18px}.code-execution-title{color:var(--color-text-primary,#2c2c2c);font-size:14px;font-weight:600}.code-execution-status{border-radius:12px;padding:3px 10px;font-size:12px;font-weight:500}.code-execution-status.success{color:#155724;background:#d4edda}.code-execution-status.error{color:#721c24;background:#f8d7da}.code-execution-detail-btn{background:var(--color-primary,#c9a227);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:4px 10px;font-size:12px;transition:all .2s}.code-execution-detail-btn:hover{background:var(--color-primary-dark,#a88620)}.code-execution-explanation{background:var(--color-bg-primary,#faf8f5);color:var(--color-text-secondary,#555);border-radius:6px;margin-top:10px;padding:8px 10px;font-size:13px}.code-execution-code-section{margin-top:12px}.code-toggle-btn{background:var(--color-bg-secondary,#f5f2ed);border:1px solid var(--color-border,#e8e4dc);cursor:pointer;text-align:left;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 12px;transition:all .2s;display:flex}.code-toggle-btn:hover{background:var(--color-bg-primary,#faf8f5);border-color:var(--color-primary,#c9a227)}.code-toggle-icon{color:var(--color-text-muted,#888);font-size:10px;transition:transform .2s}.code-toggle-icon.expanded{transform:rotate(90deg)}.code-toggle-label{color:var(--color-text-primary,#2c2c2c);font-size:13px;font-weight:500}.code-lines-count{color:var(--color-text-muted,#888);margin-left:auto;font-size:12px}.code-execution-code{border:1px solid var(--color-border,#e8e4dc);border-radius:8px;margin-top:8px;animation:.2s ease-out slideDown;overflow:hidden}.code-header{background:#2d2d2d;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.code-language{color:#888;font-size:12px;font-weight:500}.code-copy-btn{color:#ccc;cursor:pointer;background:#ffffff1a;border:none;border-radius:4px;padding:4px 8px;font-size:11px;transition:all .2s}.code-copy-btn:hover{color:#fff;background:#fff3}.code-content{background:#1e1e1e;max-height:300px;margin:0;padding:12px;overflow:auto}.code-content code{color:#d4d4d4;white-space:pre;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5}.code-execution-output{border:1px solid var(--color-border,#e8e4dc);border-radius:8px;margin-top:12px;overflow:hidden}.code-execution-output-header{background:var(--color-bg-secondary,#f5f2ed);border-bottom:1px solid var(--color-border,#e8e4dc);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.execution-time{color:var(--color-text-muted,#888);font-size:12px;font-weight:400}.code-execution-output-content{background:var(--color-bg-primary,#faf8f5);white-space:pre-wrap;word-break:break-word;max-height:200px;color:var(--color-text-secondary,#444);margin:0;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.code-execution-error{border:1px solid #f5c6cb;border-radius:8px;margin-top:12px;overflow:hidden}.code-execution-error-header{color:#721c24;background:#f8d7da;border-bottom:1px solid #f5c6cb;padding:8px 12px;font-size:13px;font-weight:500}.code-execution-error-content{white-space:pre-wrap;word-break:break-word;color:#721c24;background:#fff5f5;max-height:150px;margin:0;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.generated-images-section{border:1px solid var(--color-border,#e8e4dc);background:linear-gradient(135deg,#fdfcfb 0%,#f5f2ed 100%);border-radius:12px;margin-top:16px;padding:12px;box-shadow:0 2px 8px #0000000a}.generated-images-header{border-bottom:1px solid var(--color-border,#e8e4dc);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;display:flex}.generated-images-icon{font-size:18px}.generated-images-title{color:var(--color-text-primary,#333);font-size:14px;font-weight:600}.generated-images-count{color:var(--color-text-muted,#888);background:#0000000d;border-radius:10px;padding:2px 8px;font-size:12px}.generated-images-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.generated-image-item{border:1px solid var(--color-border,#e8e4dc);background:#fff;border-radius:8px;transition:all .2s;overflow:hidden}.generated-image-item:hover{border-color:var(--color-primary,#c5a572);box-shadow:0 4px 12px #c5a57226}.generated-image-container{cursor:pointer;background:#f8f8f8;position:relative;overflow:hidden}.generated-image-container:before{content:"🔍 클릭하여 확대";color:#fff;white-space:nowrap;opacity:0;z-index:1;background:#000000b3;border-radius:20px;padding:8px 16px;font-size:12px;transition:opacity .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.generated-image-container:hover:before{opacity:1}.generated-image{object-fit:contain;width:100%;height:auto;max-height:300px;transition:transform .2s;display:block}.generated-image-container:hover .generated-image{transform:scale(1.02)}.generated-image-info{border-top:1px solid var(--color-border,#e8e4dc);background:#fafafa;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.generated-image-name{color:var(--color-text-secondary,#555);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:12px;overflow:hidden}.generated-image-actions{align-items:center;gap:8px;display:flex}.generated-image-size{color:var(--color-text-muted,#888);font-size:11px}.generated-image-download-btn{background:var(--color-primary-light,#e8dcc8);cursor:pointer;border:none;border-radius:4px;padding:4px 8px;font-size:14px;transition:all .2s}.generated-image-download-btn:hover{background:var(--color-primary,#c5a572);transform:scale(1.05)}.generated-images-grid:has(.generated-image-item:only-child) .generated-image-item{max-width:100%}.generated-images-grid:has(.generated-image-item:only-child) .generated-image{max-height:400px}@media (max-width:768px){.generated-images-grid{grid-template-columns:1fr}.generated-image{max-height:250px}.generated-image-name{max-width:100px}}.executed-code-section{border-top:1px dashed var(--color-border,#e8e4dc);margin-top:12px;padding-top:12px}.executed-code-btn{color:#fff;cursor:pointer;text-align:left;background:linear-gradient(135deg,#2d5016 0%,#3d6b1f 100%);border:1px solid #3d6b1f4d;border-radius:8px;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.executed-code-btn:hover{background:linear-gradient(135deg,#3d6b1f 0%,#4a8226 100%);transform:translateY(-1px);box-shadow:0 3px 10px #2d50164d}.executed-code-btn:active{transform:translateY(0)}.executed-code-icon{font-size:16px}.executed-code-label{flex:1}.executed-code-lines{opacity:.8;font-size:11px;font-weight:400}.executed-code-arrow{opacity:.7;font-size:14px;transition:transform .2s}.executed-code-btn:hover .executed-code-arrow{transform:translate(3px)}.table-data-section{flex-direction:column;gap:12px;margin-top:16px;display:flex}.table-data-header{border:1px solid var(--color-border,#c8e0e8);background:linear-gradient(135deg,#e8f4f8 0%,#d4eef5 100%);border-radius:8px;align-items:center;gap:8px;padding:10px 14px;display:flex}.table-data-icon{font-size:18px}.table-data-title{color:var(--color-primary,#0d6efd);font-size:14px;font-weight:600}.table-wrapper.multi-table{border:1px solid var(--color-border,#e8e4dc);background:var(--color-bg-primary,#faf8f5);border-radius:10px;margin-bottom:8px;overflow:hidden}.table-wrapper.multi-table:last-child{margin-bottom:0}.table-wrapper.multi-table:hover{border-color:var(--color-primary,#c5a572)}.table-tool-name{border-bottom:1px solid var(--color-border,#e8e4dc);color:var(--color-text-secondary,#555);background:linear-gradient(135deg,#f8f6f2 0%,#f0ede6 100%);align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.table-tool-icon{font-size:14px}.table-tool-name span{color:var(--color-primary,#c5a572);font-family:Consolas,Monaco,Courier New,monospace}.table-wrapper:not(.multi-table){margin-top:12px}.table-wrapper.multi-table .table-display{border:none;border-radius:0}.table-wrapper.multi-table .expand-hint{top:40px}@media (max-width:768px){.table-data-section{gap:10px}.table-data-header{padding:8px 12px}.table-tool-name{padding:6px 10px;font-size:11px}}.chart-display-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:12px 0;position:relative;overflow:hidden}@media (min-width:769px){.chart-display-container{margin:var(--spacing-md)0;border-radius:var(--radius-xl)}}.chart-controls{z-index:var(--z-dropdown);gap:var(--spacing-sm);display:flex;position:absolute;top:12px;right:12px}.chart-control-btn{border-radius:var(--radius-md);background:var(--color-bg-primary);width:36px;height:36px;box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.chart-control-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.chart-control-btn:active{transform:translateY(0)}.chart-customizer{padding:var(--spacing-md);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);animation:slideDown var(--transition-slow)}.customizer-section{margin-bottom:var(--spacing-md)}.customizer-section:last-child{margin-bottom:0}.customizer-section h4{margin:0 0 var(--spacing-sm)0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.5px}.customizer-buttons{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.customizer-buttons button{border:1px solid var(--color-border-dark);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);padding:6px 12px}.customizer-buttons button:hover{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.customizer-checkbox{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)0;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.customizer-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary)}.customizer-checkbox span{font-size:var(--font-size-base);color:var(--color-text-primary)}.chart-wrapper{width:100%;min-width:280px;min-height:300px;max-height:500px;padding:12px}@media (min-width:769px){.chart-wrapper{min-width:400px;min-height:350px;max-height:550px;padding:var(--spacing-md)}}@media (min-width:1200px){.chart-wrapper{min-width:500px;min-height:400px;max-height:600px}}.chart-info{padding:var(--spacing-sm)12px;background:var(--color-bg-tertiary);border-top:1px solid var(--color-border);align-items:center;gap:var(--spacing-sm);display:flex}@media (min-width:769px){.chart-info{padding:10px var(--spacing-md)}}.chart-type-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary-light);border-radius:var(--radius-full);text-transform:capitalize;background:#538c9826;padding:4px 10px}@media (min-width:769px){.chart-type-badge{font-size:var(--font-size-xs);padding:5px 12px}}.table-display{background:#f8f9fa;border-radius:8px;max-width:100%;margin:12px 0;padding:12px;overflow:hidden}.table-display.full-width{margin:0;padding:8px}.table-display.full-width .table-container{max-height:none}.table-display.full-width .data-table td{white-space:normal;word-break:break-word;max-width:none}.table-header-info{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;display:flex}.table-shape{color:#666;font-size:13px;font-weight:500}.truncated-badge{color:#f59e0b;margin-left:4px;font-size:11px}.table-header-buttons{align-items:center;gap:8px;display:flex}.view-detail-btn{color:#074755;cursor:pointer;background:linear-gradient(135deg,#538c98,#a2d7db);border:none;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.view-detail-btn:hover{background:linear-gradient(135deg,#457a85,#8ec9cf);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.download-full-data-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#074755,#538c98);border:none;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.download-full-data-btn:hover{background:linear-gradient(135deg,#063b47,#457a85);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.truncated-notice{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;margin-bottom:10px;padding:8px 12px;font-size:12px}.table-container{max-height:400px;overflow:auto}.data-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:12px}.data-table th{text-align:left;color:#495057;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:#e9ecef;border-bottom:2px solid #dee2e6;padding:8px 12px;font-weight:600;transition:background-color .2s;position:sticky;top:0}.data-table th:hover{background:#dee2e6}.data-table th.sorted{background:#d0d4d8}.data-table th.sortable:after{content:" ⇅";opacity:.3;font-size:10px}.data-table th.sorted:after{content:""}.sort-indicator{margin-left:4px;font-size:10px}.data-table td{color:#333;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #e9ecef;max-width:200px;padding:6px 12px;overflow:hidden}.data-table tbody tr:hover{background:#f1f3f4}.data-table tbody tr:nth-child(2n){background:#fafafa}.data-table tbody tr:nth-child(2n):hover{background:#f1f3f4}.index-header,.index-cell{color:#6c757d;z-index:1;border-right:2px solid #dee2e6;font-weight:500;position:sticky;left:0;background:#e9ecef!important}.index-cell{background:#f8f9fa!important}.table-pagination{border-top:1px solid #e0e0e0;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.pagination-btn{cursor:pointer;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:4px 10px;font-size:12px;transition:all .2s}.pagination-btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{color:#666;padding:0 8px;font-size:12px}@media (prefers-color-scheme:dark){.table-display{background:#2d2d2d}.table-header-info{border-bottom-color:#444}.table-shape{color:#aaa}.download-full-data-btn{background:linear-gradient(135deg,#538c98,#074755)}.download-full-data-btn:hover{background:linear-gradient(135deg,#6aa3ad,#085562)}.truncated-notice{color:#fcd34d;background:#422006;border-color:#854d0e}.data-table th{color:#e0e0e0;background:#3d3d3d;border-bottom-color:#555}.data-table th:hover{background:#4d4d4d}.data-table th.sorted{background:#555}.data-table td{color:#e0e0e0;border-bottom-color:#444}.data-table tbody tr:hover{background:#3a3a3a}.data-table tbody tr:nth-child(2n){background:#333}.data-table tbody tr:nth-child(2n):hover{background:#3a3a3a}.index-header,.index-cell{border-right-color:#555;background:#3d3d3d!important}.index-cell{background:#333!important}.table-pagination{border-top-color:#444}.pagination-btn{color:#e0e0e0;background:#3d3d3d;border-color:#555}.pagination-btn:hover:not(:disabled){background:#4d4d4d;border-color:#666}}.download-dropdown{display:inline-block;position:relative}.download-dropdown .dropdown-trigger{padding-right:8px}.download-menu{z-index:1000;background:#fff;border:1px solid #dee2e6;border-radius:8px;min-width:280px;margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.download-menu-header{color:#666;background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:10px 14px;font-size:12px;font-weight:600}.download-menu-item{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 14px;transition:background .15s;display:flex}.download-menu-item:hover{background:#f1f3f5}.download-menu-item:not(:last-child){border-bottom:1px solid #f1f3f5}.download-menu-icon{flex-shrink:0;font-size:18px}.download-menu-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.download-menu-filename{color:#333;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.download-menu-desc{color:#888;font-size:11px}.download-menu-size{color:#666;flex-shrink:0;font-size:11px}@media (prefers-color-scheme:dark){.download-menu{background:#2d2d2d;border-color:#444;box-shadow:0 4px 12px #0006}.download-menu-header{color:#aaa;background:#333;border-bottom-color:#444}.download-menu-item:hover{background:#3a3a3a}.download-menu-item:not(:last-child){border-bottom-color:#3a3a3a}.download-menu-filename{color:#e0e0e0}.download-menu-desc{color:#888}.download-menu-size{color:#aaa}}.file-preview-overlay{z-index:var(--z-modal);padding:var(--spacing-lg);animation:fadeIn var(--transition-base);background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.file-preview-modal{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:100%;max-width:1200px;max-height:90vh;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-slow);flex-direction:column;display:flex}.file-preview-header{padding:var(--spacing-lg)var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:var(--radius-lg)var(--radius-lg)0 0;justify-content:space-between;align-items:center;display:flex}.file-preview-info h3{margin:0 0 var(--spacing-xs)0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);word-break:break-word}.file-preview-size{font-size:var(--font-size-base);color:var(--color-text-secondary)}.file-preview-actions{gap:var(--spacing-sm);display:flex}.preview-action-btn,.preview-close-btn{border-radius:var(--radius-md);width:36px;height:36px;transition:all var(--transition-base);justify-content:center;align-items:center;font-size:18px;display:flex}.preview-action-btn{background:var(--color-primary);color:var(--color-text-inverse)}.preview-action-btn:hover{background:var(--color-primary-light);transform:translateY(-2px)}.preview-close-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.preview-close-btn:hover{background:var(--color-border);color:var(--color-text-primary)}.file-preview-content{padding:var(--spacing-lg);flex:1;justify-content:center;align-items:center;min-height:400px;display:flex;overflow:auto}.preview-loading{text-align:center}.preview-spinner{border:4px solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:48px;height:48px;margin:0 auto var(--spacing-md);animation:1s linear infinite spin}.preview-loading p{color:var(--color-text-secondary);font-size:var(--font-size-base)}.preview-error{text-align:center}.preview-error .error-icon{margin-bottom:var(--spacing-md);font-size:48px;display:block}.preview-error p{color:var(--color-error);font-size:var(--font-size-lg)}.preview-image-container{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.preview-image-container img{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:100%}.preview-pdf-container{width:100%;height:100%;min-height:500px}.preview-pdf-container iframe{border-radius:var(--radius-md);border:none}.preview-text-container{background:var(--color-bg-secondary);border-radius:var(--radius-md);width:100%;height:100%;padding:var(--spacing-lg);overflow:auto}.preview-text-container pre{font-family:var(--font-family-mono);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary);white-space:pre-wrap;word-wrap:break-word}.preview-unsupported{text-align:center;padding:var(--spacing-2xl)var(--spacing-lg)}.unsupported-icon{margin-bottom:var(--spacing-lg);font-size:64px;display:block}.preview-unsupported h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 12px}.unsupported-filename{margin:0 0 var(--spacing-sm)0;font-size:var(--font-size-lg);color:var(--color-text-secondary);word-break:break-word;font-weight:var(--font-weight-medium)}.unsupported-hint{margin:0 0 var(--spacing-lg)0;font-size:var(--font-size-sm);color:var(--color-text-muted);word-break:break-word}.download-btn{padding:12px var(--spacing-lg);background:var(--color-primary-gradient);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.download-btn:hover{box-shadow:var(--shadow-primary);transform:translateY(-2px)}@media (max-width:768px){.file-preview-overlay{padding:0}.file-preview-modal{border-radius:0;max-width:100%;max-height:100vh}.file-preview-header{padding:var(--spacing-md);border-radius:0}.file-preview-info h3{font-size:var(--font-size-lg)}.file-preview-content{padding:var(--spacing-md);min-height:300px}.preview-pdf-container{min-height:400px}}.messages-container{background:var(--color-bg-primary);flex-direction:column;flex:1;display:flex;overflow-y:auto}.messages-list{width:100%;max-width:900px;padding:var(--spacing-lg);flex:1;margin:0 auto}@media (max-width:768px){.messages-list{padding:var(--spacing-md)}}.welcome-screen{padding:var(--spacing-2xl);flex:1;justify-content:center;align-items:center;display:flex}.welcome-content{text-align:center;max-width:500px}.welcome-logo{margin-bottom:var(--spacing-xl)}.welcome-logo-image{justify-content:center;align-items:center;width:auto;height:180px;margin:0 auto;display:flex}.welcome-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}@media (min-width:769px){.welcome-title{font-size:32px}}.welcome-subtitle{font-size:var(--font-size-md);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.loading-indicator{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md)var(--spacing-lg);width:100%;max-width:900px;margin:0 auto;display:flex}.typing-dots{gap:4px;display:flex}.typing-dots span{background:var(--color-primary);border-radius:var(--radius-full);width:8px;height:8px;animation:1.4s ease-in-out infinite typingDot}.typing-dots span:first-child{animation-delay:0s}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.loading-text{font-size:var(--font-size-sm);color:var(--color-text-muted)}.detail-panel{background:var(--bg-primary,#faf8f5);border-left:1px solid var(--border-color,#e8e4dc);z-index:1000;flex-direction:column;width:500px;max-width:90vw;height:100vh;transition:right .3s;display:flex;position:fixed;top:0;right:-500px;box-shadow:-4px 0 20px #0000001a}.detail-panel.open{right:0}.detail-panel.inline{z-index:1;width:0;max-width:none;height:100%;box-shadow:none;border-left:none;transition:width .3s,border-left .3s;position:relative;top:auto;right:auto;overflow:hidden}.detail-panel.inline.open{border-left:1px solid var(--border-color,#e8e4dc);width:45%;min-width:400px;max-width:1000px}@media (max-width:1024px){.detail-panel.inline.open{z-index:100;border-left:none;width:100%;min-width:100%;max-width:100%;height:100%;position:absolute;top:0;right:0}}.detail-panel-header{border-bottom:1px solid var(--border-color,#e8e4dc);background:var(--bg-secondary,#f5f2ed);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.detail-panel-title{color:var(--text-primary,#2c2c2c);margin:0;font-size:16px;font-weight:600}.detail-panel-close{cursor:pointer;color:var(--text-secondary,#666);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:18px;transition:all .2s}.detail-panel-close:hover{color:var(--text-primary,#2c2c2c);background:#0000001a}.detail-panel-description{background:var(--bg-tertiary,#f0ede6);border-bottom:1px solid var(--border-color,#e8e4dc);color:var(--text-secondary,#555);padding:12px 20px;font-size:14px}.detail-panel-content{flex:1;padding:20px;overflow-y:auto}.detail-code-container{flex-direction:column;gap:16px;display:flex}.detail-code-header{background:var(--bg-code-header,#2d2d2d);border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.detail-code-language{color:#888;font-size:12px;font-weight:500}.detail-code-actions{gap:8px;display:flex}.detail-action-btn{cursor:pointer;background:#ffffff1a;border:none;border-radius:4px;padding:4px 8px;font-size:14px;transition:all .2s}.detail-action-btn:hover{background:#fff3}.detail-code{background:var(--bg-code,#1e1e1e);color:#d4d4d4;border-radius:0 0 8px 8px;margin:0;padding:16px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.5;overflow-x:auto}.detail-code code{white-space:pre-wrap;word-break:break-word}.detail-output{border:1px solid var(--border-color,#e8e4dc);border-radius:8px;overflow:hidden}.detail-output-header{background:var(--bg-secondary,#f5f2ed);border-bottom:1px solid var(--border-color,#e8e4dc);padding:10px 12px;font-size:14px;font-weight:500}.detail-output-content{background:var(--bg-primary,#faf8f5);white-space:pre-wrap;word-break:break-word;max-height:none;margin:0;padding:12px;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.detail-error{border:1px solid #f5c6cb;border-radius:8px;overflow:hidden}.detail-error-header{color:#721c24;background:#f8d7da;border-bottom:1px solid #f5c6cb;padding:10px 12px;font-size:14px;font-weight:500}.detail-error-content{white-space:pre-wrap;word-break:break-word;color:#721c24;background:#fff5f5;max-height:none;margin:0;padding:12px;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.detail-meta{background:var(--bg-tertiary,#f0ede6);color:var(--text-secondary,#666);border-radius:6px;padding:8px 12px;font-size:12px}.detail-image-container{flex-direction:column;align-items:center;gap:16px;display:flex}.detail-image-actions{align-self:flex-end}.detail-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:60vh;box-shadow:0 2px 8px #0000001a}.detail-image-info{color:var(--text-secondary,#666);gap:12px;font-size:14px;display:flex}.detail-filename{color:var(--text-primary,#2c2c2c);font-weight:500}.detail-table-container{flex-direction:column;gap:12px;display:flex}.detail-table-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.detail-table-info{color:var(--text-secondary,#666);font-size:14px}.truncated-warning{color:#f59e0b;margin-left:4px;font-size:12px}.full-data-badge{color:#10b981;margin-left:4px;font-size:12px;font-weight:500}.detail-table-actions{align-items:center;gap:8px;display:flex}.detail-action-btn.load-full-data{color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500}.detail-action-btn.load-full-data:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px)}.detail-action-btn.load-full-data:disabled{opacity:.7;cursor:wait}.detail-action-btn.full-data-download{color:#fff;background:linear-gradient(135deg,#074755,#538c98);border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500}.detail-action-btn.full-data-download:hover{background:linear-gradient(135deg,#063b47,#457a85);transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.detail-truncated-notice{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:13px;line-height:1.5}.detail-loading-notice{color:#0369a1;text-align:center;background:#e0f2fe;border:1px solid #7dd3fc;border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:13px}.detail-error-notice{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5;border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:13px}.detail-table-wrapper{border:1px solid var(--border-color,#e8e4dc);border-radius:8px;max-height:calc(100vh - 300px);overflow:auto}.detail-chart-container{width:100%;min-height:400px}.detail-panel-footer{border-top:1px solid var(--border-color,#e8e4dc);background:var(--bg-secondary,#f5f2ed);padding:16px 20px}.detail-files-section{flex-direction:column;gap:8px;display:flex}.detail-files-title{color:var(--text-primary,#2c2c2c);font-size:14px;font-weight:500}.detail-files-list{flex-wrap:wrap;gap:8px;display:flex}.detail-file-btn{background:var(--bg-primary,#faf8f5);border:1px solid var(--border-color,#e8e4dc);cursor:pointer;border-radius:6px;padding:8px 12px;font-size:13px;transition:all .2s}.detail-file-btn:hover{background:var(--accent-light,#c9a227);border-color:var(--accent-color,#c9a227);color:#fff}.detail-preview{min-height:200px;color:var(--text-secondary,#666);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.detail-download-btn{background:var(--accent-color,#c9a227);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:14px;transition:all .2s}.detail-download-btn:hover{background:var(--accent-dark,#a88620)}.detail-overlay{z-index:999;opacity:0;visibility:hidden;background:#0000004d;transition:all .3s;position:fixed;inset:0}.detail-overlay.visible{opacity:1;visibility:visible}@media (max-width:768px){.detail-panel:not(.inline){width:100%;max-width:100%;right:-100%}.detail-panel:not(.inline).open{right:0}.detail-panel.inline.open{width:100%;min-width:100%;max-width:100%}}.executed-code-detail{border:1px solid #2d501633;border-radius:8px;overflow:hidden}.executed-code-detail .detail-code-header{background:linear-gradient(135deg,#2d5016 0%,#3d6b1f 100%);align-items:center;gap:12px;padding:12px 16px;display:flex}.executed-code-detail .detail-code-language{color:#fff;background:#fff3;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:600}.executed-code-detail .detail-code-meta{flex:1}.executed-code-detail .code-lines-info{color:#fffc;font-size:12px}.executed-code-detail .detail-code-actions{gap:8px;display:flex}.executed-code-detail .detail-action-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #fff3;border-radius:4px;padding:6px 12px;font-size:12px;transition:all .2s}.executed-code-detail .detail-action-btn:hover{background:#ffffff40}.executed-code-view{color:#d4d4d4;white-space:pre;background:#1e1e1e;max-height:60vh;margin:0;padding:16px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.6;overflow:auto}.executed-code-view code{counter-reset:line;display:block}.executed-code-footer{background:#f5f5f5;border-top:1px solid #e0e0e0;padding:12px 16px}.executed-code-info{color:#666;align-items:center;gap:6px;font-size:12px;display:flex}.settings-panel{background:var(--color-bg-primary);z-index:1001;border-left:1px solid var(--color-border);flex-direction:column;width:320px;max-width:100%;animation:.25s ease-out slideInFromRight;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 20px #00000026}@keyframes slideInFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (max-width:480px){.settings-panel{width:100%}}.settings-header{padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.settings-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.settings-header .close-button{width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.settings-header .close-button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.settings-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}.parameter-control{margin-bottom:var(--spacing-xl)}.parameter-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.parameter-header label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.parameter-value{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-semibold);background:var(--color-accent-light);border-radius:var(--radius-full);padding:2px 8px}.parameter-control input[type=range]{background:var(--color-bg-tertiary);-webkit-appearance:none;border-radius:2px;outline:none;width:100%;height:4px}.parameter-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);background:var(--color-primary);cursor:pointer;width:16px;height:16px;box-shadow:var(--shadow-sm);transition:transform var(--transition-base)}.parameter-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.parameter-control input[type=range]::-moz-range-thumb{border-radius:var(--radius-full);background:var(--color-primary);cursor:pointer;border:none;width:16px;height:16px}.parameter-description{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-sm);line-height:var(--line-height-relaxed)}.settings-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0}.reset-button{border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base);background:0 0;padding:10px}.reset-button:hover{background:var(--color-bg-hover);border-color:var(--color-border-dark);color:var(--color-text-primary)}.system-prompt-settings{background:var(--color-bg-primary);border-radius:var(--radius-lg);flex-direction:column;height:100%;display:flex;overflow:hidden}.prompt-settings-header{padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);justify-content:space-between;align-items:center;display:flex}.prompt-settings-header h3{color:var(--color-text-primary);margin:0;font-size:1.125rem;font-weight:600}.prompt-settings-header .close-button{width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.prompt-settings-header .close-button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.prompt-tabs{gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);display:flex}.prompt-tab{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-md);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-size:.875rem;font-weight:500;display:flex}.prompt-tab:hover:not(.disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.prompt-tab.active{background:var(--color-primary);color:#fff}.prompt-tab.disabled{opacity:.5;cursor:not-allowed}.prompt-tab .tab-hint{opacity:.7;font-size:.75rem}.prompt-error{align-items:center;gap:var(--spacing-sm);margin:var(--spacing-md)var(--spacing-lg)0;padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;font-size:.875rem;display:flex}.prompt-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}.prompt-loading{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);color:var(--color-text-secondary);flex-direction:column;display:flex}.prompt-description{margin-bottom:var(--spacing-md)}.prompt-description p{color:var(--color-text-secondary);margin:0;font-size:.875rem;line-height:1.5}.prompt-toggle-row{padding:var(--spacing-sm)var(--spacing-md);margin-bottom:var(--spacing-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.prompt-toggle-row .toggle-text{color:var(--color-text-primary);font-size:.875rem;font-weight:500}.toggle-slider{cursor:pointer;background:var(--color-bg-tertiary);transition:all var(--transition-fast);border:1px solid var(--color-border);border-radius:12px;position:absolute;inset:0}.toggle-switch input:checked+.toggle-slider{background:var(--color-primary);border-color:var(--color-primary)}.prompt-textarea-wrapper{margin-bottom:var(--spacing-md);position:relative}.prompt-textarea{width:100%;min-height:200px;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);resize:vertical;transition:all var(--transition-fast);font-family:inherit;font-size:.875rem;line-height:1.6}.prompt-textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0747551a}.prompt-textarea:disabled{opacity:.5;cursor:not-allowed}.prompt-textarea::placeholder{color:var(--color-text-muted)}.prompt-char-count{bottom:var(--spacing-sm);right:var(--spacing-sm);color:var(--color-text-muted);background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:2px 6px;font-size:.75rem;position:absolute}.prompt-examples{margin-bottom:var(--spacing-lg)}.prompt-examples h4{margin:0 0 var(--spacing-sm);color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.example-chips{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.example-chips button{padding:var(--spacing-xs)var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem}.example-chips button:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-accent-light)}.prompt-actions{justify-content:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);display:flex}.prompt-actions .btn-secondary{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:.875rem}.prompt-actions .btn-secondary:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text-primary)}.prompt-actions .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.prompt-actions .btn-primary{padding:var(--spacing-sm)var(--spacing-lg);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;transition:all var(--transition-fast);border:none;font-size:.875rem;font-weight:500}.prompt-actions .btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.prompt-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.prompt-info{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-lg);background:var(--color-bg-tertiary);color:var(--color-text-muted);border-top:1px solid var(--color-border);font-size:.75rem;display:flex}.prompt-info svg{flex-shrink:0}@media (max-width:768px){.prompt-tabs{flex-direction:column}.prompt-tab,.example-chips{justify-content:center}.prompt-actions{flex-direction:column}.prompt-actions button{width:100%}}.tools-settings{background:var(--color-bg-primary);border-radius:var(--radius-lg);flex-direction:column;height:100%;display:flex;overflow:hidden}.tools-settings-header{padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.tools-settings-header h3{color:var(--color-text-primary);margin:0;font-size:1.125rem;font-weight:600}.tools-settings-header .close-button{width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.tools-settings-header .close-button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.tools-tabs{gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0;display:flex}.tools-tab{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-md);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-size:.875rem;font-weight:500;display:flex}.tools-tab:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.tools-tab.active{background:var(--color-primary);color:#fff}.tab-badge{border-radius:var(--radius-full);background:#fff3;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 6px;font-size:.7rem;font-weight:600;display:inline-flex}.tools-tab:not(.active) .tab-badge{background:var(--color-bg-tertiary)}.tools-error{align-items:center;gap:var(--spacing-sm);margin:var(--spacing-md)var(--spacing-lg)0;padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;flex-shrink:0;font-size:.875rem;display:flex}.tools-content{padding:var(--spacing-lg);flex:1;min-height:0;overflow-y:auto}.tools-loading{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);color:var(--color-text-secondary);flex-direction:column;display:flex}.tools-description{margin-bottom:var(--spacing-md)}.tools-description p{color:var(--color-text-secondary);margin:0;font-size:.875rem;line-height:1.5}.tool-category{margin-bottom:var(--spacing-lg)}.tool-category h4{margin:0 0 var(--spacing-sm);color:var(--color-text-primary);font-size:.875rem;font-weight:600}.tool-list{gap:var(--spacing-xs);flex-direction:column;display:flex}.tool-item{padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.tool-item:hover{border-color:var(--color-primary)}.tool-item.disabled{opacity:.6}.tool-info{flex:1;min-width:0}.tool-name{color:var(--color-text-primary);margin-bottom:2px;font-size:.875rem;font-weight:500;display:block}.tool-description{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;display:block;overflow:hidden}.toggle-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:var(--color-bg-tertiary);transition:all var(--transition-fast);border-radius:12px;position:absolute;inset:0}.toggle-slider:after{content:"";width:20px;height:20px;transition:all var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.toggle-slider{background:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:after{left:22px}.toggle-slider.updating:after{animation:.6s infinite togglePulse}@keyframes togglePulse{0%,to{opacity:1}50%{opacity:.5}}.tools-actions{justify-content:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);margin-top:var(--spacing-md);display:flex}.add-connector-btn{justify-content:center;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);margin-bottom:var(--spacing-md);background:0 0;font-size:.875rem;display:flex}.add-connector-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-accent-light)}.connector-form{padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.connector-form h4{margin:0 0 var(--spacing-md);color:var(--color-text-primary);font-size:.875rem;font-weight:600}.form-group input{width:100%;padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-fast);font-size:.875rem}.form-group input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0747551a}.form-hint{color:var(--color-text-muted);margin-top:4px;font-size:.7rem;display:block}.connector-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.connector-item{padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.connector-item:hover{border-color:var(--color-primary)}.connector-item.disabled{opacity:.6}.connector-info{flex:1;min-width:0}.connector-header{align-items:center;gap:var(--spacing-sm);margin-bottom:4px;display:flex}.connector-status{font-size:.75rem}.connector-status.disconnected{color:var(--color-text-muted)}.connector-name{color:var(--color-text-primary);font-size:.875rem;font-weight:500}.connector-url{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:.75rem;overflow:hidden}.connector-description{color:var(--color-text-secondary);font-size:.75rem}.connector-actions{align-items:center;gap:var(--spacing-sm);display:flex}.icon-btn.danger:hover{color:#ef4444;background:#ef44441a}.empty-connectors{padding:var(--spacing-2xl);color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-connectors svg{margin-bottom:var(--spacing-md);opacity:.5}.empty-connectors p{margin:0;font-size:.875rem}.empty-connectors .hint{margin-top:var(--spacing-xs);font-size:.75rem}.btn-secondary{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:.875rem}.btn-secondary:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text-primary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-primary{padding:var(--spacing-sm)var(--spacing-lg);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;transition:all var(--transition-fast);border:none;font-size:.875rem;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.tools-info{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-lg);background:var(--color-bg-tertiary);color:var(--color-text-muted);border-top:1px solid var(--color-border);flex-shrink:0;font-size:.75rem;display:flex}.tools-info svg{flex-shrink:0}.connector-status-badge{border-radius:var(--border-radius-sm);margin-left:var(--spacing-xs);padding:2px 6px;font-size:.65rem}.connector-status-badge.connected{color:#22c55e;background-color:#22c55e1a}.connector-status-badge.error{color:#ef4444;background-color:#ef44441a}.connector-status.error{color:#ef4444}.connector-status.connected{color:#22c55e}.connector-error-message{align-items:flex-start;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--border-radius-sm);color:#dc2626;background-color:#ef444414;border-left:3px solid #ef4444;font-size:.75rem;line-height:1.4;display:flex}.connector-error-message svg{flex-shrink:0;margin-top:1px}.connector-error-message span{word-break:break-word}.connector-last-checked{color:var(--color-text-muted);margin-top:var(--spacing-xs);font-size:.7rem}.form-hint strong{color:var(--color-primary);font-weight:600}.connector-tools{width:100%;margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px dashed var(--color-border)}.connector-tools h5{margin:0 0 var(--spacing-sm)0;color:var(--color-text-secondary);font-size:.85rem}.tools-list-simple{gap:var(--spacing-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tool-item-simple{padding:var(--spacing-sm);border-radius:var(--border-radius-sm);background-color:#00000008;flex-direction:column;gap:2px;display:flex}.tool-name-simple{color:var(--color-text-primary);font-size:.85rem;font-weight:500}.tool-desc-simple{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.no-tools{color:var(--color-text-muted);margin:0;font-size:.8rem;font-style:italic}.spinner-tiny{border:2px solid #0000001a;border-left-color:var(--color-primary);border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin}.icon-btn.active{background-color:rgba(var(--color-primary-rgb,199,165,90),.15);color:var(--color-primary)}.icon-btn.loading{pointer-events:none;opacity:.7}.connector-item{flex-wrap:wrap}@media (max-width:768px){.tools-tabs{flex-direction:column}.tools-tab{justify-content:center}.tool-item{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.toggle-switch{align-self:flex-end}.connector-item{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.connector-actions{justify-content:flex-end;width:100%}.form-actions{flex-direction:column}.form-actions button{width:100%}}.project-settings{background:var(--color-bg-primary);border-radius:var(--radius-xl);flex-direction:column;width:100%;max-width:700px;max-height:85vh;display:flex;overflow-y:auto}.project-settings-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-primary);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.project-settings-header h3{color:var(--color-text-primary);margin:0;font-size:1.25rem;font-weight:600}.project-settings-header .close-button{cursor:pointer;color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none}.project-settings-header .close-button:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.project-error{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);margin:var(--spacing-md);border-radius:var(--radius-md);color:#dc3545;background:#dc35451a;border:1px solid #dc35454d;font-size:.875rem;display:flex}.project-section{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.project-section:last-of-type{border-bottom:none}.section-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-start;display:flex}.section-title h4{color:var(--color-text-primary);margin:0 0 4px;font-size:1rem;font-weight:600}.section-description{color:var(--color-text-muted);font-size:.8rem}.add-button{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;width:36px;height:36px;color:var(--color-text-primary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.add-button:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:var(--color-primary)}.add-button:disabled{opacity:.5;cursor:not-allowed}.instruction-form,.instruction-edit{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.instruction-form input,.instruction-edit input,.instruction-form textarea,.instruction-edit textarea{width:100%;padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);transition:border-color var(--transition-fast);font-size:.875rem}.instruction-form input:focus,.instruction-edit input:focus,.instruction-form textarea:focus,.instruction-edit textarea:focus{border-color:var(--color-primary);outline:none}.instruction-form textarea,.instruction-edit textarea{resize:vertical;min-height:100px;font-family:inherit}.form-actions{justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm);display:flex}.btn-cancel,.btn-save{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);font-size:.875rem}.btn-cancel{border:1px solid var(--color-border);color:var(--color-text-secondary);background:0 0}.btn-cancel:hover{background:var(--color-bg-tertiary)}.btn-save{background:var(--color-primary);color:#fff;border:none}.btn-save:hover:not(:disabled){background:var(--color-primary-dark)}.btn-save:disabled{opacity:.6;cursor:not-allowed}.instructions-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.instruction-item{padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast);justify-content:space-between;align-items:flex-start;display:flex}.instruction-item.disabled{opacity:.6}.instruction-content{flex:1;min-width:0}.instruction-title{color:var(--color-text-primary);margin-bottom:4px;font-weight:600}.instruction-preview{color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word;font-size:.8rem}.instruction-actions{align-items:center;gap:var(--spacing-xs);margin-left:var(--spacing-md);display:flex}.icon-button{border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;color:var(--color-text-secondary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.icon-button:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.icon-button.danger:hover{color:#dc3545;background:#dc35451a}.toggle-switch.small{flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.toggle-switch.small input{opacity:0;width:0;height:0}.toggle-switch.small .toggle-slider{cursor:pointer;background:var(--color-bg-tertiary);transition:all var(--transition-fast);border:1px solid var(--color-border);border-radius:10px;position:absolute;inset:0}.toggle-switch.small .toggle-slider:after{content:"";width:14px;height:14px;transition:all var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.toggle-switch.small input:checked+.toggle-slider{background:var(--color-primary);border-color:var(--color-primary)}.toggle-switch.small input:checked+.toggle-slider:after{left:18px}.file-dropzone{padding:var(--spacing-xl);background:var(--color-bg-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);margin-bottom:var(--spacing-md);flex-direction:column;justify-content:center;align-items:center;display:flex}.file-dropzone:hover{border-color:var(--color-primary);background:#07475505}.dropzone-icon{color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.file-dropzone p{margin:0 0 var(--spacing-sm)0;color:var(--color-text-secondary);text-align:center;font-size:.875rem}.dropzone-hint{color:var(--color-text-muted);font-size:.75rem}.files-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.file-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast);display:flex}.file-item.disabled{opacity:.6}.file-icon{flex-shrink:0}.file-info{flex:1;min-width:0}.file-name{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.file-meta{align-items:center;gap:var(--spacing-sm);color:var(--color-text-muted);margin-top:2px;font-size:.75rem;display:flex}.extracted-badge{color:#27ae60;border-radius:var(--radius-sm);background:#27ae601a;padding:2px 6px;font-size:.65rem;display:inline-block}.file-actions{align-items:center;gap:var(--spacing-xs);display:flex}.loading-state,.empty-state{padding:var(--spacing-lg);color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;font-size:.875rem;display:flex}.loading-state{gap:var(--spacing-sm);flex-direction:row}.empty-state p{margin:0}.empty-state .hint{margin-top:var(--spacing-xs);font-size:.75rem}.project-info{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md)var(--spacing-lg);background:var(--color-bg-secondary);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem;display:flex}@media (max-width:480px){.project-settings{border-radius:0;max-height:100vh}.section-header{gap:var(--spacing-sm);flex-direction:column}.add-button{align-self:flex-end}.instruction-actions,.file-item{flex-wrap:wrap}.file-actions{width:100%;margin-top:var(--spacing-sm);justify-content:flex-end}}.project-selector{padding:var(--spacing-lg)}.selector-description{color:var(--color-text-secondary);margin:0 0 var(--spacing-lg)0;font-size:.875rem}.project-selector-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.project-selector-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md)var(--spacing-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);display:flex}.project-selector-item:hover{border-color:var(--color-primary);background:var(--color-bg-tertiary)}.project-selector-item .project-color-indicator{border-radius:2px;flex-shrink:0;width:4px;height:32px}.project-selector-content{flex:1;min-width:0}.project-selector-name{color:var(--color-text-primary);margin-bottom:2px;font-weight:500;display:block}.project-selector-desc{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;display:block;overflow:hidden}.project-selector-item svg{color:var(--color-text-muted);flex-shrink:0}.sidebar-overlay{display:none}@media (max-width:768px){.sidebar-overlay{background:var(--color-bg-overlay-light);z-index:var(--z-fixed);animation:fadeIn var(--transition-slow);display:block;position:fixed;inset:0}}.sidebar{width:var(--sidebar-width);background:var(--color-bg-sidebar);border-right:1px solid var(--color-border);height:100vh;z-index:calc(var(--z-fixed) + 1);transition:transform var(--transition-slow);flex-direction:column;display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}@media (min-width:769px){.sidebar{flex-shrink:0;position:relative;transform:translate(0)}.sidebar:not(.open){border:none;width:0;min-width:0;overflow:hidden}}.sidebar-logo{padding:var(--spacing-md)var(--spacing-md)var(--spacing-sm);justify-content:center;align-items:center;display:flex}.sidebar-logo-image{object-fit:contain;width:auto;height:36px}.sidebar-header{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md)var(--spacing-md);border-bottom:1px solid var(--color-border);display:flex}.new-chat-btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:10px var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);flex:1;display:flex}.new-chat-btn:hover{background:var(--color-bg-hover);border-color:var(--color-border-dark)}.icon-btn{width:36px;height:36px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.close-btn-mobile{display:none}@media (max-width:768px){.close-btn-mobile{display:flex}}.sidebar-search{align-items:center;gap:var(--spacing-sm);margin:var(--spacing-sm)var(--spacing-md);padding:var(--spacing-sm)12px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex}.sidebar-search svg{color:var(--color-text-muted);flex-shrink:0}.sidebar-search input{font-size:var(--font-size-sm);color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1}.sidebar-search input::placeholder{color:var(--color-text-muted)}.clear-search{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex}.clear-search:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.sidebar-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-section{padding:var(--spacing-xs)var(--spacing-sm)}.sidebar-section.chats-section{flex-direction:column;flex:1;min-height:0;display:flex}.section-header{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-sm);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-base);-webkit-user-select:none;user-select:none;display:flex}.section-header:hover{background:var(--color-bg-hover)}.section-chevron{color:var(--color-text-muted);transition:transform var(--transition-base);flex-shrink:0}.section-chevron.expanded{transform:rotate(90deg)}.section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;flex:1}.section-count{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-bg-tertiary);border-radius:var(--radius-full);padding:1px 6px}.section-content{padding:var(--spacing-xs)0}.chat-list-content{padding:var(--spacing-xs)0;flex:1;overflow-y:auto}.section-loading{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);color:var(--color-text-muted);font-size:var(--font-size-xs);display:flex}.section-empty{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center;flex-direction:column;display:flex}.empty-hint{font-size:var(--font-size-xs);opacity:.7}.spinner-small{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin}.project-list{flex-direction:column;gap:2px;display:flex}.project-item{align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:2px solid #0000;padding:8px 10px;display:flex}.project-item:hover{background:var(--color-bg-hover)}.project-item.pinned{background:var(--color-accent-light)}.project-item.drag-over{background:var(--color-accent-light);border-color:var(--color-primary);border-style:dashed}.project-color-indicator{border-radius:2px;flex-shrink:0;width:4px;height:24px}.project-item-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.project-item-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-item-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-pin-icon{color:var(--color-primary);opacity:.7;flex-shrink:0}.add-project-btn{justify-content:center;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);margin-top:var(--spacing-xs);border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-base);background:0 0;display:flex}.add-project-btn:hover{background:var(--color-bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.chat-list.minimal{flex-direction:column;gap:1px;display:flex}.chat-item.minimal{align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);padding:6px 10px;display:flex;position:relative}.chat-item.minimal:hover{background:var(--color-bg-hover)}.chat-item.minimal.active{background:var(--color-accent-light)}.chat-item.minimal.dragging{opacity:.5;background:var(--color-bg-tertiary)}.chat-item.minimal .drag-handle{width:14px;height:16px;color:var(--color-text-muted);opacity:0;cursor:grab;transition:opacity var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-item.minimal:hover .drag-handle{opacity:.5}.chat-item.minimal .drag-handle:hover{opacity:1;color:var(--color-text-primary)}.chat-item.minimal .drag-handle:active{cursor:grabbing}.chat-item.minimal .chat-item-content{min-width:0;transition:padding-right var(--transition-fast);flex:1;padding-right:48px}.chat-item.minimal:hover .chat-item-content{padding-right:0}.chat-item.minimal .chat-item-title{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-item.minimal.active .chat-item-title{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.chat-item.minimal .title-edit-input{border:1px solid var(--color-primary);border-radius:var(--radius-xs);width:100%;font-size:var(--font-size-xs);background:var(--color-bg-primary);color:var(--color-text-primary);outline:none;padding:2px 6px}.chat-item.minimal .chat-item-actions{opacity:0;transition:opacity var(--transition-fast);flex-shrink:0;gap:2px;display:flex}.chat-item.minimal:hover .chat-item-actions{opacity:1}.chat-item.minimal .chat-action-btn{background:var(--color-bg-primary);width:22px;height:22px;color:var(--color-text-muted);border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;display:flex}.chat-item.minimal .chat-action-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.chat-item.minimal .chat-action-btn.delete:hover{background:var(--color-error-light);color:var(--color-error)}.sidebar-footer{border-top:1px solid var(--color-border);padding:var(--spacing-md)}.user-info{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base);display:flex}.user-info:hover{background:var(--color-bg-hover)}.user-avatar{border-radius:var(--radius-full);background:var(--color-primary);width:32px;height:32px;color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-details{flex-direction:column;flex:1;min-width:0;display:flex}.user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-email{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.footer-actions{flex-direction:column;gap:2px;display:flex}.footer-btn{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)12px;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base);text-align:left;background:0 0;border:none;display:flex}.footer-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.footer-btn.admin{color:var(--color-admin)}.footer-btn.admin:hover{background:var(--color-admin-light)}.footer-btn.logout:hover{background:var(--color-error-light);color:var(--color-error)}.context-menu{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-xs);min-width:160px;z-index:var(--z-context-menu);animation:fadeIn var(--transition-fast);position:fixed}.context-menu button{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm)12px;border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;text-align:left;transition:background var(--transition-fast);background:0 0;border:none;display:flex}.context-menu button:hover{background:var(--color-bg-hover)}.context-menu button.danger{color:var(--color-error)}.context-menu button.danger:hover{background:var(--color-error-light)}.context-submenu{position:relative}.submenu-trigger{justify-content:flex-start}.submenu-trigger .submenu-arrow{transition:transform var(--transition-fast);margin-left:auto}.context-submenu.open .submenu-trigger .submenu-arrow{transform:rotate(90deg)}.submenu-content{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-xs);min-width:160px;max-height:200px;display:none;position:absolute;top:0;left:100%;overflow-y:auto}.context-submenu.open .submenu-content{display:block}@media (hover:hover){.context-submenu:hover .submenu-content{display:block}}.submenu-content button{align-items:center;gap:var(--spacing-sm);display:flex}.project-color-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.chat-project-indicator{border-radius:2px;flex-shrink:0;width:3px;height:16px;margin-right:2px}.confirm-dialog-overlay{background:var(--color-bg-overlay);z-index:var(--z-modal);animation:fadeIn var(--transition-base);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:420px;animation:slideUp var(--transition-base);overflow:hidden}.confirm-dialog-header{padding:var(--spacing-lg)var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.confirm-dialog-header h3{font-size:1.125rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.confirm-dialog-header .close-btn{padding:var(--spacing-xs);color:var(--color-text-secondary);transition:color var(--transition-base);justify-content:center;align-items:center;display:flex}.confirm-dialog-header .close-btn:hover{color:var(--color-text-primary)}.confirm-dialog-body{padding:var(--spacing-lg)}.confirm-dialog-body p{color:var(--color-text-secondary);line-height:var(--line-height-relaxed);font-size:.95rem}.confirm-dialog-footer{padding:var(--spacing-md)var(--spacing-lg);border-top:1px solid var(--color-border);justify-content:flex-end;gap:12px;display:flex}.dialog-btn{padding:var(--spacing-sm)var(--spacing-lg);border-radius:var(--radius-md);font-size:.9rem;font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.cancel-btn{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.cancel-btn:hover{background:var(--color-border)}.confirm-btn{background:var(--color-primary);color:var(--color-text-inverse)}.confirm-btn:hover{background:var(--color-primary-dark)}.confirm-btn.danger{background:var(--color-error)}.confirm-btn.danger:hover{background:var(--color-error-dark)}.chat-header{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);padding:0 var(--spacing-md);height:var(--header-height);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header-left{align-items:center;gap:var(--spacing-md);display:flex}.menu-button{width:36px;height:36px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.menu-button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.menu-button svg{stroke:currentColor}.logo-area{align-items:center;gap:var(--spacing-sm);display:flex}.logo-image{object-fit:contain;width:auto;height:48px}.logo-placeholder{background:var(--color-primary);width:32px;height:32px;color:var(--color-text-inverse);border-radius:var(--radius-md);justify-content:center;align-items:center;display:flex}.logo-placeholder svg{stroke:currentColor}.logo-text{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.header-center{flex:1;justify-content:center;display:flex}.header-right{align-items:center;gap:var(--spacing-xs);display:flex}.header-icon-button{width:36px;height:36px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.header-icon-button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.header-icon-button svg{stroke:currentColor}@media (max-width:768px){.chat-header{padding:0 var(--spacing-sm)}.logo-text{display:none}.logo-placeholder{width:28px;height:28px}}.log-viewer-overlay{background-color:var(--color-bg-overlay);z-index:var(--z-modal-backdrop);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.log-viewer-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:90%;max-width:1200px;height:90vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.log-viewer-header{padding:var(--spacing-lg)var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.log-viewer-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.log-viewer-header .close-button{font-size:var(--font-size-3xl);color:var(--color-text-secondary);border-radius:var(--radius-sm);width:32px;height:32px;transition:background-color var(--transition-base);justify-content:center;align-items:center;display:flex}.log-viewer-header .close-button:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.log-stats{gap:var(--spacing-md);padding:var(--spacing-md)var(--spacing-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex}.stat-item{align-items:center;gap:var(--spacing-xs);flex-direction:column;display:flex}.stat-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text-secondary)}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.log-controls{padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.log-filters{gap:var(--spacing-sm);flex:1;display:flex}.filter-select{padding:var(--spacing-sm)12px;border:1px solid var(--color-border-dark);border-radius:var(--radius-sm);font-size:var(--font-size-base);background-color:var(--color-bg-primary);color:var(--color-text-primary)}.search-input{min-width:200px;padding:var(--spacing-sm)12px;border:1px solid var(--color-border-dark);border-radius:var(--radius-sm);font-size:var(--font-size-base);color:var(--color-text-primary);flex:1}.log-actions{gap:var(--spacing-sm);display:flex}.log-actions .btn{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.log-actions .btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.log-actions .btn-primary:hover{background-color:var(--color-primary-dark)}.log-actions .btn-secondary{background-color:var(--color-text-secondary);color:var(--color-text-inverse)}.log-actions .btn-secondary:hover{background-color:var(--color-text-primary)}.log-actions .btn-danger{background-color:var(--color-error);color:var(--color-text-inverse)}.log-actions .btn-danger:hover{background-color:var(--color-error-dark)}.log-list{padding:var(--spacing-md)var(--spacing-lg);flex:1;overflow-y:auto}.no-logs{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary);font-size:var(--font-size-base)}.log-entry{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:box-shadow var(--transition-base);margin-bottom:12px;padding:12px}.log-entry:hover{box-shadow:var(--shadow-sm)}.log-header{margin-bottom:var(--spacing-sm);align-items:center;gap:12px;display:flex}.log-level{padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);text-transform:uppercase;display:inline-block}.log-timestamp{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-family:var(--font-family-mono)}.log-message{font-size:var(--font-size-base);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);word-break:break-word}.log-data{margin-top:var(--spacing-sm)}.log-data summary{cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);padding:var(--spacing-xs)0}.log-data summary:hover{color:var(--color-primary)}.log-data pre{margin-top:var(--spacing-sm);background-color:var(--color-bg-dark);color:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-family:var(--font-family-mono);padding:12px;overflow-x:auto}.log-meta{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.log-url{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-family:var(--font-family-mono)}@media (max-width:768px){.log-viewer-container{border-radius:0;width:100%;height:100vh}.log-controls{flex-direction:column;align-items:stretch}.log-filters,.log-actions{width:100%}.log-actions{flex-wrap:wrap}.log-stats{gap:var(--spacing-sm);overflow-x:auto}.stat-item{min-width:60px}}.toast{padding:12px var(--spacing-md);border-radius:var(--radius-md);background:var(--color-bg-primary);box-shadow:var(--shadow-md);min-width:300px;max-width:500px;animation:slideInRight var(--transition-slow);align-items:center;gap:12px;margin-bottom:12px;display:flex}.toast-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-message{font-size:var(--font-size-base);line-height:var(--line-height-normal);flex:1}.toast-close{padding:var(--spacing-xs);color:inherit;opacity:.6;transition:opacity var(--transition-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-close:hover{opacity:1}.toast-success{background:var(--color-success-light);border-left:4px solid var(--color-success);color:var(--color-success-dark)}.toast-success .toast-icon svg{stroke:var(--color-success)}.toast-error{background:var(--color-error-light);border-left:4px solid var(--color-error);color:var(--color-error-dark)}.toast-error .toast-icon svg{stroke:var(--color-error)}.toast-warning{background:var(--color-warning-light);border-left:4px solid var(--color-warning);color:var(--color-warning-dark)}.toast-warning .toast-icon svg{stroke:var(--color-warning)}.toast-info{background:var(--color-info-light);border-left:4px solid var(--color-info);color:var(--color-info-dark)}.toast-info .toast-icon svg{stroke:var(--color-info)}.toast-container{top:var(--spacing-lg);right:var(--spacing-lg);z-index:var(--z-toast);pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:fixed}.toast-container>*{pointer-events:auto}@media (max-width:768px){.toast-container{top:var(--spacing-sm);right:var(--spacing-sm);left:var(--spacing-sm);align-items:stretch}}.admin-sidebar{width:var(--admin-sidebar-width);background:linear-gradient(180deg,var(--color-primary)0%,var(--color-primary-dark)100%);height:100vh;color:var(--color-text-inverse);z-index:var(--z-dropdown);transition:width var(--transition-slow);flex-direction:column;display:flex;position:fixed;top:0;left:0}.admin-sidebar.collapsed{width:var(--sidebar-width-collapsed)}.admin-sidebar-header{padding:var(--spacing-lg)var(--spacing-md);border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;display:flex}.admin-logo{align-items:center;gap:10px;display:flex}.logo-icon{font-size:var(--font-size-3xl)}.logo-text{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.collapse-btn{color:var(--color-text-inverse);border-radius:var(--radius-sm);width:28px;height:28px;transition:background var(--transition-base);background:#ffffff1a;justify-content:center;align-items:center;display:flex}.collapse-btn:hover{background:#fff3}.admin-user-info{padding:var(--spacing-md);border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;display:flex}.user-avatar{border-radius:var(--radius-full);width:40px;height:40px;font-size:var(--font-size-2xl);background:#fff3;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-details{flex-direction:column;display:flex;overflow:hidden}.user-name{font-weight:var(--font-weight-medium);font-size:var(--font-size-base);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-role{font-size:var(--font-size-xs);opacity:.7}.admin-nav{padding:var(--spacing-md)12px;gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.nav-item{color:#fffc;border-radius:var(--radius-md);transition:all var(--transition-base);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex;position:relative}.nav-item:hover{color:var(--color-text-inverse);background:#ffffff1a}.nav-item.active{color:var(--color-text-inverse);background:#ffffff26}.nav-icon{font-size:var(--font-size-xl);flex-shrink:0}.nav-label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.nav-badge{background:var(--color-error);color:var(--color-text-inverse);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:2px var(--spacing-sm);text-align:center;border-radius:10px;min-width:20px;margin-left:auto}.nav-badge-mini{background:var(--color-error);color:var(--color-text-inverse);font-size:10px;font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:6px;right:6px}.admin-sidebar-footer{padding:var(--spacing-md)12px;border-top:1px solid #ffffff1a}.back-to-chat-btn{color:var(--color-text-inverse);border-radius:var(--radius-md);transition:all var(--transition-base);text-align:left;background:#ffffff1a;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.back-to-chat-btn:hover{background:#fff3}@media (max-width:1024px){.admin-sidebar{transform:translate(-100%)}.admin-sidebar.show{transform:translate(0)}}.dashboard-panel{gap:var(--spacing-lg);flex-direction:column;display:flex}.dashboard-header{justify-content:space-between;align-items:center;display:flex}.dashboard-header h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.refresh-btn{background:var(--color-bg-secondary);border:1px solid var(--color-border);padding:var(--spacing-sm)12px;border-radius:var(--radius-sm);transition:all var(--transition-base)}.stat-cards{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.stat-card{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);align-items:center;gap:var(--spacing-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base);border-top:3px solid;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card.highlight{animation:2s infinite pulse}.stat-icon{border-radius:var(--radius-lg);width:48px;height:48px;font-size:var(--font-size-3xl);flex-shrink:0;justify-content:center;align-items:center;display:flex}.stat-info{flex-direction:column;display:flex}.stat-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.dashboard-tips{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.dashboard-tips h3{margin:0 0 var(--spacing-md)0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.dashboard-tips ul{padding-left:var(--spacing-lg);color:var(--color-text-secondary)}.dashboard-tips li{margin-bottom:var(--spacing-sm);line-height:var(--line-height-relaxed)}.dashboard-tips li:last-child{margin-bottom:0}.dashboard-loading,.dashboard-error{justify-content:center;align-items:center;gap:var(--spacing-md);flex-direction:column;min-height:300px;display:flex}.dashboard-error{color:var(--color-error)}@media (max-width:768px){.stat-cards{grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--spacing-md)}.stat-icon{width:40px;height:40px;font-size:var(--font-size-2xl)}.stat-value{font-size:var(--font-size-3xl)}}@media (max-width:480px){.stat-cards{grid-template-columns:1fr}}.user-list-panel{gap:var(--spacing-lg);flex-direction:column;display:flex}.filters-section{gap:var(--spacing-md);background:var(--color-bg-primary);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:flex-end;display:flex}.search-group input{min-width:200px}.search-btn,.reset-btn{padding:10px var(--spacing-lg);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.search-btn{background:var(--color-primary);color:var(--color-text-inverse)}.search-btn:hover{background:var(--color-primary-dark)}.reset-btn{background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.reset-btn:hover{background:var(--color-bg-tertiary)}.empty-cell{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-2xl)!important}.actions-cell{gap:var(--spacing-sm);align-items:center;display:flex}.action-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--color-bg-primary);color:var(--color-text-primary);padding:6px 10px}.action-select:focus{border-color:var(--color-primary)}.delete-btn{font-size:var(--font-size-lg);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-xs);color:var(--color-error);transition:background var(--transition-base)}.delete-btn:hover:not(:disabled){background:var(--color-error-light)}.pagination{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg)0;display:flex}.pagination button{padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.pagination button:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-border-dark)}.page-info{color:var(--color-text-secondary);font-size:var(--font-size-base)}.users-loading{justify-content:center;align-items:center;gap:var(--spacing-md);flex-direction:column;min-height:300px;display:flex}.confirm-delete-btn{background:var(--color-error);color:var(--color-text-inverse);padding:10px var(--spacing-lg);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.confirm-delete-btn:hover:not(:disabled){background:var(--color-error-dark)}.warning-text{font-size:var(--font-size-base);color:var(--color-error)!important}@media (max-width:1024px){.filters-section{flex-direction:column;align-items:stretch}.filter-group,.filter-group select,.filter-group input,.search-btn,.reset-btn{width:100%}}@media (max-width:768px){.users-table-container{overflow-x:auto}.users-table{min-width:800px}}.pending-users-panel{gap:var(--spacing-lg);flex-direction:column;display:flex}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-description{color:var(--color-text-secondary);font-size:var(--font-size-base)}.refresh-btn{background:var(--color-bg-secondary);border:1px solid var(--color-border);padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-base);transition:all var(--transition-base)}.refresh-btn:hover{background:var(--color-bg-tertiary)}.users-table-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.users-table{border-collapse:collapse;width:100%}.users-table th,.users-table td{padding:14px var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.users-table th{background:var(--color-bg-secondary);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px}.users-table td{color:var(--color-text-primary);font-size:var(--font-size-base)}.users-table tbody tr:hover{background:var(--color-bg-secondary)}.users-table tbody tr:last-child td{border-bottom:none}.user-id-cell{font-weight:var(--font-weight-medium);color:var(--color-primary)}.actions-cell{gap:var(--spacing-sm);display:flex}.approve-btn,.reject-btn{border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-base);padding:6px 12px}.approve-btn{background:var(--color-success-light);color:var(--color-success-dark)}.approve-btn:hover:not(:disabled){background:var(--color-success);color:var(--color-text-inverse)}.reject-btn{background:var(--color-error-light);color:var(--color-error-dark)}.reject-btn:hover:not(:disabled){background:var(--color-error);color:var(--color-text-inverse)}.empty-state{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:60px var(--spacing-lg);text-align:center;box-shadow:var(--shadow-sm)}.empty-icon{margin-bottom:var(--spacing-md);font-size:48px;display:block}.empty-state p{color:var(--color-text-secondary);font-size:var(--font-size-lg)}.pending-loading,.pending-error{justify-content:center;align-items:center;gap:var(--spacing-md);flex-direction:column;min-height:300px;display:flex}.pending-error{color:var(--color-error)}.retry-btn{background:var(--color-primary);color:var(--color-text-inverse);padding:10px var(--spacing-lg);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.confirm-reject-btn{background:var(--color-error);color:var(--color-text-inverse);padding:10px var(--spacing-lg);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.confirm-reject-btn:hover:not(:disabled){background:var(--color-error-dark)}@media (max-width:768px){.users-table-container{overflow-x:auto}.users-table{min-width:600px}.actions-cell{flex-direction:column}}.tools-panel{gap:var(--spacing-lg);flex-direction:column;display:flex}.tools-summary{gap:var(--spacing-md);flex-wrap:wrap;align-items:center;display:flex}.summary-card{align-items:center;gap:var(--spacing-sm);background:var(--color-bg-primary);padding:var(--spacing-md)var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border);min-width:140px;display:flex}.summary-icon{font-size:1.5rem}.summary-info{flex-direction:column;display:flex}.summary-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.summary-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.refresh-btn{padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);margin-left:auto;font-size:1.2rem}.refresh-btn:hover{background:var(--color-bg-secondary);transform:rotate(180deg)}.tools-usage-hint{background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary));color:#fff;padding:var(--spacing-lg);border-radius:var(--radius-lg)}.tools-usage-hint h4{margin:0 0 var(--spacing-xs)0;font-size:var(--font-size-base)}.tools-usage-hint p{margin:0 0 var(--spacing-sm)0;opacity:.9;font-size:var(--font-size-sm)}.usage-examples{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.usage-examples .example{padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);background:#fff3}.tools-panel-loading{padding:var(--spacing-3xl);justify-content:center;align-items:center;gap:var(--spacing-md);flex-direction:column;display:flex}.tools-panel-loading .spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.tools-panel-error{padding:var(--spacing-3xl);justify-content:center;align-items:center;gap:var(--spacing-md);background:var(--color-bg-primary);border-radius:var(--radius-lg);border:1px solid var(--color-error);flex-direction:column;display:flex}.tools-panel-error .error-icon{font-size:2rem}.tools-panel-error p{color:var(--color-error);margin:0}.retry-btn{padding:var(--spacing-sm)var(--spacing-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);transition:var(--transition-fast);border:none}.retry-btn:hover{background:var(--color-primary-dark)}.tools-empty{padding:var(--spacing-3xl);background:var(--color-bg-primary);border-radius:var(--radius-lg);border:1px dashed var(--color-border);flex-direction:column;justify-content:center;align-items:center;display:flex}.tools-empty .empty-icon{margin-bottom:var(--spacing-md);font-size:3rem}.tools-empty p{color:var(--color-text-secondary);margin:0}.tools-empty .empty-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.tools-categories{gap:var(--spacing-xl);flex-direction:column;display:flex}.tool-category{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--color-border)}.category-title{align-items:center;gap:var(--spacing-sm);margin:0 0 var(--spacing-md)0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex}.category-icon{font-size:1.2rem}.category-count{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);padding:2px 8px}.tools-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.tool-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--color-border);transition:var(--transition-fast)}.tool-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md)}.tool-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.tool-icon{font-size:1.5rem}.tool-status{font-size:var(--font-size-xs);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);padding:2px 8px}.tool-status.active{background:var(--color-success-light);color:var(--color-success)}.tool-name{margin:0 0 var(--spacing-xs)0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-family:monospace}.tool-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.tools-info{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--color-border)}.tools-info h4{margin:0 0 var(--spacing-sm)0;font-size:var(--font-size-base);color:var(--color-text-primary)}.tools-info ul{padding-left:var(--spacing-lg);margin:0}.tools-info li{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.tools-info li:last-child{margin-bottom:0}@media (max-width:768px){.tools-summary{flex-direction:column;align-items:stretch}.summary-card{min-width:unset}.refresh-btn{justify-content:center;width:100%;margin-left:0}.tools-grid{grid-template-columns:1fr}.usage-examples{flex-direction:column}}.admin-page{background-color:var(--color-bg-secondary);min-height:100vh;display:flex}.admin-content{margin-left:var(--admin-sidebar-width);flex-direction:column;flex:1;display:flex}.admin-header{background:var(--color-bg-primary);padding:var(--spacing-lg)var(--spacing-xl);border-bottom:1px solid var(--color-border);z-index:10;position:sticky;top:0}.admin-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.admin-body{padding:var(--spacing-lg)var(--spacing-xl);flex:1;overflow-y:auto}@media (max-width:1024px){.admin-content{margin-left:0}}@media (max-width:768px){.admin-header{padding:var(--spacing-md)var(--spacing-lg)}.admin-title{font-size:var(--font-size-2xl)}.admin-body{padding:var(--spacing-md)var(--spacing-lg)}}.project-list-page{--bg-primary:#faf9f5;--bg-secondary:#f5f4f0;--bg-tertiary:#e5e3dc;--bg-hover:#f0efe9;--border-light:#e5e3dc;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--primary-color:#074755;--primary-dark:#053440;background:var(--bg-primary);flex-direction:column;height:100vh;display:flex}.project-list-header{background:var(--bg-primary,#faf9f5);border-bottom:1px solid var(--border-light,#e5e3dc);justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.project-list-header .header-left{align-items:center;gap:12px;display:flex}.project-list-header h1{color:var(--text-primary);margin:0;font-size:24px;font-weight:600}.project-list-header .back-button{cursor:pointer;width:36px;height:36px;color:var(--text-secondary);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.project-list-header .back-button:hover{background:var(--bg-hover);color:var(--text-primary)}.create-project-btn{background:var(--primary-color,#074755);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.create-project-btn:hover{background:var(--primary-dark,#053440)}.project-list-toolbar{background:var(--bg-primary,#faf9f5);align-items:center;gap:24px;padding:16px 32px;display:flex}.search-box{background:var(--bg-secondary,#f5f4f0);border:1px solid var(--border-light,#e5e3dc);border-radius:10px;flex:1;align-items:center;gap:10px;max-width:400px;padding:10px 16px;transition:all .2s;display:flex}.search-box:focus-within{border-color:var(--primary-color,#074755);background:#fff}.search-box svg{color:var(--text-muted,#999);flex-shrink:0}.search-box input{color:var(--text-primary,#1a1a1a);background:0 0;border:none;outline:none;flex:1;font-size:14px}.search-box input::placeholder{color:var(--text-muted,#999)}.clear-search{background:var(--bg-tertiary,#e5e3dc);cursor:pointer;width:20px;height:20px;color:var(--text-secondary,#666);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.clear-search:hover{background:var(--text-muted,#999);color:#fff}.filter-tabs{background:var(--bg-secondary,#f5f4f0);border-radius:8px;gap:4px;padding:4px;display:flex}.filter-tab{color:var(--text-secondary,#666);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 16px;font-size:14px;transition:all .2s}.filter-tab:hover{color:var(--text-primary,#1a1a1a)}.filter-tab.active{color:var(--text-primary,#1a1a1a);background:#fff;box-shadow:0 1px 3px #0000001a}.project-list-error{color:#c53030;background:#fff5f5;border:1px solid #fcc;border-radius:8px;align-items:center;gap:10px;margin:0 32px 16px;padding:12px 16px;font-size:14px;display:flex}.project-list-error button{cursor:pointer;color:#c53030;background:0 0;border:none;margin-left:auto;font-size:18px}.project-list-content{flex:1;padding:0 32px 32px;overflow-y:auto}.loading-state,.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.loading-state .spinner{border:3px solid var(--border-light,#e5e3dc);border-top-color:var(--primary-color,#074755);border-radius:50%;width:40px;height:40px;margin-bottom:16px;animation:1s linear infinite spin}.loading-state span{color:var(--text-secondary,#666);font-size:14px}.empty-state .empty-icon{color:var(--text-muted,#ccc);margin-bottom:16px}.empty-state h3{color:var(--text-primary,#1a1a1a);margin:0 0 8px;font-size:18px;font-weight:600}.empty-state p{color:var(--text-secondary,#666);margin:0 0 24px;font-size:14px}.create-first-btn{background:var(--primary-color,#074755);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .2s}.create-first-btn:hover{background:var(--primary-dark,#053440)}.project-section{margin-bottom:32px}.section-title{color:var(--text-secondary,#666);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;font-weight:600;display:flex}.section-title svg{color:var(--text-muted,#999)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.project-card{border:1px solid var(--border-light,#e5e3dc);cursor:pointer;background:#fff;border-radius:12px;padding:20px;transition:all .2s;position:relative}.project-card:hover{border-color:var(--project-color,#074755);transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.project-card .card-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.project-icon{color:#fff;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;font-weight:600;display:flex}.card-actions{opacity:0;gap:4px;transition:opacity .2s;display:flex}.project-card:hover .card-actions{opacity:1}.star-btn,.menu-btn{background:var(--bg-secondary,#f5f4f0);cursor:pointer;width:32px;height:32px;color:var(--text-secondary,#666);border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.star-btn:hover,.menu-btn:hover{background:var(--bg-tertiary,#e5e3dc)}.star-btn.starred{color:#f59e0b;background:#fef3c7}.star-btn.starred:hover{background:#fde68a}.menu-wrapper{position:relative}.menu-backdrop{z-index:99;position:fixed;inset:0}.dropdown-menu{border:1px solid var(--border-light,#e5e3dc);z-index:100;background:#fff;border-radius:8px;min-width:140px;margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.dropdown-menu button{text-align:left;width:100%;color:var(--text-primary,#1a1a1a);cursor:pointer;background:0 0;border:none;padding:10px 16px;font-size:14px;transition:background .2s;display:block}.dropdown-menu button:hover{background:var(--bg-secondary,#f5f4f0)}.dropdown-menu button.danger{color:#dc2626}.dropdown-menu button.danger:hover{background:#fef2f2}.card-body{margin-bottom:16px}.project-name{color:var(--text-primary,#1a1a1a);align-items:center;gap:8px;margin:0 0 8px;font-size:16px;font-weight:600;display:flex}.pin-icon{color:var(--text-muted,#999)}.project-description{color:var(--text-secondary,#666);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;display:-webkit-box;overflow:hidden}.card-footer{border-top:1px solid var(--border-light,#e5e3dc);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.project-stats{gap:16px;display:flex}.project-stats .stat{color:var(--text-muted,#999);align-items:center;gap:4px;font-size:13px;display:flex}.updated-at{color:var(--text-muted,#999);font-size:12px}.create-project-modal{z-index:1001;background:#fff;border-radius:16px;width:90%;max-width:500px;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 20px 40px #0003}.modal-header{border-bottom:1px solid var(--border-light,#e5e3dc);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{color:var(--text-primary,#1a1a1a);margin:0;font-size:18px;font-weight:600}.modal-header .close-btn{background:var(--bg-secondary,#f5f4f0);cursor:pointer;width:32px;height:32px;color:var(--text-secondary,#666);border:none;border-radius:6px;font-size:20px}.modal-header .close-btn:hover{background:var(--bg-tertiary,#e5e3dc)}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group label{color:var(--text-primary,#1a1a1a);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input,.form-group textarea{border:1px solid var(--border-light,#e5e3dc);width:100%;color:var(--text-primary,#1a1a1a);background:var(--bg-secondary,#f5f4f0);box-sizing:border-box;border-radius:8px;padding:12px 16px;font-size:14px;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary-color,#074755);background:#fff;outline:none}.form-group textarea{resize:vertical;min-height:80px}.form-row{gap:20px;display:flex}.form-row .form-group{flex:1}.color-picker{gap:8px;display:flex}.color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:all .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text-primary,#1a1a1a);box-shadow:0 0 0 2px white,0 0 0 4px var(--text-primary,#1a1a1a)}.icon-input{text-align:center;width:60px!important;font-size:20px!important}.modal-footer{background:var(--bg-secondary,#f5f4f0);border-top:1px solid var(--border-light,#e5e3dc);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.modal-footer .btn-cancel,.modal-footer .btn-create{cursor:pointer;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s}.modal-footer .btn-cancel{border:1px solid var(--border-light,#e5e3dc);color:var(--text-primary,#1a1a1a);background:#fff}.modal-footer .btn-cancel:hover{background:var(--bg-secondary,#f5f4f0)}.modal-footer .btn-create{background:var(--primary-color,#074755);color:#fff;border:none}.modal-footer .btn-create:hover:not(:disabled){background:var(--primary-dark,#053440)}.modal-footer .btn-create:disabled{opacity:.5;cursor:not-allowed}@media (max-width:768px){.project-list-header{padding:16px 20px}.project-list-header h1{font-size:20px}.create-project-btn span{display:none}.project-list-toolbar{flex-direction:column;gap:12px;padding:12px 20px}.search-box{width:100%;max-width:none}.filter-tabs{justify-content:center;width:100%}.project-list-content{padding:0 20px 20px}.project-grid{grid-template-columns:1fr}.create-project-modal{width:95%;max-height:90vh;overflow-y:auto}.form-row{flex-direction:column}}.project-detail-page{background:var(--bg-primary,#faf9f5);flex-direction:column;height:100vh;display:flex}.project-detail-header{background:var(--bg-primary,#faf9f5);border-bottom:1px solid var(--border-light,#e5e3dc);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.project-detail-header .back-button{color:var(--text-secondary,#666);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;transition:all .2s;display:flex}.project-detail-header .back-button:hover{background:var(--bg-hover,#f0efe9);color:var(--text-primary,#1a1a1a)}.header-actions{align-items:center;gap:8px;display:flex}.action-btn{cursor:pointer;width:36px;height:36px;color:var(--text-secondary,#666);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.action-btn:hover{background:var(--bg-hover,#f0efe9);color:var(--text-primary,#1a1a1a)}.action-btn.star-btn.starred{color:#f59e0b}.share-btn{border:1px solid var(--border-light,#e5e3dc);color:var(--text-primary,#1a1a1a);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.share-btn:hover{background:var(--bg-hover,#f0efe9)}.project-error{color:#c53030;background:#fff5f5;border:1px solid #fcc;border-radius:8px;justify-content:space-between;align-items:center;margin:16px 24px;padding:12px 16px;font-size:14px;display:flex}.project-error button{cursor:pointer;color:inherit;background:0 0;border:none;font-size:18px}.loading-container,.error-container{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.loading-container .spinner{border:3px solid var(--border-light,#e5e3dc);border-top-color:var(--primary-color,#074755);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.project-detail-content{flex:1;display:flex;overflow:hidden}.project-main{flex-direction:column;flex:1;max-width:800px;margin:0 auto;padding:32px 48px;display:flex;overflow-y:auto}.project-info-section{margin-bottom:24px}.project-title-row{margin-bottom:8px}.project-title{color:var(--text-primary,#1a1a1a);cursor:pointer;border-radius:6px;margin:0 0 0 -8px;padding:4px 8px;font-size:28px;font-weight:600;transition:background .2s}.project-title:hover{background:var(--bg-hover,#f0efe9)}.edit-name-input{color:var(--text-primary,#1a1a1a);border:2px solid var(--primary-color,#074755);box-sizing:border-box;background:#fff;border-radius:6px;width:100%;margin-left:-10px;padding:4px 8px;font-size:28px;font-weight:600}.project-description{color:var(--text-secondary,#666);cursor:pointer;border-radius:6px;margin:0 0 0 -8px;padding:4px 8px;font-size:15px;transition:background .2s}.project-description:hover{background:var(--bg-hover,#f0efe9)}.edit-desc-input{color:var(--text-primary,#1a1a1a);border:2px solid var(--primary-color,#074755);resize:none;box-sizing:border-box;background:#fff;border-radius:6px;width:100%;margin-left:-10px;padding:8px;font-size:15px}.project-meta{color:var(--text-muted,#999);align-items:center;gap:8px;margin-top:12px;padding-left:8px;font-size:13px;display:flex}.privacy{align-items:center;gap:4px;display:flex}.chat-input-section{cursor:pointer;margin-bottom:24px}.fake-input{border:1px solid var(--border-light,#e5e3dc);background:#fff;border-radius:16px;justify-content:space-between;align-items:center;padding:16px 20px;transition:all .2s;display:flex}.chat-input-section:hover .fake-input{border-color:var(--primary-color,#074755);box-shadow:0 2px 8px #00000014}.fake-input .placeholder{color:var(--text-muted,#999);font-size:15px}.input-actions{align-items:center;gap:8px;display:flex}.input-btn{cursor:pointer;width:32px;height:32px;color:var(--text-muted,#999);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.send-btn{background:var(--color-primary-light,#074755);cursor:pointer;color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.model-selector{color:var(--text-secondary,#666);cursor:pointer;align-items:center;gap:4px;margin-top:12px;margin-left:8px;font-size:13px;display:flex}.model-selector:hover{color:var(--text-primary,#1a1a1a)}.tabs-section{border-bottom:1px solid var(--border-light,#e5e3dc);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;display:flex}.tabs{gap:4px;display:flex}.tab{color:var(--text-secondary,#666);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.tab:hover{background:var(--bg-hover,#f0efe9)}.tab.active{background:var(--bg-tertiary,#e5e3dc);color:var(--text-primary,#1a1a1a)}.privacy-note{color:var(--text-muted,#999);align-items:center;gap:6px;font-size:12px;display:flex}.chats-list{flex:1}.chat-item{border:1px solid var(--border-light,#e5e3dc);cursor:pointer;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:16px;transition:all .2s;display:flex}.chat-item:hover{border-color:var(--primary-color,#074755);box-shadow:0 2px 8px #0000000f}.chat-content{flex:1}.chat-title{color:var(--text-primary,#1a1a1a);margin:0 0 4px;font-size:15px;font-weight:500}.chat-meta{color:var(--text-muted,#999);font-size:12px}.chat-menu-btn{cursor:pointer;width:32px;height:32px;color:var(--text-muted,#999);opacity:0;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.chat-item:hover .chat-menu-btn{opacity:1}.chat-menu-btn:hover{background:var(--bg-hover,#f0efe9);color:var(--text-primary,#1a1a1a)}.empty-chats{text-align:center;color:var(--text-secondary,#666);padding:48px 20px}.empty-chats p{margin:0 0 8px}.empty-chats .hint{color:var(--text-muted,#999);font-size:13px}.project-sidebar{border-left:1px solid var(--border-light,#e5e3dc);background:#fff;flex-shrink:0;width:320px;padding:24px;overflow-y:auto}.sidebar-section{background:var(--bg-secondary,#f5f4f0);border-radius:12px;margin-bottom:16px;padding:16px}.sidebar-section .section-header{cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sidebar-section h3{color:var(--text-primary,#1a1a1a);margin:0;font-size:14px;font-weight:600}.section-count{color:var(--text-muted,#999);background:var(--bg-tertiary,#e5e3dc);border-radius:10px;padding:2px 8px;font-size:12px}.add-btn{cursor:pointer;width:24px;height:24px;color:var(--text-muted,#999);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.add-btn:hover{background:var(--bg-tertiary,#e5e3dc);color:var(--text-primary,#1a1a1a)}.section-preview .preview-text{color:var(--text-secondary,#666);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:13px;display:-webkit-box;overflow:hidden}.section-preview .empty-text{color:var(--text-muted,#999);margin:0;font-size:13px}.last-update{color:var(--text-muted,#999);margin-top:12px;font-size:11px;display:block}.file-dropzone-mini{border:2px dashed var(--border-light,#e5e3dc);text-align:center;cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;padding:24px;transition:all .2s;display:flex}.file-dropzone-mini:hover{border-color:var(--primary-color,#074755);background:var(--bg-primary,#faf9f5)}.file-dropzone-mini .dropzone-icon{color:var(--text-muted,#ccc);margin-bottom:12px}.file-dropzone-mini p{color:var(--text-muted,#999);margin:0;font-size:13px;line-height:1.5}.files-preview{margin-top:12px}.file-preview-item{background:#fff;border-radius:6px;align-items:center;gap:8px;margin-bottom:4px;padding:8px;display:flex}.file-preview-item .file-name{color:var(--text-primary,#1a1a1a);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.more-files{color:var(--text-muted,#999);padding-left:8px;font-size:12px}.modal-overlay{z-index:1000;background:#00000080;position:fixed;inset:0}.settings-modal{z-index:1001;background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:80vh;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 20px 40px #0003}@media (max-width:1024px){.project-sidebar{display:none}}@media (max-width:768px){.project-main{padding:20px}.project-title,.edit-name-input{font-size:22px}.tabs-section{flex-direction:column;align-items:flex-start;gap:12px}}
