:root{--bg-primary:#0a0a0f;--bg-secondary:#111118;--bg-card:#16161e;--bg-hover:#1c1c28;--text-primary:#e4e4e7;--text-secondary:#a1a1aa;--text-muted:#63637a;--accent:#8b5cf6;--accent-light:#a78bfa;--accent-dim:rgba(139, 92, 246, 0.12);--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--border:#1e1e2a;--border-light:#2a2a3a;--font:'SF Mono', 'Fira Code', 'Cascadia Code', 'JetBrains Mono', 'Consolas', monospace;--radius:10px;--radius-sm:6px;}
*, *::before, *::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;}
.hidden{display:none !important;}
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted);}

/* Auth Gate */
#auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:1.5rem;}
.auth-container{width:100%;max-width:380px;text-align:center;}
.auth-logo{font-size:3.5rem;font-weight:900;letter-spacing:-2px;margin-bottom:0.25rem;}
.logo-x{color:var(--accent);text-shadow:0 0 40px rgba(139, 92, 246, 0.4);}
.logo-nov{color:var(--text-primary);}
.auth-subtitle{font-size:0.8rem;color:var(--text-muted);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:2.5rem;}
.auth-field{margin-bottom:1rem;text-align:left;}
.auth-label{display:block;font-size:0.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.4rem;}
.auth-input{width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.7rem 0.9rem;color:var(--text-primary);font-family:var(--font);font-size:0.9rem;outline:none;transition:border-color 0.2s;}
.auth-input:focus{border-color:var(--accent);}
.auth-input::placeholder{color:var(--text-muted);}
.auth-submit{width:100%;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:0.7rem;font-family:var(--font);font-size:0.85rem;font-weight:600;cursor:pointer;transition:opacity 0.2s;margin-top:0.5rem;}
.auth-submit:hover{opacity:0.9;}
.auth-submit:disabled{opacity:0.5;cursor:not-allowed;}
.auth-2fa-info{font-size:0.82rem;color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.5;}
.auth-link-btn{background:none;border:none;color:var(--text-muted);font-family:var(--font);font-size:0.78rem;cursor:pointer;margin-top:0.75rem;transition:color 0.2s;}
.auth-link-btn:hover{color:var(--accent-light);}
.auth-error{color:var(--error);font-size:0.8rem;margin-top:1rem;}
.auth-footer{color:var(--text-muted);font-size:0.72rem;margin-top:2.5rem;letter-spacing:0.05em;}

/* Header */
.header{display:flex;align-items:center;justify-content:space-between;padding:0.6rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;}
.header-left{display:flex;align-items:center;gap:0.75rem;}
.header-logo{font-size:1.4rem;font-weight:900;letter-spacing:-1px;}
.header-tag{font-size:0.65rem;color:var(--accent-light);background:var(--accent-dim);border:1px solid rgba(139, 92, 246, 0.2);border-radius:4px;padding:1px 6px;text-transform:uppercase;letter-spacing:0.08em;font-weight:600;}
.header-right{display:flex;align-items:center;gap:1rem;}
.session-info{font-size:0.75rem;color:var(--text-muted);}
.logout-btn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.3rem 0.75rem;color:var(--text-muted);font-family:var(--font);font-size:0.75rem;cursor:pointer;transition:color 0.2s, border-color 0.2s;}
.logout-btn:hover{color:var(--text-primary);border-color:var(--text-muted);}

/* Main app */
#main-app{min-height:100vh;}
.app-container{max-width:900px;margin:0 auto;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1rem;}
.stats-row{display:grid;gap:0.75rem;}
.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:0.85rem 1rem;text-align:center;}
.stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);}
.stat-label{font-size:0.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.06em;margin-top:0.15rem;}
.action-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.3rem 0.65rem;color:var(--text-muted);font-family:var(--font);font-size:0.75rem;cursor:pointer;transition:color 0.15s, border-color 0.15s;}
.action-btn:hover{color:var(--text-primary);border-color:var(--accent);}

/* Toast */
.toast{position:fixed;top:1rem;right:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:0.6rem 1rem;font-size:0.8rem;color:var(--text-secondary);z-index:1000;box-shadow:0 4px 20px rgba(0, 0, 0, 0.4);animation:slideIn 0.25s ease;max-width:320px;}
.toast.success{border-color:rgba(34, 197, 94, 0.4);}
.toast.error{border-color:rgba(239, 68, 68, 0.4);}
@keyframes slideIn{from{transform:translateX(20px);opacity:0;}to{transform:translateX(0);opacity:1;}}

