@oeronteros-1/opencode-orchestra 1.0.35 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -88,11 +88,12 @@ CLI использует Bun напрямую, поэтому отдельный
88
88
  - добавит `@oeronteros-1/opencode-orchestra@latest` в OpenCode config (`opencode.json` или `opencode.jsonc`);
89
89
  - добавит плагин Superpowers (`superpowers@git+https://github.com/obra/superpowers.git`) в массив `plugin`;
90
90
  - подключит удалённый Context7 MCP (`https://mcp.context7.com/mcp`);
91
- - подключит Playwright MCP для браузерной автоматизации;
91
+ - подключит Playwright MCP для браузерной автоматизации и даст доступ к нему `orch-lead`, `orch-tests`, `orch-security` и visual-агентам;
92
92
  - установит статический `codebase-memory-mcp`, включит автоматическую индексацию и подключит его к OpenCode;
93
93
  - установит MemoryGraph (`memorygraphMCP`) в изолированное окружение через `uv` и подключит локальную SQLite-память;
94
- - подключит официальный Git MCP (`uvx mcp-server-git` без `--repository`; путь передаётся динамически через `repo_path`, относительные пути резолвятся от cwd проекта) и прогреет его кэш;
95
- - подключит ast-grep MCP (`uvx --from git+https://github.com/ast-grep/ast-grep-mcp ast-grep-server`) и прогреет его кэш, чтобы холодный старт 10–25с не ронял MCP-хендшейк (~10с);
94
+ - подключит официальный Git MCP (`mcp-server-git==2026.8.18`) с ограничением текущим workspace (`--repository .`);
95
+ - подключит ast-grep MCP на закреплённой ревизии вместе с `ast-grep-cli==0.45.1` в одном изолированном `uvx`-окружении;
96
+ - установит `uv/uvx`, если он нужен Git или ast-grep MCP, и проверит оба сервера реальным MCP handshake; это одинаково работает через официальный PowerShell-инсталлятор на Windows и shell-инсталлятор на Linux/macOS;
96
97
  - сохранит все пользовательские MCP и плагины без удаления или переименования;
97
98
  - создаст `~/.config/opencode/orchestra.jsonc` с автоматическим выбором моделей;
98
99
  - сделает резервную копию существующего конфига перед изменением;
@@ -120,6 +121,14 @@ bunx @oeronteros-1/opencode-orchestra@latest doctor
120
121
 
121
122
  Проверяет конфиг OpenCode и `orchestra.jsonc`, регистрацию плагина, доступность настроенных MCP-серверов, пути и версии `uv`, `uvx`, `git`, MemoryGraph, Codebase Memory и движка `ast-grep`/`sg` (строго офлайн, без сетевых проб). Флаг `--config-dir DIR` переопределяет каталог конфигурации, а `--json` выводит результат в машиночитаемом виде.
122
123
 
124
+ Для фактической проверки процессов и MCP-протокола используйте:
125
+
126
+ ```bash
127
+ bunx @oeronteros-1/opencode-orchestra@latest mcp-smoke --directory .
128
+ ```
129
+
130
+ Команда параллельно запускает все включённые локальные MCP из OpenCode config, выполняет `initialize` и `tools/list`, а для Git и ast-grep также безопасный пробный вызов. Удалённые и отключённые MCP помечаются как `skipped`; `--json` возвращает машиночитаемый отчёт и ненулевой exit code при сбое локального сервера.
131
+
123
132
  ```bash
124
133
  bunx @oeronteros-1/opencode-orchestra@latest update
125
134
  ```
@@ -180,6 +189,8 @@ bunx @oeronteros-1/opencode-orchestra@latest completion zsh > ~/.zsh/completions
180
189
 
181
190
  Доступные имена: `orch-lead`, `orch-repo`, `orch-docs`, `orch-tests`, `orch-research`, `orch-critic`, `orch-security`, `orch-visual-reference`, `orch-visual-generate`, `orch-visual-review`, `orch-editor`, `orch-integrator`, `orch-merge`, `orch-judge`.
182
191
 
192
+ `orch-repo` — read-only разведчик репозитория. Он собирает карту символов, зависимостей, истории Git, diff и blast radius для lead/editor, но не редактирует файлы и не выполняет Git-мутации. Разрешения на Git задаются по точным MCP tool names: чтение разрешено, операции записи принудительно запрещены движком.
193
+
183
194
  ### Ручные пулы
184
195
 
185
196
  Непустой ручной пул не заменяется автоподбором. Можно настроить только нужную категорию, сохранив auto для остальных:
@@ -373,9 +384,9 @@ Codebase Memory отвечает за знания, которые можно в
373
384
 
374
385
  MemoryGraph отвечает за знания, которых нет непосредственно в коде: принятые архитектурные решения, проверенные исправления и повторно используемые паттерны. Используется core-профиль с локальным SQLite в `~/.memorygraph/`. Lead вызывает `recall_memories` не более одного раза в начале релевантной задачи и сохраняет только проверенные устойчивые знания.
375
386
 
376
- Git MCP — официальный `mcp-server-git` через `uvx` без флага `--repository`: сервер наследует cwd проекта, агент передаёт путь динамически через `repo_path`. Используется для `blame`/`log`/`diff` перед рефакторингом и для гейтованного коммита после зелёных тестов.
387
+ Git MCP — официальный `mcp-server-git==2026.8.18` через `uvx`, запущенный с `--repository .` и `cwd` проекта. Такое ограничение не даёт серверу незаметно уйти за пределы workspace. `orch-repo` получает только read-only tools; операции записи у lead требуют подтверждения, а опасные reset запрещены.
377
388
 
378
- ast-grep MCP `uvx --from git+https://github.com/ast-grep/ast-grep-mcp ast-grep-server` для структурного поиска и AST-рефакторинга. Первый холодный старт занимает 10–25с, поэтому инсталлер прогревает кэш (`--help`, таймаут 60с); `--no-deps` пропускает прогрев. Отдельный Ripgrep MCP не нужен: поиск по YAML/Dockerfile/логам идёт через `rg` во встроенном `bash`.
389
+ ast-grep MCP используется для read-only структурного поиска и проверки AST-правил, а изменения выполняются обычным editor-инструментом и затем повторно проверяются. Команда закрепляет ревизию сервера и добавляет `ast-grep-cli==0.45.1` через `uvx --with`, поэтому отдельная системная установка `ast-grep` не нужна. Инсталлер выполняет реальный `dump_syntax_tree`, а не условный `--help`; `--no-deps` пропускает прогрев и smoke-проверку. Отдельный Ripgrep MCP не нужен: поиск по YAML/Dockerfile/логам идёт через `rg` во встроенном `bash`.
379
390
 
380
391
  Пакет ставится с PyPI (`memorygraphMCP`, Python ≥3.10, SQLite работает без настройки). GitHub-ветка `main` того же репозитория переписана на TypeScript/Bun и не совместима с PyPI-пакетом, поэтому установщик опирается именно на PyPI-дистрибутив. Если persistent-установка через `uv tool install` не удалась, используется фолбэк `uvx memorygraph`; при полном провале MCP-запись в конфиг не пишется — причина сбоя видна в выводе установщика и doctor.
381
392
 
@@ -402,6 +413,7 @@ ast-grep MCP — `uvx --from git+https://github.com/ast-grep/ast-grep-mcp ast-gr
402
413
  ```bash
403
414
  npm ci
404
415
  npm run check
416
+ npm run test:mcp-live # одинаково на Windows, Linux и macOS
405
417
  npm run build
406
418
  npm pack --dry-run
