:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 36px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--primary-50: #E0F7F6;--primary-100: #B3ECE9;--primary-200: #80E0DC;--primary-300: #4DD4CE;--primary-400: #26CBC4;--primary-500: #0ABAB5;--primary-600: #09ABA6;--primary-700: #089994;--primary-800: #078883;--primary-900: #046963;--accent-50: #FCE4EC;--accent-100: #F8BBD0;--accent-200: #F48FB1;--accent-300: #F06292;--accent-400: #EC407A;--accent-500: #E91E63;--accent-600: #D81B60;--accent-700: #C2185B;--accent-800: #AD1457;--accent-900: #880E4F;--neutral-0: #FFFFFF;--neutral-50: #FAFAFA;--neutral-100: #F5F5F5;--neutral-200: #EEEEEE;--neutral-300: #E0E0E0;--neutral-400: #BDBDBD;--neutral-500: #9E9E9E;--neutral-600: #757575;--neutral-700: #616161;--neutral-800: #424242;--neutral-900: #212121;--neutral-1000: #121212;--success-50: #E8F5E9;--success-100: #C8E6C9;--success-500: #4CAF50;--success-700: #388E3C;--warning-50: #FFF8E1;--warning-100: #FFECB3;--warning-500: #FFC107;--warning-700: #FFA000;--error-50: #FFEBEE;--error-100: #FFCDD2;--error-500: #F44336;--error-700: #D32F2F;--primary-color: var(--primary-500);--primary-dark: var(--primary-700);--primary-light: var(--primary-100);--accent-color: var(--accent-500);--background-color: var(--neutral-50);--background-alt: var(--neutral-0);--surface-color: var(--neutral-0);--surface-variant: var(--neutral-100);--text-primary: var(--neutral-900);--text-secondary: var(--neutral-600);--text-disabled: var(--neutral-400);--divider-color: var(--neutral-200);--success-color: var(--success-500);--warning-color: var(--warning-500);--error-color: var(--error-500);--shadow-1: none;--shadow-2: none;--shadow-3: none;--shadow-4: none;--shadow-5: none;--box-shadow: none;--box-shadow-hover: none;--box-shadow-elevated: none;--border-radius-xs: 4px;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-xl: 24px;--border-radius-xxl: 32px;--transition-fast: .18s cubic-bezier(.4, 0, .2, 1);--transition-normal: .24s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-enter: .35s cubic-bezier(.25, .46, .45, .94);--transition-exit: .25s cubic-bezier(.4, 0, 1, 1);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--content-max-width: 1440px;--sidebar-width: 280px;--topbar-height: 64px}body{margin:0;padding:0;color:var(--text-primary);background-color:var(--background-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.3;color:var(--text-primary)}h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);letter-spacing:-.025em;margin-bottom:var(--space-6)}h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);letter-spacing:-.0125em;margin-bottom:var(--space-5)}h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4)}h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);margin-bottom:var(--space-3)}h5{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}h6{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}p{margin-top:0;margin-bottom:var(--space-4);line-height:1.6}.btn{cursor:pointer;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--border-radius-sm);background-color:var(--surface-variant);color:var(--text-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:all var(--transition-normal);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px}.btn:hover{background-color:var(--neutral-200);box-shadow:none;transform:translateY(-1px)}.btn:active{transform:translateY(0);box-shadow:none}.btn-primary{background-color:#0abab5;color:#fff}.btn-primary:hover{background-color:teal}.btn-primary:disabled{background-color:var(--neutral-300);color:var(--text-disabled);cursor:not-allowed;box-shadow:none;transform:none}.btn-tiffany{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;background-color:#0abab5;color:#fff;border:none;border-radius:12px;font-weight:500;text-align:center;cursor:pointer;transition:background-color .2s ease-in-out,transform .1s ease;box-shadow:none;text-decoration:none}.btn-tiffany:hover{background-color:#089a94;transform:translateY(-1px)}.btn-tiffany:active{background-color:#067f7a;transform:translateY(0)}.btn-tiffany:disabled{background-color:#a0dcdc;color:#f0fafa;cursor:not-allowed;transform:none}.btn-tiffany-danger{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;background-color:#e57373;color:#fff;border:none;border-radius:12px;font-weight:500;text-align:center;cursor:pointer;transition:background-color .2s ease-in-out,transform .1s ease;box-shadow:none;text-decoration:none}.btn-tiffany-danger:hover{background-color:#ef5350;transform:translateY(-1px)}.btn-tiffany-danger:active{background-color:#e53935;transform:translateY(0)}.btn-tiffany-danger:disabled{background-color:#ffcdd2;color:#ffebee;cursor:not-allowed;transform:none}.chart-period-btn{padding:.3rem .8rem;margin:0 .2rem;border-radius:8px;background-color:transparent;color:#555;border:1px solid #ccc;cursor:pointer;transition:all .2s ease;box-shadow:none}.chart-period-btn:hover{background-color:#e0f7fa;border-color:#0abab5;color:#089a94}.chart-period-btn.active{background-color:#0abab5;color:#fff;border-color:#0abab5;font-weight:500}.btn-more-actions{padding:.2rem .5rem;background-color:transparent;border:1px solid #ccc;border-radius:8px;color:#555;cursor:pointer;transition:all .2s ease;box-shadow:none}.btn-more-actions:hover{background-color:#e0f7fa;border-color:#0abab5;color:#089a94}.bento-button.send-icon-button{padding:.5rem;background-color:#0abab5;color:#fff;border:none;border-radius:12px;cursor:pointer;transition:background-color .2s ease-in-out;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}.bento-button.send-icon-button:hover{background-color:#089a94}.bento-button.send-icon-button:disabled{background-color:#a0dcdc;cursor:not-allowed}.bento-confirm-btn{padding:.6rem 1.2rem;background-color:#0abab5;color:#fff;border:none;border-radius:12px;font-weight:500;cursor:pointer;transition:background-color .2s ease-in-out;box-shadow:none}.bento-confirm-btn:hover{background-color:#089a94}.bento-confirm-btn:disabled{background-color:#a0dcdc;color:#f0fafa;cursor:not-allowed;transform:none}input,textarea,select{padding:var(--space-3) var(--space-4);border:1px solid var(--divider-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-md);font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);background-color:var(--surface-color)}input:focus,textarea:focus,select:focus{outline:none;border-color:#0abab5;box-shadow:none;transform:translateY(-2px)}.card{background-color:var(--surface-color);border-radius:var(--border-radius-lg);box-shadow:none;overflow:hidden;transition:all var(--transition-normal);padding:var(--space-6)}.card:hover{box-shadow:none;transform:translateY(-2px)}.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--space-1)}.status-live{background-color:var(--success-color);box-shadow:none}.status-paused{background-color:var(--warning-color);box-shadow:none}.status-idle{background-color:var(--text-disabled)}.pipeline-view-container{display:flex;height:100vh;overflow:hidden;background-color:var(--background-color)}.pipeline-main-area{flex:2;display:flex;flex-direction:column;overflow-y:auto;padding:var(--space-8);background-color:var(--background-color)}.pipeline-chat-area{flex:1;display:flex;flex-direction:column;height:100%;background-color:var(--surface-color);box-shadow:none;position:relative;z-index:10;border-left:1px solid var(--divider-color)}.pipeline-main-content{flex-grow:1;border-radius:var(--border-radius-lg);background-color:var(--surface-color);box-shadow:none;margin-top:var(--space-6);overflow:hidden}.pipeline-node{display:flex;flex-direction:column;align-items:center;padding:var(--space-4);cursor:pointer;border-radius:var(--border-radius-md);background-color:var(--surface-variant);border:2px solid transparent;transition:all var(--transition-normal);min-width:80px;text-align:center;flex:1;margin:0 var(--space-2);box-shadow:none;transform:scale(1);position:relative;z-index:1}.pipeline-node-icon{font-size:2rem;margin-bottom:var(--space-2);transition:transform var(--transition-normal);display:flex;align-items:center;justify-content:center;color:teal}.node-details{border-radius:var(--border-radius-lg);background-color:var(--surface-color);height:100%;display:flex;flex-direction:column}.node-details-tabs{display:flex;border-bottom:1px solid var(--divider-color);margin-bottom:var(--space-4)}.node-details-tab{padding:var(--space-3) var(--space-6);cursor:pointer;font-weight:var(--font-weight-medium);color:var(--text-secondary);border-bottom:3px solid transparent;transition:all var(--transition-normal);font-size:var(--font-size-sm)}.node-details-tab:hover{color:var(--text-primary);background-color:var(--surface-variant)}.node-details-tab.active{color:#0abab5;border-bottom-color:#0abab5}.node-details-content{padding:var(--space-6);flex-grow:1;overflow-y:auto}.data-node-content-area{flex-grow:1;display:flex;flex-direction:column;border-radius:var(--border-radius-lg);padding:var(--space-6)}.data-node-content-area>div[style*="height:"]{flex-grow:1;height:auto!important}.node-details-content h3{margin-top:0;margin-bottom:var(--space-4);color:var(--text-primary)}.node-details-content p{margin-bottom:var(--space-4);line-height:1.6}.node-details-content strong{color:var(--text-primary)}.prompt-form{display:flex;flex-direction:column;gap:var(--space-4)}.prompt-form textarea{min-height:100px;resize:vertical}.version-history-list{list-style:none;padding:0}.version-history-list li{padding:var(--space-2) 0;border-bottom:1px dashed var(--border-color)}.version-history-list li:last-child{border-bottom:none}.chat-panel{display:flex;flex-direction:column;height:100%;background-color:var(--surface-color)}.bento-box{border-radius:var(--border-radius-lg);box-shadow:none;border:1px solid var(--neutral-100);background-color:var(--surface-color);transition:all var(--transition-normal);overflow:hidden}.bento-box .chat-panel-header{background-color:var(--neutral-50);padding:var(--space-5) var(--space-5);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.bento-box .chat-panel-messages{background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:20px 20px;background-color:var(--neutral-50);border-top:1px solid var(--neutral-100);border-bottom:1px solid var(--neutral-100)}.bento-box .chat-bubble.agent{background-color:var(--surface-color);border:1px solid var(--neutral-100);box-shadow:none}.bento-box .chat-panel-input{background-color:var(--neutral-50);padding:var(--space-5) var(--space-5)}.bento-box .chat-panel-input input[type=text]{border-radius:var(--border-radius-lg);background-color:var(--surface-color);padding:var(--space-4) var(--space-5);border:1px solid var(--neutral-200);font-size:var(--font-size-md)}.bento-box .chat-panel-input button{border-radius:var(--border-radius-lg)}.chat-panel-messages{flex-grow:1;padding:var(--space-5);overflow-y:auto;background-color:var(--background-color);display:flex;flex-direction:column;gap:var(--space-4)}.chat-message{display:flex;flex-direction:column;max-width:85%;animation:fadeIn var(--transition-normal)}.chat-bubble.user{background-color:#0abab5;color:#fff;border-bottom-right-radius:4px}.chat-bubble.agent{background-color:var(--surface-color);color:var(--text-primary);border-bottom-left-radius:4px}.typing-indicator{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-5);min-width:60px}.typing-indicator span{width:8px;height:8px;border-radius:50%;background-color:#0abab5;display:inline-block;animation:typing-bounce 1.4s infinite ease-in-out both}.chat-panel-input form{display:flex;width:100%;gap:var(--space-3)}.chat-panel-input input[type=text]{flex:1;padding:var(--space-3) var(--space-4);border-radius:var(--border-radius-lg);border:1px solid var(--divider-color);background-color:var(--background-color);font-size:var(--font-size-md);transition:all var(--transition-normal)}.breadcrumb{padding:var(--space-3) 0;font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-4)}.breadcrumb a{color:#0abab5;text-decoration:none;transition:color var(--transition-fast)}.breadcrumb a:hover{color:teal;text-decoration:underline}.pipeline-navigator{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);margin-bottom:var(--space-6);background-color:var(--surface-color);border-radius:var(--border-radius-lg);box-shadow:none}.pipeline-node{display:flex;flex-direction:column;align-items:center;padding:var(--space-4);cursor:pointer;border-radius:var(--border-radius-md);background-color:var(--surface-variant);border:2px solid transparent;transition:all var(--transition-normal);min-width:80px;text-align:center;flex:1;margin:0 var(--space-2);box-shadow:none;transform:scale(1)}.pipeline-node-icon{font-size:2rem;margin-bottom:var(--space-2);transition:transform var(--transition-normal)}.pipeline-node:hover .pipeline-node-icon{transform:scale(1.1)}.pipeline-node-title{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.pipeline-node-status{font-size:var(--font-size-xs);color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-1)}.pipeline-arrow{font-size:1.25rem;color:var(--text-disabled);display:flex;align-items:center;justify-content:center;position:relative;z-index:0;flex:0 0 auto;margin:0 var(--space-2)}.node-detail-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-item{background-color:var(--surface-variant);border-radius:var(--border-radius-md);padding:var(--space-4);display:flex;flex-direction:column;transition:all var(--transition-normal)}.stat-item:hover{transform:translateY(-2px);box-shadow:none}.stat-label{font-size:.8rem;color:var(--text-secondary);margin-bottom:var(--space-2)}.stat-value{font-size:1.1rem;font-weight:500;color:var(--text-primary)}.chart-container{background-color:var(--surface-color);border-radius:var(--border-radius-lg);padding:var(--space-4);box-shadow:none;flex-grow:1;margin-top:var(--space-4)}.config-editor{background-color:var(--surface-variant);border-radius:var(--border-radius-md);padding:var(--space-2);margin-top:var(--space-4)}.code-block{background-color:var(--surface-variant);color:var(--text-primary);border-radius:var(--border-radius-md);padding:var(--space-4);font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.5;overflow-x:auto;white-space:pre}.chat-prompt-card{background-color:var(--surface-variant);border-radius:var(--border-radius-lg);padding:var(--space-5);margin-top:var(--space-6);box-shadow:none;transition:all var(--transition-normal)}.chat-prompt-card h5{margin-top:0;margin-bottom:var(--space-2);font-size:1.1rem;font-weight:500;color:var(--text-primary)}.chat-prompt-examples{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.chat-prompt-example{background-color:var(--surface-color);color:#0abab5;border:1px solid #E0F7F6;border-radius:var(--border-radius-md);padding:var(--space-2) var(--space-4);font-size:.9rem;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;box-shadow:none}.chat-prompt-example:hover{background-color:#e0f7f6;color:teal;transform:translateY(-2px);box-shadow:none}.chat-prompt-example:active{transform:translateY(0)}.project-header{margin-bottom:var(--space-8)}.project-title-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.project-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{background-color:var(--surface-color);border-radius:var(--border-radius-lg);padding:var(--space-4);box-shadow:none;transition:all var(--transition-normal)}.stat-card:hover{transform:translateY(-2px);box-shadow:none}.stat-card-title{font-size:var(--font-size-xs);color:var(--text-secondary);margin-bottom:var(--space-2)}.stat-card-value{display:flex;align-items:center;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-primary)}.score-bar{height:8px;flex:1;background-color:var(--neutral-200);border-radius:4px;overflow:hidden;margin-right:var(--space-3)}.score-fill{height:100%;border-radius:4px;transition:width .5s ease}.score-value{font-weight:var(--font-weight-medium)}.card,.stat-card,.node-details,.pipeline-navigator,.pipeline-main-content,.chat-panel-header,.chat-bubble{position:relative}.card:after,.stat-card:after,.chat-bubble.agent:after,.node-details:after,.pipeline-navigator:after,.pipeline-main-content:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,#fff0,#fffc,#fff0);opacity:.6;pointer-events:none}.card:before,.stat-card:before,.chat-bubble.agent:before,.node-details:before,.pipeline-navigator:before,.pipeline-main-content:before{content:"";position:absolute;top:0;left:0;bottom:0;width:1px;background:linear-gradient(180deg,#fff0,#fff9,#fff0);opacity:.5;pointer-events:none}.chat-bubble.user:before{content:"";position:absolute;bottom:0;right:0;width:70%;height:1px;background:linear-gradient(90deg,#fff0,#ffffffb3);border-radius:inherit;opacity:.3}.chat-bubble.user:after{content:"";position:absolute;bottom:0;right:0;height:70%;width:1px;background:linear-gradient(180deg,#fff0,#ffffffb3);border-radius:inherit;opacity:.3}.status-indicator{position:relative}.status-indicator.status-live:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:#0abab5;border-radius:50%;opacity:.2;animation:pulse 2s infinite;z-index:-1}.status-indicator.status-paused:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:var(--warning-color);border-radius:50%;opacity:.2;animation:pulse 3s infinite;z-index:-1}@keyframes pulse{0%{transform:scale(1);opacity:.2}50%{transform:scale(1.3);opacity:.1}to{transform:scale(1);opacity:.2}}.chat-panel{display:flex;flex-direction:column;height:100%;background-color:var(--surface-color);position:relative}.chat-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:150px;background:linear-gradient(180deg,#e0f7f6,#fff0);opacity:.4;pointer-events:none}.chat-panel-header{padding:var(--space-4) var(--space-5);font-weight:var(--font-weight-semibold);background-color:var(--surface-color);box-shadow:none;font-size:var(--font-size-lg);color:var(--text-primary);position:relative;z-index:5;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--divider-color)}.chat-panel-actions{display:flex;gap:var(--space-3)}.icon-button{background:none;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.icon-button:hover{background-color:var(--surface-variant);color:var(--text-primary)}.chat-panel-messages{flex-grow:1;padding:var(--space-5);overflow-y:auto;background-color:var(--background-color);display:flex;flex-direction:column;gap:var(--space-4);background-image:radial-gradient(circle at 25px 25px,var(--neutral-100) 2px,transparent 0),radial-gradient(circle at 75px 75px,var(--neutral-100) 2px,transparent 0);background-size:100px 100px}.chat-message{display:flex;flex-direction:column;max-width:85%;animation:fadeIn var(--transition-normal);position:relative}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{align-self:flex-end}.chat-message.agent{align-self:flex-start}.chat-bubble{padding:var(--space-3) var(--space-4);border-radius:var(--border-radius-lg);position:relative;word-wrap:break-word}.chat-bubble:hover{transform:translateY(-1px);box-shadow:none}.chat-bubble.user{background-color:#0abab5;color:#fff;border-bottom-right-radius:4px;box-shadow:none}.chat-bubble.agent{background-color:var(--surface-color);color:var(--text-primary);border-bottom-left-radius:4px;box-shadow:none}.typing-indicator{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-5);min-width:60px;position:relative}.typing-indicator:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,#2196f300,#2196f380,#2196f300);animation:typingGlow 1.5s infinite}@keyframes typingGlow{0%{opacity:.3}50%{opacity:.8}to{opacity:.3}}.typing-indicator span{width:8px;height:8px;border-radius:50%;background-color:#0abab5;display:inline-block;animation:typing-bounce 1.4s infinite ease-in-out both;opacity:.6}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-panel-input{padding:var(--space-4) var(--space-5);background-color:var(--surface-color);border-top:1px solid var(--divider-color);position:relative;z-index:5}.chat-panel-input form{display:flex;width:100%;gap:var(--space-3);position:relative}.chat-panel-input input[type=text]{flex:1;padding:var(--space-3) var(--space-4);border-radius:var(--border-radius-lg);border:1px solid var(--divider-color);background-color:var(--background-color);font-size:var(--font-size-md);transition:all var(--transition-normal);box-shadow:none}.chat-panel-input input[type=text]:focus{border-color:#0abab5;box-shadow:none;transform:translateY(-1px)}.chat-panel-input form:after{content:"";position:absolute;bottom:-6px;left:5%;width:90%;height:12px;background:radial-gradient(ellipse at center,#87ceeb26,#87ceeb00 70%);border-radius:50%;pointer-events:none;opacity:0;transition:opacity var(--transition-normal)}.chat-panel-input input[type=text]:focus~:after{opacity:1}.chat-panel-input button{padding:var(--space-3) var(--space-4);border-radius:var(--border-radius-lg);min-width:46px;transition:all var(--transition-normal)}.chat-panel-input button svg{transition:transform var(--transition-normal)}.chat-panel-input button:hover svg{transform:translate(2px)}.pipeline-node{display:flex;flex-direction:column;align-items:center;padding:var(--space-4);cursor:pointer;border-radius:var(--border-radius-md);background-color:var(--surface-variant);border:2px solid transparent;transition:all var(--transition-normal),background-color .5s ease;min-width:80px;text-align:center;flex:1;margin:0 var(--space-2);box-shadow:none;transform:scale(1);position:relative;z-index:1;overflow:hidden}.pipeline-node:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at center,#ffffff4d,#fff0 70%);opacity:0;transform:scale(.5);transition:transform .5s ease,opacity .5s ease}.pipeline-node:hover:before{opacity:1;transform:scale(1)}.pipeline-node:hover{background-color:var(--background-alt);transform:translateY(-4px);box-shadow:none}.pipeline-node.active{border-color:#0abab5;background-color:#e0f7f6;transform:translateY(-4px) scale(1.05);box-shadow:none}.pipeline-node.active:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(120deg,#fff0 30%,#ffffff26,#fff0 70%);animation:nodeActiveGlow 3s infinite;pointer-events:none}@keyframes nodeActiveGlow{0%{background-position:-300px 0}to{background-position:300px 0}}.pipeline-node-icon{font-size:2rem;margin-bottom:var(--space-2);transition:transform var(--transition-normal);display:flex;align-items:center;justify-content:center;color:teal;position:relative}.pipeline-node-icon svg{transition:transform var(--transition-normal),fill var(--transition-normal)}.pipeline-node:hover .pipeline-node-icon svg{transform:scale(1.1);fill:#0abab5}.pipeline-node-title{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);margin-bottom:var(--space-2);transition:color var(--transition-normal)}.pipeline-node:hover .pipeline-node-title{color:#0abab5}.pipeline-node.active .pipeline-node-title{color:teal}.pipeline-node-status{font-size:var(--font-size-xs);color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-1);transition:color var(--transition-normal)}.pipeline-node.active .pipeline-node-status{color:teal}.pipeline-arrow{font-size:1.25rem;color:var(--text-disabled);display:flex;align-items:center;justify-content:center;position:relative;z-index:0;flex:0 0 auto;margin:0 var(--space-2);opacity:.6;transition:opacity var(--transition-normal),transform var(--transition-normal)}.pipeline-navigator:hover .pipeline-arrow{opacity:.8}.stat-card{position:relative;overflow:hidden;transition:all var(--transition-normal)}.stat-card:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;transform:scaleX(0);transform-origin:0 0;transition:transform .3s ease}.stat-card:nth-child(1):after{background-color:#0abab5}.stat-card:nth-child(2):after{background-color:var(--success-500)}.stat-card:nth-child(3):after{background-color:var(--accent-300)}.stat-card:nth-child(4):after{background-color:var(--warning-500)}.stat-card:hover:after{transform:scaleX(1)}.stat-card-value{position:relative;z-index:1}.score-fill{position:relative;overflow:hidden}.score-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);animation:scoreGlow 2s infinite;pointer-events:none}@keyframes scoreGlow{0%{transform:translate(-100%)}to{transform:translate(100%)}}.code-block{position:relative;overflow:hidden}.code-block:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(120deg,#fff0 40%,#ffffff14,#fff0 60%);background-size:200% 100%;animation:codeGlow 3s infinite;pointer-events:none}@keyframes codeGlow{0%{background-position:-100% 0}to{background-position:200% 0}}.chat-prompt-card{position:relative;overflow:hidden}.chat-prompt-card:before{content:"";position:absolute;top:0;left:0;width:40px;height:100%;background:linear-gradient(90deg,#0abab51a,#0abab500);border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}.chat-prompt-example{position:relative;overflow:hidden;box-shadow:none;transition:all var(--transition-normal)}.chat-prompt-example:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(120deg,#fff0,#ffffff1a,#fff0);transform:translate(-100%);transition:transform .5s ease}.chat-prompt-example:hover:after{transform:translate(100%)}:root{--bento-spacing: 12px;--bento-radius: 16px;--bento-border: 1px solid rgba(0, 0, 0, .08);--bento-shadow: 0 2px 8px rgba(0, 0, 0, .05);--bento-bg-primary: #FFFFFF;--bento-bg-secondary: #F5F5F5;--bento-primary: #0abab5;--bento-primary-dark: #008080;--bento-primary-light: #E0F7F6}body{margin:0;padding:0;background-color:var(--bento-bg-secondary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:var(--bento-bg-secondary);padding:var(--bento-spacing);box-sizing:border-box}.content-container{width:100%;box-sizing:border-box}.app-header{background-color:var(--bento-bg-primary);border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);padding:var(--bento-spacing);display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--bento-spacing);width:100%;box-sizing:border-box}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--bento-spacing);width:100%;padding:0;margin-top:var(--bento-spacing);box-sizing:border-box}.project-card{background-color:var(--bento-bg-primary);border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);transition:all .2s ease-in-out;overflow:hidden}.bento-container{display:flex;width:100%;height:100vh;margin:0;padding:var(--bento-spacing) 0;box-sizing:border-box;background-color:var(--bento-bg-secondary);gap:var(--bento-spacing);overflow:hidden}.bento-main{flex:2;display:flex;flex-direction:column;gap:var(--bento-spacing);overflow-y:auto}.bento-chat-area{flex:1;max-width:400px;min-width:320px;display:flex;border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);background-color:var(--bento-bg-primary);overflow:hidden}.bento-chat{display:flex;flex-direction:column;height:100%;background-color:var(--bento-bg-primary);border-radius:var(--bento-radius);border:var(--bento-border);overflow:hidden}.bento-chat-header{padding:var(--bento-spacing);border-bottom:var(--bento-border);font-weight:600;background-color:var(--bento-bg-primary)}.bento-chat-container{flex-grow:1;display:flex;flex-direction:column;position:relative;overflow:hidden}.bento-chat-messages{flex-grow:1;padding:var(--bento-spacing);padding-bottom:var(--bento-spacing);display:flex;flex-direction:column;gap:var(--bento-spacing);overflow-y:auto;background-color:var(--bento-bg-secondary);scroll-behavior:smooth}.bento-tool-call-container{position:sticky;bottom:0;left:0;right:0;z-index:10;padding:var(--bento-spacing);background-color:var(--bento-bg-secondary);border-top:var(--bento-border);display:flex;flex-direction:column}.bento-tool-call{width:100%;background-color:#0abab514;border-radius:calc(var(--bento-radius) / 1.5);border:1px solid rgba(10,186,181,.3);overflow:hidden;position:relative;transform:translateZ(0);transition:all .3s ease}.bento-tool-call-header{display:flex;align-items:center;gap:calc(var(--bento-spacing) / 2);padding:calc(var(--bento-spacing) / 2) var(--bento-spacing);background-color:#0abab526;border-bottom:1px solid rgba(10,186,181,.2);position:sticky;top:0;z-index:11}.bento-chat-footer{border-top:var(--bento-border);background-color:var(--bento-bg-primary)}.bento-chat-input{padding:var(--bento-spacing);background-color:var(--bento-bg-primary)}.bento-chat-form{display:flex;gap:var(--bento-spacing)}.bento-header{background-color:var(--bento-bg-primary);border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);padding:var(--bento-spacing);display:flex;justify-content:space-between;align-items:center}.bento-header-left{display:flex;align-items:center;gap:calc(var(--bento-spacing) * 1.5)}.bento-title{font-size:1.25rem;font-weight:600;color:var(--bento-primary-dark);text-decoration:none;display:flex;align-items:center;gap:8px}.brand-logo{height:36px;width:auto;object-fit:contain}.bento-trading-metrics{display:flex;align-items:center;gap:var(--bento-spacing);flex-wrap:wrap;justify-content:flex-end}.trading-metric{display:flex;flex-direction:column;align-items:center;background-color:var(--bento-bg-secondary);border-radius:calc(var(--bento-radius) / 2);padding:6px 10px;min-width:90px}.metric-label{font-size:.7rem;color:var(--bento-text-secondary);margin-bottom:2px}.metric-value.positive{color:#4caf50}.metric-value.negative{color:#f44336}.project-status{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--bento-text-secondary);padding:4px 10px;background-color:var(--bento-bg-secondary);border-radius:20px}.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%}.project-status.live .status-indicator{background-color:#4caf50;box-shadow:0 0 4px #4caf50}.project-status.paused .status-indicator{background-color:#ff9800;box-shadow:0 0 4px #ff9800}.project-status.idle .status-indicator{background-color:#9e9e9e;box-shadow:0 0 4px #9e9e9e}.bento-pipeline{background-color:var(--bento-bg-primary);border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);padding:var(--bento-spacing);display:flex;align-items:center;gap:var(--bento-spacing)}.bento-node{background-color:var(--bento-bg-primary);border-radius:calc(var(--bento-radius) / 1.5);border:var(--bento-border);padding:var(--bento-spacing);display:flex;flex-direction:column;align-items:center;gap:calc(var(--bento-spacing) / 2);cursor:pointer;transition:all .2s ease;flex:1}.bento-node-icon{font-size:1.5rem;margin-bottom:calc(var(--bento-spacing) / 3)}.bento-node-title{font-weight:500;font-size:.9rem}.bento-node-status{font-size:.75rem;color:var(--bento-text-secondary);display:flex;align-items:center;gap:calc(var(--bento-spacing) / 3)}.bento-node:hover{transform:translateY(-2px)}.bento-node.active{background-color:#0abab51a;border-color:var(--bento-primary);animation:node-highlight .8s ease}@keyframes node-highlight{0%{transform:scale(1);box-shadow:0 0 #0abab566}50%{transform:scale(1.03);box-shadow:0 0 0 5px #0abab533}to{transform:scale(1);box-shadow:0 0 #0abab500}}.bento-connector{color:var(--bento-text-secondary);font-weight:300;font-size:1.2rem}.bento-content{background-color:var(--bento-bg-primary);border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);padding:var(--bento-spacing);flex-grow:1;overflow-y:auto}.bento-message{max-width:85%;align-self:flex-start;margin-bottom:var(--bento-spacing-sm)}.bento-message.user{align-self:flex-end}.bento-message-bubble{padding:var(--bento-spacing);border-radius:calc(var(--bento-radius) / 1.5);background-color:var(--bento-bg-primary);border:var(--bento-border);line-height:1.5}.bento-message-bubble.user{background-color:#0abab514;border-color:#0abab54d}.bento-welcome-message{background-color:#0abab50d;border-radius:var(--bento-radius);padding:var(--bento-spacing);margin-bottom:var(--bento-spacing);line-height:1.6;color:var(--bento-text-secondary)}.bento-welcome-message p{margin:.5em 0}.bento-welcome-message strong{color:var(--bento-primary)}.bento-input{flex:1;padding:calc(var(--bento-spacing) / 1.5) var(--bento-spacing);border-radius:calc(var(--bento-radius) / 1.5);border:var(--bento-border);background-color:var(--bento-bg-secondary);font-size:14px}.typing-indicator{display:flex;align-items:center;column-gap:6px;padding:15px 20px!important}.typing-indicator span{height:10px;width:10px;float:left;margin:0 1px;background-color:var(--bento-primary);display:block;border-radius:50%;opacity:.4}.typing-indicator span:nth-child(1){animation:typing 1s infinite}.typing-indicator span:nth-child(2){animation:typing 1s .33s infinite}.typing-indicator span:nth-child(3){animation:typing 1s .66s infinite}@keyframes typing{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.bento-confirmation{display:flex;justify-content:center;margin:var(--bento-spacing) 0}.bento-confirm-btn{background-color:var(--bento-primary);color:#fff;border:none;padding:8px 16px;border-radius:calc(var(--bento-radius) / 1.5);cursor:pointer;font-weight:500;transition:all .2s}.bento-confirm-btn:hover{background-color:var(--bento-primary-dark)}.beta-badge{font-size:12px;padding:2px 6px;margin-left:8px;background-color:#0abab526;color:var(--bento-primary-dark);border-radius:9999px;font-weight:400}.bento-button{padding:calc(var(--bento-spacing) / 1.5) var(--bento-spacing);border-radius:calc(var(--bento-radius) / 1.5);border:none;background-color:var(--bento-primary);color:#fff;font-weight:500;cursor:pointer;transition:all .2s ease}.bento-button:hover{background-color:var(--bento-primary-dark)}.bento-button:disabled{opacity:.6;cursor:not-allowed}.bento-tool-call-icon{font-size:1rem}.bento-tool-call-name{font-size:.8rem;font-weight:500;color:var(--bento-primary-dark)}.bento-tool-call-result{padding:var(--bento-spacing);font-family:SF Mono,Menlo,Monaco,Consolas,monospace;font-size:.85rem;overflow-x:auto;line-height:1.4;overflow-y:visible}.bento-tool-call-result pre{margin:0;white-space:pre-wrap}.bento-tool-call-result code{font-family:SF Mono,Menlo,Monaco,Consolas,monospace;background-color:#0000000a;padding:.2em .4em;border-radius:3px;font-size:.85em}.strategy-module{display:flex;flex-direction:column;height:100%;overflow:hidden}.strategy-module-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 12px;border-bottom:1px solid #ddd}.strategy-tabs{display:flex;gap:8px}.strategy-tab{padding:8px 16px;border:none;background:#f5f5f5;cursor:pointer;border-radius:4px;font-weight:500;transition:all .2s ease}.strategy-tab.active{background:#3b4cca;color:#fff}.strategy-module-content{flex:1;overflow:auto;padding:16px 0}.strategy-list-container{height:100%;display:flex;flex-direction:column}.strategy-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.create-strategy-btn{padding:8px 16px;background:#3b4cca;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500}.strategies-table{width:100%;border-collapse:collapse}.strategies-table th,.strategies-table td{padding:12px;text-align:left;border-bottom:1px solid #eee}.strategies-table th{font-weight:600;background:#f9f9f9}.strategies-table tr.disabled{opacity:.6}.strategy-actions{display:flex;gap:8px}.edit-btn,.delete-btn{padding:4px 8px;border:none;border-radius:4px;cursor:pointer}.edit-btn{background:#f0f0f0}.delete-btn{background:#ffebee;color:#c62828}.strategy-editor-container{display:flex;flex-direction:column;height:100%}.editor-form{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-weight:500}.form-group input,.form-group textarea{padding:8px;border:1px solid #ddd;border-radius:4px}.editor-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:16px}.spacer{flex:1}.save-button{padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.editor-wrapper{flex:1;position:relative;overflow:hidden}.code-editor-textarea{border-radius:4px}.factor-combination{display:flex;flex-direction:column;height:100%}.combination-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.optimize-button{padding:8px 16px;background:#3b4cca;color:#fff;border:none;border-radius:4px;cursor:pointer}.weight-sliders{display:flex;flex-direction:column;gap:12px;flex:1}.weight-item{display:flex;align-items:center;gap:12px}.weight-item label{width:200px;font-weight:500}.weight-item input[type=range]{flex:1}.weight-value{width:60px;text-align:right;font-weight:500}.factor-performance{width:160px;text-align:right;color:#666}.combination-weights{display:flex;gap:32px}.weight-visualization{width:250px;height:250px;display:flex;align-items:center;justify-content:center}.weight-donut-chart{width:200px;height:200px;position:relative}.weight-donut-placeholder{width:100%;height:100%;border-radius:50%;position:relative;overflow:hidden}.donut-segment{position:absolute;width:100%;height:100%;clip-path:polygon(50% 50%,50% 0%,100% 0%,100% 100%,50% 100%);transform-origin:center}.donut-hole{position:absolute;width:60%;height:60%;background:#fff;border-radius:50%;top:20%;left:20%}.factor-0{background-color:#4285f4}.factor-1{background-color:#ea4335}.factor-2{background-color:#fbbc05}.factor-3{background-color:#34a853}.factor-4{background-color:#8f00ff}.combination-actions{margin-top:32px;display:flex;justify-content:flex-end}.save-weights-button{padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.risk-control{display:flex;flex-direction:column;height:100%}.risk-control-header{margin-bottom:16px}.risk-params-container{display:flex;flex-direction:column;gap:24px}.risk-param-item{display:flex;align-items:center;gap:16px}.risk-param-item label{width:200px;font-weight:500}.risk-param-item input[type=range]{flex:1}.param-value{width:60px;text-align:right;font-weight:500}.risk-control-actions{margin-top:32px;display:flex;justify-content:flex-end}.save-risk-params-button{padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:20px}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:#3b4cca}.pipeline-view-container{width:100%;height:100vh;margin:0;padding:var(--bento-spacing) 0;gap:var(--bento-spacing);box-sizing:border-box}.pipeline-main-area{flex:2;display:flex;flex-direction:column;gap:var(--bento-spacing);overflow-y:auto}.pipeline-chat-area{flex:1;max-width:400px;min-width:320px;display:flex;border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);background-color:var(--bento-bg-primary);overflow:hidden}.project-header,.pipeline-navigator,.pipeline-main-content{background-color:var(--bento-bg-primary);border-radius:var(--bento-radius);border:var(--bento-border);box-shadow:var(--bento-shadow);padding:var(--bento-spacing)}.brand-name{font-size:1.5rem;font-weight:700;color:var(--bento-primary-dark);letter-spacing:.5px}.btn{padding:8px 16px;border-radius:calc(var(--bento-radius) / 2);border:none;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s ease}.btn-primary{background-color:var(--bento-primary);color:#fff}.btn-primary:hover{background-color:var(--bento-primary-dark)}.btn-secondary{background-color:var(--bento-bg-secondary);color:var(--bento-text-primary)}.btn-secondary:hover{background-color:#e0e0e0}.icon{font-size:1.2rem;font-weight:700}.send-icon-button{padding:calc(var(--bento-spacing) / 2)!important;min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%}.send-icon-button svg{width:18px;height:18px}.backtest-module{display:flex;flex-direction:column;height:100%;overflow:hidden}.backtest-module-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 12px;border-bottom:1px solid #ddd}.backtest-actions-header{display:flex;gap:12px}.create-backtest-btn{padding:8px 16px;background:#3b4cca;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500}.backtest-module-content{display:flex;flex:1;overflow:hidden}.backtest-sidebar{width:250px;border-right:1px solid #ddd;overflow-y:auto;flex-shrink:0}.backtest-list-header{padding:16px;display:flex;justify-content:space-between;align-items:center}.backtest-count{color:#666;font-size:.9em}.backtest-list{padding:0 16px 16px}.backtests-list-items{display:flex;flex-direction:column;gap:8px}.backtest-list-item{padding:12px;background:#f9f9f9;border-radius:4px;cursor:pointer;transition:all .2s ease}.backtest-list-item:hover{background:#f0f0f0}.backtest-list-item.active{background:#e8eaff;border-left:3px solid #3b4cca}.backtest-list-name{font-weight:500;margin-bottom:4px}.backtest-list-period{font-size:.8em;color:#666;margin-bottom:4px}.backtest-list-return{font-weight:600}.backtest-list-return.positive{color:#34a853}.backtest-list-return.negative{color:#ea4335}.backtest-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.backtest-tabs{display:flex;padding:0 16px;gap:16px;border-bottom:1px solid #ddd}.backtest-tab{padding:16px 0;cursor:pointer;position:relative;font-weight:500}.backtest-tab.active{color:#3b4cca}.backtest-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#3b4cca}.backtest-tab-content{flex:1;padding:16px;overflow:auto}.no-backtest-selected{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;color:#666}.backtest-results{display:flex;flex-direction:column;gap:24px}.backtest-header{display:flex;flex-direction:column;gap:4px}.backtest-period{color:#666;font-size:.9em}.metrics-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.metric-card{background:#f9f9f9;border-radius:4px;padding:16px;display:flex;flex-direction:column;gap:8px}.metric-label{font-size:.9em;color:#666}.metric-value{font-size:1.4em;font-weight:600}.positive-value{color:#34a853}.negative-value{color:#ea4335}.chart-container{background:#f9f9f9;border-radius:4px;padding:16px}.chart-placeholder{width:100%}.chart-title{margin-bottom:16px;font-weight:500}.mock-chart{height:300px;position:relative;margin-top:40px}.mock-chart-line{height:200px;position:relative;border-radius:4px}.mock-chart-marker{width:8px;height:8px;background:#3b4cca;border-radius:50%;position:absolute;transform:translate(-50%,50%)}.mock-chart-path{position:absolute;width:100%;height:100%;background:#3b4cca1a}.mock-chart-baseline{width:100%;height:1px;background:#ddd;position:absolute;bottom:100px}.mock-chart-labels{display:flex;justify-content:space-between;margin-top:8px;color:#666;font-size:.8em}.positions-summary,.recent-trades{background:#f9f9f9;border-radius:4px;padding:16px}.positions-timeline{display:flex;flex-direction:column;gap:16px;margin-top:16px}.position-day{padding:16px;background:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a}.position-date{font-weight:500;margin-bottom:8px}.position-value{display:flex;justify-content:space-between;margin-bottom:8px;color:#666}.position-stocks{display:flex;flex-wrap:wrap;gap:8px}.position-stock{background:#f0f0f0;padding:4px 8px;border-radius:4px;font-size:.85em;display:flex;gap:8px}.trades-table{width:100%;margin-top:16px;border-collapse:collapse}.trades-table th,.trades-table td{padding:12px;text-align:left;border-bottom:1px solid #eee}.trades-table th{font-weight:500;color:#666}.buy-action{color:#34a853}.sell-action{color:#ea4335}.view-more-btn{align-self:center;padding:8px 16px;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;margin-top:8px}.backtest-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.edit-settings-btn,.rerun-backtest-btn{padding:8px 16px;background:#f0f0f0;border:none;border-radius:4px;cursor:pointer}.deploy-strategy-btn{padding:8px 16px;background:#34a853;color:#fff;border:none;border-radius:4px;cursor:pointer}.backtest-settings{padding:16px}.settings-form{display:flex;flex-direction:column;gap:20px;margin-top:24px}.form-group{display:flex;flex-direction:column;gap:8px}.period-group{display:flex;gap:16px}.date-group{flex:1;display:flex;flex-direction:column;gap:8px}.input-with-slider{display:flex;flex-direction:column;gap:8px}.settings-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:32px}.run-backtest-button{padding:8px 16px;background:#3b4cca;color:#fff;border:none;border-radius:4px;cursor:pointer}.run-backtest-button:disabled{background:#a0a0a0;cursor:not-allowed}.data-module{display:flex;flex-direction:column;height:100%;overflow:hidden}.data-module-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 12px;border-bottom:1px solid #ddd}.data-tabs{display:flex;gap:8px}.data-tab{padding:8px 16px;border:none;background:#f5f5f5;cursor:pointer;border-radius:4px;font-weight:500;transition:all .2s ease}.data-tab.active{background:#3b4cca;color:#fff}.data-module-content{flex:1;overflow:auto;padding:16px 0}.data-visualization{display:flex;flex-direction:column;gap:24px}.data-actions{display:flex;gap:12px;margin-top:16px}.data-action-button{padding:8px 16px;background:#f0f0f0;border:none;border-radius:4px;cursor:pointer;font-weight:500}.data-action-button.refresh{background:#3b4cca;color:#fff}.data-config{padding:16px}.config-form{display:flex;flex-direction:column;gap:20px;margin-top:24px}.symbols-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.symbol-tag{display:flex;align-items:center;gap:4px;background:#f0f0f0;padding:4px 8px;border-radius:4px;font-size:.9em}.symbol-tag button{background:none;border:none;cursor:pointer;font-weight:700;color:#666;display:flex;align-items:center;justify-content:center;width:18px;height:18px}.add-symbol-input{display:flex;gap:8px}.add-symbol-input input{flex:1;padding:8px;border:1px solid #ddd;border-radius:4px}.add-symbol-input button{padding:8px 16px;background:#3b4cca;color:#fff;border:none;border-radius:4px;cursor:pointer}.config-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:32px}.cancel-button{padding:8px 16px;background:#f0f0f0;border:none;border-radius:4px;cursor:pointer}.apply-button{padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}:root{--primary-color: #0abab5;--primary-color-light: #E0F7F6;--primary-dark: #008080;--primary-super-light: #F5FFFE;--success-color: #4CAF50;--warning-color: #FFC107;--error-color: #F44336;--error-color-light: #FFEBEE;--text-color: #212121;--text-secondary: #757575;--border-color: #E0E0E0;--card-bg: white;--app-bg: #F5F5F5;--large-border-radius: 16px;--medium-border-radius: 12px;--small-border-radius: 8px;--shadow-1: none;--shadow-2: none;--shadow-3: none;--text-light: #757575;--border-subtle: #EEEEEE;--border-medium: #E0E0E0;--hover-bg: #F5FFFD;--hover-border: #B3ECE9;--bento-spacing: 20px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--app-bg);color:var(--text-color);line-height:1.5;margin:0;padding:0}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%;margin:0;padding:0 var(--bento-spacing);overflow-x:hidden}.content-container{width:100%;padding:0;margin:0;box-sizing:border-box}.app-header{background-color:#fff;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);z-index:1;box-sizing:border-box;margin-top:var(--bento-spacing);margin-bottom:var(--bento-spacing);border-radius:var(--large-border-radius);box-shadow:none}.app-logo{font-weight:600;font-size:1.5rem;color:var(--primary-color);display:flex;align-items:center}.brand-logo{height:40px;width:auto;object-fit:contain}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:var(--medium-border-radius);font-weight:500;font-size:.875rem;cursor:pointer;border:none;transition:all .2s ease;background-color:#f5f5f5;color:var(--text-color)}.btn:hover{background-color:#eee}.btn:active{transform:translateY(1px)}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-dark)}.btn-secondary{background-color:#fff;border:1px solid var(--border-medium)}.btn-secondary:hover{background-color:var(--hover-bg);border-color:var(--hover-border)}.project-card{background-color:var(--card-bg);border-radius:var(--large-border-radius);border:1px solid var(--border-subtle);transition:all .2s ease-in-out;text-decoration:none;color:inherit;display:flex;flex-direction:column;overflow:hidden}.project-card:hover{transform:translateY(-4px);border-color:var(--primary-color);background-color:var(--primary-super-light)}.project-card-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.project-card-title{font-weight:600;font-size:1.1rem}.project-card-status{display:flex;align-items:center;font-size:.8rem;font-weight:500;padding:4px 12px;border-radius:16px;background-color:var(--primary-color-light);color:var(--primary-color)}.project-card-status.live{background-color:#4caf501a;color:var(--success-color)}.project-card-status.paused{background-color:#ffc1071a;color:var(--warning-color)}.project-card-status.idle{background-color:#7575751a;color:var(--text-secondary)}.project-card-status .status-indicator{width:8px;height:8px;border-radius:50%;margin-right:6px}.project-card-status.live .status-indicator{background-color:var(--success-color)}.project-card-status.paused .status-indicator{background-color:var(--warning-color)}.project-card-status.idle .status-indicator{background-color:var(--text-secondary)}.project-card-body{padding:20px;flex-grow:1;display:flex;flex-direction:column;gap:16px}.project-metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project-card-metric{display:flex;flex-direction:column;gap:4px}.metric-label{font-size:.75rem;color:var(--text-light);font-weight:500}.metric-value{font-size:.95rem;font-weight:600}.metric-value.positive{color:var(--success-color)}.metric-value.negative{color:var(--error-color)}.project-card-sparkline{margin:8px 0;display:flex;justify-content:center}.project-card-subtitle{font-size:.8rem;color:var(--text-light);margin-top:auto}.project-card-actions{border-top:1px solid var(--border-subtle);padding:12px 20px;display:flex;justify-content:flex-end}.dashboard-header{margin-bottom:24px}.dashboard-title{font-size:1.75rem;font-weight:600;margin-bottom:8px;color:var(--text-color)}.dashboard-subtitle{font-size:1rem;color:var(--text-secondary)}.portfolio-overview{display:flex;flex-direction:column;gap:20px;padding:0 0 var(--bento-spacing) 0;margin-bottom:var(--bento-spacing);width:100%;box-sizing:border-box}.portfolio-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;width:100%;box-sizing:border-box}.portfolio-card{background-color:var(--card-bg);border-radius:var(--large-border-radius);border:1px solid var(--border-subtle);padding:24px;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}.portfolio-card:hover{border-color:var(--primary-color);background-color:var(--primary-super-light)}.portfolio-card-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.portfolio-card-value{font-size:1.75rem;font-weight:600;color:var(--text-color)}.portfolio-card-change{font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:4px;color:var(--text-secondary)}.portfolio-card-change.positive{color:var(--success-color)}.portfolio-card-change.negative{color:var(--error-color)}.chart-section{display:grid;grid-template-columns:2fr 1fr;gap:20px;height:360px;width:100%;box-sizing:border-box}.portfolio-chart{background-color:var(--card-bg);border-radius:var(--large-border-radius);border:1px solid var(--border-subtle);padding:20px;display:flex;flex-direction:column;width:100%;height:100%;box-sizing:border-box;overflow:hidden}.asset-allocation{background-color:var(--card-bg);border-radius:var(--large-border-radius);border:1px solid var(--border-subtle);padding:20px;display:flex;flex-direction:column;width:100%;height:100%;box-sizing:border-box}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;width:100%}.chart-controls{display:flex;gap:8px;flex-wrap:wrap}.portfolio-chart>div:last-child{width:100%;height:100%;flex:1}.portfolio-chart:hover,.asset-allocation:hover{border-color:var(--primary-color);background-color:var(--primary-super-light)}.chart-title{font-size:1.125rem;font-weight:600;color:var(--text-color)}.chart-period-btn{font-size:.75rem;padding:4px 12px;border-radius:16px;border:1px solid var(--border-subtle);background:none;cursor:pointer;transition:all .2s ease}.chart-period-btn.active{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff;box-shadow:none}.chart-period-btn:not(.active):hover{background-color:var(--primary-super-light);border-color:var(--primary-color)}.asset-allocation{background-color:var(--card-bg);border-radius:var(--large-border-radius);border:1px solid var(--border-subtle);padding:20px;display:flex;flex-direction:column}.allocation-list{margin-top:20px;flex-grow:1;display:flex;flex-direction:column;gap:16px}.allocation-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.allocation-label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-color)}.allocation-dot{width:12px;height:12px;border-radius:50%}.allocation-value{font-weight:500;color:var(--text-color)}.section-title{font-size:1.5rem;font-weight:600;margin-bottom:20px;margin-top:0;color:var(--text-color);padding:0 20px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;width:100%;padding:0;box-sizing:border-box;margin-top:0}@media (max-width: 1200px){.portfolio-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.chart-section{grid-template-columns:1fr;height:auto}.portfolio-chart,.asset-allocation{height:360px}}@media (max-width: 600px){.portfolio-summary{grid-template-columns:1fr}.portfolio-card{padding:16px}.portfolio-chart,.asset-allocation{height:300px}.chart-controls{flex-wrap:wrap}}.portfolio-chart,.asset-allocation{box-shadow:none}:root{--primary: #0abab5;--primary-hover: #39c5bb;--primary-active: #008080;--primary-light: rgba(10, 186, 181, .1);--success: #34a853;--success-light: rgba(52, 168, 83, .1);--error: #ea4335;--error-light: rgba(234, 67, 53, .1);--warning: #fbbc05;--info: #4285f4;--gray-50: #f8f9fa;--gray-100: #f1f3f4;--gray-200: #e8eaed;--gray-300: #dadce0;--gray-400: #bdc1c6;--gray-500: #9aa0a6;--gray-600: #80868b;--gray-700: #5f6368;--gray-800: #3c4043;--gray-900: #202124;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--border-width: 1px;--transition: .15s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--gray-900);line-height:1.5}.pipeline-module{display:flex;flex-direction:column;height:100%;background:#fff}.module-toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fff;border-bottom:var(--border-width) solid var(--gray-200)}.toolbar-tabs{display:flex;align-items:center;gap:var(--space-2)}.toolbar-tab{padding:var(--space-2) var(--space-4);font-size:14px;font-weight:500;color:var(--gray-700);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.toolbar-tab:hover{color:var(--primary);background:var(--primary-light)}.toolbar-tab.active{color:#fff;background:var(--primary)}.toolbar-spacer{flex:1}.module-content{flex:1;overflow:auto;padding:var(--space-4);background:var(--gray-50);position:relative;min-height:300px}.pipeline-card{background:#fff;border-radius:var(--radius-md);box-shadow:none;border:var(--border-width) solid var(--gray-200);overflow:hidden;margin-bottom:var(--space-4)}.pipeline-card-content{padding:var(--space-4)}.item-list{display:flex;flex-direction:column;gap:var(--space-3)}.list-item{background:#fff;border-radius:var(--radius-md);border:var(--border-width) solid var(--gray-200);padding:var(--space-4);transition:var(--transition)}.list-item:hover{border-color:var(--primary);box-shadow:0 2px 6px #0abab51a}.list-item.active{border-color:var(--primary);background:var(--primary-light)}.field-row{display:flex;align-items:center;margin-bottom:var(--space-4)}.field-row label{width:140px;font-size:14px;color:var(--gray-700)}.field-row .field-input{flex:1}.field-input input,.field-input select,.field-input textarea{width:100%;padding:var(--space-2) var(--space-3);font-size:14px;border:var(--border-width) solid var(--gray-300);border-radius:var(--radius-sm);transition:var(--transition)}.field-input input:focus,.field-input select:focus,.field-input textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px var(--primary-light)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);font-size:14px;font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover,.btn-primary:focus{background:var(--primary-hover)}.btn-primary:active{background:var(--primary-active)}.btn-secondary{background:var(--gray-100);color:var(--gray-800)}.btn-secondary:hover,.btn-secondary:focus{background:var(--gray-200)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--error);color:#fff}.btn-sm{padding:var(--space-1) var(--space-2);font-size:12px}.tag{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:12px;font-weight:500;border-radius:var(--radius-sm);background:var(--gray-100);color:var(--gray-700)}.tag-primary{background:var(--primary-light);color:var(--primary)}.tag-success{background:var(--success-light);color:var(--success)}.tag-error{background:var(--error-light);color:var(--error)}.toggle{position:relative;display:inline-block;width:36px;height:20px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--gray-300);border-radius:20px;transition:var(--transition)}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;border-radius:50%;transition:var(--transition)}input:checked+.toggle-slider{background-color:var(--primary)}input:checked+.toggle-slider:before{transform:translate(16px)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #eee}.table th{font-weight:500;color:#666;font-size:.875rem}.table tr:hover{background-color:#f9f9f9}.selected-row{background-color:#f0fbfa}.tag{display:inline-flex;padding:.25rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.tag-success{background-color:#0abab51a;color:#0abab5}.tag-warning{background-color:#ffbf001a;color:#ffbf00}.tag-error{background-color:#ea43351a;color:#ea4335}.btn-icon{border:none;background:transparent;color:#666;padding:.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.btn-icon:hover{background-color:#f0f0f0;color:#333}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#fffc;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;z-index:10;border-radius:8px}.loading-spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #0abab5;border-radius:50%;animation:spin 1s linear infinite}.loading-text{font-size:1rem;color:#333;font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#666}.empty-icon{color:#ddd;margin-bottom:1rem}.empty-title{font-size:1.125rem;font-weight:500;color:#333;margin-bottom:.5rem}.empty-description{font-size:.875rem;color:#666;margin-bottom:1.5rem}.metric-box{padding:.75rem;background-color:#f9f9f9;border-radius:6px}.metric-box .metric-name{font-size:.75rem;color:#666;margin-bottom:.25rem}.metric-box .metric-value{font-size:1rem;font-weight:500}.backtest-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.backtest-actions .btn-primary{display:flex;align-items:center;gap:.5rem}.backtest-actions .btn-primary svg{width:1rem;height:1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s ease-in-out}@media (max-width: 768px){.factor-list,.strategy-list,.backtest-grid{grid-template-columns:1fr}.metrics-row{grid-template-columns:repeat(2,1fr)}}.factor-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.factor-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.factor-item-metrics{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.strategy-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.weight-slider{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.weight-slider-label{width:120px;font-size:14px;color:var(--gray-700)}.weight-slider-input{flex:1}.weight-slider-value{width:50px;text-align:right;font-weight:500}.weight-slider-stats{width:100px;text-align:right;font-size:12px;color:var(--gray-600)}.backtest-grid{display:grid;grid-template-columns:200px 1fr;gap:var(--space-4);height:100%}.backtest-sidebar,.backtest-main{overflow-y:auto}.backtest-item{display:flex;flex-direction:column;padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-width) solid var(--gray-200);background:#fff;margin-bottom:var(--space-2);cursor:pointer;transition:var(--transition)}.backtest-item:hover{border-color:var(--primary)}.backtest-item.active{border-color:var(--primary);background:var(--primary-light)}.metrics-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-4)}.metric-box{background:#fff;padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-width) solid var(--gray-200)}.metric-name{font-size:12px;color:var(--gray-600);margin-bottom:var(--space-1)}.metric-value{font-size:20px;font-weight:600}.metric-value.positive{color:var(--success)}.metric-value.negative{color:var(--error)}.backtest-chart-container{margin-bottom:1.5rem;background-color:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #0000001a}.backtest-chart{width:100%}.backtest-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.chart-title{font-size:1rem;font-weight:500;color:#333}.chart-subtitle{font-size:.8rem;color:#666;margin-top:.25rem}.chart-legend{display:flex;gap:1rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#666}.legend-color{width:12px;height:12px;border-radius:2px}.strategy-color{background-color:#0abab5}.benchmark-color{background-color:#ccc}.chart-placeholder{width:100%;height:100%;border-radius:4px;overflow:hidden}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.metrics-section{margin-bottom:1rem}.metrics-section h5{font-size:.875rem;font-weight:500;color:#666;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.metrics-group{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.pipeline-card-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.pipeline-card-header h4{font-size:1rem;font-weight:500;color:#333}.module-section-title{font-size:1.125rem;font-weight:500;color:#333;margin-bottom:1rem}.backtest-steps{display:flex;margin-bottom:1.5rem;gap:.5rem}.backtest-step{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;padding:.75rem 0}.backtest-step:not(:last-child):after{content:"";position:absolute;top:1.5rem;right:-1rem;width:2rem;height:2px;background-color:#eee}.step-number{width:2rem;height:2rem;border-radius:50%;background-color:#f5f5f5;color:#999;display:flex;justify-content:center;align-items:center;font-size:.875rem;margin-bottom:.5rem}.step-number.active{background-color:#0abab5;color:#fff}.step-label{font-size:.8rem;color:#999}.step-label.active{color:#333;font-weight:500}.settings-card,.settings-section{margin-bottom:1.5rem}.settings-section-title{font-size:.875rem;font-weight:500;color:#666;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.ml-3{margin-left:var(--space-3)}.ml-4{margin-left:var(--space-4)}.mr-1{margin-right:var(--space-1)}.mr-2{margin-right:var(--space-2)}.mr-3{margin-right:var(--space-3)}.mr-4{margin-right:var(--space-4)}.w-full{width:100%}.h-full{height:100%}.text-xs{font-size:12px}.text-sm{font-size:14px}.text-md{font-size:16px}.text-lg{font-size:18px}.font-medium{font-weight:500}.font-bold{font-weight:600}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-warning{color:var(--warning)}.text-info{color:var(--info)}.text-gray{color:var(--gray-600)}.bg-white{background-color:#fff}.bg-light{background-color:var(--gray-50)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.border{border:var(--border-width) solid var(--gray-200)}.border-t{border-top:var(--border-width) solid var(--gray-200)}.border-b{border-bottom:var(--border-width) solid var(--gray-200)}.shadow-sm{box-shadow:0 1px 2px #0000000d}.shadow-md{box-shadow:0 4px 6px #0000000d}.live-trading-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.live-trading-status{display:flex;align-items:center;font-size:14px;color:#666;margin-top:8px}.status-dot{width:10px;height:10px;border-radius:50%;margin-right:6px}.status-running{background-color:#0abab5;box-shadow:0 0 0 2px #0abab533}.status-paused{background-color:#ffbf00;box-shadow:0 0 0 2px #ffbf0033}.status-stopped{background-color:#ea4335;box-shadow:0 0 0 2px #ea433533}.market-status-separator{margin:0 8px;color:#ddd}.market-open{color:#0abab5;font-weight:500}.market-closed{color:#888}.live-time{font-family:monospace;font-weight:500}.live-trading-actions{display:flex;gap:.5rem}.live-trading-overview{margin-bottom:2rem}.performance-metrics{display:flex;flex-direction:column;gap:1.5rem}.metric-group{display:flex;gap:1rem;flex-wrap:wrap}.metric-large{flex:1;min-width:180px;padding:1rem;border-radius:8px;background-color:#f8f8f8}.metric-large .metric-title{font-size:14px;color:#666;margin-bottom:8px}.metric-large .metric-value{font-size:28px;font-weight:600;margin-bottom:4px}.metric-large .metric-subtitle{font-size:14px;color:#888}.metric-small{flex:1;min-width:140px;padding:.75rem;border-radius:6px;background-color:#f8f8f8}.metric-small .metric-title{font-size:12px;color:#666;margin-bottom:4px}.metric-small .metric-value{font-size:16px;font-weight:500}.positive{color:#0abab5}.negative{color:#ea4335}.live-trading-chart{margin:1rem 0;height:300px}.chart-container{margin:1rem 0;height:400px}.card-title{font-size:16px;font-weight:500;color:#333;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.field-note{margin-top:1.5rem;padding:1rem;background-color:#f9f9f9;border-radius:6px;border-left:3px solid #ffbf00}.note-title{display:flex;align-items:center;gap:6px;font-weight:500;margin-bottom:8px;color:#333}.note-title svg{color:#ffbf00}.checkbox-row .field-input{padding-top:8px}.checkbox-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.checkbox-label input{margin-top:3px}.checkbox-text{font-size:14px;color:#666}.weight-bar-container{width:100%;height:18px;background-color:#f0f0f0;border-radius:9px;position:relative;overflow:hidden}.weight-bar{height:100%;background-color:#0abab5;border-radius:9px}.weight-value{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#333;text-shadow:0 0 2px rgba(255,255,255,.5)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;width:600px;max-width:90%;max-height:90%;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 25px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #eee}.modal-header h3{margin:0;font-size:18px}.modal-body{padding:1rem;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid #eee}@media (max-width: 768px){.performance-metrics,.metric-group,.live-trading-actions{flex-direction:column}}.market-monitor{padding:1rem 0}.market-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.market-title{font-size:1.125rem;font-weight:500;margin:0}.market-subtitle{font-size:1rem;font-weight:500;margin:1.5rem 0 1rem;color:#333}.market-time{display:flex;align-items:center;gap:.75rem}.market-status{padding:.25rem .5rem;border-radius:1rem;font-size:.75rem;font-weight:500}.market-status.open{background-color:#0abab51a;color:#0abab5}.market-status.closed{background-color:#8888881a;color:#888}.current-time{font-family:monospace;font-size:.875rem;color:#666}.indices-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.index-card{background-color:#f9f9f9;border-radius:.5rem;padding:.75rem;transition:all .2s ease}.index-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000000d}.index-name{font-size:.75rem;color:#666;margin-bottom:.25rem}.index-price{font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.index-change{font-size:.875rem;font-weight:500;margin-bottom:.5rem}.index-volume{font-size:.75rem;color:#888}.positions-realtime{margin-top:1.5rem}.tick-up{background-color:#0abab51a;animation:flash-green 1s ease}.tick-down{background-color:#ea43351a;animation:flash-red 1s ease}@keyframes flash-green{0%{background-color:#0abab54d}to{background-color:#0abab50d}}@keyframes flash-red{0%{background-color:#ea43354d}to{background-color:#ea43350d}}.alerts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.alerts-count{background-color:#0abab5;color:#fff;font-size:.75rem;font-weight:500;border-radius:9999px;padding:.1rem .5rem;margin-left:.5rem;display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem}.alerts-list{display:flex;flex-direction:column;gap:1rem}.alert-item{display:flex;background-color:#f9f9f9;border-radius:.5rem;padding:1rem;transition:transform .2s ease,box-shadow .2s ease;position:relative;border-left:3px solid #0abab5}.alert-item:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000000d}.alert-item.triggered{border-left-color:#ccc;background-color:#f5f5f5;opacity:.8}.alert-icon{color:#0abab5;margin-right:1rem;display:flex;align-items:flex-start}.alert-item.triggered .alert-icon{color:#888}.alert-content{flex:1}.alert-title{font-weight:500;margin-bottom:.25rem;color:#333}.alert-condition{color:#555;margin-bottom:.5rem}.alert-meta{display:flex;justify-content:space-between;font-size:.75rem;color:#888}.alert-time{display:flex;gap:1rem}.trigger-time{color:#ffbf00}.alert-status{display:flex;align-items:center;gap:.25rem}.alert-status-indicator{width:.5rem;height:.5rem;border-radius:50%}.alert-status-indicator.active{background-color:#0abab5;box-shadow:0 0 0 2px #0abab533}.alert-status-indicator.triggered{background-color:#ffbf00;box-shadow:0 0 0 2px #ffbf0033}.alert-actions{margin-left:1rem}.assistant-card{background-color:#f9f9f9;border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;border-left:3px solid #0abab5}.assistant-header{display:flex;align-items:center;margin-bottom:1rem}.assistant-avatar{width:2.5rem;height:2.5rem;border-radius:50%;background-color:#0abab5;color:#fff;display:flex;align-items:center;justify-content:center;margin-right:.75rem}.assistant-info h4{margin:0;font-size:1rem;font-weight:500}.assistant-info p{margin:0;font-size:.75rem;color:#666}.assistant-message{padding:.75rem 1rem;background-color:#fff;border-radius:.5rem;margin-bottom:1rem;font-size:.875rem;line-height:1.5;color:#333}.assistant-actions{display:flex;gap:.5rem}.assistant-input-container{display:flex;gap:.5rem;margin-top:1rem}.assistant-input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:.5rem;font-size:.875rem}.assistant-send-btn{background-color:#0abab5;color:#fff;border:none;border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:.5rem}.assistant-send-btn:hover{background-color:#09a29e}.assistant-feedback{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.assistant-feedback button{background:none;border:none;color:#888;font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem}.assistant-feedback button:hover{color:#0abab5}.assistant-quick-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.quick-action-btn{background-color:#fff;border:1px solid #ddd;border-radius:9999px;padding:.5rem .75rem;font-size:.75rem;color:#666;cursor:pointer;transition:all .2s ease}.quick-action-btn:hover{background-color:#f0f0f0;color:#0abab5;border-color:#0abab5}