/* ==================== C2 Styles ==================== */
.c2-container{max-width:1200px;}
.c2-stats{grid-template-columns:repeat(4, 1fr);}
.c2-conn-status{font-size:0.7rem;color:var(--text-muted);padding:0.15rem 0.5rem;border-radius:10px;border:1px solid var(--border);}
.c2-conn-status.online{color:var(--success);border-color:rgba(34, 197, 94, 0.3);}
.c2-conn-status.offline{color:var(--error);border-color:rgba(239, 68, 68, 0.3);}
.c2-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.c2-panel-header{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 1rem;border-bottom:1px solid var(--border);}
.c2-panel-title{font-size:0.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.05em;}
.c2-highlight{color:var(--accent-light);text-transform:none;letter-spacing:0;}
.c2-badge{font-size:0.68rem;padding:0.15rem 0.5rem;border-radius:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.03em;}
.c2-badge-active{color:var(--success);background:rgba(34, 197, 94, 0.1);border:1px solid rgba(34, 197, 94, 0.2);}
.c2-badge-dead{color:var(--error);background:rgba(239, 68, 68, 0.1);border:1px solid rgba(239, 68, 68, 0.2);}
.c2-badge-killed{color:var(--warning);background:rgba(245, 158, 11, 0.1);border:1px solid rgba(245, 158, 11, 0.2);}
.c2-badge-pending{color:#5599ff;background:rgba(85, 153, 255, 0.1);border:1px solid rgba(85, 153, 255, 0.2);}
.c2-badge-sent{color:var(--accent-light);background:var(--accent-dim);border:1px solid rgba(139, 92, 246, 0.2);}
.c2-badge-complete{color:var(--success);background:rgba(34, 197, 94, 0.1);border:1px solid rgba(34, 197, 94, 0.2);}
.c2-badge-error{color:var(--error);background:rgba(239, 68, 68, 0.1);border:1px solid rgba(239, 68, 68, 0.2);}
.c2-btn-danger{color:var(--error) !important;border-color:rgba(239, 68, 68, 0.3) !important;}
.c2-btn-danger:hover{background:var(--error) !important;color:#fff !important;}
.c2-agents-list{max-height:300px;overflow-y:auto;}
.c2-agent-row{display:grid;grid-template-columns:70px 1fr 100px 120px 80px 70px 60px;align-items:center;gap:0.5rem;padding:0.5rem 1rem;font-size:0.78rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.15s;}
.c2-agent-row:hover{background:var(--bg-hover);}
.c2-agent-row:last-child{border-bottom:none;}
.c2-agent-row.selected{background:var(--accent-dim);}
.c2-agent-row.dead{opacity:0.4;}
.c2-agent-id{color:var(--accent-light);font-weight:600;}
.c2-agent-host{color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.c2-agent-user{color:var(--text-secondary);}
.c2-agent-ip{color:var(--text-muted);}
.c2-agent-os{color:var(--text-muted);font-size:0.72rem;}
.c2-agent-time{color:var(--text-muted);font-size:0.7rem;}
.c2-agent-header{display:grid;grid-template-columns:70px 1fr 100px 120px 80px 70px 60px;gap:0.5rem;padding:0.4rem 1rem;font-size:0.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.06em;border-bottom:1px solid var(--border);background:var(--bg-card);}
.c2-info-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:0.4rem;padding:0.8rem 1rem;}
.c2-info-item{display:flex;align-items:center;gap:0.5rem;font-size:0.78rem;padding:0.3rem 0.5rem;border-radius:var(--radius-sm);background:var(--bg-card);}
.c2-info-label{color:var(--text-muted);font-size:0.65rem;text-transform:uppercase;letter-spacing:0.05em;min-width:70px;flex-shrink:0;}
.c2-info-value{color:var(--text-primary);word-break:break-all;}
.c2-terminal{background:#000;border-top:1px solid var(--border);}
.c2-term-output{padding:0.8rem 1rem;font-size:0.78rem;color:var(--success);max-height:280px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;line-height:1.6;min-height:80px;}
.c2-term-input-row{display:flex;align-items:center;padding:0.4rem 1rem;border-top:1px solid var(--border);background:rgba(255,255,255,0.02);}
.c2-term-prompt{color:var(--accent);font-weight:700;margin-right:0.5rem;font-size:0.82rem;}
.c2-term-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-family:var(--font);font-size:0.82rem;outline:none;}
.c2-term-input:disabled{opacity:0.3;}
.c2-tasks-list{max-height:250px;overflow-y:auto;}
.c2-task-row{display:grid;grid-template-columns:60px 65px 1fr 70px 1fr 55px;align-items:center;gap:0.5rem;padding:0.45rem 1rem;font-size:0.75rem;border-bottom:1px solid var(--border);}
.c2-task-row:last-child{border-bottom:none;}
.c2-task-id{color:var(--text-muted);}
.c2-task-type{font-weight:600;}
.c2-task-args{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.c2-task-result{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;}
.c2-task-result:hover{color:var(--accent-light);}
.c2-task-time{color:var(--text-muted);font-size:0.68rem;}
.c2-task-header{display:grid;grid-template-columns:60px 65px 1fr 70px 1fr 55px;gap:0.5rem;padding:0.35rem 1rem;font-size:0.62rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.06em;border-bottom:1px solid var(--border);background:var(--bg-card);}
.c2-empty{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:0.8rem;}

/* Responsive */
@media (max-width:800px){
  .c2-stats{grid-template-columns:repeat(4, 1fr);gap:0.5rem;}
  .c2-agent-row{grid-template-columns:55px 1fr 80px 60px;}
  .c2-agent-row .c2-agent-os,.c2-agent-row .c2-agent-time,.c2-agent-row .c2-agent-user{display:none;}
  .c2-agent-header{grid-template-columns:55px 1fr 80px 60px;}
  .c2-agent-header span:nth-child(3),.c2-agent-header span:nth-child(6),.c2-agent-header span:nth-child(7){display:none;}
  .c2-task-row{grid-template-columns:55px 60px 1fr 65px;}
  .c2-task-row .c2-task-result,.c2-task-row .c2-task-time{display:none;}
}
@media (max-width:600px){
  .stat-card{padding:0.6rem 0.5rem;}
  .stat-value{font-size:1.2rem;}
  .header{padding:0.5rem 1rem;}
}