407
419
  ```
@@ -434,7 +446,8 @@ bunx @oeronteros-1/opencode-orchestra@latest dashboard
434
446
  - расходы и нагрузку по моделям и агентам;
435
447
  - виртуализированный журнал activity; тексты промптов и ответов отключены по умолчанию и сохраняются только при явном `telemetry.storeTexts: true`;
436
448
  - live-панель: какие агенты генерируют прямо сейчас, сниппет их вывода, оценочная стоимость и токены;
437
- - статус Context7, Codebase Memory, MemoryGraph;
449
+ - статус Context7, Codebase Memory, MemoryGraph, Git и ast-grep с учётом `enabled: false`;
450
+ - агрегаты эффективности MCP: число вызовов, success rate, средняя задержка, retry и оценочный объём результата без сохранения аргументов или сырого вывода;
438
451
  - настройку режимов `eco`, `balanced`, `quality`, `ebobo` и моделей отдельных агентов;
439
452
  - месячный прогноз, детектирование аномалий и экспорт activity/models/agents/daily/summary в CSV или JSON.
440
453
 
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-zinc-700:oklch(37% .013 285.805);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-semibold:600;--radius-xl:.75rem;--radius-2xl:1rem;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-top-\[200px\]{top:-200px}.-right-\[100px\]{right:-100px}.-bottom-\[150px\]{bottom:-150px}.-left-\[100px\]{left:-100px}.block{display:block}.contents{display:contents}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.table-row{display:table-row}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-10{height:calc(var(--spacing) * 10)}.h-\[500px\]{height:500px}.h-\[600px\]{height:600px}.w-11{width:calc(var(--spacing) * 11)}.w-\[500px\]{width:500px}.w-\[600px\]{width:600px}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[shimmer_3s_ease-in-out_infinite\]{animation:3s ease-in-out infinite shimmer}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[var\(--border-medium\)\]{border-color:var(--border-medium)}.border-\[var\(--border-subtle\)\]{border-color:var(--border-subtle)}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.bg-\[var\(--bg-card\)\]{background-color:var(--bg-card)}.bg-\[var\(--bg-glass\)\]{background-color:var(--bg-glass)}.bg-white{background-color:var(--color-white)}.bg-zinc-700\/50{background-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.bg-zinc-700\/50{background-color:color-mix(in oklab, var(--color-zinc-700) 50%, transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-600{--tw-gradient-from:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-white\/\[0\.03\]{--tw-gradient-via:#ffffff08}@supports (color:color-mix(in lab, red, red)){.via-white\/\[0\.03\]{--tw-gradient-via:color-mix(in oklab, var(--color-white) 3%, transparent)}}.via-white\/\[0\.03\]{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-violet-500{--tw-gradient-to:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-\[length\:200\%_100\%\]{background-size:200% 100%}.px-4{padding-inline:calc(var(--spacing) * 4)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-white{color:var(--color-white)}.opacity-0{opacity:0}.shadow-\[0_4px_16px_rgba\(139\,92\,246\,0\.3\)\]{--tw-shadow:0 4px 16px var(--tw-shadow-color,#8b5cf64d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_8px_32px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:translate-y-\[-1px\]:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-\[var\(--border-accent\)\]:hover{border-color:var(--border-accent)}.hover\:border-\[var\(--border-medium\)\]:hover{border-color:var(--border-medium)}.hover\:border-white\/\[0\.1\]:hover{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/\[0\.1\]:hover{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:bg-\[var\(--bg-glass-hover\)\]:hover{background-color:var(--bg-glass-hover)}.hover\:from-violet-500:hover{--tw-gradient-from:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:to-violet-400:hover{--tw-gradient-to:var(--color-violet-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:text-\[var\(--text-primary\)\]:hover{color:var(--text-primary)}.hover\:shadow-\[0_2px_8px_rgba\(0\,0\,0\,0\.15\)\]:hover{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-\[0_4px_16px_rgba\(0\,0\,0\,0\.2\)\]:hover{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-\[0_8px_24px_rgba\(139\,92\,246\,0\.4\)\]:hover{--tw-shadow:0 8px 24px var(--tw-shadow-color,#8b5cf666);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-\[var\(--shadow-lg\)\]:hover{--tw-shadow:var(--shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--focus-ring\)\]:focus-visible{--tw-ring-color:var(--focus-ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-transparent:focus-visible{--tw-ring-offset-color:transparent}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:translate-y-0:active{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.active\:shadow-\[0_2px_8px_rgba\(139\,92\,246\,0\.3\)\]:active{--tw-shadow:0 2px 8px var(--tw-shadow-color,#8b5cf64d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[checked\]\:translate-x-\[22px\][data-checked]{--tw-translate-x:22px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[checked\]\:border-violet-500\/30[data-checked]{border-color:#8d54ff4d}@supports (color:color-mix(in lab, red, red)){.data-\[checked\]\:border-violet-500\/30[data-checked]{border-color:color-mix(in oklab, var(--color-violet-500) 30%, transparent)}}.data-\[checked\]\:bg-gradient-to-r[data-checked]{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.data-\[checked\]\:from-violet-600[data-checked]{--tw-gradient-from:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[checked\]\:to-violet-500[data-checked]{--tw-gradient-to:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[checked\]\:shadow-\[0_0_16px_rgba\(139\,92\,246\,0\.3\)\][data-checked]{--tw-shadow:0 0 16px var(--tw-shadow-color,#8b5cf64d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[checked\]\:shadow-\[0_2px_8px_rgba\(0\,0\,0\,0\.3\)\][data-checked]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.data-\[checked\]\:hover\:border-violet-400\/40[data-checked]:hover{border-color:#a685ff66}@supports (color:color-mix(in lab, red, red)){.data-\[checked\]\:hover\:border-violet-400\/40[data-checked]:hover{border-color:color-mix(in oklab, var(--color-violet-400) 40%, transparent)}}}}:root{--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--bg-primary:#06080d;--bg-secondary:#0a0d14;--bg-tertiary:#0f1219;--bg-card:#0c0f16bf;--bg-card-hover:#10141ed9;--bg-glass:#ffffff08;--bg-glass-hover:#ffffff0f;--border-subtle:#ffffff0f;--border-medium:#ffffff1a;--border-accent:#8b5cf64d;--text-primary:#f4f4f5;--text-secondary:#a1a1aa;--text-tertiary:#9a9aa3;--text-muted:#85858f;--accent-violet:#8b5cf6;--accent-violet-light:#a78bfa;--accent-violet-dark:#6d28d9;--focus-ring:var(--accent-violet-light);--accent-cyan:#22d3ee;--accent-emerald:#34d399;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 32px #0006;--shadow-lg:0 16px 64px #00000080;--shadow-glow-violet:0 0 20px #8b5cf626;--shadow-glow-cyan:0 0 20px #22d3ee26;color:var(--text-primary);background:var(--bg-primary);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:radial-gradient(ellipse 80% 50% at 50% -20%, #8b5cf61f, transparent), radial-gradient(ellipse 60% 40% at 80% 50%, #22d3ee0f, transparent), radial-gradient(ellipse 50% 30% at 20% 80%, #8b5cf614, transparent), var(--bg-primary);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}@keyframes mesh-float{0%,to{transform:translate(0)scale(1)}25%{transform:translate(2%,-3%)scale(1.02)}50%{transform:translate(-1%,2%)scale(.98)}75%{transform:translate(3%,1%)scale(1.01)}}@keyframes mesh-opacity{0%,to{opacity:.6}50%{opacity:1}}.mesh-bg{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.mesh-bg:before,.mesh-bg:after{content:"";filter:blur(80px);border-radius:50%;animation:20s ease-in-out infinite mesh-float;position:absolute}.mesh-bg:before{background:radial-gradient(circle,#8b5cf626,#0000 70%);width:600px;height:600px;animation-delay:-5s;top:-200px;right:-100px}.mesh-bg:after{background:radial-gradient(circle,#22d3ee1a,#0000 70%);width:500px;height:500px;animation-delay:-10s;bottom:-150px;left:-100px}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(24px)saturate(1.2);backdrop-filter:blur(24px)saturate(1.2);z-index:10;background:#080a0fd9;flex-direction:column;height:100vh;padding:28px 18px 24px;transition:background .3s;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;padding:0 10px 32px;display:flex}.brand strong,.brand small{letter-spacing:.18em;display:block}.brand strong{font-size:14px;font-weight:700}.brand small{color:var(--text-tertiary);margin-top:4px;font-size:9px;font-weight:500}.brand-mark{color:#fff;background:linear-gradient(145deg, var(--accent-violet), var(--accent-violet-dark));border-radius:12px;justify-content:center;align-items:end;gap:3px;width:36px;height:36px;padding:8px;transition:transform .3s,box-shadow .3s;display:flex;box-shadow:0 8px 32px #8b5cf64d,inset 0 1px #ffffff26}.brand-mark:hover{transform:scale(1.05);box-shadow:0 12px 40px #8b5cf666,inset 0 1px #fff3}.brand-mark span{background:currentColor;border-radius:2px;width:3px;transition:height .3s;display:block}.brand-mark span:first-child{opacity:.65;height:8px}.brand-mark span:nth-child(2){height:17px}.brand-mark span:nth-child(3){opacity:.8;height:12px}nav{gap:4px;display:grid}.nav-link{height:44px;color:var(--text-tertiary);border-radius:12px;align-items:center;gap:14px;padding:0 14px;font-size:13px;font-weight:550;text-decoration:none;transition:all .2s;display:flex;position:relative}.nav-link:hover{color:var(--text-primary);background:var(--bg-glass-hover)}.nav-link.active{color:#fff;box-shadow:var(--shadow-glow-violet);background:#8b5cf61f}.nav-link.active:before{content:"";background:linear-gradient(180deg, var(--accent-violet), var(--accent-cyan));border-radius:2px;width:3px;height:24px;position:absolute;left:-18px;box-shadow:0 0 16px #8b5cf699}.sidebar-foot{border-top:1px solid var(--border-subtle);margin-top:auto;padding:18px 12px 0}.local-chip{color:var(--text-secondary);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:8px;font-size:10px;font-weight:700;display:flex}.project-name{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin-top:8px;font-size:11px;overflow:hidden}.status-dot{background:var(--accent-emerald);border-radius:50%;flex:none;width:8px;height:8px;animation:2s ease-in-out infinite pulse-glow;box-shadow:0 0 12px #34d39999}.status-dot.off{background:var(--text-muted);box-shadow:none;animation:none}@keyframes pulse-glow{0%,to{box-shadow:0 0 12px #34d39999}50%{box-shadow:0 0 20px #34d399e6}}.main-panel{min-width:0}.topbar{border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:5;background:#06080d99;justify-content:space-between;align-items:center;height:72px;padding:0 4vw;display:flex;position:sticky;top:0}.top-actions{align-items:center;gap:6px;display:flex}.eyebrow{color:var(--text-muted);letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:700;line-height:1.4}.topbar .eyebrow{white-space:nowrap;text-overflow:ellipsis;max-width:60vw;display:block;overflow:hidden}.topbar>div:first-child{align-items:center;gap:14px;min-width:0;display:flex}.project-select{border:1px solid var(--border-medium);max-width:260px;height:36px;color:var(--text-primary);background:var(--bg-tertiary);border-radius:10px;outline:none;padding:0 32px 0 12px;transition:all .2s}.project-select:focus{border-color:var(--accent-violet);box-shadow:0 0 0 3px #8b5cf626}.content{max-width:1520px;margin:0 auto;padding:48px 4vw 80px}.page-intro{margin-bottom:36px}.page-intro h1{letter-spacing:-.045em;background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:10px 0;font-size:clamp(30px,3.2vw,48px);font-weight:700;line-height:1.05}.page-intro p{max-width:640px;color:var(--text-tertiary);margin:0;font-size:14px;line-height:1.65}h2{letter-spacing:-.02em;margin:5px 0 0;font-size:16px;font-weight:600}.overview-hero{--hero-x:72%;--hero-y:38%;--hero-rx:0deg;--hero-ry:0deg;isolation:isolate;background:radial-gradient(circle at var(--hero-x) var(--hero-y), #8b5cf638, transparent 28%), radial-gradient(circle at 18% 110%, #22d3ee1f, transparent 42%), linear-gradient(135deg, #121520f0, #080a11db);perspective:1200px;border:1px solid #a78bfa29;border-radius:24px;grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);align-items:center;gap:24px;min-height:310px;margin-bottom:22px;padding:38px 42px;display:grid;position:relative;overflow:hidden;box-shadow:0 32px 90px #0000006b,inset 0 1px #ffffff12,inset 0 -1px #8b5cf614}.overview-hero:before{content:"";z-index:-1;opacity:.24;transform-origin:top;background-image:linear-gradient(#8b5cf647 1px,#0000 1px),linear-gradient(90deg,#22d3ee38 1px,#0000 1px);background-size:38px 38px;position:absolute;inset:55% -10% -45%;transform:perspective(500px)rotateX(62deg)scale(1.2);-webkit-mask-image:linear-gradient(#000000e6,#0000 74%);mask-image:linear-gradient(#000000e6,#0000 74%)}.overview-hero:after{content:"";z-index:2;pointer-events:none;border-radius:inherit;mix-blend-mode:screen;background:linear-gradient(112deg,#0000 22%,#ffffff0b 43%,#0000 61%),linear-gradient(90deg,#8b5cf62e,#0000 32% 68%,#22d3ee14);position:absolute;inset:0}.hero-copy{z-index:3;max-width:660px;position:relative}.hero-live-pill{color:#a7f3d0;letter-spacing:.13em;text-transform:uppercase;background:#34d3990f;border:1px solid #34d39933;border-radius:999px;align-items:center;gap:8px;width:fit-content;min-height:28px;padding:0 11px;font-size:9px;font-weight:750;display:inline-flex}.hero-live-pill .status-dot{width:6px;height:6px}.overview-hero h1{letter-spacing:-.055em;-webkit-text-fill-color:transparent;text-wrap:balance;background:linear-gradient(118deg,#fff 10%,#d8d1ff 52%,#89ecf9 112%);-webkit-background-clip:text;background-clip:text;max-width:720px;margin:18px 0 12px;font-size:clamp(34px,4vw,58px);font-weight:720;line-height:.96}.overview-hero p{max-width:590px;color:var(--text-tertiary);margin:0;font-size:14px;line-height:1.7}.hero-signal{border:1px solid var(--border-subtle);background:#ffffff09;border-radius:12px;grid-template-columns:auto auto 42px;align-items:center;gap:9px;width:fit-content;margin-top:24px;padding:9px 13px;display:grid;box-shadow:inset 0 1px #ffffff0a}.hero-signal span{color:var(--text-primary);font-family:var(--font-mono);font-size:13px;font-weight:700}.hero-signal small{color:var(--text-muted);letter-spacing:.12em;font-size:8px;font-weight:750}.hero-signal i{filter:drop-shadow(0 0 5px #22d3eeb3);background:linear-gradient(125deg,#0000 43%,#22d3ee 45% 51%,#0000 53%) 0 0/10px 12px repeat-x;width:42px;height:12px}.orchestra-visual{z-index:1;perspective:850px;place-items:center;height:230px;display:grid;position:relative}.orchestra-stage{width:min(360px,100%);height:230px;transform-style:preserve-3d;transform:rotateX(var(--hero-rx)) rotateY(var(--hero-ry));will-change:transform;transition:transform .18s cubic-bezier(.2,.8,.2,1);position:relative}.stage-horizon{background:radial-gradient(#8b5cf629,#0000 68%);border:1px solid #8b5cf63d;border-radius:50%;width:270px;height:74px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)rotateX(68deg)translateZ(-42px);box-shadow:0 0 50px #8b5cf624,inset 0 0 30px #22d3ee0f}.orbit-plane{transform-style:preserve-3d;position:absolute;top:50%;left:50%}.orbit-plane-a{width:310px;height:148px;transform:translate(-50%,-50%)rotateX(68deg)rotate(-8deg)translateZ(12px)}.orbit-plane-b{width:224px;height:112px;transform:translate(-50%,-50%)rotateX(61deg)rotate(18deg)translateZ(45px)}.orbit-spinner{transform-style:preserve-3d;border:1px solid #a78bfa57;border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 0 25px #8b5cf60d,0 0 18px #8b5cf614}.orbit-plane-b .orbit-spinner{border-color:#22d3ee42;box-shadow:inset 0 0 18px #22d3ee0a,0 0 16px #22d3ee12}.orbit-node{color:#ddd6fe;min-width:36px;height:20px;font-family:var(--font-mono);letter-spacing:.08em;white-space:nowrap;background:#12101ff0;border:1px solid #a78bfa59;border-radius:7px;place-items:center;padding:0 7px;font-size:6px;font-weight:700;display:grid;position:absolute;box-shadow:0 0 14px #8b5cf647,inset 0 1px #ffffff17}.node-lead{top:16%;left:8%}.node-code{top:45%;right:-2%}.node-test{bottom:-4%;left:28%}.node-research{color:#a5f3fc;border-color:#22d3ee59;top:46%;left:-9%}.node-review{color:#a5f3fc;border-color:#22d3ee59;bottom:3%;right:5%}.orchestra-core{z-index:4;width:132px;height:132px;transform-style:preserve-3d;place-items:center;animation:5s ease-in-out infinite core-float;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)translateZ(74px)}.core-halo{filter:blur(5px);background:radial-gradient(circle,#a78bfa47,#8b5cf60a 46%,#0000 68%);border-radius:50%;animation:3.4s ease-in-out infinite core-breathe;position:absolute;inset:3px}.core-shell{background:linear-gradient(145deg,#ffffff29,#0000 38%),linear-gradient(145deg,#8b5cf6,#4c1d95 64%,#164e63 120%);border:1px solid #ffffff38;border-radius:25px;justify-content:center;align-items:end;gap:5px;width:80px;height:80px;padding:22px 18px;display:flex;position:relative;transform:rotateX(-5deg)rotateY(10deg);box-shadow:0 24px 45px #4c1d956b,0 0 42px #8b5cf652,inset 0 1px #ffffff52,inset -10px -12px 22px #140a305c}.core-shell:after{content:"";border:1px solid #ffffff1a;border-radius:18px;position:absolute;inset:7px}.core-shell span{z-index:1;background:linear-gradient(#fff,#a5f3fc);border-radius:4px;width:5px;box-shadow:0 0 10px #a5f3fcad}.core-shell span:first-child{opacity:.65;height:13px}.core-shell span:nth-child(2){height:31px}.core-shell span:nth-child(3){opacity:.82;height:21px}.core-shell span:nth-child(4){opacity:.7;height:26px}.orchestra-core small{color:#ddd6fecc;font-family:var(--font-mono);letter-spacing:.22em;text-shadow:0 0 10px #8b5cf6cc;font-size:7px;font-weight:700;position:absolute;bottom:3px}.stage-particle{background:#a5f3fc;border-radius:50%;width:4px;height:4px;animation:4s ease-in-out infinite particle-float;position:absolute;box-shadow:0 0 12px #22d3ee}.particle-a{animation-delay:-1s;top:28%;left:5%}.particle-b{animation-delay:-2.4s;top:17%;right:9%}.particle-c{animation-delay:-.4s;bottom:14%;right:17%}@keyframes core-breathe{0%,to{opacity:.62;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes core-float{0%,to{transform:translate(-50%,-50%)translateZ(74px)rotate(0)}50%{transform:translate(-50%,calc(-50% - 7px))translateZ(74px)rotate(2deg)}}@keyframes particle-float{0%,to{opacity:.35;transform:translateZ(18px)}50%{opacity:1;transform:translate3d(0,-12px,42px)}}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}.insight-banner{background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;flex-wrap:wrap;align-items:center;gap:36px;margin-bottom:18px;padding:20px 26px;display:flex}.insight-banner>div{gap:3px;display:grid}.insight-banner .eyebrow{color:var(--text-muted)}.insight-banner strong{letter-spacing:-.035em;font-size:22px}.insight-banner small{color:var(--text-muted);font-size:11px}.metric-card{background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;grid-template-columns:1fr auto;align-items:center;min-height:168px;padding:24px;transition:all .3s;display:grid;position:relative;overflow:hidden}.metric-card:before{content:"";opacity:0;background:linear-gradient(90deg,#0000,#8b5cf64d,#0000);height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.metric-card:hover{border-color:var(--border-accent);background:var(--bg-card-hover);box-shadow:var(--shadow-glow-violet);transform:translateY(-2px)}.metric-card:hover:before{opacity:1}.metric-card>span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:650}.metric-card strong{letter-spacing:-.05em;grid-column:1/-1;font-size:clamp(28px,2.6vw,40px);font-weight:700}.metric-card small{color:var(--text-muted);grid-column:1/-1;font-size:11px}.metric-icon{width:40px;height:40px;color:var(--accent-violet-light);box-shadow:var(--shadow-glow-violet);background:#8b5cf61f;border-radius:12px;place-items:center;transition:all .3s;display:grid}.metric-card:hover .metric-icon{background:#8b5cf633;transform:scale(1.05)}.tilt-surface{--pointer-x:50%;--pointer-y:50%;--tilt-x:0deg;--tilt-y:0deg;perspective:920px;height:100%;transform-style:preserve-3d;border-radius:18px;position:relative}.tilt-surface:before{content:"";z-index:0;filter:blur(18px);opacity:0;background:#5328a047;border-radius:50%;height:32px;transition:opacity .25s,transform .25s;position:absolute;bottom:-13px;left:8%;right:8%;transform:translateZ(-30px)scale(.82)}.tilt-surface:after{content:"";z-index:3;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--pointer-x) var(--pointer-y), #ffffff24, #a78bfa0e 34%, transparent 68%);mix-blend-mode:screen;transition:opacity .22s;position:absolute;inset:0}.tilt-surface:hover:before{opacity:1;transform:translateZ(-30px)scale(1)}.tilt-surface:hover:after{opacity:1}.tilt-surface>.depth-card{z-index:1;height:100%;transform-style:preserve-3d;transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(0);transform-origin:50%;will-change:transform;transition:transform .18s cubic-bezier(.2,.8,.2,1),border-color .25s,background .25s,box-shadow .25s;position:relative}.tilt-surface:hover>.depth-card{transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-4px) translateZ(12px);border-color:#a78bfa47;box-shadow:0 28px 62px #00000080,0 0 36px #8b5cf61a,inset 0 1px #ffffff17}.metric-tilt>.metric-card:hover{transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-6px) translateZ(18px)}.metric-card>.metric-icon{box-shadow:0 11px 24px #4c1d9540, var(--shadow-glow-violet);transform:translateZ(34px)}.metric-card>span{transform:translateZ(17px)}.metric-card>strong{text-shadow:0 9px 25px #0000005c;transform:translateZ(27px)}.metric-card>small{transform:translateZ(13px)}.metric-card>.metric-icon,.metric-card>span,.metric-card>strong,.metric-card>small{z-index:2;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:relative}.metric-tilt:hover .metric-icon{transform:translateZ(45px)scale(1.06)}.metric-tilt:hover .metric-card>strong{transform:translateZ(38px)}.dashboard-tilt>.chart-card,.dashboard-tilt>.mcp-card{transform-origin:50% 45%}.chart-tilt:hover>.depth-card{transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-2px) translateZ(5px)}.projects-tilt:hover>.depth-card{transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-1px) translateZ(3px)}.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;margin-bottom:18px;display:grid}.chart-card,.mcp-card,.list-card,.ranking-card,.settings-card{background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;padding:26px;transition:all .3s}.chart-card:hover,.mcp-card:hover,.list-card:hover,.ranking-card:hover{border-color:var(--border-medium)}.card-heading{justify-content:space-between;align-items:start;margin-bottom:24px;display:flex}.updated{color:var(--text-muted);font-size:10px}.chart-wrap{height:292px;margin:16px -4px -8px -16px;font-size:10px}.chart-series{flex-wrap:wrap;gap:8px;margin-top:-6px;display:flex}.chart-series-pill{border:1px solid var(--border-subtle);min-height:34px;color:var(--text-secondary);background:#ffffff06;border-radius:10px;grid-template-columns:auto auto auto;align-items:center;gap:7px;padding:0 11px;transition:opacity .2s,border-color .2s,background .2s,transform .2s;display:inline-grid;box-shadow:inset 0 1px #ffffff06}.chart-series-pill:hover{border-color:var(--border-medium);background:#ffffff0b;transform:translateY(-1px)}.chart-series-pill i{background:var(--series-color);width:7px;height:7px;box-shadow:0 0 10px var(--series-color);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.chart-series-pill i{box-shadow:0 0 10px color-mix(in srgb, var(--series-color) 70%, transparent)}}.chart-series-pill span{color:var(--text-muted);letter-spacing:.04em;font-size:9px;font-weight:650}.chart-series-pill strong{color:var(--text-primary);font-family:var(--font-mono);font-size:10px;font-weight:650}.chart-series-pill.muted{opacity:.38}.series-input{--series-color:var(--accent-violet)}.series-output{--series-color:var(--accent-cyan)}.series-cost{--series-color:var(--accent-amber)}.chart-controls{align-items:center;gap:14px;display:flex}.chart-controls select{border:1px solid var(--border-medium);height:32px;color:var(--text-secondary);background:var(--bg-tertiary);border-radius:9px;padding:0 10px;transition:all .2s}.chart-controls select:focus{border-color:var(--accent-violet);box-shadow:0 0 0 3px #8b5cf626}.mcp-list{margin-top:24px;display:grid}.mcp-list>div{border-top:1px solid var(--border-subtle);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:54px;font-size:12px;transition:background .2s;display:grid}.mcp-list>div:hover{background:var(--bg-glass)}.mcp-list small{color:var(--text-muted);font-size:10px}.project-list{margin-top:18px;display:grid}.project-list button{border:0;border-top:1px solid var(--border-subtle);min-height:58px;color:var(--text-secondary);text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 0;transition:all .2s;display:grid}.project-list button:hover{background:var(--bg-glass)}.project-list button:hover strong{color:var(--accent-violet-light)}.project-list strong,.project-list small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.project-list strong{color:var(--text-primary);font-size:12px}.project-list small{color:var(--text-muted);margin-top:4px;font-size:9px}.text-link{color:var(--accent-violet-light);font-size:11px;text-decoration:none;transition:color .2s}.text-link:hover{color:var(--accent-violet)}.recent-list>div{border-top:1px solid var(--border-subtle);min-height:60px;color:var(--text-secondary);grid-template-columns:100px minmax(0,1fr) 110px 90px;align-items:center;gap:16px;padding:0 4px;font-size:11px;transition:background .2s;display:grid}.recent-list>div:hover{background:var(--bg-glass)}.recent-list strong,.recent-list small{display:block}.recent-list strong{color:var(--text-primary);font-size:12px;font-weight:550}.recent-list small{color:var(--text-muted);margin-top:4px;font-size:10px}.agent-badge{color:var(--accent-violet-light);letter-spacing:.02em;background:#8b5cf614;border:1px solid #8b5cf633;border-radius:8px;justify-self:start;padding:5px 10px;font-size:10px;font-weight:600;transition:all .2s}.agent-badge:hover{background:#8b5cf626;border-color:#8b5cf659}.empty-state{min-height:200px;color:var(--text-muted);justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex}.table-card{overflow:hidden}.activity-table-card{padding:0}.virtual-table{min-width:0}.table-inner{min-width:975px}.table-head,.table-row{align-items:center;width:100%;display:flex}.table-head{z-index:4;border-bottom:1px solid var(--border-medium);height:48px;color:var(--text-muted);background:var(--bg-card);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.table-head{background:color-mix(in srgb, var(--bg-card) 94%, transparent)}}.table-head{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:700}.table-head>div,.table-row>div{text-overflow:ellipsis;white-space:nowrap;flex:none;padding:0 16px;overflow:hidden}.table-scroll{scrollbar-color:var(--border-medium) transparent;height:min(62vh,620px);overflow:auto}.table-row{border-bottom:1px solid var(--border-subtle);min-height:64px;color:var(--text-secondary);cursor:pointer;outline:none;font-size:11px;transition:background .2s,box-shadow .2s;position:absolute;inset-inline:0}.table-row:hover{background:var(--bg-glass-hover)}.table-row:focus-visible,.table-row.selected{box-shadow:inset 3px 0 var(--accent-violet);background:#8b5cf614}.activity-time,.activity-model,.activity-price{gap:3px;min-width:0;display:grid}.activity-time strong,.activity-model strong,.activity-price strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.activity-time strong,.activity-price strong{font-family:var(--font-mono)}.activity-time small,.activity-model small,.activity-price small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.activity-agent{width:fit-content;max-width:100%;color:var(--accent-violet-light);text-overflow:ellipsis;white-space:nowrap;background:#8b5cf614;border:1px solid #8b5cf633;border-radius:7px;padding:4px 7px;display:inline-flex;overflow:hidden}.activity-tokens{font-family:var(--font-mono);gap:10px;font-size:10px;display:flex}.activity-tokens b:first-child{color:var(--text-secondary)}.activity-tokens b:last-child{color:var(--accent-cyan)}.activity-price small{width:fit-content}.activity-price .price-paid{color:var(--text-muted)}.activity-price .price-free,.activity-price .price-subscription{color:var(--accent-emerald)}.activity-price .price-unknown{color:var(--accent-amber)}.activity-status{border:1px solid var(--border-subtle);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;width:fit-content;max-width:100%;min-height:26px;padding:0 9px;font-size:9px;font-weight:700;display:inline-flex;overflow:hidden}.activity-status:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px;margin-right:7px;box-shadow:0 0 8px}.status-completed{color:var(--accent-emerald);border-color:var(--accent-emerald)}@supports (color:color-mix(in lab, red, red)){.status-completed{border-color:color-mix(in srgb, var(--accent-emerald) 24%, transparent)}}.status-completed{background:var(--accent-emerald)}@supports (color:color-mix(in lab, red, red)){.status-completed{background:color-mix(in srgb, var(--accent-emerald) 7%, transparent)}}.status-tools{color:var(--accent-cyan);background:#22d3ee0f;border-color:#22d3ee38}.status-warning{color:var(--accent-amber);background:#fbbf240f;border-color:#fbbf2438}.status-error{color:var(--accent-rose);background:#f8717112;border-color:#f871713d}.status-unknown{color:var(--text-muted)}.activity-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.activity-search{width:min(430px,100%)}.activity-filters{border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:14px;grid-template-columns:minmax(120px,.8fr) minmax(190px,1.25fr) minmax(145px,.9fr) minmax(145px,.9fr) minmax(125px,.75fr) 42px;align-items:end;gap:8px;margin-bottom:14px;padding:12px;display:grid}.activity-filters label{gap:6px;min-width:0;display:grid}.activity-filters label>span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding-left:3px;font-size:8px;font-weight:700}.activity-filters select{border:1px solid var(--border-subtle);width:100%;height:38px;color:var(--text-secondary);background:var(--bg-tertiary);text-overflow:ellipsis;border-radius:9px;outline:none;padding:0 30px 0 10px;transition:border-color .2s,box-shadow .2s;overflow:hidden}.activity-filters select:focus{border-color:var(--border-accent);box-shadow:0 0 0 3px #8b5cf61a}.activity-direction{border:1px solid var(--border-subtle);width:42px;height:38px;color:var(--accent-violet-light);background:var(--bg-tertiary);border-radius:9px;justify-content:center;align-items:center;gap:3px;transition:border-color .2s,background .2s;display:inline-flex}.activity-direction:hover{border-color:var(--border-accent);background:var(--bg-glass-hover)}.activity-direction span{font-family:var(--font-mono);font-size:12px}.activity-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.activity-summary>div{border:1px solid var(--border-subtle);background:linear-gradient(135deg, var(--bg-card), #8b5cf609);border-radius:13px;align-content:center;gap:4px;min-width:0;min-height:92px;padding:16px 18px;display:grid}.activity-summary>div.has-warning{background:linear-gradient(135deg, var(--bg-card), #fbbf2409);border-color:#fbbf2433}.activity-summary span{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:8px;font-weight:750}.activity-summary strong{color:var(--text-primary);font-family:var(--font-mono);font-size:20px}.activity-summary small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.activity-summary .has-warning strong{color:var(--accent-amber)}.activity-results-line{min-height:32px;color:var(--text-muted);letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:9px;display:flex}.activity-results-line button{color:var(--accent-violet-light);background:0 0;border:0;font-size:9px}.activity-results-line button:hover{text-decoration:underline}.activity-empty-search{flex-direction:column;min-height:210px}.activity-empty-search button{border:1px solid var(--border-subtle);color:var(--accent-violet-light);background:var(--bg-tertiary);border-radius:8px;padding:8px 12px;font-size:9px}.activity-empty-search button:hover{border-color:var(--border-accent)}.activity-detail-backdrop{z-index:90;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#02040c8f;justify-content:flex-end;display:flex;position:fixed;inset:0}.activity-detail{border-left:1px solid var(--border-medium);width:min(460px,100%);height:100%;color:var(--text-secondary);background:var(--bg-secondary);padding:28px;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.activity-detail{background:color-mix(in srgb, var(--bg-secondary) 96%, transparent)}}.activity-detail{box-shadow:-28px 0 80px #00000059}.activity-detail-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.activity-detail-head span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:700}.activity-detail-head h2{color:var(--text-primary);margin-top:7px;font-size:24px;line-height:1.1}.activity-detail-head button{border:1px solid var(--border-subtle);width:34px;height:34px;color:var(--text-secondary);background:var(--bg-tertiary);border-radius:9px;flex:none;font-size:20px}.activity-detail-head button:hover{border-color:var(--border-medium);color:var(--text-primary)}.activity-detail-hero{border:1px solid var(--border-subtle);background:linear-gradient(120deg,#8b5cf613,#22d3ee06);border-radius:13px;grid-template-columns:1fr auto;align-items:center;gap:5px 12px;margin:24px 0 18px;padding:18px;display:grid}.activity-detail-hero .activity-status{grid-row:1/3}.activity-detail-hero>strong{color:var(--text-primary);font-family:var(--font-mono);text-align:right;font-size:20px}.activity-detail-hero>small{color:var(--text-muted);text-align:right;font-size:9px}.activity-detail-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.activity-detail-grid>div,.activity-identifiers>div{border:1px solid var(--border-subtle);background:#ffffff05;border-radius:10px;min-width:0;padding:12px}.activity-detail dt,.activity-token-detail h3{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:8px;font-weight:700}.activity-detail dd{overflow-wrap:anywhere;color:var(--text-primary);font-size:11px}.activity-detail code{font-family:var(--font-mono);color:var(--accent-cyan)}.activity-token-detail{border:1px solid var(--border-subtle);border-radius:12px;margin-top:18px;padding:16px}.activity-token-detail h3{margin-bottom:10px}.activity-token-detail>div{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;min-height:34px;display:flex}.activity-token-detail span{color:var(--text-muted);font-size:10px}.activity-token-detail strong{color:var(--text-primary);font-family:var(--font-mono);font-size:11px}.activity-identifiers{gap:8px;margin-top:18px;display:grid}.activity-privacy{color:var(--text-muted);margin-top:18px;font-size:9px;line-height:1.6}.ranking-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.ranking-search{width:min(360px,100%);color:var(--text-muted);position:relative}.ranking-search svg{pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.ranking-search input{border:1px solid var(--border-subtle);width:100%;height:42px;color:var(--text-primary);background:var(--bg-card);border-radius:12px;outline:none;padding:0 14px 0 40px;transition:border-color .2s,box-shadow .2s,background .2s}.ranking-search input::placeholder{color:var(--text-muted)}.ranking-search input:focus{border-color:var(--border-accent);background:var(--bg-card-hover);box-shadow:0 0 0 3px #8b5cf61a, var(--shadow-glow-violet)}.ranking-range{border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:12px;gap:3px;padding:4px;display:flex}.ranking-range button{min-height:32px;color:var(--text-muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:0 11px;font-size:10px;font-weight:650;transition:color .2s,background .2s,box-shadow .2s}.ranking-range button:hover{color:var(--text-primary);background:var(--bg-glass-hover)}.ranking-range button.active{color:#ede9fe;background:#8b5cf62e;box-shadow:inset 0 1px #ffffff12,0 0 18px #8b5cf61a}.ranking-summary{border:1px solid var(--border-subtle);background:linear-gradient(110deg, var(--bg-card), #8b5cf609);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:14px;padding:16px 20px;display:grid}.ranking-summary>div{grid-template-columns:1fr auto;align-items:baseline;gap:3px 10px;min-width:0;display:grid}.ranking-summary span,.ranking-summary small{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:700}.ranking-summary strong{color:var(--text-primary);font-family:var(--font-mono);font-size:16px}.ranking-summary small{text-align:right;grid-column:1/-1;font-size:7px}.ranking-card-upgraded{padding-top:0;overflow:hidden}.ranking-head{border-bottom:1px solid var(--border-medium);min-height:52px;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;grid-template-columns:46px minmax(260px,1fr) 110px 120px 100px;align-items:center;gap:18px;font-size:9px;font-weight:700;display:grid}.ranking-head button{height:32px;color:var(--text-muted);font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;transition:color .2s;display:inline-flex}.ranking-head button:hover,.ranking-head button.active{color:var(--accent-violet-light)}.ranking-list-upgraded>div{grid-template-columns:46px minmax(260px,1fr) 110px 120px 100px;min-height:88px}.ranking-identity{min-width:0}.ranking-name{align-items:center;gap:9px;min-width:0;display:flex}.ranking-name strong{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.ranking-identity>small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:9px;display:block;overflow:hidden}.provider-badge{color:var(--accent-violet-light);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;background:#8b5cf614;border:1px solid #8b5cf633;border-radius:6px;flex:none;padding:3px 6px;font-size:7px;font-weight:700}.ranking-list-upgraded .usage-bar{height:4px;margin-top:10px}.ranking-bar-caption{color:var(--text-muted);font-family:var(--font-mono);opacity:.72;margin-top:5px;font-size:7px;display:block}.ranking-metric{color:var(--text-secondary);gap:4px;display:grid}.ranking-metric small{display:none}.ranking-metric b{font-family:var(--font-mono);font-size:10px;font-weight:600}.ranking-empty-search{min-height:220px;color:var(--text-muted);align-content:center;place-items:center;gap:12px;font-size:12px;display:grid}.ranking-list>div{border-top:1px solid var(--border-subtle);min-height:88px;color:var(--text-secondary);grid-template-columns:46px minmax(260px,1fr) 110px 120px 100px;align-items:center;gap:18px;padding:0 4px;font-size:11px;transition:all .2s;display:grid}.ranking-list>div:first-child{border-top:0}.ranking-list>div:hover{background:var(--bg-glass)}.rank{color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:600}.rank-main strong{color:var(--text-primary);font-size:12px;font-weight:550}.usage-bar{background:#ffffff0f;border-radius:3px;width:100%;max-width:420px;height:3px;margin-top:12px;overflow:hidden}.usage-bar span{background:linear-gradient(90deg, var(--accent-violet), var(--accent-cyan));border-radius:3px;height:100%;display:block;box-shadow:0 0 8px #8b5cf666}.settings-stack{gap:18px;padding-bottom:12px;display:grid}.settings-nav{z-index:4;border:1px solid var(--border-subtle);background:var(--bg-secondary);border-radius:14px;gap:6px;margin:-18px 0 22px;padding:8px;display:flex;position:sticky;top:82px;overflow-x:auto}@supports (color:color-mix(in lab, red, red)){.settings-nav{background:color-mix(in srgb, var(--bg-secondary) 90%, transparent)}}.settings-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);scrollbar-width:none;box-shadow:0 12px 32px #0000002e}.settings-nav::-webkit-scrollbar{display:none}.settings-nav a{min-height:34px;color:var(--text-secondary);white-space:nowrap;border-radius:9px;flex:none;align-items:center;padding:0 12px;font-size:11px;font-weight:650;text-decoration:none;transition:color .2s,background .2s;display:inline-flex}.settings-nav a:hover,.settings-nav a:focus-visible{color:var(--text-primary);background:var(--bg-glass-hover);outline:none}.settings-section{scroll-margin-top:142px}.setting-title{justify-content:space-between;align-items:start;gap:24px;margin-bottom:24px;display:flex}.setting-title h2,.inline-setting h2{margin:0 0 6px}.setting-title p,.inline-setting p{color:var(--text-tertiary);margin:0;font-size:12px;line-height:1.55}.setting-title select{border:1px solid var(--border-medium);min-width:130px;height:38px;color:var(--text-primary);background:var(--bg-tertiary);border-radius:10px;outline:none;padding:0 34px 0 14px;transition:all .2s}.strategy-select{flex:none;gap:6px;display:grid}.strategy-select>span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:700}.setting-title select:focus{border-color:var(--accent-violet);box-shadow:0 0 0 3px #8b5cf626}.budget-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.budget-option{border:1px solid var(--border-subtle);min-height:100px;color:var(--text-secondary);background:var(--bg-glass);text-align:left;border-radius:14px;padding:16px;transition:all .25s}.budget-option strong,.budget-option span{display:block}.budget-option strong{color:var(--text-primary);text-transform:uppercase;font-size:13px;font-weight:600}.budget-option span{color:var(--text-secondary);margin-top:8px;font-size:11px;line-height:1.45}.budget-option:hover,.budget-option.selected{border-color:var(--border-accent);box-shadow:var(--shadow-glow-violet);background:#8b5cf61a}.budget-option.selected strong{color:var(--accent-violet-light)}.model-empty{color:#d6b86f;background:#fbbf240f;border:1px solid #fbbf2433;border-radius:12px;margin:-8px 0 18px;padding:14px 16px;font-size:12px;line-height:1.55}.model-empty code{color:#fde68a;font-family:var(--font-mono)}.settings-notice{color:var(--text-secondary);background:#22d3ee0b;border:1px solid #22d3ee29;border-radius:13px;gap:5px;padding:17px 18px;font-size:12px;line-height:1.55;display:grid}.settings-notice strong{color:var(--accent-cyan);font-size:12px}.agent-model-groups{gap:10px;display:grid}.agent-model-groups[hidden]{display:none}.agent-model-group{border:1px solid var(--border-subtle);background:#ffffff03;border-radius:14px;overflow:hidden}.agent-model-group summary{min-height:52px;color:var(--text-primary);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:0 16px;font-size:12px;font-weight:650;list-style:none;display:flex}.agent-model-group summary::-webkit-details-marker{display:none}.agent-model-group summary small{color:var(--text-muted);font-size:10px;font-weight:500}.agent-model-group summary:after{color:var(--text-muted);content:"+";font-family:var(--font-mono);font-size:16px}.agent-model-group[open] summary:after{content:"−"}.agent-model-group[open] summary{border-bottom:1px solid var(--border-subtle)}.agent-model-group .agent-model-list{border:0;border-radius:0}.agent-model-list{border:1px solid var(--border-subtle);border-radius:16px;overflow:hidden}.agent-model-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(240px,.8fr) minmax(300px,1.2fr);align-items:center;gap:28px;min-height:78px;padding:14px 18px;transition:background .2s;display:grid}.agent-model-row:last-child{border-bottom:0}.agent-model-row:hover{background:var(--bg-glass)}.agent-identity strong,.agent-identity span,.agent-identity small{display:block}.agent-identity strong{color:var(--text-primary);font-size:13px}.agent-identity span{color:var(--text-secondary);margin-top:4px;font-size:11px}.agent-identity small{color:var(--text-muted);letter-spacing:.04em;font-size:9px;font-family:var(--font-mono);margin-top:6px}.agent-model-row select{border:1px solid var(--border-subtle);width:100%;height:44px;color:var(--text-primary);background:var(--bg-tertiary);text-overflow:ellipsis;border-radius:11px;outline:none;padding:0 38px 0 14px;transition:all .2s;overflow:hidden}.agent-model-row select:focus{border-color:var(--accent-violet);box-shadow:0 0 0 3px #8b5cf626}.inline-setting{justify-content:space-between;align-items:center;gap:28px;display:flex}.form-actions{z-index:4;border:1px solid var(--border-medium);color:var(--text-muted);background:var(--bg-secondary);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex;position:sticky;bottom:16px}@supports (color:color-mix(in lab, red, red)){.form-actions{background:color-mix(in srgb, var(--bg-secondary) 92%, transparent)}}.form-actions{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);font-size:11px;box-shadow:0 18px 52px #00000059}.form-status{gap:4px;min-width:0;display:grid}.form-status strong{color:var(--text-secondary);font-size:11px;font-weight:650}.form-status code{max-width:min(54vw,720px);color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.form-action-buttons{gap:8px;display:flex}.settings-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.settings-fields label{color:var(--text-secondary);gap:7px;font-size:12px;display:grid}.settings-fields input{border:1px solid var(--border-subtle);height:40px;color:var(--text-primary);background:var(--bg-tertiary);border-radius:10px;outline:none;padding:0 12px;transition:all .2s}.settings-fields input:focus{border-color:var(--accent-violet);box-shadow:0 0 0 3px #8b5cf626}.settings-field-hint{min-height:30px;color:var(--text-muted);font-size:10px;font-weight:450;line-height:1.45}.settings-field-hint.error{color:var(--accent-rose)}.settings-fields input:disabled{cursor:not-allowed}.disabled-setting{opacity:.55}.check-setting{border:1px solid var(--border-subtle);background:#ffffff04;border-radius:11px;grid-template-columns:1fr auto;align-items:center;min-height:72px;padding:12px 13px}.check-setting>span{gap:4px;display:grid}.check-setting>span strong{color:var(--text-secondary);font-size:11px;font-weight:600}.check-setting>span small{color:var(--text-muted);font-size:9px;font-weight:450;line-height:1.4}.settings-field{max-width:240px;color:var(--text-secondary);gap:7px;font-size:12px;display:grid}.settings-field input{border:1px solid var(--border-subtle);height:40px;color:var(--text-primary);background:var(--bg-tertiary);border-radius:10px;padding:0 12px}.danger-setting{background:linear-gradient(135deg, var(--bg-card), #f871710b);border-color:#f8717142;justify-content:space-between;align-items:center;gap:28px;display:flex}.danger-setting:hover{border-color:#f871716b}.danger-setting-copy{gap:7px;display:grid}.danger-setting-copy h2{color:var(--text-primary);margin:0}.danger-setting-copy p{max-width:920px;color:var(--text-secondary);margin:0;font-size:12px;line-height:1.55}.danger-setting-copy>small{color:#fecaca;background:#f8717117;border-radius:7px;width:fit-content;padding:5px 8px;font-size:9px}.danger-label{color:var(--accent-rose);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:750}.loading,.error-state{min-height:55vh;color:var(--text-tertiary);justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex}.error-state{color:var(--accent-rose)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.export-menu{position:relative}.export-scrim{z-index:40;cursor:default;background:0 0;border:0;position:fixed;inset:0}.export-panel{z-index:50;border:1px solid var(--border-medium);background:var(--bg-tertiary);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);width:280px;box-shadow:var(--shadow-lg);border-radius:16px;padding:14px;position:absolute;top:calc(100% + 10px);right:0}.export-head{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.export-close{color:var(--text-tertiary);background:0 0;border:0;font-size:20px;line-height:1;transition:color .2s}.export-close:hover{color:var(--text-primary)}.export-list{gap:3px;display:grid}.export-item{border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:8px 6px;transition:background .2s;display:flex}.export-item:hover{background:var(--bg-glass-hover)}.export-item-label{color:var(--text-primary);font-size:12px}.export-item-actions{gap:6px;display:flex}.export-item-actions .inline-flex{letter-spacing:.06em;height:28px;padding:0 10px;font-size:10px;font-weight:700}.export-error{color:var(--accent-rose);border:1px solid #f8717140;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:11px}.form-errors{color:var(--accent-rose);border:1px solid #f8717140;border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;font-size:11px;display:flex}.truncation-note{color:var(--accent-amber);border:1px solid #fbbf2440;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:11px}.live-card{padding:26px}.live-state{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;font-weight:600;display:inline-flex}.live-state.active{color:var(--accent-emerald)}.live-state.off{color:var(--text-tertiary)}.live-state .status-dot{background:var(--text-muted);width:9px;height:9px}.live-state.active .status-dot{background:var(--accent-emerald);animation:1.6s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1;box-shadow:0 0 12px #34d39999}50%{opacity:.4;box-shadow:0 0 20px #34d399e6}}.live-list{gap:12px;margin-top:6px;display:grid}.live-row{background:#8b5cf60d;border:1px solid #8b5cf62e;border-radius:14px;grid-template-columns:100px minmax(0,1fr) 90px;align-items:start;gap:16px;padding:14px;transition:all .3s;display:grid}.live-row:hover{box-shadow:var(--shadow-glow-violet);background:#8b5cf614;border-color:#8b5cf64d}.live-body{min-width:0}.live-meta{align-items:baseline;gap:12px;display:flex}.live-meta strong{color:var(--text-primary);font-size:13px;font-weight:600}.live-meta span{color:var(--text-muted);font-size:10px}.live-snippet{color:var(--text-secondary);max-width:100ch;margin:8px 0 0;font-size:12px;line-height:1.55}.live-stats{color:var(--text-muted);gap:14px;margin-top:8px;font-size:10px;display:flex}.live-warn{color:var(--accent-amber);cursor:help}.live-cost{color:var(--accent-violet-light);white-space:nowrap;justify-self:end;font-size:13px;font-weight:600}.live-total{color:var(--text-muted);grid-template-columns:1fr auto 1fr;align-items:baseline;gap:12px;padding:14px 6px 0;font-size:10px;display:grid}.live-total strong{color:var(--text-primary);text-align:right;font-size:13px;font-weight:600}.live-card .empty-state{min-height:120px}.live-card .agent-badge{justify-self:start}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,#0000 0%,#ffffff0a 50%,#0000 100%) 0 0/200% 100%;animation:3s ease-in-out infinite shimmer}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.float-animation{animation:6s ease-in-out infinite float}html.light{--bg-primary:#f8f9fb;--bg-secondary:#f0f1f4;--bg-tertiary:#e8e9ed;--bg-card:#ffffffd9;--bg-card-hover:#fffffff2;--bg-glass:#00000005;--bg-glass-hover:#0000000a;--border-subtle:#0000000f;--border-medium:#0000001a;--border-accent:#8b5cf640;--text-primary:#18181b;--text-secondary:#52525b;--text-tertiary:#52525b;--text-muted:#62626b;--focus-ring:var(--accent-violet-dark);--shadow-sm:0 2px 8px #00000014;--shadow-md:0 8px 32px #0000001f;--shadow-lg:0 16px 64px #00000029;--shadow-glow-violet:0 0 20px #8b5cf61a;--shadow-glow-cyan:0 0 20px #22d3ee1a;color:var(--text-primary);background:var(--bg-primary)}html.light body{background:radial-gradient(ellipse 80% 50% at 50% -20%, #8b5cf614, transparent), radial-gradient(ellipse 60% 40% at 80% 50%, #22d3ee0a, transparent), var(--bg-primary)}html.light .sidebar{border-color:var(--border-subtle);background:#ffffffe0}html.light .nav-link{color:var(--text-tertiary)}html.light .nav-link.active{color:var(--accent-violet-dark)}html.light .topbar{border-color:var(--border-subtle);background:#f8f9fbb3}html.light .overview-hero{background:radial-gradient(circle at var(--hero-x) var(--hero-y), #8b5cf629, transparent 28%), radial-gradient(circle at 18% 110%, #22d3ee1a, transparent 42%), linear-gradient(135deg, #fffffff5, #f1effae6);border-color:#6d28d924;box-shadow:0 28px 70px #46347826,inset 0 1px #ffffffe6}html.light .overview-hero h1{background:linear-gradient(118deg,#18181b 8%,#5b21b6 62%,#0e7490 112%);-webkit-background-clip:text;background-clip:text}html.light .hero-live-pill{color:#047857;background:#10b98114}html.light .hero-signal{background:#ffffff85}html.light .orbit-node{color:#6d28d9;background:#faf8fff5}html.light .node-research,html.light .node-review{color:#0e7490}html.light .tilt-surface:before{background:#6d28d926}html.light .tilt-surface:after{background:radial-gradient(260px circle at var(--pointer-x) var(--pointer-y), #fff9, #8b5cf60f 36%, transparent 70%);mix-blend-mode:soft-light}html.light .page-intro p,html.light .setting-title p,html.light .inline-setting p{color:var(--text-tertiary)}html.light h1,html.light h2,html.light .metric-card strong,html.light .recent-list strong,html.light .rank-main strong{color:var(--text-primary)}html.light .table-row,html.light .recent-list>div,html.light .ranking-list>div,html.light .mcp-list>div{border-color:var(--border-subtle)}html.light .live-row{background:#8b5cf60a;border-color:#8b5cf626}html.light .live-meta strong,html.light .live-total strong{color:var(--text-primary)}html.light .live-snippet{color:var(--text-secondary)}html.light .export-panel{border-color:var(--border-subtle);background:#fffffff2}html.light .export-item:hover{background:var(--bg-glass)}html.light .export-item-label{color:var(--text-primary)}html.light .export-close{color:var(--text-tertiary)}html.light .export-close:hover{color:var(--text-primary)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.mesh-bg{display:none}.orchestra-stage,.tilt-surface>.depth-card,.tilt-surface:hover>.depth-card,.metric-tilt>.metric-card:hover{transform:none!important}.tilt-surface:before,.tilt-surface:after{display:none}}@media (width<=1000px){.overview-hero{grid-template-columns:minmax(0,1fr) 320px;padding:34px}.orchestra-stage{transform:scale(.9) rotateX(var(--hero-rx)) rotateY(var(--hero-ry))}.metrics-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.budget-grid{grid-template-columns:repeat(2,1fr)}.settings-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.settings-fields{grid-template-columns:1fr}.settings-nav{margin-top:-12px;top:68px}.settings-section{scroll-margin-top:128px}.setting-title{flex-direction:column;align-items:stretch;gap:14px}.strategy-select,.strategy-select select{width:100%}.inline-setting,.danger-setting{align-items:flex-start}.danger-setting{flex-direction:column}.form-actions{align-items:stretch;bottom:82px}.form-status{width:100%}.form-status code{max-width:100%}.form-action-buttons{width:100%}.form-action-buttons>*{flex:1}.app-shell{display:block}.sidebar{border:0;border-top:1px solid var(--border-subtle);width:100%;height:70px;padding:8px 12px;position:fixed;inset:auto 0 0}.brand,.sidebar-foot{display:none}.sidebar nav{justify-content:space-around;display:flex}.nav-link{flex-direction:column;justify-content:center;gap:3px;width:60px;height:52px;padding:0;font-size:9px}.nav-link.active:before{display:none}.topbar{height:60px;padding:0 18px}.content{padding:32px 18px 110px}.overview-hero{border-radius:20px;grid-template-columns:1fr;gap:0;min-height:auto;padding:28px 24px 8px}.overview-hero h1{font-size:clamp(34px,11vw,48px)}.orchestra-visual{height:205px;margin-top:-2px}.orchestra-stage{transform:scale(.82)}.metrics-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:145px;padding:18px}.recent-list>div{grid-template-columns:80px minmax(0,1fr) 80px}.recent-list>div>span:last-child{display:none}.activity-toolbar{flex-direction:column;align-items:stretch}.activity-search{width:100%}.activity-toolbar .ranking-range{grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.activity-toolbar .ranking-range button{padding-inline:4px}.activity-filters{grid-template-columns:1fr 1fr}.activity-filters label:nth-child(2){grid-column:1/-1}.activity-direction{width:100%}.activity-summary{grid-template-columns:1fr 1fr}.activity-summary>div{min-height:84px;padding:14px}.activity-detail{border-left:0;padding:22px 18px 96px}.activity-table-card{background:0 0;border:0;overflow:visible}.activity-table-card .table-scroll{height:min(66vh,650px);overflow-x:hidden}.activity-table-card .table-inner{min-width:0}.activity-table-card .table-head{display:none}.activity-table-card .table-row{border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:14px;grid-template-columns:1fr 1fr;align-content:start;gap:13px 16px;min-height:178px;padding:16px;display:grid;box-shadow:0 10px 28px #0000001f}.activity-table-card .table-row:hover{background:var(--bg-card-hover)}.activity-table-card .table-row>div{padding:0;width:auto!important}.activity-table-card .table-row>div[data-column=time]{grid-area:1/1}.activity-table-card .table-row>div[data-column=finish]{grid-area:1/2;justify-self:end}.activity-table-card .table-row>div[data-column=agent]{grid-area:2/1}.activity-table-card .table-row>div[data-column=model]{grid-area:2/2}.activity-table-card .table-row>div[data-column=tokens]{grid-area:3/1}.activity-table-card .table-row>div[data-column=cost]{grid-area:3/2}.activity-table-card .table-row>div:before{color:var(--text-muted);font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;content:attr(data-label);margin-bottom:4px;font-size:7px;font-weight:700;display:block}.agent-model-row{grid-template-columns:1fr;gap:12px;padding:16px}.ranking-toolbar{flex-direction:column;align-items:stretch}.ranking-search{width:100%}.ranking-range{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ranking-range button{padding-inline:5px}.ranking-summary{grid-template-columns:1fr 1fr;padding:14px 16px}.ranking-card-upgraded{padding:0 18px 8px}.ranking-head{display:none}.ranking-list-upgraded>div,.ranking-list>div{grid-template-rows:auto auto;grid-template-columns:32px repeat(3,minmax(0,1fr));align-items:start;gap:14px 10px;min-height:142px;padding:16px 0}.ranking-list-upgraded .rank{grid-area:1/1;padding-top:3px}.ranking-list-upgraded .ranking-identity{grid-area:1/2/auto/-1}.ranking-list-upgraded .ranking-metric{grid-row:2;min-width:0}.ranking-list-upgraded .metric-calls{grid-column:2}.ranking-list-upgraded .metric-tokens{grid-column:3}.ranking-list-upgraded .metric-cost{grid-column:4}.ranking-metric small{color:var(--text-muted);letter-spacing:.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:7px;font-weight:700;display:block;overflow:hidden}.ranking-metric b{text-overflow:ellipsis;overflow:hidden}.form-actions{flex-direction:column;align-items:stretch}.form-action-buttons{grid-template-columns:1fr 1fr;display:grid}.form-action-buttons button{width:100%}}@media (width<=470px){.overview-hero{padding-inline:20px}.overview-hero p{font-size:13px}.orchestra-visual{height:185px;margin-inline:-18px}.orchestra-stage{transform:scale(.72)}.metrics-grid,.budget-grid{grid-template-columns:1fr}.page-intro h1{font-size:32px}.mcp-list small{display:none}.mcp-list>div{grid-template-columns:auto 1fr}.activity-filters{grid-template-columns:1fr}.activity-filters label:nth-child(2){grid-column:auto}.activity-summary{grid-template-columns:1fr 1fr}.activity-detail-grid{grid-template-columns:1fr}}@media (hover:none),(pointer:coarse){.tilt-surface:hover:before,.tilt-surface:hover:after{opacity:0}.tilt-surface:hover>.depth-card,.metric-tilt>.metric-card:hover{transform:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}