:root{--color-primary-dark:#2f5496;--color-primary:#4472c4;--color-primary-light:#d6e4f0;--color-bg-blue:#edf2f9;--color-bg:#fff;--color-bg-secondary:#f5f5f5;--color-text-primary:#1a1a1a;--color-text-secondary:#555;--color-text-tertiary:#888;--color-text-light:#aaa;--color-border:#ddd;--color-border-light:#eee;--color-success:#27ae60;--color-success-light:#e8f8f0;--color-warning:#f39c12;--color-warning-light:#fef5e7;--color-danger:#e74c3c;--color-danger-light:#fadbd8;--color-info:#3498db;--color-info-light:#ebf5fb;--color-positive:#2ecc71;--color-negative:#e74c3c;--color-neutral:#95a5a6;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", system-ui, sans-serif;--font-mono:"Monaco", "Menlo", "Ubuntu Mono", monospace;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--spacing-2xl:32px;--spacing-3xl:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #00000026;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-bg);text-rendering:optimizelegibility;font-size:16px;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:600;line-height:1.2}h1{font-size:32px}h2{font-size:24px}h3{font-size:20px}h4{font-size:18px}h5{font-size:16px}h6{font-size:14px}p{color:var(--color-text-secondary)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-dark)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],textarea,select{font-family:var(--font-family);padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast);width:100%;font-size:16px}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=date]:focus,input[type=time]:focus,textarea:focus,select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #4f70c01a}textarea{resize:vertical;min-height:80px}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F5496' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--spacing-lg) center;background-size:20px;padding-right:40px}label{margin-bottom:var(--spacing-sm);color:var(--color-text-primary);font-size:14px;font-weight:600;display:block}button:not(.entry-path-card),.btn{font-family:var(--font-family);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:center;white-space:nowrap;border:none;justify-content:center;align-items:center;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary,button:not(.btn-secondary):not(.btn-ghost):not(.btn-danger):not(.entry-path-card){background-color:var(--color-primary);color:#fff}.btn-primary:hover,button:not(.btn-secondary):not(.btn-ghost):not(.btn-danger):not(.entry-path-card):hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active,button:not(.btn-secondary):not(.btn-ghost):not(.btn-danger):not(.entry-path-card):active{transform:translateY(0)}.btn-primary:disabled{background-color:var(--color-border);color:var(--color-text-light);cursor:not-allowed;transform:none}.btn-secondary{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-border);box-shadow:var(--shadow-sm)}.btn-ghost{color:var(--color-primary);border:1px solid var(--color-primary);background-color:#0000}.btn-ghost:hover{background-color:#4f70c00d}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover{box-shadow:var(--shadow-md);background-color:#c0392b;transform:translateY(-1px)}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:13px}.btn-lg{padding:var(--spacing-lg) var(--spacing-2xl);font-size:16px}.btn-block{width:100%}.app-container{width:100%;min-height:100vh;display:flex}.app-sidebar{background-color:var(--color-bg);border-right:1px solid var(--color-border);z-index:40;flex-direction:column;width:240px;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.app-main{flex-direction:column;flex:1;margin-left:240px;display:flex}.app-content{padding:var(--spacing-xl);flex:1;overflow-y:auto}.sidebar-logo{padding:var(--spacing-xl);border-bottom:1px solid var(--color-border);color:var(--color-primary-dark);align-items:center;gap:var(--spacing-md);font-size:18px;font-weight:700;display:flex}.sidebar-logo svg{width:24px;height:24px}.sidebar-nav{padding:var(--spacing-lg) 0;flex:1}.nav-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-secondary);transition:all var(--transition-fast);border-left:3px solid #0000;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background-color:var(--color-bg-blue);color:var(--color-primary-dark)}.nav-item.active{background-color:var(--color-bg-blue);color:var(--color-primary-dark);border-left-color:var(--color-primary);font-weight:600}.nav-icon{flex-shrink:0;width:20px;height:20px}.sidebar-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);gap:var(--spacing-md);flex-direction:column;display:flex}.btn-new-session{background-color:var(--color-primary);color:#fff;width:100%;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);border:none;font-size:14px;font-weight:600}.btn-new-session:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.messages-container{gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);flex-direction:column;display:flex}.message{gap:var(--spacing-md);animation:.3s ease-out slideIn;display:flex}.message.user{flex-direction:row-reverse}.message-avatar{background-color:var(--color-primary-dark);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.message-bubble{max-width:70%;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-xl);word-wrap:break-word;line-height:1.6}.message.user .message-bubble{background-color:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-md)}.message.assistant .message-bubble{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border-bottom-left-radius:var(--radius-md)}.message-bubble code{border-radius:var(--radius-sm);font-family:var(--font-mono);background-color:#0000000d;padding:2px 6px;font-size:13px}.message.user .message-bubble code{background-color:#fff3}.message-bubble pre{padding:var(--spacing-lg);border-radius:var(--radius-lg);margin:var(--spacing-md) 0;background-color:#0000000d;overflow-x:auto}.message.user .message-bubble pre{background-color:#ffffff1a}.message-bubble pre code{background-color:#0000;padding:0}.message-bubble ul,.message-bubble ol{margin-left:var(--spacing-lg);margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.message-bubble li{margin-bottom:var(--spacing-sm)}.message-bubble strong{font-weight:700}.message-bubble em{font-style:italic}.message-bubble a{text-decoration:underline}.message.user .message-bubble a{color:#ffffffe6}.typing-indicator{padding:var(--spacing-md) var(--spacing-lg);align-items:center;gap:4px;display:flex}.typing-dot{background-color:var(--color-text-light);border-radius:50%;width:8px;height:8px;animation:1.4s infinite bounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.chat-input-area{padding:var(--spacing-lg);border-top:1px solid var(--color-border);background-color:var(--color-bg);gap:var(--spacing-md);align-items:flex-end;display:flex}.input-wrapper{gap:var(--spacing-sm);flex-direction:column;flex:1;display:flex}.chat-textarea{width:100%;min-height:44px;max-height:120px;padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-family:var(--font-family);color:var(--color-text-primary);resize:none;font-size:16px;overflow-y:auto}.chat-textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #4f70c01a}.btn-send{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);background-color:var(--color-primary);color:#fff;cursor:pointer;width:44px;height:44px;transition:all var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.btn-send:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-send:disabled{background-color:var(--color-border);cursor:not-allowed;transform:none}.card{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-light)}.card-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:start;gap:var(--spacing-md);display:flex}.card-title{color:var(--color-text-primary);font-size:16px;font-weight:700}.card-subtitle{color:var(--color-text-secondary);margin-top:var(--spacing-xs);font-size:13px}.card-content{color:var(--color-text-secondary);font-size:14px;line-height:1.6}.card-footer{gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}.badge{align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-full);white-space:nowrap;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge-primary{color:var(--color-primary-dark);background-color:#4f70c01a}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.badge-info{background-color:var(--color-info-light);color:var(--color-info)}.badge-gray{background-color:var(--color-bg-secondary);color:var(--color-text-secondary)}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.positive{background-color:var(--color-success)}.status-dot.neutral{background-color:var(--color-neutral)}.status-dot.negative{background-color:var(--color-danger)}.status-dot.warning{background-color:var(--color-warning)}.progress-bar{background-color:var(--color-border);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar-fill{background-color:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width .3s ease-out}.tabs{gap:var(--spacing-lg);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-xl);display:flex}.tab{padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;font-size:14px;font-weight:600;position:relative;bottom:-1px}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.grid{gap:var(--spacing-lg);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.empty-state{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl)}.empty-state-icon{margin-bottom:var(--spacing-lg);opacity:.5;font-size:48px}.empty-state-title{color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-size:18px;font-weight:700}.empty-state-text{color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);font-size:14px}.modal-overlay{z-index:50;background-color:#00000080;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{background-color:var(--color-bg);border-radius:var(--radius-xl);padding:var(--spacing-2xl);width:90%;max-width:500px;box-shadow:var(--shadow-xl);animation:.3s ease-out slideIn}.modal-header{margin-bottom:var(--spacing-xl);justify-content:space-between;align-items:center;display:flex}.modal-title{color:var(--color-text-primary);font-size:20px;font-weight:700}.modal-content{margin-bottom:var(--spacing-xl);color:var(--color-text-secondary);font-size:14px;line-height:1.6}.modal-footer{gap:var(--spacing-md);justify-content:flex-end;display:flex}.alert{padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);border-left:4px solid;font-size:14px;animation:.3s ease-out slideIn}.alert-success{background-color:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.alert-warning{background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.alert-danger{background-color:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger)}.alert-info{background-color:var(--color-info-light);border-color:var(--color-info);color:var(--color-info)}.top-bar{padding:var(--spacing-lg) var(--spacing-xl);background-color:var(--color-bg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--spacing-lg);display:flex}.top-bar-left{align-items:center;gap:var(--spacing-lg);display:flex}.top-bar-title{color:var(--color-text-primary);font-size:18px;font-weight:700}.top-bar-right{align-items:center;gap:var(--spacing-md);display:flex}.context-panel{background-color:var(--color-bg-blue);border-left:1px solid var(--color-border);width:300px;padding:var(--spacing-lg);gap:var(--spacing-xl);flex-direction:column;display:flex;overflow-y:auto}.context-section{gap:var(--spacing-md);flex-direction:column;display:flex}.context-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);font-size:13px;font-weight:700}.context-item{padding:var(--spacing-md);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:13px}.context-item-title{color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-weight:600}.context-item-detail{color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);font-size:12px}.context-item-badge{color:var(--color-primary-dark);border-radius:var(--radius-full);background-color:#4f70c01a;padding:2px 6px;font-size:11px;display:inline-block}.welcome-state{justify-content:center;align-items:center;gap:var(--spacing-2xl);padding:var(--spacing-3xl) var(--spacing-xl);flex-direction:column;min-height:400px;display:flex}.welcome-header{text-align:center}.welcome-logo{margin-bottom:var(--spacing-lg);font-size:48px}.welcome-title{color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-size:28px;font-weight:700}.welcome-subtitle{color:var(--color-text-secondary);max-width:500px;font-size:16px}.starter-prompts{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);width:100%;max-width:700px;display:grid}.starter-prompt{padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:center;color:var(--color-text-secondary);background-color:var(--color-bg);font-size:14px;font-weight:500}.starter-prompt:hover{border-color:var(--color-primary);background-color:var(--color-bg-blue);color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tool-notification{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-info-light);color:var(--color-info);border-radius:var(--radius-lg);margin:var(--spacing-md) 0;font-size:13px;animation:.2s ease-out slideIn}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;width:24px;height:24px;padding:0;display:none}.hamburger span{background-color:var(--color-text-primary);border-radius:var(--radius-full);width:100%;height:2px;transition:all var(--transition-fast)}.hamburger.active span:first-child{transform:rotate(45deg)translate(10px,10px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg)translate(8px,-8px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes bounce{0%,80%,to{opacity:1;transform:translateY(0)}40%{opacity:.8;transform:translateY(-8px)}}@media (max-width:768px){.app-sidebar{transition:transform var(--transition-base);transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}.app-main{margin-left:0}.hamburger{display:flex}.message-bubble{max-width:85%}.starter-prompts,.grid-2,.grid-3{grid-template-columns:1fr}.context-panel{display:none}.app-content{padding:var(--spacing-lg)}.chat-input-area{padding:var(--spacing-md)}.modal{width:95%}}@media (max-width:480px){:root{font-size:14px}h1{font-size:24px}h2{font-size:20px}.message-bubble{max-width:90%}.btn,button:not(.entry-path-card){padding:var(--spacing-md) var(--spacing-lg);font-size:13px}.card{padding:var(--spacing-md)}.sidebar-logo{padding:var(--spacing-md);font-size:16px}.nav-item{padding:var(--spacing-md) var(--spacing-md)}}
