:root{--bg-deep: #0a0e17;--bg-panel: #0f1520;--bg-panel-light: #161e2e;--border-dim: #1e2a3a;--border-mid: #2d4055;--border-bright: #4a7cac;--text-muted: #4a6178;--text-main: #8ba3bc;--text-bright: #e2eaf2;--accent-blue: #3b9eff;--accent-blue-dim: #1a4a7a;--accent-red: #ff4d4d;--accent-red-dim: #7a1f1f;--accent-purple: #a06cd5;--accent-green: #34d399;--accent-amber: #f59e0b;--font-mono: "SF Mono", "Segoe UI Mono", "Roboto Mono", "Menlo", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background-color:var(--bg-deep);color:var(--text-main);font-family:var(--font-mono);font-size:12px;line-height:1.4;-webkit-text-size-adjust:100%}#root{width:100vw;height:100vh;overflow:hidden}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--border-mid)}.text-bright{color:var(--text-bright)}.text-blue{color:var(--accent-blue)}.text-red{color:var(--accent-red)}.text-muted{color:var(--text-muted)}.uppercase{text-transform:uppercase;letter-spacing:.05em}.mono-nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app-shell{width:100%;height:100%;display:flex;flex-direction:column;padding:8px;overflow:hidden}.main-grid{display:grid;grid-template-columns:320px 1fr 320px;grid-template-rows:1fr 200px;gap:8px;flex:1 1 0;width:100%;min-height:0;overflow:hidden}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1px solid var(--border-dim);background:var(--bg-panel);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.system-status{display:flex;gap:16px;font-size:10px;color:var(--text-muted);align-items:center}.status-dot{width:6px;height:6px;background:var(--text-muted);border-radius:50%}.status-dot.active{background:var(--accent-green);box-shadow:0 0 6px var(--accent-green);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.panel{border:1px solid var(--border-dim);background:var(--bg-panel);display:flex;flex-direction:column;position:relative;overflow:hidden;min-height:0}.panel:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,var(--border-mid) 1px,transparent 1px) 0 0,linear-gradient(to bottom,var(--border-mid) 1px,transparent 1px) 0 0,linear-gradient(to left,var(--border-mid) 1px,transparent 1px) 100% 0,linear-gradient(to bottom,var(--border-mid) 1px,transparent 1px) 100% 0,linear-gradient(to right,var(--border-mid) 1px,transparent 1px) 0 100%,linear-gradient(to top,var(--border-mid) 1px,transparent 1px) 0 100%,linear-gradient(to left,var(--border-mid) 1px,transparent 1px) 100% 100%,linear-gradient(to top,var(--border-mid) 1px,transparent 1px) 100% 100%;background-size:6px 6px;background-repeat:no-repeat}.panel-header{padding:8px 12px;border-bottom:1px solid var(--border-dim);font-size:10px;color:var(--text-muted);display:flex;justify-content:space-between;align-items:center;background:#0f1520b3;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.panel-content{padding:12px;overflow-y:auto;flex:1;min-height:0}.role-item{display:flex;justify-content:space-between;align-items:center;padding:10px;border:1px solid var(--border-dim);margin-bottom:6px;cursor:pointer;transition:all .2s}.role-item:hover,.role-item.selected{border-color:var(--border-bright);background:var(--bg-panel-light)}.role-item.selected{box-shadow:inset 2px 0 0 var(--accent-blue)}.role-icon{width:28px;height:28px;border:1px solid var(--border-dim);display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--text-muted);flex-shrink:0}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{text-align:left;padding:8px 6px;color:var(--text-muted);border-bottom:1px solid var(--border-dim);font-weight:400;font-size:10px;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.data-table th:hover{color:var(--text-main)}.data-table th.sorted{color:var(--accent-blue)}.data-table td{padding:6px;border-bottom:1px solid var(--border-dim);color:var(--text-main)}.data-table tr:hover td{background:var(--bg-panel-light);color:var(--text-bright)}.data-table tr.highlighted td{background:#3b9eff12}.bar-container{width:60px;height:4px;background:var(--border-dim)}.bar-fill{height:100%;background:var(--accent-blue);transition:width .3s ease}.viz-container{width:100%;height:100%;position:relative;background:radial-gradient(circle at 50% 50%,#131b2e 0%,var(--bg-deep) 70%);display:flex;align-items:center;justify-content:center}.node-network{position:relative;width:220px;height:220px}.center-node{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border:1px solid var(--accent-blue);border-radius:50%;box-shadow:0 0 24px #3b9eff59;display:flex;align-items:center;justify-content:center;color:var(--text-bright);font-size:11px;z-index:2}.orbit-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--border-dim);border-radius:50%}.orbit-1{width:120px;height:120px;animation:spin 20s linear infinite}.orbit-2{width:180px;height:180px;animation:spin 30s linear infinite reverse}.orbit-3{width:210px;height:210px;animation:spin 40s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.sat-node{position:absolute;width:8px;height:8px;background:var(--accent-blue);box-shadow:0 0 8px var(--accent-blue);border-radius:1px}.hw-card{border:1px solid var(--border-dim);padding:12px;margin-bottom:8px;background:#0003;cursor:pointer;transition:all .2s}.hw-card:hover{border-color:var(--border-mid)}.hw-card.active{border-color:var(--accent-blue-dim)}.hw-stat{display:flex;justify-content:space-between;margin-top:4px;font-size:11px}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:8px}.spec-box{background:var(--bg-panel-light);padding:4px 6px;font-size:10px;border-left:2px solid var(--accent-purple)}.tag{font-size:9px;padding:1px 4px;border:1px solid var(--border-dim);color:var(--text-muted);text-transform:uppercase}.tag.blue{border-color:var(--accent-blue);color:var(--accent-blue);background:#3b9eff1a}.filter-input{width:100%;background:transparent;border:1px solid var(--border-dim);color:var(--text-main);padding:6px;font-family:var(--font-mono);font-size:11px;margin-bottom:8px}.filter-input:focus{outline:none;border-color:var(--border-bright)}.log-entry{font-size:10px;padding:2px 0;display:flex;gap:12px;opacity:.8}.log-time{color:var(--text-muted)}.log-type{color:var(--accent-blue);min-width:42px}.log-type.warn{color:var(--accent-red)}.deploy-btn{width:100%;background:linear-gradient(135deg,#3b9eff,#a06cd5);color:#fff;border:none;padding:10px;font-family:var(--font-mono);text-transform:uppercase;cursor:pointer;letter-spacing:1px;font-weight:700;font-size:12px;transition:all .2s;border-radius:0}.deploy-btn:hover{background:linear-gradient(135deg,#5ab0ff,#b580e0);box-shadow:0 0 16px #3b9eff66}.center-column{display:flex;flex-direction:column;gap:8px;min-height:0}.bottom-panel{grid-column:1 / -1}.telemetry-content{display:flex;gap:32px;font-size:10px;height:100%}.telemetry-logs{flex:1;overflow-y:auto}.telemetry-sidebar{width:200px;border-left:1px solid var(--border-dim);padding-left:16px;display:flex;flex-direction:column;justify-content:center;flex-shrink:0}.latency-bars{display:flex;gap:2px;align-items:flex-end;height:20px;margin-top:4px}.latency-bar{width:4px;background:var(--accent-blue-dim);transition:height .5s ease}.latency-bar.active{background:var(--accent-blue)}.vram-bar-track{height:6px;background:var(--border-dim);width:100%}.vram-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple),var(--accent-green));transition:width .5s ease}.param-section{margin-top:20px;border-top:1px dashed var(--border-dim);padding-top:12px}.param-row{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.param-slider{width:100%;accent-color:var(--border-bright);margin-top:4px}.ctx-bar{display:flex;gap:2px;margin-top:4px}.mobile-app{width:100%;min-height:100vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-app .top-bar{flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;border:none;border-bottom:1px solid var(--border-dim);margin-bottom:0}.mobile-app .system-status{gap:12px;flex-wrap:wrap;width:100%}.mobile-section{width:100%;border-bottom:2px solid var(--border-dim)}.mobile-app .panel{border:none;border-bottom:1px solid var(--border-dim);overflow:visible;min-height:auto;width:100%}.mobile-app .panel:after{display:none}.mobile-app .panel-header{padding:12px 16px;background:var(--bg-panel);position:sticky;top:0;z-index:10;font-size:11px}.mobile-app .panel-content{padding:16px;overflow:visible;max-height:none}.mobile-app .role-item{padding:16px 14px;margin-bottom:6px;-webkit-tap-highlight-color:transparent}.mobile-app .filter-input{padding:14px 12px;font-size:16px;margin-bottom:12px;border-radius:0;-webkit-appearance:none}.mobile-app .viz-container{height:300px;min-height:300px}.mobile-app .node-network{width:200px;height:200px}.mobile-app .orbit-1{width:110px;height:110px}.mobile-app .orbit-2{width:160px;height:160px}.mobile-app .orbit-3{width:195px;height:195px}.mobile-app .panel-content:has(.data-table){padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-app .data-table{min-width:540px;font-size:11px}.mobile-app .data-table th,.mobile-app .data-table td{padding:12px 8px}.mobile-app .bottom-panel{grid-column:auto}.mobile-app .telemetry-content{flex-direction:column;gap:16px;height:auto}.mobile-app .telemetry-logs{max-height:220px;overflow-y:auto}.mobile-app .telemetry-sidebar{width:100%;border-left:none;border-top:1px solid var(--border-dim);padding-left:0;padding-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.mobile-app .log-entry{gap:8px;padding:5px 0;font-size:10px}.mobile-app .deploy-btn{padding:18px;font-size:15px;margin-top:16px}.mobile-app .hw-card{padding:16px}.mobile-app .param-slider{height:32px;margin-top:8px}.mobile-app .param-section{margin-top:24px}
