.login-page{background:var(--black);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:2.5rem}.login-logo{text-align:center;margin-bottom:2rem}.login-logo-icon{margin-bottom:.5rem;font-size:3rem;display:block}.login-title{font-family:var(--font-heading);color:var(--text);margin-bottom:.25rem;font-size:1.75rem;font-weight:700}.login-subtitle{color:var(--text-muted);font-size:.875rem}.login-form{flex-direction:column;gap:1rem;display:flex}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem;font-weight:500}.form-group input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;padding:.625rem .875rem;font-size:.9375rem;transition:border-color .15s}.form-group input:focus{border-color:var(--primary)}.form-group input::placeholder{color:var(--text-muted)}.login-error{border-radius:var(--radius-sm);color:#f87171;background:#ef44441a;border:1px solid #ef44444d;padding:.625rem .875rem;font-size:.875rem}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);border:none;margin-top:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;transition:background .15s,opacity .15s}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.sidebar{background:var(--surface-2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:0;width:240px;padding:.75rem 0 1rem;display:flex;overflow-y:auto}.sidebar-section-header{align-items:center;gap:.5rem;margin-top:.25rem;padding:0 1rem .375rem;display:flex}.sidebar-section-icon{font-size:.8125rem;line-height:1}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.6875rem;font-weight:600}.sidebar-agents{flex-direction:column;gap:1px;padding:0 .5rem;list-style:none;display:flex}.sidebar-agent{flex-direction:column;display:flex}.sidebar-agent-btn{color:var(--text);border-radius:var(--radius);text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;width:100%;padding:.4375rem .625rem;transition:background .12s;display:flex}.sidebar-agent-btn:hover{background:#ffffff0d}.sidebar-agent-btn.agent-active{background:#f16e001a}.agent-badge{color:#fff;letter-spacing:-.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.6875rem;font-weight:700;display:flex}.agent-info{flex-direction:column;flex:1;min-width:0;display:flex}.agent-name{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.agent-role{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);opacity:.8;font-size:9px;font-weight:700}.agent-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.agent-chevron{color:var(--text-muted);flex-shrink:0;align-items:center;transition:transform .15s;display:flex}.agent-chevron.expanded{transform:rotate(180deg)}.agent-subnav{flex-direction:column;gap:1px;padding:.125rem 0 .25rem 2.25rem;list-style:none;display:flex}.agent-subnav-btn{color:var(--text-muted);border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:.375rem;width:100%;padding:.3125rem .5rem;font-size:.8125rem;transition:color .12s,background .12s;display:flex}.agent-subnav-btn:hover{color:var(--text);background:#ffffff0d}.agent-subnav-btn.active{color:var(--primary);background:#f16e0014}.sidebar-divider{background:var(--border);height:1px;margin:.75rem}.sidebar-nav-item{color:var(--text-muted);text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:color .12s,background .12s;display:flex}.sidebar-nav-item:hover{color:var(--text);background:#ffffff0a}.sidebar-nav-item.active{color:var(--primary);background:#f16e0014}.sidebar-nav-icon{flex-shrink:0;font-size:.9375rem;line-height:1}.sidebar-nav-label{flex:1}.sidebar-nav-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border:1px solid var(--border);background:#ffffff0f;border-radius:20px;padding:.0625rem .375rem;font-size:.625rem;font-weight:600}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 1.25rem;display:flex}.header-left{align-items:center;gap:.625rem;display:flex}.header-logo-icon{font-size:1.375rem}.header-title{font-family:var(--font-heading);color:var(--text);letter-spacing:-.01em;font-size:1.0625rem;font-weight:700}.header-right{align-items:center;gap:.75rem;display:flex}.header-status-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;align-items:center;gap:.375rem;padding:.3rem .625rem;font-size:.8125rem;transition:color .15s,border-color .15s;display:flex}.header-status-btn:hover{color:var(--text);border-color:var(--text-muted)}.status-dot{background:var(--online);border-radius:50%;width:6px;height:6px;display:inline-block}.header-user{align-items:center;gap:.5rem;display:flex}.header-user-name{color:var(--text);font-size:.875rem;font-weight:500}.header-audit-btn{border-radius:var(--radius-sm);color:var(--primary);background:#f16e0014;border:1px solid #f16e0040;align-items:center;gap:.375rem;padding:.3rem .625rem;font-size:.8125rem;font-weight:500;transition:background .15s,border-color .15s;display:flex}.header-audit-btn:hover{background:#f16e0024;border-color:#f16e0066}.header-role-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);background:#f16e001a;border:1px solid #f16e0033;border-radius:20px;padding:.0625rem .375rem;font-size:.625rem;font-weight:700}.header-logout{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;align-items:center;gap:.375rem;padding:.3rem .625rem;font-size:.8125rem;transition:color .15s,border-color .15s;display:flex}.header-logout:hover{color:#f87171;border-color:#ef444466}.chat-view{flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:.75rem;padding:.875rem 1.25rem;display:flex}.chat-agent-badge{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;display:flex}.chat-agent-name{color:var(--text);font-size:.9375rem;font-weight:600}.chat-agent-desc{color:var(--text-muted);font-size:.8125rem}.chat-messages{flex-direction:column;flex:1;gap:1rem;padding:1.25rem;display:flex;overflow-y:auto}.chat-empty{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem;font-size:.9375rem;display:flex}.chat-empty-badge{color:#fff;opacity:.8;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.5rem;font-weight:700;display:flex}.chat-empty strong{color:var(--text)}.chat-msg{align-items:flex-end;gap:.5rem;display:flex}.chat-msg--user{flex-direction:row-reverse}.msg-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-bottom:2px;font-size:.6875rem;font-weight:700;display:flex}.msg-bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:70%;padding:.625rem .875rem;font-size:.9375rem;line-height:1.5}.chat-msg--user .msg-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.chat-msg--assistant .msg-bubble{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.msg-bubble--error{color:#f87171!important;border-color:#ef44444d!important}.typing-dots{align-items:center;gap:3px;padding:2px 0;display:inline-flex}.typing-dots span{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s infinite bounce}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-4px)}}.chat-input-area{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:flex-end;gap:.625rem;padding:.875rem 1.25rem;display:flex}.chat-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);resize:none;outline:none;flex:1;min-height:42px;max-height:120px;padding:.625rem .875rem;font-size:.9375rem;line-height:1.5;transition:border-color .15s;overflow-y:auto}.chat-input:focus{border-color:var(--primary)}.chat-input::placeholder{color:var(--text-muted)}.chat-input:disabled{opacity:.6}.chat-send-btn{background:var(--agent-color,var(--primary));color:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;transition:opacity .15s,transform .1s;display:flex}.chat-send-btn:hover:not(:disabled){opacity:.85;transform:scale(1.05)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.memory-view{flex-direction:column;height:100%;display:flex;overflow:hidden}.memory-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:.875rem 1.25rem;display:flex}.memory-header-left{color:var(--text);align-items:center;gap:.5rem;font-size:.9375rem;display:flex}.memory-header-left strong{color:var(--primary)}.memory-agent-selector{align-items:center;gap:.5rem;display:flex}.memory-selector-label{color:var(--text-muted);font-size:.8125rem}.memory-selector{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.8125rem;font-family:var(--font-sans);cursor:pointer;outline:none;padding:.3rem .625rem;transition:border-color .12s}.memory-selector:focus{border-color:var(--primary)}.memory-selector option{background:var(--surface-2)}.memory-refresh-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;align-items:center;gap:.375rem;padding:.3rem .625rem;font-size:.8125rem;transition:color .15s,border-color .15s;display:flex}.memory-refresh-btn:hover:not(:disabled){color:var(--text);border-color:var(--text-muted)}.memory-refresh-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.memory-content{flex-direction:column;flex:1;gap:1.25rem;padding:1.25rem;display:flex;overflow-y:auto}.memory-loading{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem;display:flex}.memory-error{border-radius:var(--radius);color:#f87171;background:#ef44441a;border:1px solid #ef44444d;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.memory-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem;font-size:.9375rem;display:flex}.memory-file{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.memory-file-header{border-bottom:1px solid var(--border);background:#ffffff08;align-items:center;gap:.625rem;padding:.75rem 1rem;display:flex}.memory-file-index{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.6875rem;font-weight:700;display:flex}.memory-file-name{color:var(--text-muted);font-family:Courier New,monospace;font-size:.8125rem;font-weight:500}.memory-file-content{color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:400px;padding:1rem;font-family:Courier New,monospace;font-size:.8125rem;line-height:1.6;overflow:auto}.status-view{flex-direction:column;height:100%;display:flex;overflow:hidden}.status-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:.875rem 1.25rem;display:flex}.status-header-left{color:var(--text);align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500;display:flex}.status-header-right{align-items:center;gap:.75rem;display:flex}.status-last-refresh{color:var(--text-muted);font-size:.75rem}.status-refresh-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;align-items:center;gap:.375rem;padding:.3rem .625rem;font-size:.8125rem;transition:color .15s,border-color .15s;display:flex}.status-refresh-btn:hover:not(:disabled){color:var(--text);border-color:var(--text-muted)}.status-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.status-content{flex-direction:column;flex:1;gap:1rem;padding:1.25rem;display:flex;overflow-y:auto}.status-loading{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem;display:flex}.status-error{border-radius:var(--radius);color:#f87171;background:#ef44441a;border:1px solid #ef44444d;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.status-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.status-card--ok{border-color:#4ade8033}.status-card--down{border-color:#ef44444d}.status-card-header{align-items:center;gap:1rem;display:flex}.status-card-icon{border-radius:var(--radius);background:#ffffff0d;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.status-card--ok .status-card-icon{color:var(--online);background:#4ade801a}.status-card--down .status-card-icon{color:#ef4444;background:#ef44441a}.status-card-title{color:var(--text);font-size:.9375rem;font-weight:600}.status-card-subtitle{color:var(--text-muted);font-size:.8125rem}.status-card-badge{color:var(--text);align-items:center;gap:.5rem;margin-left:auto;font-size:.875rem;font-weight:500;display:flex}.status-indicator{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.status-card-metrics{border-top:1px solid var(--border);gap:2rem;margin-top:1rem;padding-top:1rem;display:flex}.metric{flex-direction:column;gap:.25rem;display:flex}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.metric-value{color:var(--text);font-family:Courier New,monospace;font-size:1.25rem;font-weight:600}.status-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-top:.25rem;font-size:.75rem;font-weight:600}.status-agents-grid{flex-direction:column;gap:.5rem;display:flex}.status-agent-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.875rem;padding:.75rem 1rem;display:flex}.status-agent-badge{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;display:flex}.status-agent-info{flex:1;min-width:0}.status-agent-name{color:var(--text);font-size:.875rem;font-weight:500}.status-agent-id{color:var(--text-muted);font-family:Courier New,monospace;font-size:.75rem}.status-agent-path{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-family:Courier New,monospace;font-size:.6875rem;overflow:hidden}.status-agent-online{flex-shrink:0}.gantt-view{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.placeholder-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:440px;padding:3rem 2.5rem}.placeholder-icon{margin-bottom:1.25rem;font-size:3rem;line-height:1}.placeholder-title{font-family:var(--font-heading);color:var(--text);margin-bottom:.625rem;font-size:1.375rem;font-weight:600}.placeholder-desc{color:var(--text-muted);margin-bottom:1.75rem;font-size:.9375rem;line-height:1.6}.placeholder-features{text-align:left;flex-direction:column;gap:.625rem;margin-bottom:1.75rem;display:flex}.placeholder-feature{color:var(--text-muted);align-items:center;gap:.625rem;font-size:.875rem;display:flex}.feat-dot{background:var(--primary);opacity:.6;border-radius:50%;flex-shrink:0;width:6px;height:6px}.placeholder-badge{color:var(--primary);text-transform:uppercase;letter-spacing:.06em;background:#f16e001a;border:1px solid #f16e0033;border-radius:20px;align-items:center;gap:.375rem;padding:.375rem 1rem;font-size:.8125rem;font-weight:600;display:inline-flex}.audit-view{flex-direction:column;flex:1;gap:1rem;padding:1.5rem;display:flex;overflow:hidden}.audit-header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.audit-header-left{align-items:center;gap:.625rem;display:flex}.audit-icon{font-size:1.125rem;line-height:1}.audit-title{font-family:var(--font-heading);color:var(--text);font-size:1.125rem;font-weight:600}.audit-refresh-ts{color:var(--text-muted);font-size:.75rem}.audit-refresh-btn{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);background:#ffffff0f;align-items:center;gap:.375rem;padding:.4375rem .875rem;font-size:.8125rem;transition:color .12s,background .12s;display:flex}.audit-refresh-btn:hover:not(:disabled){color:var(--text);background:#ffffff17}.audit-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.audit-error{color:#f87171;border-radius:var(--radius);background:#f8717114;border:1px solid #f8717133;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.audit-loading,.audit-empty{color:var(--text-muted);justify-content:center;align-items:center;gap:.75rem;padding:4rem 2rem;font-size:.9375rem;display:flex}.audit-table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);flex:1;overflow:auto}.audit-table{border-collapse:collapse;width:100%;font-size:.8125rem}.audit-table thead tr{background:var(--surface-2);border-bottom:1px solid var(--border);z-index:1;position:sticky;top:0}.audit-table th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);white-space:nowrap;padding:.625rem .875rem;font-size:.6875rem;font-weight:600}.audit-table td{color:var(--text);vertical-align:middle;border-bottom:1px solid #ffffff0a;padding:.5625rem .875rem}.audit-table tbody tr:hover td{background:#ffffff08}.audit-table tbody tr:last-child td{border-bottom:none}.col-ts{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.75rem;color:var(--text-muted)!important}.col-user{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.col-agent{white-space:nowrap}.audit-agent-tag{color:var(--primary);background:#f16e001a;border:1px solid #f16e0033;border-radius:20px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.col-msg{text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-style:italic;overflow:hidden;color:var(--text-muted)!important}.col-tokens{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-muted)!important}.spinning{animation:.8s linear infinite spin}.dashboard{background:var(--black);flex-direction:column;height:100vh;display:flex;overflow:hidden}.dashboard-body{flex:1;display:flex;overflow:hidden}.dashboard-main{background:var(--surface);flex-direction:column;flex:1;display:flex;overflow:hidden}.dashboard-empty{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:.9375rem;display:flex}.dashboard-loading{height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}:root{--primary:#f16e00;--primary-dark:#d45e00;--black:#09090b;--surface:#111113;--surface-2:#1a1a1d;--border:#2a2a2d;--text:#e4e4e7;--text-muted:#71717a;--online:#4ade80;--offline:#52525b;--font-sans:"Inter", system-ui, sans-serif;--font-heading:"Poppins", system-ui, sans-serif;--radius:8px;--radius-sm:4px;--radius-lg:12px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--black);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}button{cursor:pointer;font-family:var(--font-sans)}input,textarea{font-family:var(--font-sans)}a{color:var(--primary);text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
