@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap";:root{--bg-0: #04060c;--bg-1: #070a14;--bg-2: #0b1020;--panel: rgba(16, 22, 40, .55);--panel-strong: rgba(20, 28, 50, .78);--stroke: rgba(120, 160, 220, .14);--stroke-strong: rgba(140, 190, 255, .28);--text-0: #eaf1ff;--text-1: #aebcd6;--text-2: #6c7a96;--teal: #2dd4bf;--teal-soft: #5eead4;--indigo: #6366f1;--cyan: #22d3ee;--amber: #f59e0b;--rose: #f43f5e;--green: #34d399;--font: "Space Grotesk", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text-0);background:radial-gradient(1200px 700px at 78% -8%,rgba(99,102,241,.18),transparent 60%),radial-gradient(1000px 600px at 12% 108%,rgba(45,212,191,.16),transparent 60%),radial-gradient(900px 900px at 50% 50%,rgba(20,30,60,.4),transparent 70%),var(--bg-0);background-attachment:fixed;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(120,170,230,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,230,.045) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000 0%,transparent 78%);mask-image:radial-gradient(circle at 50% 40%,#000 0%,transparent 78%);z-index:0}#root{position:relative;z-index:1}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#78a0dc38;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.glass{background:var(--panel);border:1px solid var(--stroke);border-radius:18px;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}.mono{font-family:var(--mono);letter-spacing:.01em}.app{max-width:1680px;margin:0 auto;padding:22px clamp(16px,3vw,40px) 60px;display:flex;flex-direction:column;gap:22px}.header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 22px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#2dd4bf38,#6366f138);border:1px solid var(--stroke-strong);box-shadow:0 0 24px #2dd4bf40}.brand-mark svg{width:24px;height:24px}.brand-title{font-size:19px;font-weight:700;letter-spacing:.02em}.brand-sub{font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.22em}.header-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.conn{display:flex;align-items:center;gap:9px;font-size:12px;padding:8px 14px;border-radius:999px;border:1px solid var(--stroke);background:#080c1880;color:var(--text-1)}.conn-dot{width:9px;height:9px;border-radius:50%;position:relative}.conn-dot.connected{background:var(--green);box-shadow:0 0 #34d39999;animation:pulse-ring 1.8s infinite}.conn-dot.connecting{background:var(--amber)}.conn-dot.error{background:var(--rose)}@keyframes pulse-ring{0%{box-shadow:0 0 #34d3998c}70%{box-shadow:0 0 0 9px #34d39900}to{box-shadow:0 0 #34d39900}}.tiles{display:flex;gap:10px;flex-wrap:wrap}.tile{min-width:86px;padding:9px 14px;border-radius:14px;border:1px solid var(--stroke);background:#080c188c;display:flex;flex-direction:column;gap:2px}.tile-val{font-size:22px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.tile-label{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-2)}.btn{font-family:var(--font);font-size:13px;font-weight:600;padding:9px 16px;border-radius:12px;border:1px solid var(--stroke-strong);background:#141c3299;color:var(--text-0);cursor:pointer;transition:background .18s,border-color .18s,transform .08s}.btn:hover{background:#283456b3;border-color:var(--teal-soft)}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--teal),var(--indigo));border:none;color:#03121a}.btn-primary:hover{filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:not-allowed}.grid{display:grid;grid-template-columns:1fr 380px;gap:22px;align-items:start}@media (max-width: 1080px){.grid{grid-template-columns:1fr}}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--text-2);margin:0 0 14px 2px;display:flex;align-items:center;gap:10px}.section-title:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--stroke-strong),transparent)}.agents{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.agent-card{position:relative;padding:18px;border-radius:18px;overflow:hidden;min-height:150px;display:flex;flex-direction:column;gap:10px}.agent-card .halo{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;border-radius:50%;filter:blur(34px);opacity:0;transition:opacity .5s;z-index:0}.agent-card.active .halo{opacity:.42}.agent-head{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.agent-glyph{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px;border:1px solid var(--stroke-strong)}.agent-name{font-size:15px;font-weight:600}.agent-role{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-2)}.agent-state{position:relative;z-index:1;margin-top:auto;display:flex;flex-direction:column;gap:7px}.agent-task{font-size:12.5px;color:var(--text-1);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:16px}.agent-meta{display:flex;align-items:center;gap:8px;font-size:11px}.phase-chip{font-family:var(--mono);font-size:10px;padding:3px 8px;border-radius:7px;text-transform:uppercase;letter-spacing:.08em;border:1px solid currentColor}.status-pill{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-2)}.agent-card .live-dot{position:absolute;top:16px;right:16px;width:8px;height:8px;border-radius:50%;z-index:2}.log{padding:18px;max-height:78vh;display:flex;flex-direction:column}.log-stream{overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:4px}.log-row{display:grid;grid-template-columns:4px 1fr auto;gap:11px;align-items:center;padding:9px 11px;border-radius:11px;background:#080c1866;border:1px solid rgba(120,160,220,.07)}.log-bar{width:4px;height:100%;min-height:30px;border-radius:4px}.log-main{min-width:0;display:flex;flex-direction:column;gap:3px}.log-top{display:flex;align-items:center;gap:8px;font-size:12px}.log-agent{font-weight:600;color:var(--text-0)}.log-phase{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.log-label{font-size:11.5px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-time{font-family:var(--mono);font-size:10.5px;color:var(--text-2);white-space:nowrap}.empty{color:var(--text-2);font-size:13px;text-align:center;padding:40px 12px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px;padding:36px 30px;display:flex;flex-direction:column;gap:18px}.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:4px}.login-card h1{font-size:22px;margin:0;font-weight:700}.login-card p{margin:0;font-size:13px;color:var(--text-2)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-2)}.input{font-family:var(--font);font-size:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--stroke);background:#060a14b3;color:var(--text-0);outline:none;transition:border-color .16s,box-shadow .16s}.input:focus{border-color:var(--teal-soft);box-shadow:0 0 0 3px #2dd4bf26}.login-error{font-size:12.5px;color:var(--rose);background:#f43f5e14;border:1px solid rgba(244,63,94,.25);padding:9px 12px;border-radius:10px}.full-center{min-height:100vh;display:grid;place-items:center;color:var(--text-1);font-size:14px;gap:14px}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(120,160,220,.2);border-top-color:var(--teal);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
