:root,[data-theme=dark]{--bg-base:#060911;--bg-surface:#0c1222;--bg-surface-header:#0c1222e6;--bg-panel:#111827;--bg-card:#131d35;--bg-card-subtle:#182234;--bg-card-hover:#192644;--bg-input:#080d19;--bg-input-subtle:#0f172a66;--border:#233354;--border-subtle:#1f2937;--border-hover:#3b82f6;--border-focus:#38bdf8;--border-glow:#38bdf866;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--text-subtle:#475569;--accent:#0284c7;--accent-hover:#0369a1;--cyan:#00e5ff;--blue:#38bdf8;--indigo:#6366f1;--purple:#a855f7;--emerald:#10b981;--amber:#f59e0b;--rose:#f43f5e;--hero-bg:linear-gradient(135deg, #131d35e6, #0f172ab3);--hero-shadow:0 10px 30px #0006;--card-shadow:0 4px 16px #00000040;--card-hover-shadow:0 12px 30px #00000073, 0 0 20px #38bdf81f;--chip-bg:#0b1120cc;--card-footer-border:#ffffff0f;--map-bg:#0b1120;--map-overlay-bg:#0f172ae6;--theme-btn-bg:#131d35;--theme-btn-border:#233354;--theme-btn-text:#f8fafc;--theme-btn-hover:#1e293b;--font-main:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace}[data-theme=light]{--bg-base:#f8fafc;--bg-surface:#fff;--bg-surface-header:#ffffffe6;--bg-panel:#fff;--bg-card:#fff;--bg-card-subtle:#f8fafc;--bg-card-hover:#f1f5f9;--bg-input:#f1f5f9;--bg-input-subtle:#f8fafc;--border:#cbd5e1;--border-subtle:#e2e8f0;--border-hover:#0284c7;--border-focus:#0284c7;--border-glow:#0284c740;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-subtle:#94a3b8;--accent:#0284c7;--accent-hover:#0369a1;--cyan:#0284c7;--blue:#0369a1;--indigo:#4f46e5;--purple:#7e22ce;--emerald:#059669;--amber:#d97706;--rose:#e11d48;--hero-bg:linear-gradient(135deg, #fff, #f1f5f9);--hero-shadow:0 4px 20px #0000000f;--card-shadow:0 2px 12px #0000000f;--card-hover-shadow:0 10px 28px #0000001f, 0 0 15px #0284c726;--chip-bg:#e2e8f0;--card-footer-border:#00000014;--map-bg:#e2e8f0;--map-overlay-bg:#fffffff0;--theme-btn-bg:#f1f5f9;--theme-btn-border:#cbd5e1;--theme-btn-text:#0f172a;--theme-btn-hover:#e2e8f0}[data-theme=light] .tag-blue{color:#1e40af;background:#dbeafe}[data-theme=light] .tag-purple{color:#6b21a8;background:#f3e8ff}[data-theme=light] .tag-emerald{color:#065f46;background:#d1fae5}[data-theme=light] .tag-amber{color:#92400e;background:#fef3c7}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-main);background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5;transition:background-color .25s,color .25s}*{scrollbar-width:thin;scrollbar-color:var(--border) var(--bg-base)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.btn{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--bg-surface);border-color:var(--border);color:var(--text-secondary)}.btn-secondary:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-hover)}.btn-cyan{color:var(--cyan);background:#00e5ff26;border-color:#00e5ff66}.btn-cyan:hover{border-color:var(--cyan);background:#00e5ff40}.btn-emerald{color:#fff;background:#059669;border-color:#059669}.btn-emerald:hover{background:#047857;border-color:#047857}.btn-amber{color:#fff;background:#d97706;border-color:#d97706}.btn-amber:hover{background:#b45309;border-color:#b45309}.btn-danger{color:#fff;background:#be123c;border-color:#be123c}.btn-danger:hover{background:#9f1239;border-color:#9f1239}.btn-sm{border-radius:4px;padding:4px 8px;font-size:.75rem}.btn-lg{border-radius:8px;padding:10px 20px;font-size:.95rem}.card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:10px;flex-direction:column;gap:12px;padding:16px;transition:border-color .2s,box-shadow .2s,background-color .2s;display:flex}.card:hover{border-color:var(--border-hover)}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.card-header h3,.card-title{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:700}.card-body{flex-direction:column;flex:1;gap:10px;display:flex}.card-footer{border-top:1px solid var(--card-footer-border);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.group-card{background:var(--bg-card-subtle);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;padding:12px;transition:all .2s;display:flex;position:relative}.group-card.active-group{border-color:var(--cyan);box-shadow:0 0 12px #38bdf826}.form-group{flex-direction:column;gap:4px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}label{color:var(--text-secondary);font-size:.75rem;font-weight:600}input[type=text],input[type=number],input[type=search],input[type=password],input[type=email],select,textarea{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;outline:none;width:100%;padding:7px 12px;font-family:inherit;font-size:.82rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px #38bdf833}.badge{color:var(--blue);text-transform:uppercase;background:#38bdf826;border-radius:9999px;align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.pill-badge{color:var(--blue);background:#38bdf81a;border:1px solid #38bdf84d;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.chip{background:var(--chip-bg);border:1px solid var(--border);color:var(--text-muted);font-size:.68rem;font-family:var(--font-mono);border-radius:4px;padding:3px 8px;display:inline-block}.tag-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:6px;align-items:center;padding:3px 8px;font-size:.68rem;font-weight:700;display:inline-flex}.tag-blue{color:#bfdbfe;background:#1e3a8a}.tag-purple{color:#ddd6fe;background:#4c1d95}.tag-emerald{color:#a7f3d0;background:#064e3b}.tag-amber{color:#fde68a;background:#78350f}.tag-rose{color:#fecdd3;background:#881337}.tag-locked{color:var(--rose);background:#f43f5e26;border:1px solid #f43f5e66}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.status-dot.connected,.status-dot.healthy,.status-dot.online{background-color:#10b981;box-shadow:0 0 8px #10b981cc}.status-dot.degraded,.status-dot.checking,.status-dot.loading,.status-dot.amber{background-color:#f59e0b;box-shadow:0 0 8px #f59e0bcc}.status-dot.unreachable,.status-dot.disconnected,.status-dot.error,.status-dot.rose{background-color:#f43f5e;box-shadow:0 0 8px #f43f5ecc}code,pre,.font-mono{font-family:var(--font-mono)}.tool-card[data-v-49f98d67]{background:var(--bg-card);border:1px solid var(--border);color:inherit;border-radius:12px;flex-direction:column;justify-content:space-between;padding:24px;text-decoration:none;transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.tool-card[data-v-49f98d67]:hover{border-color:var(--cyan);transform:translateY(-4px);box-shadow:0 12px 28px #00000040,0 0 15px #00e5ff26}.card-content-top[data-v-49f98d67]{flex-direction:column;display:flex}.card-top[data-v-49f98d67]{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.tool-icon-wrap[data-v-49f98d67]{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.icon-svg[data-v-49f98d67]{width:22px;height:22px}.icon-cyan[data-v-49f98d67]{color:var(--cyan);background:#00e5ff1f;border-color:#00e5ff40}.icon-blue[data-v-49f98d67]{color:var(--blue);background:#3b82f61f;border-color:#3b82f640}.icon-purple[data-v-49f98d67]{color:var(--purple);background:#a855f71f;border-color:#a855f740}.icon-emerald[data-v-49f98d67]{color:var(--emerald);background:#10b9811f;border-color:#10b98140}.icon-amber[data-v-49f98d67]{color:var(--amber);background:#f59e0b1f;border-color:#f59e0b40}.tool-title[data-v-49f98d67]{color:var(--text-primary);margin-bottom:8px;font-size:1.15rem;font-weight:700;line-height:1.35}.tool-desc[data-v-49f98d67]{color:var(--text-secondary);margin-bottom:18px;font-size:.88rem;line-height:1.55}.feature-chips[data-v-49f98d67]{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.chip[data-v-49f98d67]{background:var(--bg-surface);color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:4px;padding:3px 8px;font-size:.72rem;font-weight:500}.card-footer[data-v-49f98d67]{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;display:flex}.filename-code[data-v-49f98d67]{font-family:var(--font-mono);color:var(--text-muted);font-size:.75rem}.launch-btn[data-v-49f98d67]{color:var(--cyan);align-items:center;gap:6px;font-size:.82rem;font-weight:600;display:inline-flex}.launch-arrow[data-v-49f98d67]{width:14px;height:14px;transition:transform .2s}.tool-card:hover .launch-arrow[data-v-49f98d67]{transform:translate(3px)}.tool-card.is-locked[data-v-49f98d67]{cursor:pointer;background:var(--bg-card);border-color:#f43f5e40}.tool-card.is-locked[data-v-49f98d67]:hover{border-color:var(--rose);box-shadow:0 12px 28px #00000040,0 0 15px #f43f5e33}.card-badges[data-v-49f98d67]{align-items:center;gap:6px;display:flex}.locked-launch-btn[data-v-49f98d67]{color:#fda4af;align-items:center;gap:5px;font-size:.78rem;display:inline-flex}.lock-icon-small[data-v-49f98d67]{width:14px;height:14px}.home-view[data-v-e594fc8f]{background-color:var(--bg-base);background-image:radial-gradient(circle at 15% 15%,#00e5ff0a 0%,#0000 40%),radial-gradient(circle at 85% 80%,#6366f10d 0%,#0000 50%);flex-direction:column;min-height:100vh;transition:background-color .25s,color .25s;display:flex}.pill-badge[data-v-e594fc8f]{background:var(--bg-card);border:1px solid var(--border);color:var(--cyan);border-radius:9999px;align-items:center;gap:6px;padding:5px 12px;font-size:.76rem;font-weight:600;display:inline-flex}.pill-purple[data-v-e594fc8f]{color:var(--purple);border-color:#a855f766}.pill-emerald[data-v-e594fc8f]{color:var(--emerald);border-color:#10b98166}.pill-cyan[data-v-e594fc8f]{color:var(--cyan);border-color:#00e5ff66}.pill-icon[data-v-e594fc8f]{width:14px;height:14px}.restricted-banner[data-v-e594fc8f]{background:#f43f5e1f;border:1px solid #f43f5e66;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:14px 18px;display:flex}.restricted-content[data-v-e594fc8f]{align-items:center;gap:12px;display:flex}.restricted-icon[data-v-e594fc8f]{font-size:1.4rem}.restricted-text[data-v-e594fc8f]{color:var(--text-primary);font-size:.88rem;line-height:1.4}.restricted-text em[data-v-e594fc8f]{color:#fda4af;font-style:normal;font-weight:600}.restricted-text code[data-v-e594fc8f]{font-family:var(--font-mono);color:var(--cyan);background:#0000004d;border-radius:4px;padding:2px 6px}.scope-highlight[data-v-e594fc8f]{font-family:var(--font-mono);color:#fecdd3;background:#f43f5e40;border-radius:4px;padding:1px 6px;font-size:.82rem;font-weight:700}.restricted-actions[data-v-e594fc8f]{align-items:center;gap:8px;display:flex}.portal-main[data-v-e594fc8f]{box-sizing:border-box;flex:1;width:100%;max-width:1440px;margin:0 auto;padding:32px 24px 60px}.hero[data-v-e594fc8f]{text-align:center;flex-direction:column;align-items:center;gap:20px;margin-bottom:36px;display:flex}.hero-text h2[data-v-e594fc8f]{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:12px;font-size:2.2rem;font-weight:800}.hero-text h2 span[data-v-e594fc8f]{background:linear-gradient(135deg, var(--cyan), var(--blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text}.hero-text p[data-v-e594fc8f]{max-width:800px;color:var(--text-secondary);margin:0 auto;font-size:.96rem;line-height:1.6}.search-box[data-v-e594fc8f]{width:100%;max-width:520px;position:relative}.search-icon[data-v-e594fc8f]{width:18px;height:18px;color:var(--text-muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-box input[data-v-e594fc8f]{border:1px solid var(--border);background:var(--bg-input);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:9999px;padding:12px 14px 12px 42px;font-size:.9rem;transition:all .2s}.search-box input[data-v-e594fc8f]:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px #00e5ff26}.grid-section[data-v-e594fc8f]{flex-direction:column;gap:16px;display:flex}.grid-header[data-v-e594fc8f]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.grid-header h3[data-v-e594fc8f]{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:1.15rem;font-weight:700;display:flex}.grid-icon[data-v-e594fc8f]{width:18px;height:18px;color:var(--cyan)}.grid-count[data-v-e594fc8f]{color:var(--text-muted);font-size:.82rem}.tools-grid[data-v-e594fc8f]{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:20px;display:grid}.no-results[data-v-e594fc8f]{text-align:center;color:var(--text-muted);padding:60px 20px;font-size:1rem}.portal-footer[data-v-e594fc8f]{border-top:1px solid var(--border);color:var(--text-muted);background:var(--bg-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:20px 24px;font-size:.78rem;display:flex}.api-banner-card[data-v-e594fc8f]{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg,12px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding:14px 20px;display:flex;box-shadow:0 1px 4px #00000014}.api-banner-main[data-v-e594fc8f]{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.api-status-indicator[data-v-e594fc8f]{align-items:center;gap:8px;display:flex}.api-status-text[data-v-e594fc8f]{color:var(--text-primary);font-size:.88rem;font-weight:600}.status-dot[data-v-e594fc8f]{background:var(--amber,#f59e0b);border-radius:50%;width:9px;height:9px}.status-dot.online[data-v-e594fc8f]{background:var(--emerald,#10b981)}.status-dot.offline[data-v-e594fc8f],.status-dot.error[data-v-e594fc8f]{background:var(--rose,#f43f5e)}.status-dot.loading[data-v-e594fc8f]{background:var(--cyan,#06b6d4);animation:1.2s infinite pulse-dot-e594fc8f}@keyframes pulse-dot-e594fc8f{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.api-status-badge[data-v-e594fc8f]{letter-spacing:.04em;border:1px solid #0000;border-radius:9999px;padding:2px 8px;font-size:.7rem;font-weight:700}.api-status-badge.online[data-v-e594fc8f]{color:#10b981;background:#10b98126;border-color:#10b9814d}.api-status-badge.offline[data-v-e594fc8f],.api-status-badge.error[data-v-e594fc8f]{color:#ef4444;background:#ef444426;border-color:#ef44444d}.api-status-badge.idle[data-v-e594fc8f]{color:var(--text-muted);border-color:var(--border);background:#9ca3af26}.api-url-display[data-v-e594fc8f]{align-items:center;gap:8px;font-size:.82rem;display:flex}.api-url-label[data-v-e594fc8f]{color:var(--text-muted)}.api-url-code[data-v-e594fc8f]{background:var(--bg-surface);border:1px solid var(--border);font-family:var(--font-mono,monospace);color:var(--cyan);border-radius:4px;padding:2px 8px;font-size:.82rem}.api-message[data-v-e594fc8f]{color:var(--text-muted);font-size:.78rem}.api-banner-actions[data-v-e594fc8f]{align-items:center;gap:10px;display:flex}.btn-icon[data-v-e594fc8f]{width:14px;height:14px;margin-right:4px}
