synabun 2.0.10 → 2.1.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/CHANGELOG.md +86 -0
- package/README.md +25 -2
- package/THIRD-PARTY-LICENSES.md +22 -0
- package/bin/synabun.js +71 -24
- package/docs/whatsapp.md +2 -2
- package/hooks/claude-code/pre-websearch.mjs +12 -1
- package/hooks/claude-code/shared.mjs +5 -0
- package/hooks/claude-code/stop.mjs +1 -1
- package/lib/claude-hooks.js +172 -18
- package/lib/client-config-repair.js +17 -8
- package/lib/desktop-app.js +7 -1
- package/lib/external-tools.js +1 -1
- package/lib/first-launch-protection.js +57 -12
- package/lib/mcp-dist.js +176 -0
- package/lib/release-npm-ci.mjs +138 -0
- package/lib/release-publish.mjs +91 -0
- package/lib/release-scan.mjs +50 -0
- package/lib/server-crash-record.js +123 -0
- package/lib/server-exit.js +318 -0
- package/lib/server-supervisor.js +508 -0
- package/lib/start-launcher.js +37 -4
- package/lib/tools-cli.js +45 -0
- package/lib/update-snapshot.js +228 -0
- package/lib/virustotal.mjs +192 -0
- package/lib/windows-crash-event.js +269 -0
- package/mcp-server/dist/http.d.ts +20 -1
- package/mcp-server/dist/http.d.ts.map +1 -1
- package/mcp-server/dist/http.js +59 -12
- package/mcp-server/dist/http.js.map +1 -1
- package/mcp-server/dist/index.d.ts +33 -27
- package/mcp-server/dist/index.d.ts.map +1 -1
- package/mcp-server/dist/index.js +128 -143
- package/mcp-server/dist/index.js.map +1 -1
- package/mcp-server/dist/preload.js +1 -1
- package/mcp-server/dist/preload.js.map +1 -1
- package/mcp-server/dist/services/codex-config-heal.d.ts +6 -2
- package/mcp-server/dist/services/codex-config-heal.d.ts.map +1 -1
- package/mcp-server/dist/services/codex-config-heal.js +81 -28
- package/mcp-server/dist/services/codex-config-heal.js.map +1 -1
- package/mcp-server/dist/services/memory-judge-backfill.d.ts +6 -0
- package/mcp-server/dist/services/memory-judge-backfill.d.ts.map +1 -1
- package/mcp-server/dist/services/memory-judge-backfill.js +7 -1
- package/mcp-server/dist/services/memory-judge-backfill.js.map +1 -1
- package/mcp-server/dist/services/neural-interface.d.ts +16 -10
- package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
- package/mcp-server/dist/services/neural-interface.js +67 -11
- package/mcp-server/dist/services/neural-interface.js.map +1 -1
- package/mcp-server/dist/services/server-instructions.d.ts +7 -2
- package/mcp-server/dist/services/server-instructions.d.ts.map +1 -1
- package/mcp-server/dist/services/server-instructions.js +20 -62
- package/mcp-server/dist/services/server-instructions.js.map +1 -1
- package/mcp-server/dist/services/tool-catalog.d.ts +120 -0
- package/mcp-server/dist/services/tool-catalog.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-catalog.js +339 -0
- package/mcp-server/dist/services/tool-catalog.js.map +1 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.d.ts +12 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.js +40 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.js.map +1 -0
- package/mcp-server/dist/services/tool-list.d.ts +108 -0
- package/mcp-server/dist/services/tool-list.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-list.js +334 -0
- package/mcp-server/dist/services/tool-list.js.map +1 -0
- package/mcp-server/dist/services/tool-runtime.d.ts +161 -0
- package/mcp-server/dist/services/tool-runtime.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-runtime.js +400 -0
- package/mcp-server/dist/services/tool-runtime.js.map +1 -0
- package/mcp-server/dist/services/whiteboard-geometry.d.ts +26 -2
- package/mcp-server/dist/services/whiteboard-geometry.d.ts.map +1 -1
- package/mcp-server/dist/services/whiteboard-geometry.js +91 -8
- package/mcp-server/dist/services/whiteboard-geometry.js.map +1 -1
- package/mcp-server/dist/tools/agents.d.ts +10 -10
- package/mcp-server/dist/tools/agents.d.ts.map +1 -1
- package/mcp-server/dist/tools/agents.js +22 -13
- package/mcp-server/dist/tools/agents.js.map +1 -1
- package/mcp-server/dist/tools/browser-batch.d.ts +3 -3
- package/mcp-server/dist/tools/image-tools.d.ts +1 -1
- package/mcp-server/dist/tools/image-tools.js +1 -1
- package/mcp-server/dist/tools/skill-tools.d.ts +505 -0
- package/mcp-server/dist/tools/skill-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/skill-tools.js +639 -0
- package/mcp-server/dist/tools/skill-tools.js.map +1 -0
- package/mcp-server/dist/tools/skill.d.ts +7 -0
- package/mcp-server/dist/tools/skill.d.ts.map +1 -0
- package/mcp-server/dist/tools/skill.js +11 -0
- package/mcp-server/dist/tools/skill.js.map +1 -0
- package/mcp-server/dist/tools/tool-groups.d.ts +68 -0
- package/mcp-server/dist/tools/tool-groups.d.ts.map +1 -0
- package/mcp-server/dist/tools/tool-groups.js +147 -0
- package/mcp-server/dist/tools/tool-groups.js.map +1 -0
- package/mcp-server/dist/tools/whiteboard-format.d.ts.map +1 -1
- package/mcp-server/dist/tools/whiteboard-format.js +7 -4
- package/mcp-server/dist/tools/whiteboard-format.js.map +1 -1
- package/mcp-server/dist/tools/whiteboard-tools.d.ts +64 -13
- package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/whiteboard-tools.js +30 -5
- package/mcp-server/dist/tools/whiteboard-tools.js.map +1 -1
- package/mcp-server/package-lock.json +2 -2
- package/mcp-server/package.json +1 -1
- package/mcp-server/src/http.ts +75 -12
- package/mcp-server/src/index.ts +147 -154
- package/mcp-server/src/preload.ts +12 -12
- package/mcp-server/src/services/codex-config-heal.ts +80 -29
- package/mcp-server/src/services/memory-judge-backfill.ts +7 -1
- package/mcp-server/src/services/neural-interface.ts +79 -20
- package/mcp-server/src/services/server-instructions.ts +27 -63
- package/mcp-server/src/services/tool-catalog.ts +403 -0
- package/mcp-server/src/services/tool-list-refresh-barrier.ts +33 -0
- package/mcp-server/src/services/tool-list.ts +410 -0
- package/mcp-server/src/services/tool-runtime.ts +457 -0
- package/mcp-server/src/services/whiteboard-geometry.ts +94 -9
- package/mcp-server/src/tools/agents.ts +22 -14
- package/mcp-server/src/tools/image-tools.ts +1 -1
- package/mcp-server/src/tools/skill-tools.ts +589 -0
- package/mcp-server/src/tools/skill.ts +13 -0
- package/mcp-server/src/tools/tool-groups.ts +164 -0
- package/mcp-server/src/tools/whiteboard-format.ts +9 -3
- package/mcp-server/src/tools/whiteboard-tools.ts +39 -5
- package/neural-interface/i18n/en.json +3463 -200
- package/neural-interface/i18n/pt-BR.json +3411 -151
- package/neural-interface/lib/assistant-api.js +127 -28
- package/neural-interface/lib/assistant-brains/claude.js +4 -3
- package/neural-interface/lib/assistant-brains/codex-browser-policy-hook.mjs +12 -2
- package/neural-interface/lib/assistant-brains/codex-route-gate-hook.mjs +32 -9
- package/neural-interface/lib/assistant-brains/codex.js +9 -5
- package/neural-interface/lib/assistant-brains/opencode.js +120 -54
- package/neural-interface/lib/assistant-brains/opencode2-browser-policy/index.js +28 -13
- package/neural-interface/lib/assistant-brains/opencode2-route-gate/index.js +59 -19
- package/neural-interface/lib/assistant-catalog.js +6 -7
- package/neural-interface/lib/assistant-dispatch.js +871 -156
- package/neural-interface/lib/assistant-envelope.js +3 -1
- package/neural-interface/lib/assistant-persona.js +80 -11
- package/neural-interface/lib/assistant-plan-permissions.js +10 -9
- package/neural-interface/lib/assistant-route-gate-codex.js +3 -0
- package/neural-interface/lib/assistant-route-gate.js +6 -4
- package/neural-interface/lib/assistant-router.js +13 -8
- package/neural-interface/lib/assistant-runtime.js +56 -18
- package/neural-interface/lib/assistant-task-prompt.js +78 -14
- package/neural-interface/lib/assistant-tools.js +51 -0
- package/neural-interface/lib/backup-service.js +620 -3
- package/neural-interface/lib/backup-zip-reader.js +10 -5
- package/neural-interface/lib/backup-zip-writer.js +257 -0
- package/neural-interface/lib/browser-execution.js +10 -2
- package/neural-interface/lib/browser-guard-cdp.js +83 -0
- package/neural-interface/lib/browser-network-guard.js +284 -0
- package/neural-interface/lib/browser-policy-roots.js +64 -0
- package/neural-interface/lib/browser-tool-policy.js +186 -31
- package/neural-interface/lib/claude-agent-bridge.js +4 -2
- package/neural-interface/lib/claude-hooks-status.js +103 -0
- package/neural-interface/lib/claude-temporary.js +5 -11
- package/neural-interface/lib/cli-install.js +18 -138
- package/neural-interface/lib/cli-resolver.js +4 -1
- package/neural-interface/lib/cli-update-planner.js +32 -31
- package/neural-interface/lib/cloudflared/tunnel.js +42 -2
- package/neural-interface/lib/codex-mcp-approvals.js +11 -0
- package/neural-interface/lib/codex-worker-app-server.js +172 -0
- package/neural-interface/lib/confined-fs.js +30 -3
- package/neural-interface/lib/crash-notice-api.js +98 -0
- package/neural-interface/lib/editor-completion-opencode.js +68 -68
- package/neural-interface/lib/exec-loop-command.js +4 -8
- package/neural-interface/lib/http-guards.js +8 -2
- package/neural-interface/lib/install-details.js +4 -1
- package/neural-interface/lib/mcp-agent-servers.js +67 -0
- package/neural-interface/lib/mcp-client-config.js +0 -29
- package/neural-interface/lib/mcp-external-servers.js +323 -0
- package/neural-interface/lib/{mcp-profile-refresh-coordinator.js → mcp-tools-refresh-coordinator.js} +4 -4
- package/neural-interface/lib/morelogin.js +30 -0
- package/neural-interface/lib/native-loop-providers.js +547 -47
- package/neural-interface/lib/native-loop-runtime.js +268 -41
- package/neural-interface/lib/opencode-config.js +557 -0
- package/neural-interface/lib/opencode-db-schema.js +17 -34
- package/neural-interface/lib/opencode-history.js +48 -218
- package/neural-interface/lib/opencode-mcp-ready.js +108 -0
- package/neural-interface/lib/opencode-native-boundary.js +44 -0
- package/neural-interface/lib/opencode-protocol.js +249 -112
- package/neural-interface/lib/opencode-runtime-config.js +32 -22
- package/neural-interface/lib/opencode-serve-records.js +39 -21
- package/neural-interface/lib/opencode-v2-client.js +48 -153
- package/neural-interface/lib/opencode-v2-ws-requests.js +36 -210
- package/neural-interface/lib/opencode-worker-data.js +27 -0
- package/neural-interface/lib/opencode2-client.js +73 -37
- package/neural-interface/lib/opencode2-proxy.js +23 -63
- package/neural-interface/lib/opencode2-translate.js +51 -2
- package/neural-interface/lib/owner-authority.js +249 -0
- package/neural-interface/lib/page-session.js +275 -0
- package/neural-interface/lib/peer-identity.js +763 -0
- package/neural-interface/lib/request-gate.js +17 -2
- package/neural-interface/lib/rulesets/api.js +1 -1
- package/neural-interface/lib/rulesets/fs-safe.js +1 -1
- package/neural-interface/lib/rulesets/installer.js +92 -27
- package/neural-interface/lib/rulesets/json-edit.js +1 -1
- package/neural-interface/lib/session-cache-builder.js +17 -30
- package/neural-interface/lib/session-title-generator.js +58 -36
- package/neural-interface/lib/skills/api-v2.js +495 -0
- package/neural-interface/lib/skills/bundle.js +418 -0
- package/neural-interface/lib/skills/catalog.js +294 -0
- package/neural-interface/lib/skills/creation-api.js +191 -0
- package/neural-interface/lib/skills/creation-brief.js +247 -0
- package/neural-interface/lib/skills/creation-sources.js +267 -0
- package/neural-interface/lib/skills/creation.js +843 -0
- package/neural-interface/lib/skills/deploy.js +564 -0
- package/neural-interface/lib/skills/digest.js +119 -0
- package/neural-interface/lib/skills/discover.js +111 -0
- package/neural-interface/lib/skills/draft-confinement.js +214 -0
- package/neural-interface/lib/skills/eval-confinement.js +397 -0
- package/neural-interface/lib/skills/eval-sandbox.js +280 -0
- package/neural-interface/lib/skills/eval-trace.js +119 -0
- package/neural-interface/lib/skills/evals-api.js +212 -0
- package/neural-interface/lib/skills/evals.js +1573 -0
- package/neural-interface/lib/skills/export.js +200 -0
- package/neural-interface/lib/skills/frontmatter.js +64 -0
- package/neural-interface/lib/skills/health.js +75 -0
- package/neural-interface/lib/skills/json-edit.js +165 -0
- package/neural-interface/lib/skills/known-bridge-digests.json +387 -0
- package/neural-interface/lib/skills/known-bridges.js +96 -0
- package/neural-interface/lib/skills/library.js +823 -0
- package/neural-interface/lib/skills/local-store.js +21 -0
- package/neural-interface/lib/skills/migration.js +433 -0
- package/neural-interface/lib/skills/operations.js +45 -0
- package/neural-interface/lib/skills/ownership.js +427 -0
- package/neural-interface/lib/skills/packages.js +88 -0
- package/neural-interface/lib/skills/reviews.js +212 -0
- package/neural-interface/lib/skills/revision.js +80 -0
- package/neural-interface/lib/skills/roots.js +262 -0
- package/neural-interface/lib/skills/runtime-checks.js +355 -0
- package/neural-interface/lib/skills/scan-assets.js +252 -0
- package/neural-interface/lib/skills/scan-context.js +26 -0
- package/neural-interface/lib/skills/scan-shell.js +324 -0
- package/neural-interface/lib/skills/scan.js +364 -0
- package/neural-interface/lib/skills/scanners.js +54 -0
- package/neural-interface/lib/skills/service.js +522 -0
- package/neural-interface/lib/skills/telemetry.js +113 -0
- package/neural-interface/lib/sqlite-integrity-worker.js +22 -0
- package/neural-interface/lib/tool-lists.js +124 -0
- package/neural-interface/lib/whatsapp/bridge.js +6 -3
- package/neural-interface/lib/worker-confinement.js +1192 -0
- package/neural-interface/lib/worker-guard-setting.js +56 -0
- package/neural-interface/lib/worker-mcp-channel.js +175 -0
- package/neural-interface/lib/worker-relay-ports.js +227 -0
- package/neural-interface/lib/worker-resume.js +229 -0
- package/neural-interface/lib/worker-sandbox.js +299 -0
- package/neural-interface/package-lock.json +18 -12
- package/neural-interface/package.json +2 -2
- package/neural-interface/public/index.html +3 -1
- package/neural-interface/public/index2d.html +19 -11
- package/neural-interface/public/onboarding.html +2 -2
- package/neural-interface/public/shared/account-menu.js +8 -5
- package/neural-interface/public/shared/agent-runtime-options.js +35 -19
- package/neural-interface/public/shared/api.js +1527 -1336
- package/neural-interface/public/shared/app-frame.js +192 -0
- package/neural-interface/public/shared/assistant/asst-agents-dock.js +33 -2
- package/neural-interface/public/shared/assistant/asst-ask-styles.js +270 -0
- package/neural-interface/public/shared/assistant/asst-ask-tail.js +118 -0
- package/neural-interface/public/shared/assistant/asst-ask.js +397 -0
- package/neural-interface/public/shared/assistant/asst-brain-picker.js +49 -35
- package/neural-interface/public/shared/assistant/asst-control.js +157 -26
- package/neural-interface/public/shared/assistant/asst-followups-card.js +383 -0
- package/neural-interface/public/shared/assistant/asst-followups.js +417 -0
- package/neural-interface/public/shared/assistant/asst-limit-dock.js +40 -0
- package/neural-interface/public/shared/assistant/asst-limit-wait.js +294 -0
- package/neural-interface/public/shared/assistant/asst-limit.js +168 -0
- package/neural-interface/public/shared/assistant/asst-mascot.js +49 -12
- package/neural-interface/public/shared/assistant/asst-menu.js +7 -6
- package/neural-interface/public/shared/assistant/asst-panel.js +106 -11
- package/neural-interface/public/shared/assistant/asst-rack-styles.js +66 -49
- package/neural-interface/public/shared/assistant/asst-render.js +401 -77
- package/neural-interface/public/shared/assistant/asst-route.js +83 -12
- package/neural-interface/public/shared/assistant/asst-scenes.js +2 -0
- package/neural-interface/public/shared/assistant/asst-sidepanel.js +67 -4
- package/neural-interface/public/shared/assistant/asst-slash.js +9 -7
- package/neural-interface/public/shared/assistant/asst-state.js +11 -15
- package/neural-interface/public/shared/assistant/asst-stop.js +127 -0
- package/neural-interface/public/shared/assistant/asst-styles.js +59 -21
- package/neural-interface/public/shared/assistant/asst-tool-kinds.js +156 -16
- package/neural-interface/public/shared/automation-context.js +5 -2
- package/neural-interface/public/shared/cc-dropdown.js +89 -19
- package/neural-interface/public/shared/cdx/cdx-context-menu.js +10 -9
- package/neural-interface/public/shared/cdx/cdx-copy.js +16 -0
- package/neural-interface/public/shared/cdx/cdx-output-model.js +22 -1
- package/neural-interface/public/shared/cdx/cdx-output.js +8 -7
- package/neural-interface/public/shared/cdx/cdx-panel.js +45 -149
- package/neural-interface/public/shared/cdx/cdx-protocol.js +28 -1
- package/neural-interface/public/shared/cdx/cdx-render.js +47 -29
- package/neural-interface/public/shared/cdx/cdx-requests.js +3 -3
- package/neural-interface/public/shared/cdx/cdx-skill-hints.js +54 -0
- package/neural-interface/public/shared/cdx/cdx-styles.js +11 -3
- package/neural-interface/public/shared/cdx/cdx-tabs.js +52 -39
- package/neural-interface/public/shared/cdx/cdx-ws.js +0 -1
- package/neural-interface/public/shared/cli-install-view.js +4 -8
- package/neural-interface/public/shared/cli-status.js +2 -2
- package/neural-interface/public/shared/constants.js +2 -2
- package/neural-interface/public/shared/context-menu-areas.js +34 -0
- package/neural-interface/public/shared/context-menu-logic.js +243 -0
- package/neural-interface/public/shared/context-menu-model.js +366 -0
- package/neural-interface/public/shared/context-menu.js +372 -0
- package/neural-interface/public/shared/cp/cp-context-menu.js +10 -9
- package/neural-interface/public/shared/crash-notice-view.js +168 -0
- package/neural-interface/public/shared/desktop-update-view.js +20 -0
- package/neural-interface/public/shared/editor/editor-panel-logic.js +2 -2
- package/neural-interface/public/shared/html-shell.js +9 -11
- package/neural-interface/public/shared/i18n.js +2 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-approvals.js +7 -7
- package/neural-interface/public/shared/ocp-v2/ocp-v2-binding.js +4 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-changes-logic.js +3 -101
- package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +2 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-compact-button.js +1 -3
- package/neural-interface/public/shared/ocp-v2/ocp-v2-composer-logic.js +2 -6
- package/neural-interface/public/shared/ocp-v2/ocp-v2-context-menu.js +11 -11
- package/neural-interface/public/shared/ocp-v2/ocp-v2-context-model.js +0 -3
- package/neural-interface/public/shared/ocp-v2/ocp-v2-events.js +8 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-manager.js +7 -7
- package/neural-interface/public/shared/ocp-v2/ocp-v2-outcome-notifications.js +16 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +47 -252
- package/neural-interface/public/shared/ocp-v2/ocp-v2-plan.js +1 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-projectbar.js +95 -202
- package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +6 -21
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +4 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-session-actions.js +8 -61
- package/neural-interface/public/shared/ocp-v2/ocp-v2-sessions-logic.js +2 -91
- package/neural-interface/public/shared/ocp-v2/ocp-v2-slash-hints.js +16 -15
- package/neural-interface/public/shared/ocp-v2/ocp-v2-state.js +8 -21
- package/neural-interface/public/shared/ocp-v2/ocp-v2-status-logic.js +1 -99
- package/neural-interface/public/shared/ocp-v2/ocp-v2-status.js +5 -35
- package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +0 -21
- package/neural-interface/public/shared/ocp-v2/{ocp-v2-profile-inheritance.js → ocp-v2-tools-inheritance.js} +16 -16
- package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +14 -47
- package/neural-interface/public/shared/page-session.js +96 -0
- package/neural-interface/public/shared/registry.js +5 -3
- package/neural-interface/public/shared/retired-2d.js +3 -0
- package/neural-interface/public/shared/schedules-view.js +195 -61
- package/neural-interface/public/shared/settings/settings-claude-hooks.js +135 -0
- package/neural-interface/public/shared/settings/settings-data.js +3 -1
- package/neural-interface/public/shared/settings/settings-ia.js +6 -6
- package/neural-interface/public/shared/settings/settings-opencode.js +89 -0
- package/neural-interface/public/shared/settings/settings-skill-folders-pane.js +265 -0
- package/neural-interface/public/shared/settings/settings-skill-folders.js +130 -0
- package/neural-interface/public/shared/settings/settings-worker-guard.js +72 -0
- package/neural-interface/public/shared/skills/ss-args.js +96 -0
- package/neural-interface/public/shared/skills/ss-creation.js +219 -0
- package/neural-interface/public/shared/skills/ss-dialog.js +130 -0
- package/neural-interface/public/shared/skills/ss-doc.js +173 -0
- package/neural-interface/public/shared/skills/ss-eval-adapters.js +269 -0
- package/neural-interface/public/shared/skills/ss-eval-grade.js +359 -0
- package/neural-interface/public/shared/skills/ss-eval-optimise.js +153 -0
- package/neural-interface/public/shared/skills/ss-eval-plan.js +315 -0
- package/neural-interface/public/shared/skills/ss-evals.js +417 -0
- package/neural-interface/public/shared/skills/ss-form.js +159 -0
- package/neural-interface/public/shared/skills/ss-frontmatter.js +376 -0
- package/neural-interface/public/shared/skills/ss-ids.js +32 -0
- package/neural-interface/public/shared/skills/ss-lint.js +141 -0
- package/neural-interface/public/shared/skills/ss-presets.js +117 -0
- package/neural-interface/public/shared/skills/ss-profiles.js +475 -0
- package/neural-interface/public/shared/skills/ss-resources.js +165 -0
- package/neural-interface/public/shared/skills/ss-review-view.js +190 -0
- package/neural-interface/public/shared/skills/ss-tabs.js +79 -0
- package/neural-interface/public/shared/skills/ss-unicode.js +135 -0
- package/neural-interface/public/shared/skills/studio/sx-actions.js +222 -0
- package/neural-interface/public/shared/skills/studio/sx-cm.js +101 -0
- package/neural-interface/public/shared/skills/studio/sx-create-ai-view.js +749 -0
- package/neural-interface/public/shared/skills/studio/sx-create-ai.js +236 -0
- package/neural-interface/public/shared/skills/studio/sx-create-view.js +254 -0
- package/neural-interface/public/shared/skills/studio/sx-create.js +126 -0
- package/neural-interface/public/shared/skills/studio/sx-diff-view.js +43 -0
- package/neural-interface/public/shared/skills/studio/sx-diff.js +133 -0
- package/neural-interface/public/shared/skills/studio/sx-docs.js +480 -0
- package/neural-interface/public/shared/skills/studio/sx-dom.js +229 -0
- package/neural-interface/public/shared/skills/studio/sx-edit-view.js +848 -0
- package/neural-interface/public/shared/skills/studio/sx-editor-model.js +193 -0
- package/neural-interface/public/shared/skills/studio/sx-errors.js +22 -0
- package/neural-interface/public/shared/skills/studio/sx-geometry.js +82 -0
- package/neural-interface/public/shared/skills/studio/sx-import.js +262 -0
- package/neural-interface/public/shared/skills/studio/sx-inspector.js +308 -0
- package/neural-interface/public/shared/skills/studio/sx-install-flow.js +279 -0
- package/neural-interface/public/shared/skills/studio/sx-install.js +296 -0
- package/neural-interface/public/shared/skills/studio/sx-library-view.js +639 -0
- package/neural-interface/public/shared/skills/studio/sx-library.js +475 -0
- package/neural-interface/public/shared/skills/studio/sx-main.js +681 -0
- package/neural-interface/public/shared/skills/studio/sx-operations-view.js +98 -0
- package/neural-interface/public/shared/skills/studio/sx-operations.js +11 -0
- package/neural-interface/public/shared/skills/studio/sx-plan.js +158 -0
- package/neural-interface/public/shared/skills/studio/sx-publish-view.js +621 -0
- package/neural-interface/public/shared/skills/studio/sx-review-view.js +369 -0
- package/neural-interface/public/shared/skills/studio/sx-review.js +148 -0
- package/neural-interface/public/shared/skills/studio/sx-scan.js +35 -0
- package/neural-interface/public/shared/skills/studio/sx-snippets.js +96 -0
- package/neural-interface/public/shared/skills/studio/sx-subject.js +248 -0
- package/neural-interface/public/shared/skills/studio/sx-test-view.js +994 -0
- package/neural-interface/public/shared/skills/studio/sx-test.js +328 -0
- package/neural-interface/public/shared/skills/studio/sx-versions-view.js +241 -0
- package/neural-interface/public/shared/skills/studio/sx-workspace-view.js +425 -0
- package/neural-interface/public/shared/styleguide/sg-panel.js +4 -2
- package/neural-interface/public/shared/styles.css +1525 -1779
- package/neural-interface/public/shared/synabun-mascot.js +1115 -9
- package/neural-interface/public/shared/tool-list-picker.js +55 -0
- package/neural-interface/public/shared/tool-list-storage.js +24 -0
- package/neural-interface/public/shared/tool-list-view.js +112 -0
- package/neural-interface/public/shared/tour/tour-actor.js +268 -0
- package/neural-interface/public/shared/tour/tour-beats.js +336 -0
- package/neural-interface/public/shared/tour/tour-engine.js +884 -0
- package/neural-interface/public/shared/tour/tour-ink.js +390 -0
- package/neural-interface/public/shared/tour/tour-stage.js +440 -0
- package/neural-interface/public/shared/tour/tour-state.js +40 -0
- package/neural-interface/public/shared/tour/tour-tips.js +99 -0
- package/neural-interface/public/shared/tour/tour.css +144 -0
- package/neural-interface/public/shared/ui-automation-studio.js +91 -128
- package/neural-interface/public/shared/ui-claude-panel.js +77 -5
- package/neural-interface/public/shared/ui-command-runner.js +6 -3
- package/neural-interface/public/shared/ui-context-menu.js +295 -0
- package/neural-interface/public/shared/ui-cost-widget.js +57 -59
- package/neural-interface/public/shared/ui-crash-notice.js +187 -0
- package/neural-interface/public/shared/ui-detail.js +15 -3
- package/neural-interface/public/shared/ui-image-gallery.js +50 -47
- package/neural-interface/public/shared/ui-keybinds.js +26 -1
- package/neural-interface/public/shared/ui-menubar.js +8 -18
- package/neural-interface/public/shared/ui-native-loop-router-state.js +5 -0
- package/neural-interface/public/shared/ui-native-loop-router.js +7 -1
- package/neural-interface/public/shared/ui-navbar.js +4 -24
- package/neural-interface/public/shared/ui-panels.js +96 -65
- package/neural-interface/public/shared/ui-schedules-studio.js +507 -423
- package/neural-interface/public/shared/ui-sessions.js +5 -3
- package/neural-interface/public/shared/ui-settings.js +594 -462
- package/neural-interface/public/shared/ui-sidepanel-sessions.js +1 -1
- package/neural-interface/public/shared/ui-sidepanel-state.js +23 -12
- package/neural-interface/public/shared/ui-sidepanel-windows.js +16 -11
- package/neural-interface/public/shared/ui-skills.js +33 -2830
- package/neural-interface/public/shared/ui-styleguide.js +5 -2
- package/neural-interface/public/shared/ui-sync.js +15 -5
- package/neural-interface/public/shared/ui-terminal.js +124 -180
- package/neural-interface/public/shared/ui-tool-updates.js +3 -1
- package/neural-interface/public/shared/ui-tooltip.js +10 -5
- package/neural-interface/public/shared/ui-trash.js +6 -4
- package/neural-interface/public/shared/ui-tutorial-layout.js +3 -117
- package/neural-interface/public/shared/ui-tutorial-preview.js +103 -0
- package/neural-interface/public/shared/ui-tutorial-steps.js +3 -65
- package/neural-interface/public/shared/ui-tutorial.css +47 -100
- package/neural-interface/public/shared/ui-tutorial.js +285 -509
- package/neural-interface/public/shared/ui-update.js +38 -2
- package/neural-interface/public/shared/ui-whiteboard.js +311 -58
- package/neural-interface/public/shared/ui-worker-end.js +4 -0
- package/neural-interface/public/shared/ui-workspaces.js +3 -2
- package/neural-interface/public/shared/view-variant.js +66 -0
- package/neural-interface/public/shared/whatsapp/wa-view.js +1 -1
- package/neural-interface/public/shared/whiteboard-list.js +172 -0
- package/neural-interface/public/shared/worker-end.js +10 -3
- package/neural-interface/public/shared/worker-restart.js +12 -0
- package/neural-interface/public/sidepanel-session.html +1 -1
- package/neural-interface/public/variant/2d/background.js +2 -1
- package/neural-interface/public/variant/2d/context-menu.js +8 -2
- package/neural-interface/public/variant/2d/graph.js +42 -20
- package/neural-interface/public/variant/2d/hulls.js +14 -9
- package/neural-interface/public/variant/2d/lasso.js +11 -7
- package/neural-interface/public/variant/2d/main.js +32 -1
- package/neural-interface/public/variant/2d/minimap.js +11 -13
- package/neural-interface/public/variant/3d/main.js +69 -6
- package/neural-interface/public/variant/3d/map-controls.js +24 -9
- package/neural-interface/public/vendor/caveat/OFL.txt +93 -0
- package/neural-interface/public/vendor/caveat/caveat-latin-400-normal.woff2 +0 -0
- package/neural-interface/public/vendor/caveat/caveat-latin-700-normal.woff2 +0 -0
- package/neural-interface/public/vendor/caveat/caveat.css +17 -0
- package/neural-interface/public/vendor/caveat/manifest.json +12 -0
- package/neural-interface/public/vendor/yaml/LICENSE +13 -0
- package/neural-interface/public/vendor/yaml/manifest.json +4 -0
- package/neural-interface/public/vendor/yaml/yaml-2.9.1.min.js +137 -0
- package/neural-interface/scripts/build-vendor.mjs +32 -0
- package/neural-interface/server.js +3934 -2454
- package/neural-interface/templates/rulesets/core.md +1 -1
- package/neural-interface/templates/rulesets/legacy-hashes.json +18 -0
- package/neural-interface/templates/rulesets/manifest.json +8 -8
- package/npm-shrinkwrap.json +18 -12
- package/package.json +16 -3
- package/postinstall.js +9 -4
- package/preuninstall.js +1 -1
- package/setup.js +97 -322
- package/skills/skill-forge/SKILL.md +177 -0
- package/skills/skill-forge/evals/evals.json +54 -0
- package/skills/skill-forge/references/package.md +105 -0
- package/skills/skill-forge/references/review-and-recovery.md +63 -0
- package/skills/skill-forge/references/runtime-profiles.md +20 -0
- package/skills/skill-forge/references/sources-and-capabilities.md +51 -0
- package/skills/synabun/SKILL.md +10 -7
- package/skills/synabun/modules/audit.md +1 -5
- package/skills/synabun/modules/changelog.md +1 -5
- package/skills/synabun/modules/idea.md +1 -1
- package/skills/synabun/modules/memorize.md +6 -9
- package/skills/synabun/modules/schedule.md +4 -4
- package/mcp-server/dist/services/profiles.d.ts +0 -120
- package/mcp-server/dist/services/profiles.d.ts.map +0 -1
- package/mcp-server/dist/services/profiles.js +0 -387
- package/mcp-server/dist/services/profiles.js.map +0 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +0 -97
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.js +0 -228
- package/mcp-server/dist/tools/leonardo-browser-tools.js.map +0 -1
- package/mcp-server/dist/tools/leonardo.d.ts +0 -13
- package/mcp-server/dist/tools/leonardo.d.ts.map +0 -1
- package/mcp-server/dist/tools/leonardo.js +0 -21
- package/mcp-server/dist/tools/leonardo.js.map +0 -1
- package/mcp-server/dist/tools/profile.d.ts +0 -17
- package/mcp-server/dist/tools/profile.d.ts.map +0 -1
- package/mcp-server/dist/tools/profile.js +0 -114
- package/mcp-server/dist/tools/profile.js.map +0 -1
- package/mcp-server/src/services/profiles.ts +0 -428
- package/mcp-server/src/tools/leonardo-browser-tools.ts +0 -291
- package/mcp-server/src/tools/leonardo.ts +0 -30
- package/mcp-server/src/tools/profile.ts +0 -122
- package/neural-interface/lib/assistant-brains/opencode-browser-policy.js +0 -47
- package/neural-interface/lib/assistant-brains/opencode-route-gate.js +0 -62
- package/neural-interface/lib/mcp-profile-servers.js +0 -120
- package/neural-interface/public/shared/ui-tutorial-draw.js +0 -311
- package/skills/leonardo/SKILL.md +0 -168
- package/skills/leonardo/icon.svg +0 -1
- package/skills/leonardo/modules/browser-guide.md +0 -378
- package/skills/leonardo/modules/image-prompter.md +0 -283
- package/skills/leonardo/modules/model-advisor.md +0 -100
- package/skills/leonardo/modules/prompt-library.md +0 -110
- package/skills/leonardo/modules/style-guide.md +0 -186
- package/skills/leonardo/modules/video-prompter.md +0 -317
|
@@ -101,6 +101,20 @@
|
|
|
101
101
|
--right-panel-gap: 0px;
|
|
102
102
|
--claude-panel-width: 0px;
|
|
103
103
|
--claude-panel-gap: 0px;
|
|
104
|
+
/* ── App frame (APP FRAME below, shared/app-frame.js) ──
|
|
105
|
+
The workspace is a rounded card inset from the chrome (title bar, explorers). The gap is 0 on a page
|
|
106
|
+
without the frame (html.app-framed sets it), so every rule below reads the old geometry there. */
|
|
107
|
+
--frame-gap: 0px; /* spacing sm on a framed page: the gutter */
|
|
108
|
+
--frame-radius: 16px; /* radius shell */
|
|
109
|
+
--frame-chrome: rgb(18, 18, 20); /* the title bar's and the explorers' tone: the gutter */
|
|
110
|
+
--frame-surface: #07080b; /* the memory map's background: the card's interior */
|
|
111
|
+
--frame-border-color: var(--b-light); /* border-light */
|
|
112
|
+
--frame-bar-height: 48px; /* the bar on a framed page: the desktop app's (TITLE_BAR_HEIGHT) */
|
|
113
|
+
--frame-top: calc(var(--navbar-height, 48px) + var(--frame-gap));
|
|
114
|
+
--frame-left: calc(var(--sidebar-total-width, 0px) + var(--frame-gap));
|
|
115
|
+
}
|
|
116
|
+
html.app-framed {
|
|
117
|
+
--frame-gap: 8px;
|
|
104
118
|
}
|
|
105
119
|
|
|
106
120
|
/* ── Global dark select options (Windows Chrome ignores color-scheme for option popups) ── */
|
|
@@ -124,6 +138,10 @@
|
|
|
124
138
|
width: 100%;
|
|
125
139
|
overscroll-behavior: none;
|
|
126
140
|
}
|
|
141
|
+
/* A framed page: whatever the chrome and the card leave uncovered (the gutter, an explorer sliding) is chrome. */
|
|
142
|
+
html.app-framed body {
|
|
143
|
+
background: var(--frame-chrome);
|
|
144
|
+
}
|
|
127
145
|
|
|
128
146
|
/* macOS fullscreen: lock height so menu bar overlays instead of pushing content */
|
|
129
147
|
body.is-fullscreen {
|
|
@@ -143,7 +161,7 @@
|
|
|
143
161
|
}
|
|
144
162
|
body.is-fullscreen .fe-editor-panel {
|
|
145
163
|
position: absolute;
|
|
146
|
-
height: var(--fs-locked-height);
|
|
164
|
+
height: calc(var(--fs-locked-height) - var(--frame-top) - var(--frame-gap));
|
|
147
165
|
}
|
|
148
166
|
|
|
149
167
|
/* ── Window Controls Overlay (PWA standalone on macOS / Windows / Linux, and the SynaBun desktop app) ──
|
|
@@ -280,12 +298,17 @@
|
|
|
280
298
|
/* ═══════════════════════════════════════════
|
|
281
299
|
GRAPH CONTAINER
|
|
282
300
|
═══════════════════════════════════════════ */
|
|
301
|
+
/* The memory map fills the app frame (APP FRAME), above a docked terminal. Its canvas sizes from this box
|
|
302
|
+
(variant/3d/map-renderer.js). */
|
|
283
303
|
#graph-container {
|
|
284
304
|
position: fixed;
|
|
285
|
-
top:
|
|
286
|
-
left: var(--
|
|
287
|
-
width: calc(100% - var(--sidebar-total-width, 0px));
|
|
288
|
-
height: calc(100dvh - var(--terminal-height, 0px));
|
|
305
|
+
top: var(--frame-top);
|
|
306
|
+
left: var(--frame-left);
|
|
307
|
+
width: calc(100% - var(--sidebar-total-width, 0px) - 2 * var(--frame-gap));
|
|
308
|
+
height: calc(100dvh - var(--frame-top) - var(--frame-gap) - var(--terminal-height, 0px));
|
|
309
|
+
border-radius: var(--frame-radius);
|
|
310
|
+
overflow: hidden;
|
|
311
|
+
background: var(--frame-surface);
|
|
289
312
|
z-index: 1;
|
|
290
313
|
opacity: 1;
|
|
291
314
|
filter: blur(0px);
|
|
@@ -317,9 +340,89 @@
|
|
|
317
340
|
transition: opacity 0.25s ease;
|
|
318
341
|
}
|
|
319
342
|
|
|
343
|
+
/* ═══════════════════════════════════════════
|
|
344
|
+
APP FRAME — the workspace as an inset rounded card
|
|
345
|
+
═══════════════════════════════════════════
|
|
346
|
+
Chrome outside: the title bar, the two explorers and a gutter of their tone. Inside: the graphs, every
|
|
347
|
+
floating window and panel, the terminal, menus, tooltips, popovers. Modals and full-window backdrops are
|
|
348
|
+
stacked above the frame and still cover the whole window, the bar included.
|
|
349
|
+
Two fixed layers that never take a click (html-shell.js puts them in the page and sets html.app-framed):
|
|
350
|
+
- #app-frame-surface, under the graph: the card's interior, so a graph fading out (focus mode) never shows
|
|
351
|
+
the chrome through it.
|
|
352
|
+
- #app-frame, over every window, panel and terminal: its box is the work area (below the bar, right of the
|
|
353
|
+
explorers, so it never draws over them), and its ::before is the card: the 1px border, and a box-shadow
|
|
354
|
+
spread that paints the gutter and the rounded corners around it. Whatever reaches the frame's edge is cut
|
|
355
|
+
along it.
|
|
356
|
+
Geometry: the --frame-* variables of :root; JS clamps read the same values through app-frame.js frameRect().
|
|
357
|
+
Radii: an element that hugs the card's corner uses the outer radius minus its inset. Flush (inset 0), the
|
|
358
|
+
frame's own corner cuts it to the outer 16px whatever its own radius (--glass-radius); the docked terminal and
|
|
359
|
+
the provider panels keep their place 20px from the window, 12px inside the card, and their own 16px. */
|
|
360
|
+
#app-frame-surface,
|
|
361
|
+
#app-frame {
|
|
362
|
+
display: none;
|
|
363
|
+
}
|
|
364
|
+
html.app-framed #app-frame-surface,
|
|
365
|
+
html.app-framed #app-frame {
|
|
366
|
+
display: block;
|
|
367
|
+
position: fixed;
|
|
368
|
+
pointer-events: none;
|
|
369
|
+
transition: left 0.3s cubic-bezier(0.22, 1, 0.36, 1);
|
|
370
|
+
}
|
|
371
|
+
html.app-framed #app-frame-surface {
|
|
372
|
+
top: var(--frame-top);
|
|
373
|
+
left: var(--frame-left);
|
|
374
|
+
right: var(--frame-gap);
|
|
375
|
+
bottom: var(--frame-gap);
|
|
376
|
+
z-index: 0;
|
|
377
|
+
border-radius: var(--frame-radius);
|
|
378
|
+
background: var(--frame-surface);
|
|
379
|
+
}
|
|
380
|
+
/* Below the bar (50000) so its menus drop over the gutter; above the floating layers (terminals 10000-12000,
|
|
381
|
+
provider panels 11000+, floating windows 49900), under every modal band (50200 and up). */
|
|
382
|
+
html.app-framed #app-frame {
|
|
383
|
+
top: var(--navbar-height, 48px);
|
|
384
|
+
left: var(--sidebar-total-width, 0px);
|
|
385
|
+
right: 0;
|
|
386
|
+
bottom: 0;
|
|
387
|
+
z-index: 49990;
|
|
388
|
+
overflow: hidden;
|
|
389
|
+
}
|
|
390
|
+
html.app-framed #app-frame::before {
|
|
391
|
+
content: '';
|
|
392
|
+
position: absolute;
|
|
393
|
+
inset: var(--frame-gap);
|
|
394
|
+
border: 1px solid var(--frame-border-color);
|
|
395
|
+
border-radius: var(--frame-radius);
|
|
396
|
+
box-shadow: 0 0 0 100vmax var(--frame-chrome);
|
|
397
|
+
}
|
|
398
|
+
/* The title bar is chrome inside the frame: opaque, the gutter's tone, no line or shadow between them. Nothing
|
|
399
|
+
marks its box, and the frame starts one gutter below that box (--navbar-height is its measured height), so the
|
|
400
|
+
box is only what the content needs: no 1px line under it, which would sit the content half a pixel off. */
|
|
401
|
+
html.app-framed #title-bar {
|
|
402
|
+
background: var(--frame-chrome);
|
|
403
|
+
backdrop-filter: none;
|
|
404
|
+
-webkit-backdrop-filter: none;
|
|
405
|
+
border-bottom-width: 0;
|
|
406
|
+
box-shadow: none;
|
|
407
|
+
}
|
|
408
|
+
/* Outside the overlay (a tab, a standalone or Safari web app, the desktop app in full screen) the bar is the
|
|
409
|
+
desktop app's 48px, and its content sits midway between the window's top and the frame's top edge: the bar and
|
|
410
|
+
the gutter are one tone, so what reads is the space above the content against the space down to the frame. The
|
|
411
|
+
gutter's width as padding above (none below) mirrors the gutter under the bar, and the content is centred in the
|
|
412
|
+
rest: with the 38px toolbar pill, 9px above it and 1px + the 8px gutter below, the frame at 56. Taller content
|
|
413
|
+
(a larger scale) still grows the bar, the gaps equal. Under the overlay (body.wco-active) its height is the
|
|
414
|
+
system's and its content is centred in it, on the traffic lights. */
|
|
415
|
+
html.app-framed body:not(.wco-active) #title-bar {
|
|
416
|
+
min-height: var(--frame-bar-height);
|
|
417
|
+
padding-top: var(--frame-gap);
|
|
418
|
+
padding-bottom: 0;
|
|
419
|
+
}
|
|
420
|
+
|
|
320
421
|
/* ═══════════════════════════════════════════
|
|
321
422
|
FOCUS MODE BACKGROUND
|
|
322
|
-
═══════════════════════════════════════════
|
|
423
|
+
═══════════════════════════════════════════
|
|
424
|
+
Its box stays the window's (the whiteboard in it keeps its origin, so saved boards and the MCP's board
|
|
425
|
+
coordinates do not move); the app frame over it shows only the card, in the card's own colour. */
|
|
323
426
|
#static-bg {
|
|
324
427
|
position: fixed;
|
|
325
428
|
top: 0;
|
|
@@ -330,7 +433,7 @@
|
|
|
330
433
|
display: flex;
|
|
331
434
|
align-items: center;
|
|
332
435
|
justify-content: center;
|
|
333
|
-
background:
|
|
436
|
+
background: var(--frame-surface);
|
|
334
437
|
opacity: 0;
|
|
335
438
|
transform: scale(1.03);
|
|
336
439
|
pointer-events: none;
|
|
@@ -699,7 +802,7 @@
|
|
|
699
802
|
background: transparent;
|
|
700
803
|
border: 1px solid transparent;
|
|
701
804
|
border-radius: 12px;
|
|
702
|
-
cursor:
|
|
805
|
+
cursor: move;
|
|
703
806
|
user-select: none;
|
|
704
807
|
white-space: nowrap;
|
|
705
808
|
width: max-content;
|
|
@@ -749,7 +852,7 @@
|
|
|
749
852
|
background: transparent;
|
|
750
853
|
border: 1px solid transparent;
|
|
751
854
|
border-radius: 12px;
|
|
752
|
-
cursor:
|
|
855
|
+
cursor: move;
|
|
753
856
|
user-select: none;
|
|
754
857
|
transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
|
|
755
858
|
}
|
|
@@ -792,12 +895,49 @@
|
|
|
792
895
|
color: var(--t-faint, rgba(255,255,255,0.2));
|
|
793
896
|
pointer-events: none;
|
|
794
897
|
}
|
|
898
|
+
/* Nested items (data-level, whiteboard-list.js): one bullet indent per level, the browser's nesting styles
|
|
899
|
+
per level (disc → circle → square, decimal → lower-alpha → lower-roman). Numbered lists count each level
|
|
900
|
+
on its own with counters: the items are siblings, so the native numbering would run through all of them.
|
|
901
|
+
The numbers sit where the native marker did (right-aligned, one space before the text). */
|
|
902
|
+
.wb-list li[data-level="1"] { margin-left: 1.4em; }
|
|
903
|
+
.wb-list li[data-level="2"] { margin-left: 2.8em; }
|
|
904
|
+
.wb-list li[data-level="3"] { margin-left: 4.2em; }
|
|
905
|
+
.wb-list li[data-level="4"] { margin-left: 5.6em; }
|
|
906
|
+
.wb-list ul li[data-level="1"],
|
|
907
|
+
.wb-list ul li[data-level="4"] { list-style-type: circle; }
|
|
908
|
+
.wb-list ul li[data-level="2"] { list-style-type: square; }
|
|
909
|
+
.wb-list ol {
|
|
910
|
+
list-style: none;
|
|
911
|
+
counter-reset: wbl0;
|
|
912
|
+
}
|
|
913
|
+
.wb-list ol li {
|
|
914
|
+
position: relative;
|
|
915
|
+
counter-increment: wbl0;
|
|
916
|
+
counter-reset: wbl1;
|
|
917
|
+
}
|
|
918
|
+
.wb-list ol li::after {
|
|
919
|
+
content: counter(wbl0) '.';
|
|
920
|
+
position: absolute;
|
|
921
|
+
top: 0;
|
|
922
|
+
right: 100%;
|
|
923
|
+
padding-right: 0.6em;
|
|
924
|
+
white-space: nowrap;
|
|
925
|
+
font-variant-numeric: tabular-nums;
|
|
926
|
+
}
|
|
927
|
+
.wb-list ol li[data-level="1"] { counter-increment: wbl1; counter-reset: wbl2; }
|
|
928
|
+
.wb-list ol li[data-level="1"]::after { content: counter(wbl1, lower-alpha) '.'; }
|
|
929
|
+
.wb-list ol li[data-level="2"] { counter-increment: wbl2; counter-reset: wbl3; }
|
|
930
|
+
.wb-list ol li[data-level="2"]::after { content: counter(wbl2, lower-roman) '.'; }
|
|
931
|
+
.wb-list ol li[data-level="3"] { counter-increment: wbl3; counter-reset: wbl4; }
|
|
932
|
+
.wb-list ol li[data-level="3"]::after { content: counter(wbl3) '.'; }
|
|
933
|
+
.wb-list ol li[data-level="4"] { counter-increment: wbl4; counter-reset: none; }
|
|
934
|
+
.wb-list ol li[data-level="4"]::after { content: counter(wbl4, lower-alpha) '.'; }
|
|
795
935
|
|
|
796
936
|
/* ── Images ── */
|
|
797
937
|
.wb-image {
|
|
798
938
|
position: absolute;
|
|
799
939
|
border-radius: 16px;
|
|
800
|
-
cursor:
|
|
940
|
+
cursor: move;
|
|
801
941
|
border: 2px solid rgba(255,255,255,0.08);
|
|
802
942
|
transition: border-color 0.15s, box-shadow 0.15s;
|
|
803
943
|
}
|
|
@@ -1133,7 +1273,7 @@
|
|
|
1133
1273
|
backdrop-filter: blur(8px);
|
|
1134
1274
|
border: 1.5px solid rgba(255, 255, 255, 0.2);
|
|
1135
1275
|
border-radius: 50%;
|
|
1136
|
-
cursor:
|
|
1276
|
+
cursor: move;
|
|
1137
1277
|
z-index: 20;
|
|
1138
1278
|
display: flex;
|
|
1139
1279
|
align-items: center;
|
|
@@ -1148,7 +1288,7 @@
|
|
|
1148
1288
|
color: rgba(255, 255, 255, 0.95);
|
|
1149
1289
|
box-shadow: var(--shadow-md);
|
|
1150
1290
|
}
|
|
1151
|
-
.wb-rotate-float:active { cursor:
|
|
1291
|
+
.wb-rotate-float:active { cursor: move; }
|
|
1152
1292
|
|
|
1153
1293
|
.wb-move-float {
|
|
1154
1294
|
position: absolute;
|
|
@@ -1158,7 +1298,7 @@
|
|
|
1158
1298
|
backdrop-filter: blur(8px);
|
|
1159
1299
|
border: 1.5px solid rgba(255, 255, 255, 0.2);
|
|
1160
1300
|
border-radius: 50%;
|
|
1161
|
-
cursor:
|
|
1301
|
+
cursor: move;
|
|
1162
1302
|
z-index: 20;
|
|
1163
1303
|
display: flex;
|
|
1164
1304
|
align-items: center;
|
|
@@ -1173,7 +1313,7 @@
|
|
|
1173
1313
|
color: rgba(255, 255, 255, 0.95);
|
|
1174
1314
|
box-shadow: var(--shadow-md);
|
|
1175
1315
|
}
|
|
1176
|
-
.wb-move-float:active { cursor:
|
|
1316
|
+
.wb-move-float:active { cursor: move; }
|
|
1177
1317
|
|
|
1178
1318
|
/* ── Shapes ── */
|
|
1179
1319
|
.wb-shape {
|
|
@@ -1181,7 +1321,7 @@
|
|
|
1181
1321
|
min-width: 40px;
|
|
1182
1322
|
min-height: 40px;
|
|
1183
1323
|
background: transparent;
|
|
1184
|
-
cursor:
|
|
1324
|
+
cursor: move;
|
|
1185
1325
|
user-select: none;
|
|
1186
1326
|
transition: filter 0.15s, box-shadow 0.15s;
|
|
1187
1327
|
}
|
|
@@ -1204,7 +1344,7 @@
|
|
|
1204
1344
|
min-height: 30px;
|
|
1205
1345
|
border: 1px dashed rgba(255,255,255,0.35);
|
|
1206
1346
|
border-radius: 4px;
|
|
1207
|
-
cursor:
|
|
1347
|
+
cursor: move;
|
|
1208
1348
|
user-select: none;
|
|
1209
1349
|
transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
|
|
1210
1350
|
display: flex;
|
|
@@ -1710,6 +1850,47 @@
|
|
|
1710
1850
|
to { opacity: 1; }
|
|
1711
1851
|
}
|
|
1712
1852
|
|
|
1853
|
+
/* ── App context menu (shared/context-menu.js, opened by ui-context-menu.js) ──
|
|
1854
|
+
The dropdown's box and rows at body level, where the right-click was. Above every window, the floating
|
|
1855
|
+
terminals' focus counter (10000-12000), the Settings / Schedules windows (300000+) and the help overlay
|
|
1856
|
+
(999999); below the loading / restart screen, which opts out of the menu. */
|
|
1857
|
+
.app-ctx-menu {
|
|
1858
|
+
position: fixed;
|
|
1859
|
+
left: 0;
|
|
1860
|
+
top: 0;
|
|
1861
|
+
z-index: 1000000;
|
|
1862
|
+
min-width: 200px;
|
|
1863
|
+
max-width: min(360px, calc(100vw - 16px));
|
|
1864
|
+
max-height: calc(100vh - 16px);
|
|
1865
|
+
overflow-y: auto;
|
|
1866
|
+
overscroll-behavior: contain;
|
|
1867
|
+
scrollbar-width: thin;
|
|
1868
|
+
padding: 5px;
|
|
1869
|
+
background: rgba(32, 32, 36, 0.96);
|
|
1870
|
+
backdrop-filter: blur(var(--blur-heavy)) saturate(1.6);
|
|
1871
|
+
-webkit-backdrop-filter: blur(var(--blur-heavy)) saturate(1.6);
|
|
1872
|
+
border: 1px solid rgba(255,255,255,0.14);
|
|
1873
|
+
border-radius: 10px;
|
|
1874
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.3),
|
|
1875
|
+
0 8px 20px rgba(0,0,0,0.25),
|
|
1876
|
+
0 24px 48px rgba(0,0,0,0.18);
|
|
1877
|
+
animation: menuSubIn 0.14s ease-out;
|
|
1878
|
+
user-select: none;
|
|
1879
|
+
-webkit-user-select: none;
|
|
1880
|
+
outline: none;
|
|
1881
|
+
}
|
|
1882
|
+
|
|
1883
|
+
/* The highlighted row is the focus mark, as in the menubar's dropdowns. */
|
|
1884
|
+
.app-ctx-menu .menu-item:focus { outline: none; }
|
|
1885
|
+
|
|
1886
|
+
/* A long label (the selection being searched for) is cut, its shortcut stays. */
|
|
1887
|
+
.app-ctx-menu .menu-text { min-width: 0; }
|
|
1888
|
+
.app-ctx-menu .app-ctx-label { overflow: hidden; text-overflow: ellipsis; }
|
|
1889
|
+
|
|
1890
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1891
|
+
.app-ctx-menu { animation: none; }
|
|
1892
|
+
}
|
|
1893
|
+
|
|
1713
1894
|
/* ── Resume Dropdown ── */
|
|
1714
1895
|
|
|
1715
1896
|
.menubar-dropdown--resume {
|
|
@@ -2863,7 +3044,7 @@
|
|
|
2863
3044
|
.kb-backdrop {
|
|
2864
3045
|
position: fixed;
|
|
2865
3046
|
inset: 0;
|
|
2866
|
-
z-index:
|
|
3047
|
+
z-index: 50200; /* a modal backdrop: over the app frame (49990) and the bar, the whole window */
|
|
2867
3048
|
background: rgba(0, 0, 0, 0.4);
|
|
2868
3049
|
backdrop-filter: blur(8px);
|
|
2869
3050
|
-webkit-backdrop-filter: blur(8px);
|
|
@@ -2876,7 +3057,7 @@
|
|
|
2876
3057
|
|
|
2877
3058
|
.keybinds-panel {
|
|
2878
3059
|
position: fixed;
|
|
2879
|
-
z-index:
|
|
3060
|
+
z-index: 50201;
|
|
2880
3061
|
top: 50%;
|
|
2881
3062
|
left: 50%;
|
|
2882
3063
|
transform: translate(-50%, -50%) scale(0.95);
|
|
@@ -5352,7 +5533,7 @@
|
|
|
5352
5533
|
|
|
5353
5534
|
.tw {
|
|
5354
5535
|
position: fixed;
|
|
5355
|
-
z-index:
|
|
5536
|
+
z-index: 49900; /* under the app frame (49990): its rounded corners cut a window that reaches them */
|
|
5356
5537
|
width: 640px;
|
|
5357
5538
|
max-width: 92vw;
|
|
5358
5539
|
min-width: 420px;
|
|
@@ -6160,6 +6341,32 @@
|
|
|
6160
6341
|
.topright-icon-btn:hover svg {
|
|
6161
6342
|
filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.2));
|
|
6162
6343
|
}
|
|
6344
|
+
|
|
6345
|
+
/* The desktop app's Restart to update (ui-update.js desktopRestartButton): while a downloaded update waits for a
|
|
6346
|
+
restart, the update button grows into a pill with its words, in the update badge's own green, as Discord's
|
|
6347
|
+
green button does. */
|
|
6348
|
+
#topright-update-btn.update-ready {
|
|
6349
|
+
width: auto;
|
|
6350
|
+
gap: 6px;
|
|
6351
|
+
padding: 0 10px 0 8px;
|
|
6352
|
+
color: #34c759;
|
|
6353
|
+
background: rgba(52, 199, 89, 0.14);
|
|
6354
|
+
box-shadow: inset 0 0 0 1px rgba(52, 199, 89, 0.25);
|
|
6355
|
+
}
|
|
6356
|
+
#topright-update-btn.update-ready:hover {
|
|
6357
|
+
color: #34c759;
|
|
6358
|
+
background: rgba(52, 199, 89, 0.22);
|
|
6359
|
+
transform: none;
|
|
6360
|
+
}
|
|
6361
|
+
#topright-update-btn.update-ready .count-badge { display: none; }
|
|
6362
|
+
#topright-update-btn.update-ready--asked { opacity: 0.8; }
|
|
6363
|
+
#topright-update-btn[aria-busy="true"] { cursor: progress; }
|
|
6364
|
+
#topright-update-btn .update-ready-label {
|
|
6365
|
+
font-size: 12px;
|
|
6366
|
+
font-weight: 500;
|
|
6367
|
+
line-height: 1;
|
|
6368
|
+
white-space: nowrap;
|
|
6369
|
+
}
|
|
6163
6370
|
#topright-assistant-panel-btn svg,
|
|
6164
6371
|
#topright-codex-panel-btn svg,
|
|
6165
6372
|
#topright-opencode-panel-btn svg {
|
|
@@ -8388,13 +8595,13 @@
|
|
|
8388
8595
|
}
|
|
8389
8596
|
/* Drag-to-terminal grip */
|
|
8390
8597
|
.detail-drag-to-term {
|
|
8391
|
-
cursor:
|
|
8598
|
+
cursor: move;
|
|
8392
8599
|
color: var(--accent-blue);
|
|
8393
8600
|
opacity: 0.5;
|
|
8394
8601
|
transition: opacity 0.15s;
|
|
8395
8602
|
}
|
|
8396
8603
|
.detail-drag-to-term:hover { opacity: 1; }
|
|
8397
|
-
.detail-drag-to-term:active { cursor:
|
|
8604
|
+
.detail-drag-to-term:active { cursor: move; }
|
|
8398
8605
|
.detail-card.detail-dragging-to-term { opacity: 0.45; }
|
|
8399
8606
|
|
|
8400
8607
|
/* ── Compact mode ── */
|
|
@@ -11565,19 +11772,6 @@
|
|
|
11565
11772
|
color: rgba(255,255,255,0.64);
|
|
11566
11773
|
padding: 3px 0;
|
|
11567
11774
|
}
|
|
11568
|
-
.stg-tool-select {
|
|
11569
|
-
width: 78px;
|
|
11570
|
-
padding: 3px 6px;
|
|
11571
|
-
font-size: 11.5px;
|
|
11572
|
-
background: rgba(0,0,0,0.2);
|
|
11573
|
-
border: 1px solid rgba(255,255,255,0.07);
|
|
11574
|
-
border-radius: 5px;
|
|
11575
|
-
color: var(--t-primary);
|
|
11576
|
-
font-family: inherit;
|
|
11577
|
-
outline: none;
|
|
11578
|
-
cursor: pointer;
|
|
11579
|
-
}
|
|
11580
|
-
.stg-tool-select:focus { border-color: rgba(79,195,247,0.4); }
|
|
11581
11775
|
|
|
11582
11776
|
/* MCP server rows */
|
|
11583
11777
|
.stg-mcp-row {
|
|
@@ -11648,382 +11842,93 @@
|
|
|
11648
11842
|
margin: 0;
|
|
11649
11843
|
max-width: 420px;
|
|
11650
11844
|
}
|
|
11651
|
-
.stg-mcp-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
11655
|
-
|
|
11656
|
-
background:
|
|
11657
|
-
linear-gradient(180deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0.008) 100%),
|
|
11658
|
-
rgba(0,0,0,0.14);
|
|
11659
|
-
box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
|
|
11660
|
-
}
|
|
11661
|
-
.stg-mcp-matrix-wrap::after {
|
|
11662
|
-
content: '';
|
|
11663
|
-
position: absolute;
|
|
11664
|
-
top: 0;
|
|
11665
|
-
bottom: 0;
|
|
11666
|
-
left: 148px;
|
|
11667
|
-
width: 18px;
|
|
11668
|
-
background: linear-gradient(90deg, rgba(10,13,17,0.36) 0%, rgba(10,13,17,0) 100%);
|
|
11669
|
-
pointer-events: none;
|
|
11670
|
-
z-index: 4;
|
|
11671
|
-
}
|
|
11672
|
-
.stg-mcp-matrix-scroll {
|
|
11673
|
-
overflow-x: auto;
|
|
11674
|
-
overflow-y: hidden;
|
|
11675
|
-
border-radius: inherit;
|
|
11676
|
-
scrollbar-gutter: stable;
|
|
11677
|
-
}
|
|
11678
|
-
.stg-mcp-matrix-empty,
|
|
11679
|
-
.stg-mcp-empty-note {
|
|
11680
|
-
padding: 12px 14px;
|
|
11681
|
-
font-size: 11px;
|
|
11682
|
-
color: rgba(148,163,184,0.52);
|
|
11683
|
-
line-height: 1.5;
|
|
11684
|
-
}
|
|
11685
|
-
#stg-mcp-matrix {
|
|
11686
|
-
border-collapse: separate;
|
|
11687
|
-
border-spacing: 0;
|
|
11688
|
-
width: max-content;
|
|
11689
|
-
min-width: 100%;
|
|
11690
|
-
}
|
|
11691
|
-
#stg-mcp-matrix th, #stg-mcp-matrix td {
|
|
11692
|
-
padding: 0;
|
|
11693
|
-
margin: 0;
|
|
11845
|
+
.stg-mcp-empty-note { padding: 12px 14px; font-size: 11px; color: var(--t-secondary); line-height: 1.5; }
|
|
11846
|
+
|
|
11847
|
+
/* Shared small actions */
|
|
11848
|
+
.stg-mx-srv-del {
|
|
11849
|
+
background: none;
|
|
11694
11850
|
border: none;
|
|
11851
|
+
color: rgba(148,163,184,0.24);
|
|
11852
|
+
cursor: pointer;
|
|
11853
|
+
font-size: 12px;
|
|
11854
|
+
padding: 0 2px;
|
|
11855
|
+
line-height: 1;
|
|
11856
|
+
transition: color 0.12s ease;
|
|
11857
|
+
flex-shrink: 0;
|
|
11695
11858
|
}
|
|
11859
|
+
.stg-mx-srv-del:hover { color: rgba(255,82,82,0.72); }
|
|
11696
11860
|
|
|
11697
|
-
/*
|
|
11698
|
-
.stg-
|
|
11699
|
-
|
|
11700
|
-
|
|
11701
|
-
|
|
11702
|
-
|
|
11703
|
-
|
|
11704
|
-
|
|
11705
|
-
|
|
11706
|
-
z-index: 6;
|
|
11707
|
-
background:
|
|
11708
|
-
linear-gradient(180deg, rgba(255,255,255,0.022) 0%, rgba(255,255,255,0.01) 100%),
|
|
11709
|
-
linear-gradient(90deg, rgba(16,19,25,0.985) 0%, rgba(16,19,25,0.965) 86%, rgba(16,19,25,0.9) 100%);
|
|
11710
|
-
border-bottom: 1px solid rgba(148,163,184,0.08);
|
|
11711
|
-
box-shadow:
|
|
11712
|
-
inset -1px 0 0 rgba(148,163,184,0.05),
|
|
11713
|
-
10px 0 18px -16px rgba(0,0,0,0.55);
|
|
11714
|
-
}
|
|
11715
|
-
#stg-mcp-matrix .stg-mx-label-td {
|
|
11716
|
-
z-index: 5;
|
|
11717
|
-
padding: 5px 14px;
|
|
11718
|
-
min-width: 148px;
|
|
11719
|
-
background:
|
|
11720
|
-
linear-gradient(90deg, rgba(18,21,27,0.985) 0%, rgba(18,21,27,0.965) 86%, rgba(18,21,27,0.92) 100%);
|
|
11721
|
-
border-bottom: 1px solid rgba(148,163,184,0.04);
|
|
11722
|
-
box-shadow:
|
|
11723
|
-
inset -1px 0 0 rgba(148,163,184,0.04),
|
|
11724
|
-
10px 0 18px -16px rgba(0,0,0,0.52);
|
|
11861
|
+
/* Always-on footer */
|
|
11862
|
+
.stg-mcp-section-header {
|
|
11863
|
+
display: block;
|
|
11864
|
+
font-size: 9.5px;
|
|
11865
|
+
text-transform: uppercase;
|
|
11866
|
+
letter-spacing: 0.09em;
|
|
11867
|
+
color: rgba(148,163,184,0.46);
|
|
11868
|
+
font-weight: 700;
|
|
11869
|
+
margin-bottom: 6px;
|
|
11725
11870
|
}
|
|
11726
|
-
.stg-mx-
|
|
11871
|
+
.stg-mx-always-on-row {
|
|
11727
11872
|
display: flex;
|
|
11728
|
-
|
|
11873
|
+
flex-wrap: wrap;
|
|
11729
11874
|
gap: 6px;
|
|
11730
11875
|
}
|
|
11731
|
-
.stg-mx-
|
|
11732
|
-
display: flex;
|
|
11733
|
-
align-items: center;
|
|
11734
|
-
padding: 0 14px;
|
|
11735
|
-
font-size: 8px;
|
|
11736
|
-
font-weight: 700;
|
|
11737
|
-
letter-spacing: 0.12em;
|
|
11738
|
-
text-transform: uppercase;
|
|
11739
|
-
color: rgba(148,163,184,0.34);
|
|
11740
|
-
white-space: nowrap;
|
|
11741
|
-
}
|
|
11742
|
-
.stg-mx-grp-name {
|
|
11743
|
-
font-size: 11px;
|
|
11744
|
-
color: rgba(255,255,255,0.62);
|
|
11745
|
-
font-weight: 500;
|
|
11746
|
-
white-space: nowrap;
|
|
11747
|
-
overflow: hidden;
|
|
11748
|
-
text-overflow: ellipsis;
|
|
11749
|
-
flex: 1;
|
|
11750
|
-
letter-spacing: 0.01em;
|
|
11751
|
-
}
|
|
11752
|
-
.stg-mx-grp-count {
|
|
11753
|
-
font-size: 8px;
|
|
11754
|
-
color: rgba(148,163,184,0.34);
|
|
11755
|
-
font-family: 'JetBrains Mono', 'SF Mono', monospace;
|
|
11756
|
-
flex-shrink: 0;
|
|
11876
|
+
.stg-mx-always-chip {
|
|
11757
11877
|
display: inline-flex;
|
|
11758
11878
|
align-items: center;
|
|
11759
|
-
|
|
11760
|
-
|
|
11761
|
-
|
|
11762
|
-
|
|
11763
|
-
|
|
11764
|
-
|
|
11879
|
+
gap: 5px;
|
|
11880
|
+
padding: 3px 8px;
|
|
11881
|
+
border-radius: 5px;
|
|
11882
|
+
font-size: 10px;
|
|
11883
|
+
font-weight: 600;
|
|
11884
|
+
background: rgba(148,163,184,0.05);
|
|
11885
|
+
border: 1px solid rgba(148,163,184,0.07);
|
|
11886
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.02);
|
|
11887
|
+
color: rgba(203,213,225,0.54);
|
|
11888
|
+
user-select: none;
|
|
11765
11889
|
}
|
|
11766
11890
|
|
|
11767
|
-
/*
|
|
11768
|
-
|
|
11769
|
-
|
|
11770
|
-
|
|
11771
|
-
|
|
11772
|
-
min-width: 68px;
|
|
11773
|
-
max-width: 92px;
|
|
11774
|
-
border-bottom: 1px solid rgba(148,163,184,0.06);
|
|
11775
|
-
background: transparent;
|
|
11776
|
-
transition: background 0.15s ease, border-color 0.15s ease;
|
|
11891
|
+
/* External server list below matrix */
|
|
11892
|
+
#stg-mcp-ext-servers {
|
|
11893
|
+
display: flex;
|
|
11894
|
+
flex-direction: column;
|
|
11895
|
+
gap: 10px;
|
|
11777
11896
|
}
|
|
11778
|
-
.stg-mx-
|
|
11779
|
-
|
|
11780
|
-
|
|
11897
|
+
.stg-mx-ext-row {
|
|
11898
|
+
padding: 10px 11px;
|
|
11899
|
+
border: 1px solid rgba(148,163,184,0.08);
|
|
11900
|
+
border-radius: 12px;
|
|
11901
|
+
background:
|
|
11902
|
+
linear-gradient(180deg, rgba(255,255,255,0.018) 0%, rgba(255,255,255,0.008) 100%),
|
|
11903
|
+
rgba(255,255,255,0.012);
|
|
11904
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.025);
|
|
11781
11905
|
}
|
|
11782
|
-
.stg-mx-
|
|
11906
|
+
.stg-mx-ext-main {
|
|
11783
11907
|
display: flex;
|
|
11784
|
-
flex-direction: column;
|
|
11785
11908
|
align-items: center;
|
|
11786
|
-
gap:
|
|
11787
|
-
cursor: pointer;
|
|
11788
|
-
user-select: none;
|
|
11789
|
-
position: relative;
|
|
11790
|
-
padding: 2px 4px;
|
|
11791
|
-
border-radius: 6px;
|
|
11792
|
-
transition: background 0.15s ease;
|
|
11909
|
+
gap: 10px;
|
|
11793
11910
|
}
|
|
11794
|
-
.stg-mx-
|
|
11795
|
-
|
|
11796
|
-
|
|
11797
|
-
width: 4px;
|
|
11798
|
-
height: 4px;
|
|
11911
|
+
.stg-mx-ext-dot {
|
|
11912
|
+
width: 6px;
|
|
11913
|
+
height: 6px;
|
|
11799
11914
|
border-radius: 50%;
|
|
11800
|
-
background: rgba(148,163,184,0.
|
|
11801
|
-
|
|
11915
|
+
background: rgba(148,163,184,0.52);
|
|
11916
|
+
flex-shrink: 0;
|
|
11802
11917
|
}
|
|
11803
|
-
.stg-mx-
|
|
11804
|
-
|
|
11805
|
-
|
|
11918
|
+
.stg-mx-ext-copy {
|
|
11919
|
+
flex: 1;
|
|
11920
|
+
min-width: 0;
|
|
11806
11921
|
}
|
|
11807
|
-
.stg-mx-
|
|
11808
|
-
|
|
11809
|
-
|
|
11922
|
+
.stg-mx-ext-head {
|
|
11923
|
+
display: flex;
|
|
11924
|
+
align-items: center;
|
|
11925
|
+
gap: 8px;
|
|
11926
|
+
flex-wrap: wrap;
|
|
11927
|
+
}
|
|
11928
|
+
.stg-mx-ext-name {
|
|
11929
|
+
font-size: 11.5px;
|
|
11810
11930
|
font-weight: 600;
|
|
11811
|
-
|
|
11812
|
-
overflow: hidden;
|
|
11813
|
-
text-overflow: ellipsis;
|
|
11814
|
-
max-width: 74px;
|
|
11815
|
-
letter-spacing: 0.01em;
|
|
11816
|
-
transition: color 0.12s ease;
|
|
11817
|
-
}
|
|
11818
|
-
.stg-mx-profile-th.active .stg-mx-profile-name { color: rgba(255,255,255,0.72); }
|
|
11819
|
-
.stg-mx-profile-del {
|
|
11820
|
-
position: absolute;
|
|
11821
|
-
top: -3px;
|
|
11822
|
-
right: -1px;
|
|
11823
|
-
background: none;
|
|
11824
|
-
border: none;
|
|
11825
|
-
color: rgba(148,163,184,0.22);
|
|
11826
|
-
cursor: pointer;
|
|
11827
|
-
font-size: 10px;
|
|
11828
|
-
padding: 0;
|
|
11829
|
-
line-height: 1;
|
|
11830
|
-
transition: color 0.12s ease;
|
|
11831
|
-
display: none;
|
|
11832
|
-
}
|
|
11833
|
-
.stg-mx-profile-head:hover .stg-mx-profile-del { display: block; }
|
|
11834
|
-
.stg-mx-profile-del:hover { color: rgba(255,82,82,0.72); }
|
|
11835
|
-
.stg-mx-tool-count {
|
|
11836
|
-
display: block;
|
|
11837
|
-
font-size: 8.5px;
|
|
11838
|
-
color: rgba(148,163,184,0.36);
|
|
11839
|
-
font-family: 'JetBrains Mono', 'SF Mono', monospace;
|
|
11840
|
-
margin-top: 2px;
|
|
11841
|
-
}
|
|
11842
|
-
|
|
11843
|
-
/* Toggle cells */
|
|
11844
|
-
.stg-mx-cell {
|
|
11845
|
-
text-align: center;
|
|
11846
|
-
padding: 6px 0;
|
|
11847
|
-
cursor: pointer;
|
|
11848
|
-
border-bottom: 1px solid rgba(148,163,184,0.03);
|
|
11849
|
-
transition: background 0.18s ease;
|
|
11850
|
-
}
|
|
11851
|
-
.stg-mx-cell:hover {
|
|
11852
|
-
background: rgba(148,163,184,0.04);
|
|
11853
|
-
}
|
|
11854
|
-
.stg-mx-toggle {
|
|
11855
|
-
display: inline-block;
|
|
11856
|
-
width: 16px;
|
|
11857
|
-
height: 16px;
|
|
11858
|
-
border-radius: 4px;
|
|
11859
|
-
border: 1.5px solid rgba(148,163,184,0.12);
|
|
11860
|
-
background: rgba(255,255,255,0.01);
|
|
11861
|
-
position: relative;
|
|
11862
|
-
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
11863
|
-
}
|
|
11864
|
-
.stg-mx-toggle.on {
|
|
11865
|
-
background: rgba(148,163,184,0.14);
|
|
11866
|
-
border-color: rgba(148,163,184,0.32);
|
|
11867
|
-
box-shadow: 0 0 8px rgba(148,163,184,0.08), inset 0 0 4px rgba(148,163,184,0.06);
|
|
11868
|
-
}
|
|
11869
|
-
.stg-mx-toggle.on::after {
|
|
11870
|
-
content: '';
|
|
11871
|
-
position: absolute;
|
|
11872
|
-
top: 3px;
|
|
11873
|
-
left: 3px;
|
|
11874
|
-
width: 7px;
|
|
11875
|
-
height: 4px;
|
|
11876
|
-
border-left: 1.5px solid rgba(226,232,240,0.82);
|
|
11877
|
-
border-bottom: 1.5px solid rgba(226,232,240,0.82);
|
|
11878
|
-
transform: rotate(-45deg);
|
|
11879
|
-
transform-origin: center;
|
|
11880
|
-
}
|
|
11881
|
-
.stg-mx-cell:hover .stg-mx-toggle:not(.on) {
|
|
11882
|
-
border-color: rgba(148,163,184,0.24);
|
|
11883
|
-
background: rgba(148,163,184,0.04);
|
|
11884
|
-
}
|
|
11885
|
-
.stg-mx-cell:active .stg-mx-toggle {
|
|
11886
|
-
transform: scale(0.9);
|
|
11887
|
-
}
|
|
11888
|
-
|
|
11889
|
-
/* Add profile column (sticky right) */
|
|
11890
|
-
.stg-mx-add-th, .stg-mx-add-spacer {
|
|
11891
|
-
position: sticky;
|
|
11892
|
-
right: 0;
|
|
11893
|
-
z-index: 4;
|
|
11894
|
-
background: linear-gradient(90deg, rgba(16,19,25,0.9) 0%, rgba(16,19,25,0.985) 14%, rgba(16,19,25,0.985) 100%);
|
|
11895
|
-
}
|
|
11896
|
-
.stg-mx-add-th {
|
|
11897
|
-
padding: 4px 6px 4px;
|
|
11898
|
-
text-align: center;
|
|
11899
|
-
vertical-align: bottom;
|
|
11900
|
-
min-width: 34px;
|
|
11901
|
-
border-bottom: 1px solid rgba(148,163,184,0.06);
|
|
11902
|
-
}
|
|
11903
|
-
.stg-mx-add-btn {
|
|
11904
|
-
background: rgba(148,163,184,0.08);
|
|
11905
|
-
border: 1px dashed rgba(148,163,184,0.18);
|
|
11906
|
-
color: rgba(148,163,184,0.42);
|
|
11907
|
-
cursor: pointer;
|
|
11908
|
-
width: 28px;
|
|
11909
|
-
height: 28px;
|
|
11910
|
-
border-radius: 50%;
|
|
11911
|
-
font-size: 15px;
|
|
11912
|
-
line-height: 1;
|
|
11913
|
-
display: inline-flex;
|
|
11914
|
-
align-items: center;
|
|
11915
|
-
justify-content: center;
|
|
11916
|
-
box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
|
|
11917
|
-
transition: all 0.15s ease;
|
|
11918
|
-
}
|
|
11919
|
-
.stg-mx-add-btn:hover {
|
|
11920
|
-
background: rgba(148,163,184,0.12);
|
|
11921
|
-
border-color: rgba(148,163,184,0.26);
|
|
11922
|
-
color: rgba(255,255,255,0.62);
|
|
11923
|
-
transform: translateY(-1px);
|
|
11924
|
-
}
|
|
11925
|
-
.stg-mx-add-spacer {
|
|
11926
|
-
min-width: 34px;
|
|
11927
|
-
border-bottom: 1px solid rgba(148,163,184,0.04);
|
|
11928
|
-
}
|
|
11929
|
-
.stg-mx-inline-input {
|
|
11930
|
-
width: 64px;
|
|
11931
|
-
padding: 5px 7px;
|
|
11932
|
-
font-size: 10px;
|
|
11933
|
-
background: rgba(0,0,0,0.3);
|
|
11934
|
-
border: 1px solid rgba(148,163,184,0.2);
|
|
11935
|
-
border-radius: 8px;
|
|
11936
|
-
color: rgba(255,255,255,0.8);
|
|
11937
|
-
outline: none;
|
|
11938
|
-
font-family: inherit;
|
|
11939
|
-
}
|
|
11940
|
-
.stg-mx-inline-input:focus { border-color: rgba(148,163,184,0.4); }
|
|
11941
|
-
|
|
11942
|
-
/* Shared small actions */
|
|
11943
|
-
.stg-mx-srv-del {
|
|
11944
|
-
background: none;
|
|
11945
|
-
border: none;
|
|
11946
|
-
color: rgba(148,163,184,0.24);
|
|
11947
|
-
cursor: pointer;
|
|
11948
|
-
font-size: 12px;
|
|
11949
|
-
padding: 0 2px;
|
|
11950
|
-
line-height: 1;
|
|
11951
|
-
transition: color 0.12s ease;
|
|
11952
|
-
flex-shrink: 0;
|
|
11953
|
-
}
|
|
11954
|
-
.stg-mx-srv-del:hover { color: rgba(255,82,82,0.72); }
|
|
11955
|
-
|
|
11956
|
-
/* Always-on footer */
|
|
11957
|
-
.stg-mcp-section-header {
|
|
11958
|
-
display: block;
|
|
11959
|
-
font-size: 9.5px;
|
|
11960
|
-
text-transform: uppercase;
|
|
11961
|
-
letter-spacing: 0.09em;
|
|
11962
|
-
color: rgba(148,163,184,0.46);
|
|
11963
|
-
font-weight: 700;
|
|
11964
|
-
margin-bottom: 6px;
|
|
11965
|
-
}
|
|
11966
|
-
.stg-mx-always-on-row {
|
|
11967
|
-
display: flex;
|
|
11968
|
-
flex-wrap: wrap;
|
|
11969
|
-
gap: 6px;
|
|
11970
|
-
}
|
|
11971
|
-
.stg-mx-always-chip {
|
|
11972
|
-
display: inline-flex;
|
|
11973
|
-
align-items: center;
|
|
11974
|
-
gap: 5px;
|
|
11975
|
-
padding: 3px 8px;
|
|
11976
|
-
border-radius: 5px;
|
|
11977
|
-
font-size: 10px;
|
|
11978
|
-
font-weight: 600;
|
|
11979
|
-
background: rgba(148,163,184,0.05);
|
|
11980
|
-
border: 1px solid rgba(148,163,184,0.07);
|
|
11981
|
-
box-shadow: inset 0 1px 0 rgba(255,255,255,0.02);
|
|
11982
|
-
color: rgba(203,213,225,0.54);
|
|
11983
|
-
user-select: none;
|
|
11984
|
-
}
|
|
11985
|
-
|
|
11986
|
-
/* External server list below matrix */
|
|
11987
|
-
#stg-mcp-ext-servers {
|
|
11988
|
-
display: flex;
|
|
11989
|
-
flex-direction: column;
|
|
11990
|
-
gap: 10px;
|
|
11991
|
-
}
|
|
11992
|
-
.stg-mx-ext-row {
|
|
11993
|
-
padding: 10px 11px;
|
|
11994
|
-
border: 1px solid rgba(148,163,184,0.08);
|
|
11995
|
-
border-radius: 12px;
|
|
11996
|
-
background:
|
|
11997
|
-
linear-gradient(180deg, rgba(255,255,255,0.018) 0%, rgba(255,255,255,0.008) 100%),
|
|
11998
|
-
rgba(255,255,255,0.012);
|
|
11999
|
-
box-shadow: inset 0 1px 0 rgba(255,255,255,0.025);
|
|
12000
|
-
}
|
|
12001
|
-
.stg-mx-ext-main {
|
|
12002
|
-
display: flex;
|
|
12003
|
-
align-items: center;
|
|
12004
|
-
gap: 10px;
|
|
12005
|
-
}
|
|
12006
|
-
.stg-mx-ext-dot {
|
|
12007
|
-
width: 6px;
|
|
12008
|
-
height: 6px;
|
|
12009
|
-
border-radius: 50%;
|
|
12010
|
-
background: rgba(148,163,184,0.52);
|
|
12011
|
-
flex-shrink: 0;
|
|
12012
|
-
}
|
|
12013
|
-
.stg-mx-ext-copy {
|
|
12014
|
-
flex: 1;
|
|
12015
|
-
min-width: 0;
|
|
12016
|
-
}
|
|
12017
|
-
.stg-mx-ext-head {
|
|
12018
|
-
display: flex;
|
|
12019
|
-
align-items: center;
|
|
12020
|
-
gap: 8px;
|
|
12021
|
-
flex-wrap: wrap;
|
|
12022
|
-
}
|
|
12023
|
-
.stg-mx-ext-name {
|
|
12024
|
-
font-size: 11.5px;
|
|
12025
|
-
font-weight: 600;
|
|
12026
|
-
color: rgba(255,255,255,0.72);
|
|
11931
|
+
color: rgba(255,255,255,0.72);
|
|
12027
11932
|
}
|
|
12028
11933
|
.stg-mx-ext-type {
|
|
12029
11934
|
display: inline-flex;
|
|
@@ -12046,46 +11951,6 @@
|
|
|
12046
11951
|
.stg-mx-ext-remove {
|
|
12047
11952
|
margin-left: auto;
|
|
12048
11953
|
}
|
|
12049
|
-
.stg-mx-ext-profiles {
|
|
12050
|
-
display: flex;
|
|
12051
|
-
flex-wrap: wrap;
|
|
12052
|
-
gap: 6px;
|
|
12053
|
-
margin-top: 9px;
|
|
12054
|
-
}
|
|
12055
|
-
.stg-mx-ext-toggle {
|
|
12056
|
-
display: inline-flex;
|
|
12057
|
-
align-items: center;
|
|
12058
|
-
justify-content: center;
|
|
12059
|
-
min-height: 28px;
|
|
12060
|
-
padding: 0 10px;
|
|
12061
|
-
border-radius: 999px;
|
|
12062
|
-
border: 1px solid rgba(148,163,184,0.1);
|
|
12063
|
-
background: rgba(255,255,255,0.02);
|
|
12064
|
-
color: rgba(255,255,255,0.5);
|
|
12065
|
-
cursor: pointer;
|
|
12066
|
-
transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
|
|
12067
|
-
}
|
|
12068
|
-
.stg-mx-ext-toggle:hover {
|
|
12069
|
-
background: rgba(148,163,184,0.055);
|
|
12070
|
-
border-color: rgba(148,163,184,0.16);
|
|
12071
|
-
color: rgba(255,255,255,0.68);
|
|
12072
|
-
}
|
|
12073
|
-
.stg-mx-ext-toggle.on {
|
|
12074
|
-
background: rgba(148,163,184,0.11);
|
|
12075
|
-
border-color: rgba(148,163,184,0.24);
|
|
12076
|
-
box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
|
|
12077
|
-
color: rgba(226,232,240,0.84);
|
|
12078
|
-
}
|
|
12079
|
-
.stg-mx-ext-toggle-name {
|
|
12080
|
-
max-width: 130px;
|
|
12081
|
-
overflow: hidden;
|
|
12082
|
-
text-overflow: ellipsis;
|
|
12083
|
-
white-space: nowrap;
|
|
12084
|
-
font-size: 10px;
|
|
12085
|
-
font-weight: 600;
|
|
12086
|
-
letter-spacing: 0.01em;
|
|
12087
|
-
}
|
|
12088
|
-
|
|
12089
11954
|
/* Add-server form */
|
|
12090
11955
|
.stg-mcp-add-form {
|
|
12091
11956
|
margin-top: 10px;
|
|
@@ -12325,7 +12190,7 @@
|
|
|
12325
12190
|
display: none;
|
|
12326
12191
|
}
|
|
12327
12192
|
|
|
12328
|
-
/* Top-level page tabs (
|
|
12193
|
+
/* Top-level page tabs (Default tools / Installed) inside the MCP settings page */
|
|
12329
12194
|
.stg-mcp-page-tabs {
|
|
12330
12195
|
display: inline-flex;
|
|
12331
12196
|
gap: 2px;
|
|
@@ -14231,13 +14096,13 @@
|
|
|
14231
14096
|
.settings-panel .settings-content :is(
|
|
14232
14097
|
.ocp-server-bar-status, .ocp-srv-btn, .stg-cap-filter, .stg-cap-filter-letter, .stg-provider-status, .stg-model-count-badge, .stg-model-count-sep,
|
|
14233
14098
|
.stg-model-expand-btn, .stg-model-toggle-name, .stg-cap, .stg-ocp-oauth-wait, .stg-ocp-toggle-all, .ocp-config-footer, .ocp-config-link, .stg-tool-name,
|
|
14234
|
-
.
|
|
14099
|
+
.ocp-danger-meta, .stg-callout-copy, .stg-callout-note, .db-model-footer, .settings-status, .settings-status span,
|
|
14235
14100
|
.cc-panel-row-label, .cc-panel-row-value, .cc-enable-btn, .cc-disable-btn, .cc-remove-panel-btn, .cc-panel-status, .cc-explore-btn, .cc-trust-btn,
|
|
14236
14101
|
.project-storage-intro, .project-storage-stat span, .project-storage-stat strong, .project-storage-loading strong, .project-storage-loading small,
|
|
14237
14102
|
.project-storage-safety-note, .project-storage-btn, .project-storage-placeholder, .project-storage-feedback,
|
|
14238
14103
|
.cc-dropdown-item, .browser-cfg-range-val, .bc-profile-name, .bc-profile-divider, .stg-mcp-note strong, .stg-mcp-note span,
|
|
14239
|
-
.stg-
|
|
14240
|
-
.stg-mx-ext-name, .stg-mx-ext-type, .stg-mx-ext-sub, .stg-mx-ext-
|
|
14104
|
+
.stg-mcp-section-header, .stg-mx-always-chip,
|
|
14105
|
+
.stg-mx-ext-name, .stg-mx-ext-type, .stg-mx-ext-sub, .stg-mx-ext-cli-badge, .stg-mcp-empty-note, .stg-mcp-source-tab,
|
|
14241
14106
|
.stg-mcp-page-tab, .cc-cheatsheet-table code, .wa-mode-notes li, .recall-control-scale span,
|
|
14242
14107
|
select option
|
|
14243
14108
|
) { font-size: 12px; }
|
|
@@ -14253,8 +14118,7 @@
|
|
|
14253
14118
|
Census: tools/literals.js contrast(). Dimmed-by-state text (disabled buttons, hidden models, a provider that is
|
|
14254
14119
|
not connected) and buttons drawn on a gradient are the exceptions, recorded in SPEC.md. */
|
|
14255
14120
|
.settings-panel .settings-content :is(
|
|
14256
|
-
.jv-sf-skipped, .stg-model-count-badge, .stg-model-count-sep, .stg-model-expand-btn, .stg-model-expand-icon, .stg-mx-
|
|
14257
|
-
.stg-mx-profile-del, .stg-mx-srv-del, .stg-mx-add-btn, .stg-mx-always-chip, .stg-mx-ext-type, .stg-mx-ext-sub, .stg-mcp-section-header, .stg-mcp-empty-note,
|
|
14121
|
+
.jv-sf-skipped, .stg-model-count-badge, .stg-model-count-sep, .stg-model-expand-btn, .stg-model-expand-icon, .stg-mx-srv-del, .stg-mx-always-chip, .stg-mx-ext-type, .stg-mx-ext-sub, .stg-mcp-section-header, .stg-mcp-empty-note,
|
|
14258
14122
|
.stg-mcp-note span, .stg-ocp-oauth-wait, .stg-cap-filter, .stg-provider-status-disconnected, .ocp-config-footer, .ocp-config-link, .ocp-danger-meta,
|
|
14259
14123
|
.stg-callout-note, .project-storage-path, .project-storage-item-meta, .project-storage-protection, .project-storage-group-path, .project-storage-group-total,
|
|
14260
14124
|
.project-storage-group-empty, .project-storage-stat span, .project-storage-safety-note, .cc-cheatsheet-table th, .cc-tool-category-count, .cc-panel-row-label,
|
|
@@ -14338,11 +14202,6 @@
|
|
|
14338
14202
|
.stg-mcp-note strong { font-size: 9px; }
|
|
14339
14203
|
.stg-mcp-note span { font-size: 10.5px; }
|
|
14340
14204
|
.stg-mcp-section-head { align-items: flex-start; flex-direction: column; gap: 6px; }
|
|
14341
|
-
.stg-mcp-matrix-wrap::after { left: 134px; }
|
|
14342
|
-
.stg-mx-label-th,
|
|
14343
|
-
.stg-mx-label-td { width: 134px; min-width: 134px; }
|
|
14344
|
-
.stg-mx-profile-th { min-width: 62px; max-width: 78px; }
|
|
14345
|
-
.stg-mx-profile-name { max-width: 64px; font-size: 9.5px; }
|
|
14346
14205
|
.stg-mcp-form-grid { grid-template-columns: 1fr; }
|
|
14347
14206
|
/* Permissions — tighter items at medium width */
|
|
14348
14207
|
.cc-tool-category .cc-integration-item { padding: 5px 8px; }
|
|
@@ -14377,14 +14236,8 @@
|
|
|
14377
14236
|
.stg-toggle-row label { font-size: 11px; }
|
|
14378
14237
|
.stg-mcp-note { flex-direction: column; }
|
|
14379
14238
|
.stg-mcp-section-head { gap: 5px; }
|
|
14380
|
-
.stg-mcp-matrix-wrap::after { left: 120px; }
|
|
14381
|
-
.stg-mx-label-th,
|
|
14382
|
-
.stg-mx-label-td { width: 120px; min-width: 120px; }
|
|
14383
|
-
.stg-mx-corner-head { min-height: 48px; padding-bottom: 8px; }
|
|
14384
14239
|
.stg-mx-ext-main { align-items: flex-start; flex-wrap: wrap; }
|
|
14385
14240
|
.stg-mx-ext-remove { margin-left: 0; }
|
|
14386
|
-
.stg-mx-ext-profiles { gap: 5px; }
|
|
14387
|
-
.stg-mx-ext-toggle { min-height: 26px; }
|
|
14388
14241
|
/* OpenCode responsive — narrow */
|
|
14389
14242
|
.ocp-server-bar { flex-direction: column; align-items: stretch; gap: 8px; }
|
|
14390
14243
|
.ocp-server-bar-right { justify-content: flex-start; }
|
|
@@ -14473,7 +14326,7 @@
|
|
|
14473
14326
|
|
|
14474
14327
|
/* ── Buttons: 13px, 6px corners, a neutral fill with a hairline ── */
|
|
14475
14328
|
.settings-panel .settings-content :is(.stg-action-btn, .cc-copy-btn, .cli-detect-btn, .bc-action-btn, .wa-btn, .project-storage-btn, .gfx-reset-btn,
|
|
14476
|
-
.skin-upload-btn, .ocp-history-clear-btn, .
|
|
14329
|
+
.skin-upload-btn, .ocp-history-clear-btn, .conn-add-btn, .conn-action-btn, .ocp-srv-btn, .cc-explore-btn, .cc-trust-btn,
|
|
14477
14330
|
.cc-enable-btn, .cc-disable-btn, .cc-remove-panel-btn, .skin-activate, .skin-remove) {
|
|
14478
14331
|
min-height: 28px; padding: 4px 12px;
|
|
14479
14332
|
font-family: inherit; font-size: 13px; font-weight: 400; line-height: 1.25;
|
|
@@ -14482,7 +14335,7 @@
|
|
|
14482
14335
|
transition: background-color 0.15s ease, color 0.15s ease;
|
|
14483
14336
|
}
|
|
14484
14337
|
.settings-panel .settings-content :is(.stg-action-btn, .cc-copy-btn, .cli-detect-btn, .bc-action-btn, .wa-btn, .project-storage-btn, .gfx-reset-btn,
|
|
14485
|
-
.skin-upload-btn, .ocp-history-clear-btn, .
|
|
14338
|
+
.skin-upload-btn, .ocp-history-clear-btn, .conn-add-btn, .conn-action-btn, .ocp-srv-btn, .cc-explore-btn, .cc-trust-btn,
|
|
14486
14339
|
.cc-enable-btn, .cc-disable-btn, .cc-remove-panel-btn, .skin-activate, .skin-remove):hover:not(:disabled) {
|
|
14487
14340
|
color: #fff; background: var(--stg-control-hover); border-color: var(--stg-field-line); transform: none;
|
|
14488
14341
|
}
|
|
@@ -14562,11 +14415,11 @@
|
|
|
14562
14415
|
.settings-panel .settings-content .stg-badge-warn { color: var(--stg-warn); }
|
|
14563
14416
|
.settings-panel .settings-content .stg-badge-err { color: var(--stg-err); }
|
|
14564
14417
|
.settings-panel .settings-content :is(.stg-badge-ok, .stg-badge-warn, .stg-badge-err, .cc-panel-status.active, .skin-active-badge, .stg-provider-status-connected)::before { background: currentColor; }
|
|
14565
|
-
/* toggle chips (a skill's targets
|
|
14566
|
-
.settings-panel .settings-content :is(.cc-skill-target
|
|
14418
|
+
/* toggle chips (a skill's targets): small 6px-corner buttons, the accent when on */
|
|
14419
|
+
.settings-panel .settings-content :is(.cc-skill-target) {
|
|
14567
14420
|
border-radius: 6px; font-size: 12px; letter-spacing: 0;
|
|
14568
14421
|
}
|
|
14569
|
-
.settings-panel .settings-content :is(.cc-skill-target
|
|
14422
|
+
.settings-panel .settings-content :is(.cc-skill-target).on { color: #fff; background: var(--stg-accent-fill); border-color: transparent; }
|
|
14570
14423
|
|
|
14571
14424
|
/* Boxes inside a group (callouts, server bars, choice cards): one radius, a hairline, no tint or glow */
|
|
14572
14425
|
.settings-panel .settings-content :is(.stg-mcp-note, .ocp-server-bar, .stg-mcp-add-form, .stg-callout, .wa-callout, .wa-mode-card, .wa-level-card,
|
|
@@ -14711,6 +14564,7 @@
|
|
|
14711
14564
|
}
|
|
14712
14565
|
.settings-panel .stg-card-status .ocp-status-dot[data-state="ok"] { background: var(--stg-ok); }
|
|
14713
14566
|
.settings-panel .stg-card-status .ocp-status-dot[data-state="warn"] { background: var(--stg-warn); }
|
|
14567
|
+
.settings-panel .settings-content .ocp-install-note[data-tone="warn"] { color: var(--stg-warn); }
|
|
14714
14568
|
.settings-panel .stg-card-status .ocp-status-dot[data-state="err"] { background: var(--stg-err); }
|
|
14715
14569
|
.settings-panel .stg-card-status .ocp-server-bar-status { font-size: 12px; font-weight: 400; color: var(--stg-help); }
|
|
14716
14570
|
|
|
@@ -14934,17 +14788,8 @@
|
|
|
14934
14788
|
min-width: 0; padding: 0; overflow-wrap: anywhere;
|
|
14935
14789
|
font-family: var(--ff-mono, 'JetBrains Mono', 'SF Mono', monospace); font-size: 12px; color: var(--stg-text);
|
|
14936
14790
|
}
|
|
14937
|
-
|
|
14938
|
-
|
|
14939
|
-
width: 110px; min-height: 24px; padding: 2px 24px 2px 9px;
|
|
14940
|
-
font-family: var(--stg-font); font-size: 13px; line-height: 1.3; color: var(--stg-text);
|
|
14941
|
-
background-color: var(--stg-control);
|
|
14942
|
-
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M1.2 4.4 4 1.6l2.8 2.8M1.2 7.6 4 10.4l2.8-2.8' fill='none' stroke='%23a1a1a6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
|
|
14943
|
-
background-repeat: no-repeat; background-position: right 8px center; background-size: 8px 12px;
|
|
14944
|
-
border: 1px solid var(--stg-field-line); border-radius: 6px; box-shadow: none; cursor: pointer;
|
|
14945
|
-
}
|
|
14946
|
-
.settings-panel .settings-content .stg-tool-row .stg-tool-select:hover { background-color: var(--stg-control-hover); }
|
|
14947
|
-
.settings-panel .settings-content .stg-tool-row .stg-tool-select option { color: #111; }
|
|
14791
|
+
/* the permission is a .cc-dropdown of its own width, at the end of the row */
|
|
14792
|
+
.settings-panel .settings-content .stg-tool-row .stg-ocp-tool-perm { flex: 0 0 110px; width: 110px; }
|
|
14948
14793
|
|
|
14949
14794
|
/* H. History: label and help, the size as secondary text, the clear button */
|
|
14950
14795
|
.settings-panel .settings-content .ocp-danger-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
|
|
@@ -15038,12 +14883,11 @@
|
|
|
15038
14883
|
/* every row label is regular weight; titles above groups keep the semibold */
|
|
15039
14884
|
.settings-panel .settings-content :is(.stg-field > label, .stg-toggle-label, .settings-field > label, .cc-integration-label, .cli-path-label, .recall-control-label,
|
|
15040
14885
|
.gfx-label, .cc-panel-title, .stg-provider-name, .stg-row-label, .db-stat-label, .ocp-danger-title, .cc-greeting-label, .iface-accent-info .label,
|
|
15041
|
-
.stg-mx-ext-name, .
|
|
14886
|
+
.stg-mx-ext-name, .wa-title, .wa-radio > span > :first-child, .cc-skill-name, .skin-name,
|
|
15042
14887
|
.stg-model-toggle-name, .stg-tool-name, .project-storage-item-title-row strong, .bc-profile-name) { font-weight: 400; }
|
|
15043
14888
|
.settings-panel .settings-content :is(.stg-field > label, .stg-toggle-label, .settings-field > label, .cli-path-label, .db-stat-label, .gfx-label) { font-size: 13px; color: var(--stg-text); }
|
|
15044
14889
|
/* sub-headings inside a group, the names on choice cards and the matrix headers: medium, never bold */
|
|
15045
|
-
.settings-panel .settings-content :is(.stg-subhead, .stg-subhead-status, .cc-tool-category-label, .cc-tool-group-header, .stg-mcp-section-header, .
|
|
15046
|
-
.recall-profile-name, .gfx-preset-name, .wa-mode-head, .wa-confirm-who, .wa-stages li.current) { font-weight: 500; }
|
|
14890
|
+
.settings-panel .settings-content :is(.stg-subhead, .stg-subhead-status, .cc-tool-category-label, .cc-tool-group-header, .stg-mcp-section-header, .recall-profile-name, .gfx-preset-name, .wa-mode-head, .wa-confirm-who, .wa-stages li.current) { font-weight: 500; }
|
|
15047
14891
|
.settings-panel .settings-content :is(strong, b) { font-weight: 500; }
|
|
15048
14892
|
.settings-panel .settings-content :is([style*="font-weight:600"], [style*="font-weight: 600"], [style*="font-weight:700"], [style*="font-weight: 700"],
|
|
15049
14893
|
[style*="font-weight:650"], [style*="font-weight: 650"]) { font-weight: 500 !important; }
|
|
@@ -15080,9 +14924,9 @@
|
|
|
15080
14924
|
|
|
15081
14925
|
/* ── Push button: 22px, 12px / 500, 5px corners, a faint fill and a hairline. Nothing in the panel is bigger. ── */
|
|
15082
14926
|
.settings-panel .settings-content :is(.stg-action-btn, .cc-copy-btn, .cli-detect-btn, .bc-action-btn, .wa-btn, .wa-primary, .project-storage-btn, .gfx-reset-btn,
|
|
15083
|
-
.skin-upload-btn, .
|
|
14927
|
+
.skin-upload-btn, .conn-add-btn, .conn-action-btn, .ocp-srv-btn, .cc-explore-btn, .cc-trust-btn, .cc-enable-btn, .cc-disable-btn,
|
|
15084
14928
|
.cc-remove-panel-btn, .skin-activate, .skin-remove, .db-reindex-btn, .stg-save-btn, .settings-toggle-vis, .stg-push-btn, .cc-tool-category-all,
|
|
15085
|
-
.
|
|
14929
|
+
.cc-skill-target),
|
|
15086
14930
|
.settings-panel .settings-content .stg-card :is(.stg-action-btn, .cc-copy-btn, .cli-detect-btn, .stg-save-btn, .gfx-reset-btn, .cc-skill-target),
|
|
15087
14931
|
.settings-panel .settings-content .ocp-server-bar .ocp-srv-btn,
|
|
15088
14932
|
.settings-panel .settings-content .stg-provider-card .stg-action-btn.compact,
|
|
@@ -15096,9 +14940,9 @@
|
|
|
15096
14940
|
cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease;
|
|
15097
14941
|
}
|
|
15098
14942
|
.settings-panel .settings-content :is(.stg-action-btn, .cc-copy-btn, .cli-detect-btn, .bc-action-btn, .wa-btn, .wa-primary, .project-storage-btn, .gfx-reset-btn,
|
|
15099
|
-
.skin-upload-btn, .
|
|
14943
|
+
.skin-upload-btn, .conn-add-btn, .conn-action-btn, .ocp-srv-btn, .cc-explore-btn, .cc-trust-btn, .cc-enable-btn, .cc-disable-btn,
|
|
15100
14944
|
.cc-remove-panel-btn, .skin-activate, .skin-remove, .db-reindex-btn, .stg-save-btn, .settings-toggle-vis, .stg-push-btn, .cc-tool-category-all,
|
|
15101
|
-
.
|
|
14945
|
+
.cc-skill-target):hover:not(:disabled) { color: #fff; background: rgba(255,255,255,0.11); border-color: rgba(255,255,255,0.10); transform: none; filter: none; }
|
|
15102
14946
|
.settings-panel .settings-content :is(.stg-action-btn, .cc-copy-btn, .bc-action-btn, .wa-btn, .wa-primary, .conn-add-btn, .ocp-srv-btn, .stg-save-btn):active { transform: none; }
|
|
15103
14947
|
.settings-panel .settings-content :is(.stg-action-btn, .cc-copy-btn, .cli-detect-btn, .bc-action-btn, .wa-btn, .conn-add-btn, .conn-action-btn, .ocp-srv-btn,
|
|
15104
14948
|
.project-storage-btn, .skin-upload-btn, .gfx-reset-btn, .stg-push-btn, .db-reindex-btn) svg { width: 12px; height: 12px; flex-shrink: 0; }
|
|
@@ -15106,15 +14950,15 @@
|
|
|
15106
14950
|
.settings-panel .settings-content :is(.stg-save-btn, .wa-btn-accent, .wa-primary, .bc-action-save),
|
|
15107
14951
|
.settings-panel .stg-pane-actions .bc-action-btn.bc-action-save { color: #fff; background: var(--stg-accent-fill); border-color: transparent; }
|
|
15108
14952
|
.settings-panel .settings-content :is(.stg-save-btn, .wa-btn-accent, .wa-primary, .bc-action-save):hover:not(:disabled) { color: #fff; background: var(--stg-accent-fill-hover); border-color: transparent; }
|
|
15109
|
-
/* toggle chips (a skill's targets, a
|
|
15110
|
-
.settings-panel .settings-content :is(.cc-skill-target, .
|
|
15111
|
-
.settings-panel .settings-content :is(.cc-skill-target, .
|
|
14953
|
+
/* toggle chips (a skill's targets, a category's "All"): the push button, filled when on */
|
|
14954
|
+
.settings-panel .settings-content :is(.cc-skill-target, .cc-tool-category-all) { padding: 0 8px; font-weight: 400; }
|
|
14955
|
+
.settings-panel .settings-content :is(.cc-skill-target, .cc-tool-category-all).on { color: #fff; background: var(--stg-accent-fill); border-color: transparent; }
|
|
15112
14956
|
.settings-panel .settings-content :is(.wa-btn-danger, .ocp-srv-btn-stop, .project-storage-btn.danger, .cc-remove-panel-btn) { color: var(--stg-text); }
|
|
15113
14957
|
.settings-panel .settings-content :is(.wa-btn-danger, .project-storage-btn.danger, .cc-remove-panel-btn):hover:not(:disabled) { color: var(--stg-err); }
|
|
15114
14958
|
.settings-panel .settings-content .cc-trust-btn { color: var(--stg-warn); }
|
|
15115
14959
|
.settings-panel .settings-content :is(button, .stg-action-btn):disabled { opacity: 0.45; cursor: default; }
|
|
15116
14960
|
/* icon-only buttons: 22×22 */
|
|
15117
|
-
.settings-panel .settings-content :is(.ocp-srv-btn-icon, .settings-toggle-vis, .discord-eye-btn, .stg-
|
|
14961
|
+
.settings-panel .settings-content :is(.ocp-srv-btn-icon, .settings-toggle-vis, .discord-eye-btn, .stg-ocp-key-cancel),
|
|
15118
14962
|
.settings-panel .settings-content .ocp-server-bar .ocp-srv-btn.ocp-srv-btn-icon,
|
|
15119
14963
|
.settings-panel .settings-content .stg-card :is(.stg-action-btn.discord-eye-btn, .stg-action-btn.stg-ocp-key-cancel, .conn-add-btn.settings-toggle-vis, .settings-toggle-vis) { width: 22px; min-width: 22px; padding: 0; }
|
|
15120
14964
|
.settings-panel .settings-content :is(.ocp-srv-btn-icon, .settings-toggle-vis, .discord-eye-btn) svg { width: 12px; height: 12px; }
|
|
@@ -15263,8 +15107,7 @@
|
|
|
15263
15107
|
.settings-panel :is(.stg-dropdown, .bc-dropdown) .cc-dropdown-item { padding: 3px 9px; font-size: 12px; }
|
|
15264
15108
|
.settings-panel .settings-content .cc-dropdown-item { font-size: 12px; }
|
|
15265
15109
|
.settings-panel .settings-content select,
|
|
15266
|
-
.settings-panel .settings-content .stg-card select.stg-input
|
|
15267
|
-
.settings-panel .settings-content .stg-tool-row .stg-tool-select {
|
|
15110
|
+
.settings-panel .settings-content .stg-card select.stg-input {
|
|
15268
15111
|
appearance: none; -webkit-appearance: none;
|
|
15269
15112
|
height: 22px; min-height: 22px; box-sizing: border-box; width: auto; min-width: 110px; padding: 0 22px 0 8px;
|
|
15270
15113
|
font-family: var(--stg-font); font-size: 12px; line-height: 20px; color: var(--stg-text);
|
|
@@ -15273,7 +15116,6 @@
|
|
|
15273
15116
|
background-repeat: no-repeat; background-position: right 7px center; background-size: 7px 10px;
|
|
15274
15117
|
border: 1px solid rgba(255,255,255,0.10); border-radius: 5px; box-shadow: none; cursor: pointer;
|
|
15275
15118
|
}
|
|
15276
|
-
.settings-panel .settings-content .stg-tool-row .stg-tool-select { width: 110px; }
|
|
15277
15119
|
/* controls that carry their old size inline (AI decisions, Automations): the scale wins */
|
|
15278
15120
|
.settings-panel .settings-content select[style] {
|
|
15279
15121
|
height: 22px !important; padding: 0 22px 0 8px !important; line-height: 20px !important;
|
|
@@ -15385,6 +15227,8 @@
|
|
|
15385
15227
|
.settings-panel .settings-content .uc-save-status { margin: 0 0 8px; max-width: none; color: var(--stg-err); }
|
|
15386
15228
|
.settings-panel .settings-content .uc-applies { margin: 0 0 2px; max-width: none; }
|
|
15387
15229
|
.settings-panel .settings-content :is(.uc-status-note, .uc-save-status, .uc-applies)[hidden] { display: none; }
|
|
15230
|
+
/* SynaBun hooks in Claude Code: Repair, a text action under the switch's notes (its text in line with theirs) */
|
|
15231
|
+
.settings-panel .settings-content .stg-card .cc-copy-btn.ch-repair { margin: 4px 0 0 -4px; }
|
|
15388
15232
|
.settings-panel .settings-content .uc-digest { margin: 14px 0 16px; }
|
|
15389
15233
|
/* Settings → Automations → Greeting: the preview is the card every panel shows (shared/greeting/), set left in the section. */
|
|
15390
15234
|
.settings-panel .settings-content .gr-preview { margin-bottom: 4px; }
|
|
@@ -16205,7 +16049,7 @@
|
|
|
16205
16049
|
color: var(--t-dimmed);
|
|
16206
16050
|
flex-shrink: 0;
|
|
16207
16051
|
}
|
|
16208
|
-
.explorer-memory[draggable="true"] { cursor:
|
|
16052
|
+
.explorer-memory[draggable="true"] { cursor: move; }
|
|
16209
16053
|
.explorer-memory.dragging { opacity: 0.4; }
|
|
16210
16054
|
|
|
16211
16055
|
/* Label — truncated */
|
|
@@ -16383,7 +16227,7 @@
|
|
|
16383
16227
|
font-size: 11px;
|
|
16384
16228
|
text-align: center;
|
|
16385
16229
|
color: rgba(255,255,255,0.15);
|
|
16386
|
-
cursor:
|
|
16230
|
+
cursor: move;
|
|
16387
16231
|
opacity: 0;
|
|
16388
16232
|
transition: opacity 0.15s;
|
|
16389
16233
|
flex-shrink: 0;
|
|
@@ -17019,7 +16863,7 @@
|
|
|
17019
16863
|
outline-offset: -1px;
|
|
17020
16864
|
border-radius: 4px;
|
|
17021
16865
|
}
|
|
17022
|
-
.fe-tree--dragging .fe-row { cursor:
|
|
16866
|
+
.fe-tree--dragging .fe-row { cursor: move; }
|
|
17023
16867
|
|
|
17024
16868
|
/* Chevron */
|
|
17025
16869
|
.fe-chevron {
|
|
@@ -17685,12 +17529,14 @@
|
|
|
17685
17529
|
--ed-menu-hover: var(--s-hover);
|
|
17686
17530
|
--ed-menu-radius: 8px;
|
|
17687
17531
|
--ed-menu-shadow: 0 12px 32px rgba(0,0,0,0.4);
|
|
17532
|
+
/* Fills the app frame (flush, so the frame's 16px corners are its own) beside a docked right sidepanel */
|
|
17688
17533
|
position: fixed;
|
|
17689
|
-
top: var(--
|
|
17690
|
-
left:
|
|
17691
|
-
right: var(--right-panel-width, var(--claude-panel-width, 0px));
|
|
17534
|
+
top: var(--frame-top);
|
|
17535
|
+
left: var(--frame-left);
|
|
17536
|
+
right: max(var(--frame-gap), var(--right-panel-width, var(--claude-panel-width, 0px)));
|
|
17692
17537
|
margin-right: var(--right-panel-gap, var(--claude-panel-gap, 0px));
|
|
17693
|
-
height: calc(100dvh - var(--
|
|
17538
|
+
height: calc(100dvh - var(--frame-top) - var(--frame-gap));
|
|
17539
|
+
border-radius: var(--frame-radius);
|
|
17694
17540
|
z-index: 198;
|
|
17695
17541
|
display: flex;
|
|
17696
17542
|
flex-direction: column;
|
|
@@ -18418,7 +18264,7 @@
|
|
|
18418
18264
|
/* ── Multi-select bar (shared) ── */
|
|
18419
18265
|
#multi-select-bar {
|
|
18420
18266
|
position: fixed;
|
|
18421
|
-
top: 62px
|
|
18267
|
+
top: calc(var(--frame-top) + 6px); /* 62px under the 48px bar, inside the app frame under a taller one */
|
|
18422
18268
|
left: calc(var(--sidebar-total-width, 0px) + (100% - var(--sidebar-total-width, 0px) - var(--right-panel-width, var(--claude-panel-width, 0px))) / 2);
|
|
18423
18269
|
transform: translateX(-50%);
|
|
18424
18270
|
transition: left 0.3s cubic-bezier(0.22, 1, 0.36, 1);
|
|
@@ -18997,7 +18843,7 @@
|
|
|
18997
18843
|
border-radius: 6px;
|
|
18998
18844
|
background: hsla(210, 20%, 20%, 0.35);
|
|
18999
18845
|
border: 1px solid transparent;
|
|
19000
|
-
cursor:
|
|
18846
|
+
cursor: move;
|
|
19001
18847
|
transition: background 0.15s, border-color 0.15s;
|
|
19002
18848
|
}
|
|
19003
18849
|
.awiz-rule-item:hover { background: hsla(210, 20%, 25%, 0.45); }
|
|
@@ -19011,7 +18857,7 @@
|
|
|
19011
18857
|
.awiz-rule-grip {
|
|
19012
18858
|
font-size: 16px;
|
|
19013
18859
|
color: var(--t-faint);
|
|
19014
|
-
cursor:
|
|
18860
|
+
cursor: move;
|
|
19015
18861
|
user-select: none;
|
|
19016
18862
|
line-height: 1;
|
|
19017
18863
|
}
|
|
@@ -19202,1170 +19048,1171 @@
|
|
|
19202
19048
|
}
|
|
19203
19049
|
|
|
19204
19050
|
/* ══════════════════════════════════════════════
|
|
19205
|
-
SKILLS STUDIO
|
|
19206
|
-
══════════════════════════════════════════════
|
|
19207
|
-
|
|
19208
|
-
|
|
19209
|
-
|
|
19210
|
-
|
|
19211
|
-
|
|
19212
|
-
|
|
19213
|
-
|
|
19214
|
-
|
|
19215
|
-
|
|
19216
|
-
|
|
19217
|
-
|
|
19218
|
-
|
|
19219
|
-
--
|
|
19220
|
-
--
|
|
19221
|
-
--
|
|
19222
|
-
|
|
19223
|
-
|
|
19224
|
-
|
|
19225
|
-
|
|
19226
|
-
|
|
19227
|
-
|
|
19228
|
-
|
|
19229
|
-
|
|
19230
|
-
|
|
19231
|
-
|
|
19232
|
-
|
|
19233
|
-
|
|
19234
|
-
|
|
19235
|
-
|
|
19236
|
-
|
|
19237
|
-
|
|
19238
|
-
|
|
19239
|
-
|
|
19240
|
-
|
|
19241
|
-
|
|
19242
|
-
|
|
19243
|
-
|
|
19244
|
-
|
|
19245
|
-
|
|
19246
|
-
|
|
19247
|
-
|
|
19248
|
-
|
|
19249
|
-
|
|
19250
|
-
|
|
19251
|
-
|
|
19252
|
-
|
|
19253
|
-
|
|
19254
|
-
|
|
19255
|
-
|
|
19256
|
-
|
|
19257
|
-
|
|
19258
|
-
|
|
19259
|
-
|
|
19260
|
-
|
|
19261
|
-
|
|
19262
|
-
|
|
19263
|
-
|
|
19264
|
-
|
|
19265
|
-
|
|
19266
|
-
|
|
19267
|
-
|
|
19268
|
-
|
|
19269
|
-
|
|
19270
|
-
|
|
19271
|
-
width:
|
|
19272
|
-
|
|
19273
|
-
|
|
19274
|
-
|
|
19275
|
-
|
|
19276
|
-
|
|
19277
|
-
|
|
19278
|
-
|
|
19279
|
-
|
|
19280
|
-
|
|
19281
|
-
|
|
19282
|
-
|
|
19283
|
-
|
|
19284
|
-
|
|
19285
|
-
|
|
19286
|
-
|
|
19287
|
-
}
|
|
19288
|
-
|
|
19289
|
-
.
|
|
19290
|
-
|
|
19291
|
-
|
|
19292
|
-
|
|
19293
|
-
|
|
19294
|
-
|
|
19295
|
-
|
|
19296
|
-
|
|
19297
|
-
|
|
19298
|
-
|
|
19299
|
-
|
|
19300
|
-
|
|
19301
|
-
|
|
19302
|
-
.
|
|
19303
|
-
.
|
|
19304
|
-
|
|
19305
|
-
|
|
19306
|
-
|
|
19307
|
-
|
|
19308
|
-
|
|
19309
|
-
|
|
19310
|
-
|
|
19311
|
-
|
|
19312
|
-
|
|
19313
|
-
|
|
19314
|
-
}
|
|
19315
|
-
.
|
|
19316
|
-
|
|
19317
|
-
|
|
19318
|
-
|
|
19319
|
-
|
|
19320
|
-
.ss-filter.active {
|
|
19321
|
-
background: rgba(148, 163, 184, 0.12);
|
|
19322
|
-
border-color: rgba(148, 163, 184, 0.3);
|
|
19323
|
-
color: rgba(148, 163, 184, 0.9);
|
|
19324
|
-
}
|
|
19325
|
-
/* ── Filter/type color dots ── */
|
|
19326
|
-
.ss-filter-dot {
|
|
19327
|
-
display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
|
|
19328
|
-
}
|
|
19329
|
-
.ss-filter-dot.skill { background: hsla(210, 20%, 62%, 1); box-shadow: none; }
|
|
19330
|
-
.ss-filter-dot.command { background: hsla(40, 25%, 58%, 1); box-shadow: none; }
|
|
19331
|
-
.ss-filter-dot.agent { background: hsla(18, 25%, 58%, 1); box-shadow: none; }
|
|
19332
|
-
.ss-library { flex: 1; overflow-y: auto; overflow-x: hidden; padding-bottom: 8px; }
|
|
19333
|
-
|
|
19334
|
-
/* ── Library groups ── */
|
|
19335
|
-
.ss-group { margin-top: 2px; }
|
|
19336
|
-
.ss-group-header {
|
|
19337
|
-
display: flex; align-items: center; gap: 6px;
|
|
19338
|
-
padding: 8px 14px 5px; font-size: 10px; font-weight: 600;
|
|
19339
|
-
text-transform: uppercase; letter-spacing: 0.06em;
|
|
19340
|
-
color: var(--t-faint); user-select: none;
|
|
19341
|
-
}
|
|
19342
|
-
.ss-group-count {
|
|
19343
|
-
font-size: 9px; background: var(--s-subtle);
|
|
19344
|
-
padding: 1px 6px; border-radius: var(--r-pill); color: var(--t-muted);
|
|
19345
|
-
font-weight: 500;
|
|
19346
|
-
}
|
|
19347
|
-
.ss-item {
|
|
19348
|
-
display: flex; align-items: center; gap: 10px;
|
|
19349
|
-
padding: 7px 14px; cursor: pointer;
|
|
19350
|
-
border-left: 2px solid transparent;
|
|
19351
|
-
transition: background 0.12s ease;
|
|
19352
|
-
}
|
|
19353
|
-
.ss-item:hover { background: var(--s-subtle); }
|
|
19354
|
-
.ss-item.active {
|
|
19355
|
-
background: var(--s-light);
|
|
19356
|
-
border-left-color: hsla(var(--accent-hue, 174), 60%, 55%, 0.8);
|
|
19357
|
-
}
|
|
19358
|
-
.ss-item-icon {
|
|
19359
|
-
width: 28px; height: 28px; border-radius: 7px;
|
|
19360
|
-
display: flex; align-items: center; justify-content: center;
|
|
19361
|
-
flex-shrink: 0; line-height: 1;
|
|
19362
|
-
}
|
|
19363
|
-
.ss-item-icon svg { width: 14px; height: 14px; }
|
|
19364
|
-
.ss-item-icon.skill { background: hsla(210, 15%, 50%, 0.12); color: hsla(210, 18%, 68%, 1); }
|
|
19365
|
-
.ss-item-icon.command { background: hsla(40, 18%, 48%, 0.12); color: hsla(40, 22%, 65%, 1); }
|
|
19366
|
-
.ss-item-icon.agent { background: hsla(18, 18%, 48%, 0.12); color: hsla(18, 22%, 65%, 1); }
|
|
19367
|
-
.ss-item-icon.has-custom { background: transparent; padding: 2px; }
|
|
19368
|
-
.ss-item-custom-icon { width: 24px; height: 24px; object-fit: contain; border-radius: 4px; }
|
|
19369
|
-
.ss-item-info { flex: 1; min-width: 0; }
|
|
19370
|
-
.ss-item-name {
|
|
19371
|
-
font-size: var(--fs-xs); font-weight: 600; color: var(--t-primary);
|
|
19372
|
-
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
19373
|
-
display: flex; align-items: center; gap: 6px;
|
|
19374
|
-
}
|
|
19375
|
-
.ss-item-desc {
|
|
19376
|
-
font-size: 10px; color: var(--t-faint); margin-top: 2px;
|
|
19377
|
-
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
19378
|
-
line-height: 1.3;
|
|
19379
|
-
}
|
|
19380
|
-
.ss-empty { padding: 24px 16px; text-align: center; color: var(--t-muted); font-size: var(--fs-xs); }
|
|
19381
|
-
.ss-item-name .ss-badge { font-size: 8px; padding: 1px 5px; vertical-align: middle; }
|
|
19382
|
-
|
|
19383
|
-
/* ── Badges ── */
|
|
19384
|
-
.ss-badge {
|
|
19385
|
-
display: inline-flex; align-items: center; gap: 5px;
|
|
19386
|
-
font-size: 10px; padding: 2px 8px; border-radius: var(--r-pill);
|
|
19387
|
-
font-weight: 500; white-space: nowrap;
|
|
19388
|
-
border: 1px solid transparent; letter-spacing: 0.01em;
|
|
19389
|
-
}
|
|
19390
|
-
.ss-badge--skill { background: hsla(210, 12%, 50%, 0.08); color: hsla(210, 16%, 65%, 1); border-color: hsla(210, 12%, 50%, 0.12); }
|
|
19391
|
-
.ss-badge--command { background: hsla(40, 15%, 48%, 0.08); color: hsla(40, 20%, 62%, 1); border-color: hsla(40, 15%, 48%, 0.12); }
|
|
19392
|
-
.ss-badge--agent { background: hsla(18, 15%, 48%, 0.08); color: hsla(18, 20%, 62%, 1); border-color: hsla(18, 15%, 48%, 0.12); }
|
|
19393
|
-
.ss-badge--scope { background: var(--s-subtle); color: var(--t-muted); border-color: var(--b-subtle); }
|
|
19394
|
-
.ss-badge--muted { background: var(--s-subtle); color: var(--t-faint); border-color: var(--b-subtle); }
|
|
19395
|
-
.ss-badge--blue { background: hsla(210, 12%, 50%, 0.06); color: hsla(210, 14%, 62%, 0.85); border-color: hsla(210, 12%, 50%, 0.1); }
|
|
19396
|
-
|
|
19397
|
-
/* ── Main area ── */
|
|
19398
|
-
.ss-main { flex: 1; min-width: 0; overflow: hidden; display: flex; flex-direction: column; }
|
|
19399
|
-
.ss-loading {
|
|
19400
|
-
flex: 1; display: flex; align-items: center; justify-content: center;
|
|
19401
|
-
color: var(--t-muted); font-size: var(--fs-sm);
|
|
19402
|
-
}
|
|
19403
|
-
|
|
19404
|
-
/* ── Welcome / overview ── */
|
|
19405
|
-
.ss-welcome {
|
|
19406
|
-
flex: 1; display: flex; flex-direction: column;
|
|
19407
|
-
align-items: center; justify-content: center; gap: 16px;
|
|
19408
|
-
padding: 48px 48px 40px; text-align: center;
|
|
19409
|
-
background: linear-gradient(180deg, rgba(148,163,184,0.03) 0%, transparent 60%);
|
|
19410
|
-
}
|
|
19411
|
-
.ss-welcome-hero {
|
|
19412
|
-
display: flex; flex-direction: column;
|
|
19413
|
-
align-items: center; gap: 2px; position: relative;
|
|
19414
|
-
}
|
|
19415
|
-
.ss-welcome-logo {
|
|
19416
|
-
width: 260px; height: auto;
|
|
19417
|
-
opacity: 0.88;
|
|
19418
|
-
filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.3));
|
|
19419
|
-
animation: ss-logo-float 3s ease-in-out infinite;
|
|
19420
|
-
}
|
|
19421
|
-
@keyframes ss-logo-float {
|
|
19422
|
-
0%, 100% { transform: translateY(0px); }
|
|
19423
|
-
50% { transform: translateY(-4px); }
|
|
19424
|
-
}
|
|
19425
|
-
.ss-welcome-hero h2 {
|
|
19426
|
-
margin: 0;
|
|
19427
|
-
font-family: 'Disket Mono', 'JetBrains Mono', monospace;
|
|
19428
|
-
font-size: 1.55rem; font-weight: 600;
|
|
19429
|
-
color: rgba(255,255,255,0.88);
|
|
19430
|
-
letter-spacing: -0.02em; line-height: 1.2;
|
|
19431
|
-
text-shadow: 0 1px 3px rgba(0,0,0,0.25);
|
|
19432
|
-
}
|
|
19433
|
-
.ss-welcome-sub {
|
|
19434
|
-
font-family: 'JetBrains Mono', monospace;
|
|
19435
|
-
color: rgba(255,255,255,0.35); font-size: 0.75rem; margin: 0; max-width: 380px;
|
|
19436
|
-
line-height: 1.6; font-weight: 400; letter-spacing: 0.03em;
|
|
19437
|
-
}
|
|
19438
|
-
.ss-stats-row {
|
|
19439
|
-
display: flex; gap: 0; margin-top: 16px;
|
|
19440
|
-
animation: ss-stats-in 0.5s ease 0.2s both;
|
|
19441
|
-
}
|
|
19442
|
-
@keyframes ss-stats-in {
|
|
19443
|
-
from { opacity: 0; transform: translateY(8px); }
|
|
19444
|
-
to { opacity: 1; transform: translateY(0); }
|
|
19445
|
-
}
|
|
19446
|
-
.ss-stat {
|
|
19447
|
-
display: flex; flex-direction: column; align-items: center; gap: 4px;
|
|
19448
|
-
padding: 14px 28px; position: relative;
|
|
19449
|
-
transition: opacity 0.2s ease;
|
|
19450
|
-
}
|
|
19451
|
-
.ss-stat + .ss-stat::before {
|
|
19452
|
-
content: ''; position: absolute; left: 0; top: 18%;
|
|
19453
|
-
width: 1px; height: 64%;
|
|
19454
|
-
background: rgba(255,255,255,0.06);
|
|
19455
|
-
}
|
|
19456
|
-
.ss-stat:hover { opacity: 0.7; }
|
|
19457
|
-
.ss-stat-num {
|
|
19458
|
-
font-size: 26px; font-weight: 600; color: rgba(255,255,255,0.85);
|
|
19459
|
-
letter-spacing: -0.02em; line-height: 1;
|
|
19460
|
-
font-family: 'JetBrains Mono', monospace;
|
|
19461
|
-
}
|
|
19462
|
-
.ss-stat-label {
|
|
19463
|
-
display: inline-flex; align-items: center; gap: 5px;
|
|
19464
|
-
font-size: 10px; color: rgba(255,255,255,0.38); font-weight: 500;
|
|
19465
|
-
text-transform: uppercase; letter-spacing: 1.2px;
|
|
19466
|
-
}
|
|
19467
|
-
.ss-welcome-hint {
|
|
19468
|
-
color: rgba(255,255,255,0.35); font-size: 12px; margin-top: 8px;
|
|
19469
|
-
font-weight: 400; letter-spacing: 0.01em;
|
|
19470
|
-
}
|
|
19471
|
-
|
|
19472
|
-
/* ── Editor header ── */
|
|
19473
|
-
.ss-editor-header {
|
|
19474
|
-
display: flex; align-items: center; gap: 8px;
|
|
19475
|
-
padding: 8px 14px; border-bottom: 1px solid rgba(255,255,255,0.04);
|
|
19476
|
-
background: linear-gradient(to bottom, rgba(255,255,255,0.02), transparent);
|
|
19477
|
-
flex-shrink: 0;
|
|
19478
|
-
}
|
|
19479
|
-
.ss-back-btn {
|
|
19480
|
-
padding: 3px 10px; border-radius: var(--r-button);
|
|
19481
|
-
font-size: var(--fs-xs); background: none; border: 1px solid var(--b-subtle);
|
|
19482
|
-
color: var(--t-muted); cursor: pointer; transition: all 0.15s ease;
|
|
19483
|
-
}
|
|
19484
|
-
.ss-back-btn:hover { border-color: var(--b-light); color: var(--t-secondary); }
|
|
19485
|
-
.ss-editor-name { font-family: var(--ff-heading); font-size: var(--fs-sm); font-weight: 600; color: var(--t-bright); letter-spacing: 0.02em; }
|
|
19486
|
-
.ss-editor-spacer { flex: 1; }
|
|
19487
|
-
.ss-save-btn.dirty {
|
|
19488
|
-
background: hsla(var(--accent-hue, 174), 50%, 42%, 0.15) !important;
|
|
19489
|
-
border-color: hsla(var(--accent-hue, 174), 50%, 45%, 0.35) !important;
|
|
19490
|
-
color: hsla(var(--accent-hue, 174), 60%, 60%, 1) !important;
|
|
19491
|
-
box-shadow: none;
|
|
19492
|
-
}
|
|
19493
|
-
.ss-export-btn:hover { background: hsla(var(--accent-hue, 174), 40%, 38%, 0.12); color: hsla(var(--accent-hue, 174), 55%, 58%, 1); border-color: hsla(var(--accent-hue, 174), 40%, 38%, 0.2); }
|
|
19494
|
-
.ss-delete-btn { color: var(--t-faint); }
|
|
19495
|
-
.ss-delete-btn:hover { background: hsla(0, 45%, 45%, 0.15) !important; color: hsla(0, 65%, 68%, 1) !important; border-color: hsla(0, 45%, 45%, 0.25) !important; }
|
|
19496
|
-
.ss-discard-btn:hover:not(:disabled) { background: hsla(35, 45%, 45%, 0.12); color: hsla(35, 60%, 65%, 1); border-color: hsla(35, 45%, 45%, 0.2); }
|
|
19497
|
-
.ss-install-btn { background: hsla(140, 35%, 40%, 0.1); border-color: hsla(140, 35%, 40%, 0.18); color: hsla(140, 45%, 62%, 1); }
|
|
19498
|
-
.ss-install-btn:hover { background: hsla(140, 35%, 40%, 0.18); border-color: hsla(140, 35%, 40%, 0.25); }
|
|
19499
|
-
|
|
19500
|
-
/* ── Editor body (2-column) ── */
|
|
19501
|
-
.ss-editor-body { display: flex; flex: 1; min-height: 0; overflow: hidden; }
|
|
19502
|
-
.ss-editor-meta {
|
|
19503
|
-
width: 250px; flex-shrink: 0;
|
|
19504
|
-
border-right: 1px solid var(--b-subtle);
|
|
19505
|
-
overflow-y: auto; padding: 12px;
|
|
19506
|
-
display: flex; flex-direction: column; gap: 2px;
|
|
19507
|
-
}
|
|
19508
|
-
.ss-editor-content { flex: 1; display: flex; flex-direction: column; min-width: 0; }
|
|
19509
|
-
.ss-content-toolbar {
|
|
19510
|
-
display: flex; align-items: center; justify-content: space-between;
|
|
19511
|
-
padding: 5px 12px; border-bottom: 1px solid var(--b-subtle);
|
|
19512
|
-
flex-shrink: 0;
|
|
19513
|
-
}
|
|
19514
|
-
.ss-content-label { font-size: 10px; color: var(--t-faint); text-transform: uppercase; letter-spacing: 0.5px; }
|
|
19515
|
-
.ss-wrap-btn {
|
|
19516
|
-
font-size: 10px; padding: 2px 8px; border-radius: var(--r-pill);
|
|
19517
|
-
background: none; border: 1px solid var(--b-subtle);
|
|
19518
|
-
color: var(--t-muted); cursor: pointer;
|
|
19519
|
-
transition: all 0.15s ease;
|
|
19520
|
-
}
|
|
19521
|
-
.ss-wrap-btn:hover { border-color: var(--b-light); color: var(--t-secondary); }
|
|
19522
|
-
.ss-md-editor {
|
|
19523
|
-
flex: 1; background: rgba(0,0,0,0.15); border: none; border-radius: 0;
|
|
19524
|
-
padding: 12px 14px;
|
|
19525
|
-
font-family: 'JetBrains Mono', 'SF Mono', 'Consolas', monospace;
|
|
19526
|
-
font-size: 12px; line-height: 1.65; color: var(--t-bright);
|
|
19527
|
-
resize: none; outline: none; tab-size: 2;
|
|
19528
|
-
white-space: pre; overflow-wrap: normal; overflow-x: auto;
|
|
19529
|
-
}
|
|
19530
|
-
.ss-md-editor.wrap { white-space: pre-wrap; overflow-wrap: break-word; overflow-x: hidden; }
|
|
19531
|
-
|
|
19532
|
-
/* ── Markdown toolbar ── */
|
|
19533
|
-
.ss-md-toolbar {
|
|
19534
|
-
display: flex; align-items: center; gap: 1px;
|
|
19535
|
-
padding: 3px 6px; border-bottom: 1px solid var(--b-subtle);
|
|
19536
|
-
background: rgba(0,0,0,0.08); flex-shrink: 0;
|
|
19537
|
-
}
|
|
19538
|
-
.ss-md-toolbar-sep {
|
|
19539
|
-
width: 1px; height: 16px; background: var(--b-subtle); margin: 0 4px;
|
|
19540
|
-
}
|
|
19541
|
-
.ss-md-tool {
|
|
19542
|
-
width: 26px; height: 24px; display: flex; align-items: center; justify-content: center;
|
|
19543
|
-
background: none; border: 1px solid transparent; border-radius: var(--r-small);
|
|
19544
|
-
color: var(--t-muted); cursor: pointer; font-size: 13px; padding: 0;
|
|
19545
|
-
transition: all 0.12s ease; font-weight: 600;
|
|
19546
|
-
}
|
|
19547
|
-
.ss-md-tool:hover { background: var(--s-hover); border-color: var(--b-subtle); color: var(--t-bright); }
|
|
19548
|
-
.ss-md-tool:active { background: var(--s-light); }
|
|
19549
|
-
.ss-md-tool svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
19550
|
-
.ss-md-tool[data-active="true"] { background: var(--s-light); color: var(--t-bright); border-color: var(--b-light); }
|
|
19551
|
-
|
|
19552
|
-
/* ── Preview/Raw toggle in toolbar ── */
|
|
19553
|
-
.ss-view-toggle {
|
|
19554
|
-
display: flex; margin-left: auto; border: 1px solid var(--b-subtle); border-radius: var(--r-small); overflow: hidden;
|
|
19555
|
-
}
|
|
19556
|
-
.ss-view-toggle-btn {
|
|
19557
|
-
padding: 2px 10px; font-size: 10px; font-weight: 500;
|
|
19558
|
-
background: none; border: none; color: var(--t-muted);
|
|
19559
|
-
cursor: pointer; transition: all 0.12s ease;
|
|
19560
|
-
text-transform: uppercase; letter-spacing: 0.3px;
|
|
19561
|
-
}
|
|
19562
|
-
.ss-view-toggle-btn:hover { color: var(--t-secondary); }
|
|
19563
|
-
.ss-view-toggle-btn.active {
|
|
19564
|
-
background: var(--s-light); color: var(--t-bright);
|
|
19565
|
-
}
|
|
19566
|
-
|
|
19567
|
-
/* ── Markdown preview pane ── */
|
|
19568
|
-
.ss-md-preview {
|
|
19569
|
-
flex: 1; padding: 16px 18px; overflow-y: auto;
|
|
19570
|
-
font-family: inherit; font-size: 13px; line-height: 1.7;
|
|
19571
|
-
color: var(--t-primary); display: none;
|
|
19572
|
-
}
|
|
19573
|
-
.ss-md-preview.visible { display: block; }
|
|
19574
|
-
.ss-md-preview h1 { font-size: 20px; font-weight: 700; color: var(--t-bright); margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--b-subtle); }
|
|
19575
|
-
.ss-md-preview h2 { font-size: 16px; font-weight: 600; color: var(--t-bright); margin: 20px 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--b-subtle); }
|
|
19576
|
-
.ss-md-preview h3 { font-size: 14px; font-weight: 600; color: var(--t-bright); margin: 16px 0 6px; }
|
|
19577
|
-
.ss-md-preview h4 { font-size: 12px; font-weight: 600; color: var(--t-secondary); margin: 12px 0 4px; text-transform: uppercase; letter-spacing: 0.3px; }
|
|
19578
|
-
.ss-md-preview p { margin: 0 0 10px; }
|
|
19579
|
-
.ss-md-preview ul, .ss-md-preview ol { margin: 0 0 10px; padding-left: 22px; }
|
|
19580
|
-
.ss-md-preview li { margin-bottom: 4px; }
|
|
19581
|
-
.ss-md-preview strong { font-weight: 600; color: var(--t-bright); }
|
|
19582
|
-
.ss-md-preview em { font-style: italic; color: var(--t-secondary); }
|
|
19583
|
-
.ss-md-preview code {
|
|
19584
|
-
font-family: 'JetBrains Mono', monospace; font-size: 11.5px;
|
|
19585
|
-
background: rgba(0,0,0,0.25); padding: 2px 5px; border-radius: 3px;
|
|
19586
|
-
color: hsla(var(--accent-hue, 174), 50%, 72%, 1);
|
|
19587
|
-
}
|
|
19588
|
-
.ss-md-preview pre {
|
|
19589
|
-
background: rgba(0,0,0,0.3); border: 1px solid var(--b-subtle);
|
|
19590
|
-
border-radius: var(--r-small); padding: 12px 14px; margin: 8px 0 12px;
|
|
19591
|
-
overflow-x: auto;
|
|
19592
|
-
}
|
|
19593
|
-
.ss-md-preview pre code { background: none; padding: 0; color: var(--t-primary); font-size: 11.5px; }
|
|
19594
|
-
.ss-md-preview blockquote {
|
|
19595
|
-
border-left: 3px solid hsla(var(--accent-hue, 174), 50%, 55%, 0.4);
|
|
19596
|
-
margin: 8px 0; padding: 4px 14px; color: var(--t-muted); font-style: italic;
|
|
19597
|
-
}
|
|
19598
|
-
.ss-md-preview a { color: hsla(var(--accent-hue, 174), 60%, 65%, 1); text-decoration: none; }
|
|
19599
|
-
.ss-md-preview a:hover { text-decoration: underline; }
|
|
19600
|
-
.ss-md-preview hr { border: none; border-top: 1px solid var(--b-subtle); margin: 16px 0; }
|
|
19601
|
-
.ss-md-preview table { border-collapse: collapse; width: 100%; margin: 8px 0 12px; font-size: 12px; }
|
|
19602
|
-
.ss-md-preview th, .ss-md-preview td { padding: 6px 10px; border: 1px solid var(--b-subtle); text-align: left; }
|
|
19603
|
-
.ss-md-preview th { background: rgba(0,0,0,0.15); font-weight: 600; color: var(--t-bright); }
|
|
19604
|
-
.ss-md-preview img { max-width: 100%; border-radius: var(--r-small); }
|
|
19605
|
-
|
|
19606
|
-
/* ── Mermaid diagrams ── */
|
|
19607
|
-
.ss-mermaid {
|
|
19608
|
-
margin: 12px 0; padding: 16px;
|
|
19609
|
-
background: rgba(0,0,0,0.12); border: 1px solid var(--b-subtle);
|
|
19610
|
-
border-radius: var(--r-base); overflow-x: auto; text-align: center;
|
|
19611
|
-
}
|
|
19612
|
-
.ss-mermaid svg { max-width: 100%; height: auto; }
|
|
19613
|
-
.ss-mermaid-loading { font-size: 11px; color: var(--t-muted); font-style: italic; }
|
|
19614
|
-
.ss-mermaid-error { font-size: 11px; color: #f87171; margin-bottom: 8px; }
|
|
19615
|
-
.ss-mermaid-src {
|
|
19616
|
-
text-align: left; font-size: 11px; padding: 8px; margin: 4px 0 0;
|
|
19617
|
-
background: rgba(0,0,0,0.2); border-radius: var(--r-small);
|
|
19618
|
-
color: var(--t-muted); white-space: pre-wrap; overflow-x: auto;
|
|
19619
|
-
}
|
|
19620
|
-
|
|
19621
|
-
/* ── Metadata form ── */
|
|
19622
|
-
.ss-meta-section { display: flex; flex-direction: column; gap: 12px; }
|
|
19623
|
-
.ss-field { display: flex; flex-direction: column; gap: 3px; }
|
|
19624
|
-
.ss-field > label {
|
|
19625
|
-
font-size: 10px; font-weight: 600; color: var(--t-muted);
|
|
19626
|
-
text-transform: uppercase; letter-spacing: 0.4px;
|
|
19627
|
-
}
|
|
19628
|
-
.ss-field-hint { font-weight: 400; text-transform: none; letter-spacing: 0; opacity: 0.6; }
|
|
19629
|
-
|
|
19630
|
-
/* ── Icon upload widget ── */
|
|
19631
|
-
.ss-icon-field { margin-bottom: 2px; }
|
|
19632
|
-
.ss-icon-upload { display: flex; align-items: center; gap: 10px; }
|
|
19633
|
-
.ss-icon-preview {
|
|
19634
|
-
width: 40px; height: 40px; border-radius: 8px;
|
|
19635
|
-
border: 1px dashed var(--b-light);
|
|
19636
|
-
display: flex; align-items: center; justify-content: center;
|
|
19637
|
-
overflow: hidden; flex-shrink: 0; background: var(--s-subtle);
|
|
19638
|
-
}
|
|
19639
|
-
.ss-icon-preview-img { width: 100%; height: 100%; object-fit: contain; }
|
|
19640
|
-
.ss-icon-placeholder {
|
|
19641
|
-
display: flex; align-items: center; justify-content: center;
|
|
19642
|
-
width: 100%; height: 100%; opacity: 0.4;
|
|
19643
|
-
}
|
|
19644
|
-
.ss-icon-placeholder svg { width: 18px; height: 18px; }
|
|
19645
|
-
.ss-icon-placeholder.skill { color: hsla(210, 18%, 65%, 1); }
|
|
19646
|
-
.ss-icon-placeholder.command { color: hsla(40, 22%, 62%, 1); }
|
|
19647
|
-
.ss-icon-placeholder.agent { color: hsla(18, 22%, 62%, 1); }
|
|
19648
|
-
.ss-icon-actions { display: flex; flex-direction: column; gap: 4px; }
|
|
19649
|
-
.ss-icon-upload-btn {
|
|
19650
|
-
font-size: 10px; padding: 3px 10px;
|
|
19651
|
-
background: var(--s-subtle); border: 1px solid var(--b-light);
|
|
19652
|
-
border-radius: var(--r-small); color: var(--t-secondary);
|
|
19653
|
-
cursor: pointer; text-align: center;
|
|
19654
|
-
transition: background 0.15s, color 0.15s;
|
|
19655
|
-
}
|
|
19656
|
-
.ss-icon-upload-btn:hover { background: var(--s-light); color: var(--t-bright); }
|
|
19657
|
-
.ss-icon-remove-btn {
|
|
19658
|
-
font-size: 10px; padding: 2px 10px;
|
|
19659
|
-
background: transparent; border: 1px solid transparent;
|
|
19660
|
-
border-radius: var(--r-small); color: var(--t-faint);
|
|
19661
|
-
cursor: pointer;
|
|
19662
|
-
}
|
|
19663
|
-
.ss-icon-remove-btn:hover { color: hsla(0, 65%, 68%, 1); border-color: hsla(0, 45%, 45%, 0.2); }
|
|
19664
|
-
.ss-input {
|
|
19665
|
-
width: 100%; padding: 6px 10px;
|
|
19666
|
-
background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
|
|
19667
|
-
border-radius: var(--r-small); font-size: var(--fs-xs);
|
|
19668
|
-
color: var(--t-bright); outline: none;
|
|
19669
|
-
transition: all 0.15s ease;
|
|
19670
|
-
}
|
|
19671
|
-
.ss-input:hover { border-color: rgba(255,255,255,0.12); }
|
|
19672
|
-
.ss-input:focus {
|
|
19673
|
-
border-color: rgba(148, 163, 184, 0.4);
|
|
19674
|
-
background: rgba(148, 163, 184, 0.05);
|
|
19675
|
-
box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.08);
|
|
19676
|
-
}
|
|
19677
|
-
.ss-textarea {
|
|
19678
|
-
width: 100%; padding: 8px 10px;
|
|
19679
|
-
background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
|
|
19680
|
-
border-radius: var(--r-small); font-size: 11px;
|
|
19681
|
-
color: var(--t-primary); outline: none;
|
|
19682
|
-
resize: vertical; line-height: 1.5;
|
|
19683
|
-
font-family: inherit;
|
|
19684
|
-
transition: all 0.15s ease;
|
|
19685
|
-
}
|
|
19686
|
-
.ss-textarea:hover { border-color: rgba(255,255,255,0.12); }
|
|
19687
|
-
.ss-textarea:focus {
|
|
19688
|
-
border-color: rgba(148, 163, 184, 0.4);
|
|
19689
|
-
background: rgba(148, 163, 184, 0.05);
|
|
19690
|
-
box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.08);
|
|
19691
|
-
}
|
|
19692
|
-
.ss-textarea-sm { min-height: 120px; }
|
|
19693
|
-
|
|
19694
|
-
/* ── Custom checkbox toggle ── */
|
|
19695
|
-
.ss-checkbox-row { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
|
|
19696
|
-
.ss-checkbox-row input[type="checkbox"] {
|
|
19697
|
-
-webkit-appearance: none; appearance: none;
|
|
19698
|
-
width: 32px; height: 17px; border-radius: 10px;
|
|
19699
|
-
background: var(--s-light); border: 1px solid var(--b-light);
|
|
19700
|
-
position: relative; cursor: pointer; flex-shrink: 0;
|
|
19701
|
-
transition: background 0.2s ease, border-color 0.2s ease;
|
|
19702
|
-
}
|
|
19703
|
-
.ss-checkbox-row input[type="checkbox"]::after {
|
|
19704
|
-
content: ''; position: absolute; top: 2px; left: 2px;
|
|
19705
|
-
width: 11px; height: 11px; border-radius: 50%;
|
|
19706
|
-
background: var(--t-muted);
|
|
19707
|
-
transition: transform 0.2s ease, background 0.2s ease;
|
|
19708
|
-
}
|
|
19709
|
-
.ss-checkbox-row input[type="checkbox"]:checked {
|
|
19710
|
-
background: hsla(var(--accent-hue, 174), 60%, 45%, 0.6);
|
|
19711
|
-
border-color: hsla(var(--accent-hue, 174), 60%, 55%, 0.5);
|
|
19712
|
-
}
|
|
19713
|
-
.ss-checkbox-row input[type="checkbox"]:checked::after {
|
|
19714
|
-
transform: translateX(15px);
|
|
19715
|
-
background: hsla(var(--accent-hue, 174), 70%, 75%, 1);
|
|
19716
|
-
}
|
|
19717
|
-
.ss-checkbox-row label { font-size: var(--fs-xs); color: var(--t-secondary); cursor: pointer; text-transform: none; letter-spacing: 0; font-weight: 400; }
|
|
19718
|
-
|
|
19719
|
-
/* ── Custom radio buttons ── */
|
|
19720
|
-
.ss-radio-group { display: flex; flex-direction: column; gap: 6px; }
|
|
19721
|
-
.ss-radio { display: flex; align-items: center; gap: 8px; font-size: var(--fs-xs); color: var(--t-secondary); cursor: pointer; }
|
|
19722
|
-
.ss-radio input[type="radio"] {
|
|
19723
|
-
-webkit-appearance: none; appearance: none;
|
|
19724
|
-
width: 15px; height: 15px; border-radius: 50%;
|
|
19725
|
-
background: var(--s-light); border: 1px solid var(--b-light);
|
|
19726
|
-
position: relative; cursor: pointer; flex-shrink: 0;
|
|
19727
|
-
transition: all 0.2s ease;
|
|
19728
|
-
}
|
|
19729
|
-
.ss-radio input[type="radio"]::after {
|
|
19730
|
-
content: ''; position: absolute; top: 50%; left: 50%;
|
|
19731
|
-
transform: translate(-50%, -50%) scale(0);
|
|
19732
|
-
width: 7px; height: 7px; border-radius: 50%;
|
|
19733
|
-
background: hsla(var(--accent-hue, 174), 70%, 70%, 1);
|
|
19734
|
-
transition: transform 0.15s ease;
|
|
19735
|
-
}
|
|
19736
|
-
.ss-radio input[type="radio"]:checked {
|
|
19737
|
-
border-color: hsla(var(--accent-hue, 174), 60%, 55%, 0.6);
|
|
19738
|
-
background: hsla(var(--accent-hue, 174), 60%, 45%, 0.3);
|
|
19739
|
-
}
|
|
19740
|
-
.ss-radio input[type="radio"]:checked::after { transform: translate(-50%, -50%) scale(1); }
|
|
19741
|
-
|
|
19742
|
-
/* ── Custom select dropdown ── */
|
|
19743
|
-
select.ss-input, .ss-input[id*="model"] {
|
|
19744
|
-
-webkit-appearance: none; appearance: none;
|
|
19745
|
-
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E");
|
|
19746
|
-
background-repeat: no-repeat;
|
|
19747
|
-
background-position: right 8px center;
|
|
19748
|
-
padding-right: 24px;
|
|
19749
|
-
cursor: pointer;
|
|
19750
|
-
}
|
|
19751
|
-
select.ss-input option, .ss-tools-add select option {
|
|
19752
|
-
background: #1a1a1a; color: var(--t-secondary); padding: 4px 8px;
|
|
19753
|
-
}
|
|
19754
|
-
select.ss-input option:disabled { color: var(--t-faint); }
|
|
19755
|
-
|
|
19756
|
-
.ss-hidden { display: none !important; }
|
|
19757
|
-
|
|
19758
|
-
/* ── Tool chips ── */
|
|
19759
|
-
.ss-tools-list { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
19760
|
-
.ss-chip {
|
|
19761
|
-
display: inline-flex; align-items: center; gap: 6px;
|
|
19762
|
-
padding: 5px 12px; border-radius: var(--r-pill);
|
|
19763
|
-
font-size: 11px; font-weight: 500;
|
|
19764
|
-
background: rgba(148, 163, 184, 0.12);
|
|
19765
|
-
border: 1px solid rgba(148, 163, 184, 0.22);
|
|
19766
|
-
color: rgba(148, 163, 184, 0.8);
|
|
19767
|
-
letter-spacing: 0.02em;
|
|
19768
|
-
transition: all 0.15s ease;
|
|
19769
|
-
position: relative;
|
|
19770
|
-
}
|
|
19771
|
-
.ss-chip:hover {
|
|
19772
|
-
background: rgba(148, 163, 184, 0.18);
|
|
19773
|
-
border-color: rgba(148, 163, 184, 0.32);
|
|
19774
|
-
}
|
|
19775
|
-
.ss-chip-x {
|
|
19776
|
-
background: none; border: none; color: rgba(148, 163, 184, 0.45);
|
|
19777
|
-
cursor: pointer; font-size: 13px; padding: 0; line-height: 1;
|
|
19778
|
-
transition: color 0.12s ease;
|
|
19779
|
-
display: flex; align-items: center; justify-content: center;
|
|
19780
|
-
}
|
|
19781
|
-
.ss-chip-x:hover {
|
|
19782
|
-
color: rgba(255, 82, 82, 0.7);
|
|
19783
|
-
}
|
|
19784
|
-
/* ── Custom dropdown (tools picker) ── */
|
|
19785
|
-
.ss-dropdown { position: relative; margin-top: 6px; }
|
|
19786
|
-
.ss-dropdown-trigger {
|
|
19787
|
-
display: flex; align-items: center; justify-content: space-between; gap: 8px;
|
|
19788
|
-
width: 100%; padding: 7px 12px;
|
|
19789
|
-
background: rgba(148, 163, 184, 0.08);
|
|
19790
|
-
border: 1px solid rgba(148, 163, 184, 0.18);
|
|
19791
|
-
border-radius: var(--r-small); font-size: 11px; font-weight: 500;
|
|
19792
|
-
color: rgba(148, 163, 184, 0.65); cursor: pointer; outline: none;
|
|
19793
|
-
transition: all 0.15s ease;
|
|
19794
|
-
font-family: inherit;
|
|
19795
|
-
}
|
|
19796
|
-
.ss-dropdown-trigger svg {
|
|
19797
|
-
opacity: 0.45; transition: transform 0.2s ease, opacity 0.15s ease;
|
|
19798
|
-
flex-shrink: 0; width: 10px; height: 10px;
|
|
19799
|
-
}
|
|
19800
|
-
.ss-dropdown-trigger:hover {
|
|
19801
|
-
border-color: rgba(148, 163, 184, 0.26);
|
|
19802
|
-
color: rgba(148, 163, 184, 0.75);
|
|
19803
|
-
background: rgba(148, 163, 184, 0.13);
|
|
19804
|
-
}
|
|
19805
|
-
.ss-dropdown-trigger:hover svg { opacity: 0.6; }
|
|
19806
|
-
.ss-dropdown-trigger.open {
|
|
19807
|
-
border-color: rgba(148, 163, 184, 0.3);
|
|
19808
|
-
color: rgba(148, 163, 184, 0.85);
|
|
19809
|
-
background: rgba(148, 163, 184, 0.14);
|
|
19810
|
-
}
|
|
19811
|
-
.ss-dropdown-trigger.open svg {
|
|
19812
|
-
transform: rotate(180deg);
|
|
19813
|
-
opacity: 0.7;
|
|
19814
|
-
}
|
|
19815
|
-
|
|
19816
|
-
.ss-dropdown-menu {
|
|
19817
|
-
position: absolute; z-index: 400;
|
|
19818
|
-
top: calc(100% + 6px); left: 0; right: 0;
|
|
19819
|
-
display: none; flex-direction: column;
|
|
19820
|
-
background: rgba(18, 20, 28, 0.92);
|
|
19821
|
-
border: 1px solid rgba(148, 163, 184, 0.16);
|
|
19822
|
-
border-radius: var(--r-button);
|
|
19823
|
-
box-shadow: var(--shadow-md);
|
|
19824
|
-
padding: 8px 0;
|
|
19825
|
-
backdrop-filter: blur(12px);
|
|
19826
|
-
max-height: 240px; overflow-y: auto;
|
|
19827
|
-
scrollbar-width: thin; scrollbar-color: rgba(148, 163, 184, 0.12) transparent;
|
|
19828
|
-
animation: ss-dropdown-in 0.2s ease;
|
|
19829
|
-
}
|
|
19830
|
-
.ss-dropdown-menu.open { display: flex; }
|
|
19831
|
-
@keyframes ss-dropdown-in {
|
|
19832
|
-
from { opacity: 0; transform: translateY(-8px) scale(0.98); }
|
|
19833
|
-
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
19834
|
-
}
|
|
19835
|
-
|
|
19836
|
-
.ss-dropdown-item {
|
|
19837
|
-
padding: 9px 14px; font-size: 11px; font-weight: 500;
|
|
19838
|
-
color: rgba(255,255,255,0.6); cursor: pointer;
|
|
19839
|
-
transition: all 0.12s ease;
|
|
19840
|
-
white-space: nowrap;
|
|
19841
|
-
}
|
|
19842
|
-
.ss-dropdown-item:hover {
|
|
19843
|
-
background: rgba(148, 163, 184, 0.15);
|
|
19844
|
-
color: rgba(148, 163, 184, 0.95);
|
|
19845
|
-
}
|
|
19846
|
-
.ss-dropdown-item.disabled {
|
|
19847
|
-
color: rgba(255,255,255,0.25); cursor: default;
|
|
19848
|
-
pointer-events: none;
|
|
19849
|
-
}
|
|
19850
|
-
|
|
19851
|
-
/* ── Section label ── */
|
|
19852
|
-
.ss-section-label {
|
|
19853
|
-
font-size: 10px; font-weight: 600; color: var(--t-faint);
|
|
19854
|
-
text-transform: uppercase; letter-spacing: 0.5px;
|
|
19855
|
-
margin-top: 14px; margin-bottom: 6px;
|
|
19856
|
-
padding-bottom: 4px; border-bottom: 1px solid var(--b-subtle);
|
|
19857
|
-
}
|
|
19858
|
-
|
|
19859
|
-
/* ── File tree ── */
|
|
19860
|
-
.ss-file-tree { display: flex; flex-direction: column; gap: 1px; }
|
|
19861
|
-
.ss-file-item {
|
|
19862
|
-
display: flex; align-items: center; gap: 6px;
|
|
19863
|
-
padding: 6px 8px; font-size: 11px;
|
|
19864
|
-
cursor: pointer; border-radius: var(--r-small);
|
|
19865
|
-
transition: all 0.1s ease;
|
|
19866
|
-
color: var(--t-secondary);
|
|
19867
|
-
}
|
|
19868
|
-
.ss-file-item:hover {
|
|
19869
|
-
background: rgba(255,255,255,0.05);
|
|
19870
|
-
color: var(--t-primary);
|
|
19871
|
-
}
|
|
19872
|
-
.ss-file-dir:hover { background: rgba(148,163,184,0.08); }
|
|
19873
|
-
.ss-file-icon {
|
|
19874
|
-
display: flex; align-items: center; justify-content: center;
|
|
19875
|
-
width: 16px; height: 16px; flex-shrink: 0;
|
|
19876
|
-
color: var(--t-muted); transition: color 0.1s ease;
|
|
19877
|
-
}
|
|
19878
|
-
.ss-file-icon-svg { display: block; }
|
|
19879
|
-
.ss-file-item:hover .ss-file-icon {
|
|
19880
|
-
color: rgba(148, 163, 184, 0.7);
|
|
19881
|
-
}
|
|
19882
|
-
.ss-file-dir:hover .ss-file-icon {
|
|
19883
|
-
color: rgba(255, 183, 77, 0.7);
|
|
19884
|
-
}
|
|
19885
|
-
.ss-file-name {
|
|
19886
|
-
flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis;
|
|
19887
|
-
white-space: nowrap; font-weight: 400;
|
|
19888
|
-
}
|
|
19889
|
-
.ss-file-size {
|
|
19890
|
-
font-size: 9px; color: var(--t-faint); flex-shrink: 0;
|
|
19891
|
-
font-weight: 400; letter-spacing: 0.3px;
|
|
19892
|
-
}
|
|
19893
|
-
.ss-file-actions { display: none; gap: 3px; flex-shrink: 0; }
|
|
19894
|
-
.ss-file-item:hover .ss-file-actions { display: flex; }
|
|
19895
|
-
.ss-file-del-btn {
|
|
19896
|
-
width: 18px; height: 18px; border-radius: var(--r-small);
|
|
19897
|
-
background: none; border: 1px solid transparent;
|
|
19898
|
-
color: var(--t-faint); cursor: pointer; font-size: 11px;
|
|
19899
|
-
display: flex; align-items: center; justify-content: center;
|
|
19900
|
-
transition: all 0.12s ease;
|
|
19901
|
-
}
|
|
19902
|
-
.ss-file-del-btn:hover {
|
|
19903
|
-
background: hsla(0, 70%, 45%, 0.15);
|
|
19904
|
-
border-color: hsla(0, 70%, 45%, 0.25);
|
|
19905
|
-
color: hsla(0, 70%, 65%, 1);
|
|
19906
|
-
}
|
|
19907
|
-
.ss-add-file-btn {
|
|
19908
|
-
margin-top: 8px; padding: 6px 10px;
|
|
19909
|
-
font-size: var(--fs-xs); color: var(--t-muted);
|
|
19910
|
-
background: none; border: 1px solid var(--b-light);
|
|
19911
|
-
border-radius: var(--r-small); cursor: pointer;
|
|
19912
|
-
transition: all 0.15s ease; width: 100%;
|
|
19913
|
-
}
|
|
19914
|
-
.ss-add-file-btn:hover {
|
|
19915
|
-
border-color: rgba(148, 163, 184, 0.4);
|
|
19916
|
-
color: rgba(148, 163, 184, 0.7);
|
|
19917
|
-
background: rgba(148, 163, 184, 0.05);
|
|
19918
|
-
}
|
|
19919
|
-
|
|
19920
|
-
/* ── File browser dialog ── */
|
|
19921
|
-
.ss-file-dialog-overlay {
|
|
19922
|
-
position: absolute; inset: 0; z-index: 200;
|
|
19923
|
-
display: flex; align-items: center; justify-content: center;
|
|
19924
|
-
}
|
|
19925
|
-
.ss-fd-backdrop {
|
|
19926
|
-
position: absolute; inset: 0;
|
|
19927
|
-
background: rgba(0,0,0,0.5); backdrop-filter: blur(2px);
|
|
19928
|
-
}
|
|
19929
|
-
.ss-file-dialog {
|
|
19930
|
-
position: relative; z-index: 1;
|
|
19931
|
-
width: 340px;
|
|
19932
|
-
background: var(--s-glass-bg, rgba(18,18,28,0.96));
|
|
19933
|
-
border: 1px solid var(--b-light);
|
|
19934
|
-
border-radius: var(--r-base);
|
|
19935
|
-
box-shadow: var(--shadow-lg);
|
|
19936
|
-
display: flex; flex-direction: column;
|
|
19937
|
-
overflow: hidden;
|
|
19938
|
-
}
|
|
19939
|
-
.ss-fd-body {
|
|
19940
|
-
padding: 14px 16px; overflow-y: auto; flex: 1;
|
|
19941
|
-
display: flex; flex-direction: column; gap: 10px;
|
|
19942
|
-
}
|
|
19943
|
-
.ss-fd-section-label {
|
|
19944
|
-
font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em;
|
|
19945
|
-
color: var(--t-faint); margin-bottom: 4px;
|
|
19946
|
-
}
|
|
19947
|
-
.ss-fd-dirs {
|
|
19948
|
-
display: flex; flex-direction: column; gap: 0;
|
|
19949
|
-
max-height: 120px; overflow-y: auto;
|
|
19950
|
-
border: 1px solid var(--b-subtle); border-radius: var(--r-small);
|
|
19951
|
-
background: rgba(0,0,0,0.12); margin-bottom: 2px;
|
|
19952
|
-
}
|
|
19953
|
-
.ss-fd-dir {
|
|
19954
|
-
display: flex; align-items: center; gap: 6px;
|
|
19955
|
-
padding: 5px 8px; cursor: pointer;
|
|
19956
|
-
font-size: 11px; color: var(--t-muted);
|
|
19957
|
-
transition: background 0.1s;
|
|
19958
|
-
}
|
|
19959
|
-
.ss-fd-dir:hover { background: rgba(255,255,255,0.04); color: var(--t-secondary); }
|
|
19960
|
-
.ss-fd-dir.selected {
|
|
19961
|
-
background: rgba(255,255,255,0.06);
|
|
19962
|
-
color: var(--t-bright);
|
|
19963
|
-
}
|
|
19964
|
-
.ss-fd-dir svg { opacity: 0.4; }
|
|
19965
|
-
.ss-fd-dir.selected svg { opacity: 0.7; }
|
|
19966
|
-
.ss-fd-new-folder-trigger {
|
|
19967
|
-
background: none; border: none;
|
|
19968
|
-
font-size: 10px; color: var(--t-faint);
|
|
19969
|
-
cursor: pointer; padding: 2px 0;
|
|
19970
|
-
transition: color 0.15s;
|
|
19971
|
-
}
|
|
19972
|
-
.ss-fd-new-folder-trigger:hover { color: var(--t-secondary); }
|
|
19973
|
-
|
|
19974
|
-
/* ── Inline create row ── */
|
|
19975
|
-
.ss-fd-inline-create {
|
|
19976
|
-
display: flex; gap: 8px; align-items: stretch;
|
|
19977
|
-
}
|
|
19978
|
-
.ss-fd-create-btn {
|
|
19979
|
-
padding: 0 14px; flex-shrink: 0;
|
|
19980
|
-
background: rgba(255,255,255,0.06);
|
|
19981
|
-
border: 1px solid rgba(255,255,255,0.1);
|
|
19982
|
-
border-radius: var(--r-small);
|
|
19983
|
-
color: var(--t-secondary);
|
|
19984
|
-
font-size: 11px; font-weight: 500;
|
|
19985
|
-
cursor: pointer; transition: all 0.15s ease;
|
|
19986
|
-
white-space: nowrap;
|
|
19987
|
-
}
|
|
19988
|
-
.ss-fd-create-btn:hover {
|
|
19989
|
-
background: rgba(255,255,255,0.1);
|
|
19990
|
-
border-color: rgba(255,255,255,0.16);
|
|
19991
|
-
color: var(--t-bright);
|
|
19992
|
-
}
|
|
19993
|
-
|
|
19994
|
-
/* ── Or divider ── */
|
|
19995
|
-
.ss-fd-or {
|
|
19996
|
-
text-align: center; font-size: 10px;
|
|
19997
|
-
color: var(--t-faint); letter-spacing: 0.1em;
|
|
19998
|
-
text-transform: uppercase;
|
|
19999
|
-
}
|
|
20000
|
-
|
|
20001
|
-
/* ── Upload link ── */
|
|
20002
|
-
.ss-fd-inline-upload { text-align: center; }
|
|
20003
|
-
.ss-fd-upload-link {
|
|
20004
|
-
background: none; border: none;
|
|
20005
|
-
color: var(--t-muted); font-size: 11px;
|
|
20006
|
-
cursor: pointer; padding: 4px 0;
|
|
20007
|
-
transition: color 0.15s;
|
|
20008
|
-
text-decoration: underline;
|
|
20009
|
-
text-decoration-color: rgba(255,255,255,0.12);
|
|
20010
|
-
text-underline-offset: 3px;
|
|
20011
|
-
}
|
|
20012
|
-
.ss-fd-upload-link:hover {
|
|
20013
|
-
color: var(--t-secondary);
|
|
20014
|
-
text-decoration-color: rgba(255,255,255,0.25);
|
|
20015
|
-
}
|
|
20016
|
-
|
|
20017
|
-
.ss-fd-new-folder {
|
|
20018
|
-
display: flex; align-items: center; gap: 4px;
|
|
20019
|
-
margin-bottom: 2px;
|
|
20020
|
-
}
|
|
20021
|
-
.ss-fd-btn {
|
|
20022
|
-
background: none; border: 1px solid var(--b-subtle);
|
|
20023
|
-
color: var(--t-secondary); font-size: 11px;
|
|
20024
|
-
padding: 3px 8px; border-radius: var(--r-small);
|
|
20025
|
-
cursor: pointer;
|
|
20026
|
-
}
|
|
20027
|
-
.ss-fd-btn--ok { border-color: rgba(255,255,255,0.15); color: var(--t-secondary); }
|
|
20028
|
-
.ss-fd-btn--ok:hover { border-color: rgba(255,255,255,0.25); color: var(--t-bright); }
|
|
20029
|
-
.ss-fd-btn--cancel { border: none; color: var(--t-muted); font-size: 14px; }
|
|
20030
|
-
.ss-fd-input {
|
|
20031
|
-
font-size: var(--fs-xs) !important;
|
|
20032
|
-
padding: 5px 8px !important;
|
|
20033
|
-
height: auto !important;
|
|
20034
|
-
}
|
|
20035
|
-
.ss-fd-filename-row {
|
|
20036
|
-
display: flex; align-items: center;
|
|
20037
|
-
border: 1px solid var(--b-subtle); border-radius: var(--r-small);
|
|
20038
|
-
background: rgba(0,0,0,0.15); overflow: hidden;
|
|
20039
|
-
}
|
|
20040
|
-
.ss-fd-path-prefix {
|
|
20041
|
-
font-size: 11px; color: var(--t-muted);
|
|
20042
|
-
padding: 5px 0 5px 8px; white-space: nowrap;
|
|
20043
|
-
font-family: var(--ff-mono, monospace);
|
|
20044
|
-
}
|
|
20045
|
-
.ss-fd-filename-input {
|
|
20046
|
-
border: none !important; background: none !important;
|
|
20047
|
-
border-radius: 0 !important;
|
|
20048
|
-
flex: 1; min-width: 0;
|
|
20049
|
-
font-family: var(--ff-mono, monospace) !important;
|
|
20050
|
-
}
|
|
20051
|
-
.ss-fd-footer {
|
|
20052
|
-
display: flex; justify-content: flex-end; gap: 8px;
|
|
20053
|
-
padding: 10px 16px;
|
|
20054
|
-
border-top: 1px solid var(--b-subtle);
|
|
20055
|
-
}
|
|
20056
|
-
|
|
20057
|
-
/* ── Tab bar ── */
|
|
20058
|
-
.ss-tab-bar {
|
|
20059
|
-
display: flex; align-items: stretch; gap: 0;
|
|
20060
|
-
padding: 0 4px; background: rgba(0,0,0,0.12);
|
|
20061
|
-
border-bottom: 1px solid var(--b-subtle); flex-shrink: 0;
|
|
20062
|
-
min-height: 32px; overflow-x: auto; overflow-y: hidden;
|
|
20063
|
-
scrollbar-width: none;
|
|
20064
|
-
}
|
|
20065
|
-
.ss-tab-bar::-webkit-scrollbar { display: none; }
|
|
20066
|
-
|
|
20067
|
-
.ss-tab {
|
|
20068
|
-
display: flex; align-items: center; gap: 5px;
|
|
20069
|
-
padding: 0 12px; height: 32px;
|
|
20070
|
-
font-size: 11px; font-weight: 500; color: var(--t-muted);
|
|
20071
|
-
cursor: pointer; white-space: nowrap; flex-shrink: 0;
|
|
20072
|
-
border-bottom: 2px solid transparent;
|
|
20073
|
-
transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
|
|
20074
|
-
position: relative;
|
|
20075
|
-
}
|
|
20076
|
-
.ss-tab:hover { color: var(--t-secondary); background: rgba(255,255,255,0.03); }
|
|
20077
|
-
.ss-tab.active {
|
|
20078
|
-
color: var(--t-bright);
|
|
20079
|
-
border-bottom-color: var(--accent-blue, #94a3b8);
|
|
20080
|
-
background: rgba(255,255,255,0.04);
|
|
20081
|
-
}
|
|
20082
|
-
.ss-tab.dirty .ss-tab-label { font-style: italic; }
|
|
20083
|
-
|
|
20084
|
-
.ss-tab-label {
|
|
20085
|
-
max-width: 140px; overflow: hidden; text-overflow: ellipsis;
|
|
20086
|
-
}
|
|
20087
|
-
.ss-tab-dot {
|
|
20088
|
-
width: 5px; height: 5px; border-radius: 50%;
|
|
20089
|
-
background: var(--accent-blue, #94a3b8);
|
|
20090
|
-
flex-shrink: 0;
|
|
20091
|
-
animation: ss-tab-dot-in 0.2s ease;
|
|
20092
|
-
}
|
|
20093
|
-
@keyframes ss-tab-dot-in {
|
|
20094
|
-
from { transform: scale(0); opacity: 0; }
|
|
20095
|
-
to { transform: scale(1); opacity: 1; }
|
|
20096
|
-
}
|
|
20097
|
-
.ss-tab-close {
|
|
20098
|
-
width: 16px; height: 16px; display: flex; align-items: center; justify-content: center;
|
|
20099
|
-
background: none; border: none; color: var(--t-faint); cursor: pointer;
|
|
20100
|
-
border-radius: var(--r-small); font-size: 12px; line-height: 1;
|
|
20101
|
-
padding: 0; margin-left: 2px; flex-shrink: 0;
|
|
20102
|
-
opacity: 0; transition: opacity 0.12s ease, background 0.12s ease, color 0.12s ease;
|
|
20103
|
-
}
|
|
20104
|
-
.ss-tab:hover .ss-tab-close { opacity: 1; }
|
|
20105
|
-
.ss-tab-close:hover { background: rgba(255,80,80,0.2); color: #f87171; }
|
|
20106
|
-
|
|
20107
|
-
/* Tab type dot indicator */
|
|
20108
|
-
.ss-tab-type-dot {
|
|
20109
|
-
width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
|
|
20110
|
-
}
|
|
20111
|
-
.ss-tab-type-dot.skill { background: hsla(210, 18%, 60%, 0.8); }
|
|
20112
|
-
.ss-tab-type-dot.command { background: hsla(40, 20%, 56%, 0.8); }
|
|
20113
|
-
.ss-tab-type-dot.agent { background: hsla(18, 20%, 56%, 0.8); }
|
|
20114
|
-
|
|
20115
|
-
/* Tab type styling */
|
|
20116
|
-
.ss-tab.type-skill.active { border-bottom-color: hsla(210, 18%, 60%, 0.8); }
|
|
20117
|
-
.ss-tab.type-command.active { border-bottom-color: hsla(40, 20%, 56%, 0.8); }
|
|
20118
|
-
.ss-tab.type-agent.active { border-bottom-color: hsla(18, 20%, 56%, 0.8); }
|
|
20119
|
-
.ss-tab.subfile .ss-tab-label { font-size: 10px; opacity: 0.85; }
|
|
20120
|
-
|
|
20121
|
-
/* ── Wizard ── */
|
|
20122
|
-
.ss-wizard {
|
|
20123
|
-
flex: 1; display: flex; flex-direction: column;
|
|
20124
|
-
padding: 16px 20px; overflow: hidden;
|
|
20125
|
-
}
|
|
20126
|
-
.ss-wizard-steps {
|
|
20127
|
-
display: flex; gap: 0; margin-bottom: 14px; flex-shrink: 0;
|
|
20128
|
-
}
|
|
20129
|
-
.ss-wizard-step {
|
|
20130
|
-
flex: 1; text-align: center; font-size: var(--fs-xs);
|
|
20131
|
-
color: var(--t-faint); padding: 6px 4px;
|
|
20132
|
-
border-bottom: 2px solid var(--b-subtle);
|
|
20133
|
-
transition: all 0.15s ease;
|
|
20134
|
-
}
|
|
20135
|
-
.ss-wizard-step.active {
|
|
20136
|
-
color: hsla(var(--accent-hue, 174), 60%, 70%, 1);
|
|
20137
|
-
border-bottom-color: hsla(var(--accent-hue, 174), 60%, 55%, 1);
|
|
20138
|
-
}
|
|
20139
|
-
.ss-wizard-step.done { color: var(--t-secondary); }
|
|
20140
|
-
.ss-wizard-content { flex: 1; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; }
|
|
20141
|
-
.ss-wizard-content h3 { margin: 0 0 12px; font-size: var(--fs-base); color: var(--t-bright); }
|
|
20142
|
-
.ss-wizard-hint { font-size: var(--fs-xs); color: var(--t-muted); margin: 0 0 10px; flex-shrink: 0; }
|
|
20143
|
-
.ss-wizard-nav {
|
|
20144
|
-
display: flex; justify-content: space-between; align-items: center;
|
|
20145
|
-
padding-top: 12px; border-top: 1px solid var(--b-subtle);
|
|
20146
|
-
flex-shrink: 0; margin-top: 12px;
|
|
20147
|
-
}
|
|
20148
|
-
.ss-wizard-editor { min-height: 0; flex: 1; }
|
|
20149
|
-
.ss-wiz-editor-wrap {
|
|
20150
|
-
flex: 1; display: flex; flex-direction: column;
|
|
20151
|
-
border: 1px solid var(--b-subtle); border-radius: var(--r-small);
|
|
20152
|
-
overflow: hidden; min-height: 0;
|
|
19051
|
+
SKILLS STUDIO 2.0 (public/shared/skills/studio/)
|
|
19052
|
+
══════════════════════════════════════════════
|
|
19053
|
+
A window with a rail (Library · Review · Create) and one workspace per skill (Edit · Test · Versions ·
|
|
19054
|
+
Publish). Every colour is an app token (--t-*, --s-*, --b-*, --r-*, --fs-*) or an --sx-* variable declared
|
|
19055
|
+
just below with the value DESIGN.md gives that role (Status, Semantic roles). The code editor inside it takes
|
|
19056
|
+
the --ed-* colours of the File Explorer's editor (.fe-editor-panel), the same values (a test keeps them equal).
|
|
19057
|
+
Readable secondary text is --t-secondary or brighter (AA on the panel); never smaller than 11px. The width of
|
|
19058
|
+
the window decides the layout (container queries at 900 / 760 / 560px). Dragging uses the move cursor. */
|
|
19059
|
+
|
|
19060
|
+
.skills-studio-panel.sx {
|
|
19061
|
+
--sx-ok: #86efac;
|
|
19062
|
+
--sx-warn: #fbbf24;
|
|
19063
|
+
--sx-err: #fca5a5;
|
|
19064
|
+
--sx-info: #cccccc;
|
|
19065
|
+
--sx-focus: #93c5fd;
|
|
19066
|
+
--sx-primary: #636363;
|
|
19067
|
+
--sx-primary-hover: #717171;
|
|
19068
|
+
--sx-field: rgba(0,0,0,0.25);
|
|
19069
|
+
--sx-raised: rgba(22,22,26,0.95);
|
|
19070
|
+
--sx-menu: #16161a;
|
|
19071
|
+
--sx-gold: rgba(255,215,0,0.85);
|
|
19072
|
+
--sx-meta: calc(11px * var(--font-scale, 1));
|
|
19073
|
+
--sx-rail: 220px;
|
|
19074
|
+
--ed-bg: rgb(16, 16, 18);
|
|
19075
|
+
--ed-fg: #8a8ea0;
|
|
19076
|
+
--ed-caret: var(--t-bright);
|
|
19077
|
+
--ed-selection: rgba(99,102,241,0.25);
|
|
19078
|
+
--ed-line-active: rgba(255,255,255,0.03);
|
|
19079
|
+
--ed-gutter-bg: rgba(0,0,0,0.1);
|
|
19080
|
+
--ed-gutter-fg: rgba(255,255,255,0.15);
|
|
19081
|
+
--ed-gutter-fg-active: rgba(255,255,255,0.5);
|
|
19082
|
+
--ed-gutter-border: rgba(255,255,255,0.04);
|
|
19083
|
+
--ed-kw: #cccdd6;
|
|
19084
|
+
--ed-str: #6e7a86;
|
|
19085
|
+
--ed-cm: #5a6a5a;
|
|
19086
|
+
--ed-num: #8c94a8;
|
|
19087
|
+
--ed-fn: #b0b4c4;
|
|
19088
|
+
--ed-op: #585c6c;
|
|
19089
|
+
--ed-tag: #a0a4b4;
|
|
19090
|
+
--ed-attr: #787c8c;
|
|
19091
|
+
--ed-prop: #9498a8;
|
|
19092
|
+
--ed-br: #8a7a50;
|
|
19093
|
+
--ed-match: rgba(255,255,255,0.10);
|
|
19094
|
+
--ed-match-current: rgba(99,102,241,0.35);
|
|
19095
|
+
--ed-ghost: rgba(255,255,255,0.28);
|
|
19096
|
+
--ed-add: #9fe3b4;
|
|
19097
|
+
--ed-add-bg: rgba(95,207,131,0.10);
|
|
19098
|
+
--ed-del: #f0a3a3;
|
|
19099
|
+
--ed-del-bg: rgba(239,112,112,0.10);
|
|
19100
|
+
--ed-error: var(--stg-err, #fca5a5);
|
|
19101
|
+
--ed-warn: #fbbf24;
|
|
19102
|
+
--ed-whitespace: rgba(255,255,255,0.2);
|
|
19103
|
+
--ed-minimap-box: rgba(255,255,255,0.06);
|
|
19104
|
+
--ed-minimap-box-active: rgba(255,255,255,0.1);
|
|
19105
|
+
--ed-minimap-edge: var(--b-hover);
|
|
19106
|
+
--ed-minimap-match: var(--fw-focus);
|
|
19107
|
+
--ed-guide: var(--b-light);
|
|
19108
|
+
--ed-guide-active: var(--b-visible);
|
|
19109
|
+
--ed-menu-bg: #16161a;
|
|
19110
|
+
--ed-menu-fg: var(--t-primary);
|
|
19111
|
+
--ed-menu-fg-active: var(--t-bright);
|
|
19112
|
+
--ed-menu-border: rgba(255,255,255,0.10);
|
|
19113
|
+
--ed-menu-hover: var(--s-hover);
|
|
19114
|
+
--ed-menu-radius: 8px;
|
|
19115
|
+
--ed-menu-shadow: 0 12px 32px rgba(0,0,0,0.4);
|
|
19116
|
+
position: fixed; z-index: 300000;
|
|
19117
|
+
width: min(1180px, 94vw); height: min(760px, 86vh);
|
|
19118
|
+
min-width: 380px; min-height: 320px; max-width: 100vw;
|
|
19119
|
+
display: flex; flex-direction: column;
|
|
19120
|
+
overflow: hidden;
|
|
19121
|
+
border-radius: 10px;
|
|
19122
|
+
color: var(--t-primary);
|
|
19123
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
|
|
19124
|
+
font-size: var(--fs-sm);
|
|
19125
|
+
line-height: 1.45;
|
|
19126
|
+
opacity: 0; transform: scale(0.985);
|
|
19127
|
+
transition: opacity 0.15s ease, transform 0.15s ease;
|
|
19128
|
+
container: ss / inline-size;
|
|
19129
|
+
}
|
|
19130
|
+
.skills-studio-panel.sx.open { opacity: 1; transform: none; }
|
|
19131
|
+
.skills-studio-panel.sx > .resize-handle-t,
|
|
19132
|
+
.skills-studio-panel.sx > .resize-handle-tl,
|
|
19133
|
+
.skills-studio-panel.sx > .resize-handle-tr { top: 0; z-index: 25; }
|
|
19134
|
+
/* Docked: the work area beside the side panels (as the code editor sits), not modal, not moved or resized. */
|
|
19135
|
+
.skills-studio-panel.sx.sx-docked {
|
|
19136
|
+
top: var(--frame-top) !important;
|
|
19137
|
+
left: var(--frame-left) !important;
|
|
19138
|
+
right: max(var(--frame-gap), calc(var(--right-panel-width, var(--claude-panel-width, 0px)) + var(--right-panel-gap, var(--claude-panel-gap, 0px)))) !important;
|
|
19139
|
+
bottom: var(--frame-gap) !important;
|
|
19140
|
+
width: auto !important; height: auto !important; max-height: none !important;
|
|
19141
|
+
min-width: 0;
|
|
19142
|
+
border-radius: var(--frame-radius); /* flush in the app frame: its corners are the frame's */
|
|
19143
|
+
z-index: 197;
|
|
19144
|
+
}
|
|
19145
|
+
.skills-studio-panel.sx.sx-docked > .resize-handle { display: none; }
|
|
19146
|
+
body.sx-studio-docked #topright-controls { display: none; }
|
|
19147
|
+
/* Settings → Skills: the way into Skills Studio. */
|
|
19148
|
+
.cc-skill-studio { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 14px 0 6px; }
|
|
19149
|
+
.skills-studio-panel.sx :focus-visible { outline: 2px solid var(--sx-focus); outline-offset: 2px; }
|
|
19150
|
+
.skills-studio-panel.sx [hidden] { display: none !important; }
|
|
19151
|
+
.sx-sr {
|
|
19152
|
+
position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
|
|
19153
|
+
clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
|
|
19154
|
+
}
|
|
19155
|
+
.sx .sx-i { flex: none; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
|
|
19156
|
+
.sx .sx-spacer { flex: 1 1 auto; }
|
|
19157
|
+
.sx .sx-dim { color: var(--t-secondary); }
|
|
19158
|
+
.sx .sx-mono { font-family: var(--ff-mono, 'JetBrains Mono', ui-monospace, monospace); font-size: var(--sx-meta); }
|
|
19159
|
+
.sx .sx-block { display: block; }
|
|
19160
|
+
.sx .sx-ok-text { color: var(--sx-ok); }
|
|
19161
|
+
.sx .sx-warn-text { color: var(--sx-warn); }
|
|
19162
|
+
.sx .sx-err-text { color: var(--sx-err); }
|
|
19163
|
+
.sx kbd {
|
|
19164
|
+
font: 400 var(--sx-meta)/1 var(--ff-mono, 'JetBrains Mono', ui-monospace, monospace); color: var(--t-secondary);
|
|
19165
|
+
padding: 2px 4px; border: 1px solid var(--b-light); border-radius: 4px;
|
|
20153
19166
|
}
|
|
20154
|
-
.ss-wiz-editor-wrap .ss-md-toolbar { border-radius: 0; }
|
|
20155
|
-
.ss-wiz-editor-wrap .ss-md-editor { border-radius: 0; }
|
|
20156
|
-
.ss-wizard-preview { flex: 1; min-height: 0; }
|
|
20157
19167
|
|
|
20158
|
-
/* ──
|
|
20159
|
-
.
|
|
19168
|
+
/* ── Header ── */
|
|
19169
|
+
.sx-head {
|
|
19170
|
+
flex: none; min-height: max(44px, var(--fw-header-min-height, 44px));
|
|
20160
19171
|
display: flex; align-items: center; gap: 8px;
|
|
20161
|
-
|
|
20162
|
-
|
|
20163
|
-
|
|
20164
|
-
|
|
20165
|
-
flex: 1; display: flex; gap: 0; min-height: 0; overflow: hidden;
|
|
20166
|
-
}
|
|
20167
|
-
.ss-wiz-step4-body .ss-wiz-editor-wrap { flex: 1; min-width: 0; }
|
|
20168
|
-
|
|
20169
|
-
/* ── Preset toggle button ── */
|
|
20170
|
-
.ss-preset-toggle {
|
|
20171
|
-
margin-left: auto; padding: 2px 10px;
|
|
20172
|
-
font-size: 10px; font-weight: 500;
|
|
20173
|
-
background: none; border: 1px solid var(--b-subtle);
|
|
20174
|
-
border-radius: var(--r-small); color: var(--t-muted);
|
|
20175
|
-
cursor: pointer; transition: all 0.15s ease;
|
|
20176
|
-
text-transform: uppercase; letter-spacing: 0.3px;
|
|
20177
|
-
}
|
|
20178
|
-
.ss-preset-toggle:hover { color: var(--t-secondary); border-color: var(--b-light); }
|
|
20179
|
-
.ss-preset-toggle.active {
|
|
20180
|
-
background: hsla(var(--accent-hue, 215), var(--accent-saturation, 16%), 50%, 0.1);
|
|
20181
|
-
border-color: hsla(var(--accent-hue, 215), var(--accent-saturation, 16%), var(--accent-lightness, 65%), 0.35);
|
|
20182
|
-
color: hsla(var(--accent-hue, 215), var(--accent-saturation, 16%), var(--accent-lightness, 65%), 1);
|
|
20183
|
-
}
|
|
20184
|
-
|
|
20185
|
-
/* ── Preset side panel ── */
|
|
20186
|
-
.ss-preset-panel {
|
|
20187
|
-
width: 210px; flex-shrink: 0;
|
|
20188
|
-
overflow-y: auto; overflow-x: hidden;
|
|
20189
|
-
display: flex; flex-direction: column;
|
|
20190
|
-
background: rgba(0,0,0,0.04);
|
|
20191
|
-
transition: width 0.2s ease, opacity 0.2s ease;
|
|
19172
|
+
padding: 0 10px 0 14px;
|
|
19173
|
+
background: var(--fw-header, var(--sx-raised));
|
|
19174
|
+
border-bottom: 1px solid var(--fw-separator, var(--b-subtle));
|
|
19175
|
+
user-select: none;
|
|
20192
19176
|
}
|
|
20193
|
-
.
|
|
20194
|
-
|
|
19177
|
+
.sx-head.drag-handle { cursor: move; }
|
|
19178
|
+
.sx-head-mark { display: inline-flex; color: var(--t-primary); }
|
|
19179
|
+
.sx-title { margin: 0; font: 600 calc(15px * var(--font-scale, 1))/1.3 var(--ff-heading); color: var(--t-bright); white-space: nowrap; }
|
|
19180
|
+
.sx-head-note { min-width: 0; font-size: var(--fs-xs); color: var(--t-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19181
|
+
.sx-note-warn { color: var(--sx-warn); }
|
|
19182
|
+
|
|
19183
|
+
/* ── Buttons ── */
|
|
19184
|
+
.sx .sx-btn {
|
|
19185
|
+
height: 28px; padding: 0 12px;
|
|
19186
|
+
display: inline-flex; align-items: center; justify-content: center; gap: 6px;
|
|
19187
|
+
border-radius: 5px; border: 1px solid var(--b-light);
|
|
19188
|
+
background: var(--s-light); color: var(--t-bright);
|
|
19189
|
+
font-weight: 500; font-size: var(--fs-xs); line-height: 1; font-family: inherit;
|
|
19190
|
+
white-space: nowrap; cursor: pointer; text-decoration: none;
|
|
19191
|
+
transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
|
|
19192
|
+
}
|
|
19193
|
+
.sx .sx-btn:hover:not(:disabled) { background: var(--s-hover); border-color: var(--b-hover); }
|
|
19194
|
+
.sx .sx-btn:disabled { opacity: 0.5; cursor: default; }
|
|
19195
|
+
.sx .sx-btn--primary { background: var(--sx-primary); border-color: transparent; color: #ffffff; }
|
|
19196
|
+
.sx .sx-btn--primary:hover:not(:disabled) { background: var(--sx-primary-hover); border-color: transparent; }
|
|
19197
|
+
.sx .sx-btn--primary kbd { color: #ffffff; border-color: var(--b-visible); }
|
|
19198
|
+
.sx .sx-btn--ghost { background: transparent; border-color: transparent; color: var(--t-primary); }
|
|
19199
|
+
.sx .sx-btn--ghost:hover:not(:disabled) { color: var(--t-bright); background: var(--s-subtle); }
|
|
19200
|
+
.sx .sx-btn--danger:hover:not(:disabled) { color: var(--sx-err); border-color: color-mix(in oklab, var(--sx-err) 40%, transparent); }
|
|
19201
|
+
.sx .sx-btn--sm { height: 24px; padding: 0 9px; }
|
|
19202
|
+
.sx .sx-btn--soon { border-style: dashed; }
|
|
19203
|
+
.sx .sx-soon {
|
|
19204
|
+
margin-left: 2px; padding: 1px 6px; border-radius: 6px;
|
|
19205
|
+
font-size: var(--sx-meta); font-weight: 500; color: var(--sx-gold);
|
|
19206
|
+
border: 1px solid color-mix(in oklab, var(--sx-gold) 45%, transparent);
|
|
19207
|
+
}
|
|
19208
|
+
.sx .sx-icon-btn {
|
|
19209
|
+
width: 28px; height: 28px; padding: 0; flex: none;
|
|
19210
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
19211
|
+
border: 1px solid transparent; border-radius: 5px;
|
|
19212
|
+
background: transparent; color: var(--t-primary); cursor: pointer;
|
|
19213
|
+
}
|
|
19214
|
+
.sx .sx-icon-btn:hover:not(:disabled) { background: var(--s-hover); color: var(--t-bright); }
|
|
19215
|
+
.sx .sx-icon-btn[aria-pressed="true"] { background: var(--s-active); color: var(--t-bright); border-color: var(--b-light); }
|
|
19216
|
+
.sx .sx-icon-btn:disabled { opacity: 0.4; cursor: default; }
|
|
19217
|
+
.sx .sx-icon-btn--sm { width: 22px; height: 22px; }
|
|
19218
|
+
.sx .sx-close:hover:not(:disabled) { color: var(--sx-err); }
|
|
19219
|
+
.sx .sx-link {
|
|
19220
|
+
display: inline-flex; align-items: center; gap: 4px; padding: 0;
|
|
19221
|
+
border: 0; background: none; color: var(--t-primary); font: inherit; cursor: pointer;
|
|
19222
|
+
text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--b-visible);
|
|
19223
|
+
}
|
|
19224
|
+
.sx .sx-link:hover { color: var(--t-bright); }
|
|
19225
|
+
|
|
19226
|
+
/* ── Body, rail ── */
|
|
19227
|
+
.sx-body { flex: 1; min-height: 0; display: flex; }
|
|
19228
|
+
.sx-rail {
|
|
19229
|
+
flex: none; width: var(--sx-rail);
|
|
19230
|
+
display: flex; flex-direction: column; gap: 12px;
|
|
19231
|
+
padding: 8px; overflow-y: auto;
|
|
19232
|
+
border-right: 1px solid var(--b-subtle);
|
|
20195
19233
|
}
|
|
20196
|
-
|
|
20197
|
-
|
|
20198
|
-
|
|
20199
|
-
display: flex; align-items: center; gap:
|
|
20200
|
-
|
|
20201
|
-
font-size:
|
|
20202
|
-
|
|
19234
|
+
.sx-rail-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
|
|
19235
|
+
.sx .sx-rail-item {
|
|
19236
|
+
width: 100%; height: 32px; padding: 0 10px;
|
|
19237
|
+
display: flex; align-items: center; gap: 10px;
|
|
19238
|
+
border: 0; border-radius: 8px; background: transparent;
|
|
19239
|
+
color: var(--t-primary); font-weight: 500; font-size: var(--fs-sm); line-height: 1; font-family: inherit; text-align: left; cursor: pointer;
|
|
19240
|
+
}
|
|
19241
|
+
.sx .sx-rail-item:hover { background: var(--s-hover); color: var(--t-bright); }
|
|
19242
|
+
.sx .sx-rail-item[aria-current="page"] { background: var(--s-active); color: var(--t-bright); }
|
|
19243
|
+
.sx-rail-icon { display: inline-flex; }
|
|
19244
|
+
.sx-rail-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19245
|
+
.sx-rail-count { margin-left: auto; font: 500 var(--sx-meta)/1 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-secondary); }
|
|
19246
|
+
.sx-rail-group-label { margin: 8px 10px 4px; font-size: var(--sx-meta); font-weight: 600; letter-spacing: 0.02em; color: var(--t-secondary); }
|
|
19247
|
+
.sx .sx-rail-view {
|
|
19248
|
+
width: 100%; height: 28px; padding: 0 10px;
|
|
19249
|
+
display: flex; align-items: center; gap: 8px;
|
|
19250
|
+
border: 0; border-radius: 5px; background: transparent;
|
|
19251
|
+
color: var(--t-secondary); font-size: var(--fs-xs); font-family: inherit; text-align: left; cursor: pointer;
|
|
19252
|
+
}
|
|
19253
|
+
.sx .sx-rail-view:hover { background: var(--s-subtle); color: var(--t-bright); }
|
|
19254
|
+
.sx .sx-rail-view[aria-current="true"] { background: var(--s-light); color: var(--t-bright); }
|
|
19255
|
+
.sx-rail-foot { margin-top: auto; padding: 8px 4px 2px; border-top: 1px solid var(--b-subtle); display: grid; gap: 2px; }
|
|
19256
|
+
.sx .sx-rt-row {
|
|
19257
|
+
display: flex; align-items: center; gap: 8px; height: 26px; padding: 0 6px;
|
|
19258
|
+
border: 0; border-radius: 5px; background: transparent; cursor: pointer;
|
|
19259
|
+
font-size: var(--fs-xs); font-family: inherit; color: var(--t-secondary); text-align: left;
|
|
19260
|
+
}
|
|
19261
|
+
.sx .sx-rt-row:hover { background: var(--s-subtle); color: var(--t-bright); }
|
|
19262
|
+
.sx-rt-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; border: 1px solid var(--b-visible); }
|
|
19263
|
+
.sx-rt-dot.sx-rt-ready { background: var(--sx-ok); border-color: transparent; }
|
|
19264
|
+
.sx-rt-dot.sx-rt-bridge { background: var(--sx-warn); border-color: transparent; border-radius: 1px; transform: rotate(45deg) scale(0.85); }
|
|
19265
|
+
.sx-rt-dot.sx-rt-empty, .sx-rt-dot.sx-rt-unknown { background: transparent; }
|
|
19266
|
+
.sx-rt-state { margin-left: auto; font-size: var(--sx-meta); }
|
|
19267
|
+
.sx.sx-rail-collapsed .sx-rail { --sx-rail: 56px; padding: 8px 6px; }
|
|
19268
|
+
.sx.sx-rail-collapsed .sx-rail :is(.sx-rail-label, .sx-rail-count, .sx-rail-groups, .sx-rt-name, .sx-rt-state) { display: none; }
|
|
19269
|
+
.sx.sx-rail-collapsed .sx-rail-item { justify-content: center; padding: 0; }
|
|
19270
|
+
.sx.sx-rail-collapsed .sx-rt-row { justify-content: center; }
|
|
19271
|
+
|
|
19272
|
+
/* ── Main and places ──
|
|
19273
|
+
min-height: 0 keeps the main area inside the window when the body is a column (a narrow window): without it a
|
|
19274
|
+
flex item is as tall as its content, the window clips it (overflow: hidden) and nothing in it scrolls. */
|
|
19275
|
+
.sx-main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; position: relative; }
|
|
19276
|
+
.sx-place { flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
19277
|
+
.sx-place-head {
|
|
19278
|
+
flex: none; padding: 12px 16px;
|
|
19279
|
+
display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
|
|
20203
19280
|
border-bottom: 1px solid var(--b-subtle);
|
|
20204
|
-
user-select: none; flex-shrink: 0;
|
|
20205
19281
|
}
|
|
20206
|
-
.
|
|
20207
|
-
.
|
|
20208
|
-
.
|
|
20209
|
-
.
|
|
20210
|
-
|
|
20211
|
-
|
|
20212
|
-
|
|
19282
|
+
.sx-place-title { margin: 0 8px 0 0; font: 600 calc(15px * var(--font-scale, 1))/1.3 var(--ff-heading); color: var(--t-bright); }
|
|
19283
|
+
.sx-place-title:focus { outline: none; }
|
|
19284
|
+
.sx-place-sub { margin: 0; font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19285
|
+
.sx-place-scroll { flex: 1; min-height: 0; overflow: auto; }
|
|
19286
|
+
.sx-place-notices:empty { display: none; }
|
|
19287
|
+
.sx-place-notices { padding: 8px 16px 0; display: grid; gap: 6px; }
|
|
19288
|
+
.sx-section-title { margin: 0; font: 600 var(--fs-sm)/1.3 var(--ff-heading); color: var(--t-bright); }
|
|
19289
|
+
.sx .sx-help { margin: 0; font-size: var(--fs-xs); color: var(--t-secondary); line-height: 1.45; }
|
|
19290
|
+
.sx .sx-explain { margin: 0; font-size: var(--fs-xs); color: var(--t-secondary); max-width: 68ch; }
|
|
19291
|
+
.sx .sx-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19292
|
+
.sx .sx-plain-list { margin: 0; padding-left: 18px; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19293
|
+
.sx .sx-plain-list li + li { margin-top: 2px; }
|
|
19294
|
+
.sx .sx-note {
|
|
19295
|
+
margin: 0; padding: 8px 10px; border-radius: 8px;
|
|
19296
|
+
font-size: var(--fs-xs); line-height: 1.45; color: var(--t-primary);
|
|
19297
|
+
background: var(--s-subtle); border: 1px solid var(--b-subtle);
|
|
20213
19298
|
}
|
|
20214
|
-
.
|
|
20215
|
-
|
|
19299
|
+
.sx .sx-note--warn { border-color: color-mix(in oklab, var(--sx-warn) 35%, transparent); background: color-mix(in oklab, var(--sx-warn) 6%, transparent); }
|
|
19300
|
+
.sx .sx-notice {
|
|
19301
|
+
display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
|
|
19302
|
+
padding: 8px 12px; border-radius: 8px; font-size: var(--fs-xs);
|
|
19303
|
+
border: 1px solid var(--b-light); background: var(--s-subtle); color: var(--t-primary);
|
|
19304
|
+
}
|
|
19305
|
+
.sx .sx-notice--info > .sx-i { color: var(--sx-info); }
|
|
19306
|
+
.sx-notice-text { flex: 1 1 260px; }
|
|
19307
|
+
.sx .sx-notice--warn > .sx-i { color: var(--sx-warn); }
|
|
19308
|
+
/* Publish: an OpenCode tile that sees the skill through Claude Code's folder (no second copy unless ticked). */
|
|
19309
|
+
.sx .sx-tile.is-via { border-style: dashed; }
|
|
19310
|
+
.sx-tile-state--via-claude { color: var(--sx-info); }
|
|
19311
|
+
/* A plan line whose runtime turns the skill off in its settings: the reason, and the owner's one-click fix. */
|
|
19312
|
+
.sx .sx-eligibility .sx-btn { margin-left: 6px; vertical-align: baseline; }
|
|
19313
|
+
/* Review: one tile per runtime, where the card's install goes. */
|
|
19314
|
+
.sx .sx-dest-tiles { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 0 0; }
|
|
19315
|
+
.sx .sx-dest-tile {
|
|
19316
|
+
display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px;
|
|
19317
|
+
border: 1px solid var(--b-light); font-size: var(--sx-meta); color: var(--t-secondary); line-height: 1.4;
|
|
19318
|
+
}
|
|
19319
|
+
.sx .sx-dest-tile.is-on { color: var(--sx-ok); border-color: color-mix(in oklab, var(--sx-ok) 40%, transparent); }
|
|
19320
|
+
.sx .sx-dest-tile > .sx-i { width: 12px; height: 12px; }
|
|
19321
|
+
/* Settings → Skills → Skill folders: a bridge file offered to the owner (ticked, it moves too). */
|
|
19322
|
+
.stg-skill-folders-offer { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; }
|
|
19323
|
+
.stg-skill-folders-offer > input { margin-top: 2px; flex: 0 0 auto; }
|
|
19324
|
+
#stg-skill-folders-plan li[data-tone="offer"] { color: var(--t-primary); }
|
|
19325
|
+
.sx .sx-empty {
|
|
19326
|
+
margin: auto; padding: 32px 24px; max-width: 520px;
|
|
19327
|
+
display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
|
|
19328
|
+
color: var(--t-primary); font-size: var(--fs-xs);
|
|
20216
19329
|
}
|
|
20217
|
-
.
|
|
19330
|
+
.sx .sx-empty p { margin: 0; }
|
|
19331
|
+
.sx-empty-title { margin: 0; font: 600 var(--fs-sm)/1.3 var(--ff-heading); color: var(--t-bright); }
|
|
19332
|
+
.sx .sx-placeholder { margin: 32px auto; padding: 0 24px; max-width: 560px; display: grid; gap: 10px; justify-items: start; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19333
|
+
.sx .sx-placeholder p { margin: 0; }
|
|
19334
|
+
.sx-placeholder-icon { display: inline-flex; padding: 8px; border-radius: 8px; border: 1px solid var(--b-light); color: var(--t-primary); }
|
|
19335
|
+
.sx-placeholder-title { margin: 0; font: 600 calc(15px * var(--font-scale, 1))/1.3 var(--ff-heading); color: var(--t-bright); }
|
|
19336
|
+
.sx-placeholder-list { color: var(--t-primary); }
|
|
20218
19337
|
|
|
20219
|
-
/* ──
|
|
20220
|
-
.
|
|
20221
|
-
padding: 6px 8px;
|
|
20222
|
-
border: 1px solid
|
|
20223
|
-
|
|
20224
|
-
}
|
|
20225
|
-
.
|
|
20226
|
-
|
|
20227
|
-
}
|
|
20228
|
-
.
|
|
20229
|
-
.
|
|
20230
|
-
.
|
|
20231
|
-
|
|
20232
|
-
|
|
19338
|
+
/* ── Fields ── */
|
|
19339
|
+
.sx .sx-input {
|
|
19340
|
+
width: 100%; padding: 6px 8px; box-sizing: border-box;
|
|
19341
|
+
background: var(--sx-field); border: 1px solid var(--b-light); border-radius: 5px;
|
|
19342
|
+
color: var(--t-bright); font-weight: 400; font-size: var(--fs-xs); line-height: 1.45; font-family: inherit;
|
|
19343
|
+
}
|
|
19344
|
+
.sx .sx-input::placeholder { color: var(--t-secondary); }
|
|
19345
|
+
.sx .sx-input:focus { border-color: var(--b-visible); outline: none; }
|
|
19346
|
+
.sx .sx-input:focus-visible { outline: 2px solid var(--sx-focus); outline-offset: 1px; }
|
|
19347
|
+
.sx .sx-input[aria-invalid="true"] { border-color: color-mix(in oklab, var(--sx-err) 60%, transparent); }
|
|
19348
|
+
.sx .sx-input:disabled { opacity: 0.6; }
|
|
19349
|
+
.sx .sx-input--sm { padding: 4px 8px; }
|
|
19350
|
+
.sx .sx-textarea { resize: vertical; min-height: 60px; }
|
|
19351
|
+
.sx .sx-field { display: grid; gap: 4px; margin: 0; padding: 0; border: 0; min-width: 0; }
|
|
19352
|
+
.sx .sx-field-label { display: flex; justify-content: space-between; gap: 8px; font-size: var(--fs-xs); font-weight: 500; color: var(--t-primary); padding: 0; }
|
|
19353
|
+
.sx .sx-field-note { margin: 0; font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19354
|
+
/* A note that says what is wrong keeps its colour (the note's grey above would win over .sx-err-text otherwise). */
|
|
19355
|
+
.sx .sx-field-note.sx-err-text { color: var(--sx-err); }
|
|
19356
|
+
.sx .sx-field-note.sx-warn-text { color: var(--sx-warn); }
|
|
19357
|
+
.sx .sx-count { font: 400 var(--sx-meta)/1.4 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-secondary); }
|
|
19358
|
+
.sx .sx-choices { display: grid; gap: 4px; }
|
|
19359
|
+
.sx .sx-choice { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-xs); color: var(--t-primary); cursor: pointer; }
|
|
19360
|
+
.sx .sx-choice input { accent-color: var(--sx-primary); margin: 0; }
|
|
19361
|
+
.sx .sx-check { width: 14px; height: 14px; accent-color: var(--sx-primary); margin: 0; cursor: pointer; }
|
|
19362
|
+
.sx .sx-dd .cc-dropdown-trigger { min-height: 28px; }
|
|
19363
|
+
.sx .sx-filter { display: inline-flex; align-items: center; gap: 6px; }
|
|
19364
|
+
.sx .sx-filter-key { font-size: var(--fs-xs); color: var(--t-secondary); white-space: nowrap; }
|
|
19365
|
+
.sx .sx-search { position: relative; flex: 1 1 200px; max-width: 320px; }
|
|
19366
|
+
.sx .sx-search > .sx-i { position: absolute; left: 9px; top: 7px; color: var(--t-secondary); pointer-events: none; }
|
|
19367
|
+
.sx .sx-search input {
|
|
19368
|
+
width: 100%; height: 28px; padding: 0 10px 0 30px; box-sizing: border-box;
|
|
19369
|
+
background: var(--sx-field); border: 1px solid var(--b-light); border-radius: 5px;
|
|
19370
|
+
color: var(--t-bright); font-size: var(--fs-xs); font-family: inherit;
|
|
19371
|
+
}
|
|
19372
|
+
.sx .sx-search input::placeholder { color: var(--t-secondary); }
|
|
19373
|
+
.sx .sx-seg { display: inline-flex; border: 1px solid var(--b-light); border-radius: 5px; overflow: hidden; width: max-content; }
|
|
19374
|
+
.sx .sx-seg button {
|
|
19375
|
+
height: 26px; padding: 0 12px; border: 0; background: transparent;
|
|
19376
|
+
font-size: var(--fs-xs); font-family: inherit; color: var(--t-secondary); cursor: pointer;
|
|
19377
|
+
}
|
|
19378
|
+
.sx .sx-seg button[aria-pressed="true"] { background: var(--s-active); color: var(--t-bright); }
|
|
19379
|
+
.sx .sx-details > summary { cursor: pointer; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19380
|
+
.sx .sx-details > summary:hover { color: var(--t-bright); }
|
|
19381
|
+
.sx .sx-pre {
|
|
19382
|
+
margin: 0; padding: 8px 10px; border-radius: 5px; overflow: auto; max-height: 260px;
|
|
19383
|
+
background: var(--sx-field); border: 1px solid var(--b-subtle);
|
|
19384
|
+
font: 400 var(--fs-xs)/1.55 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-bright);
|
|
19385
|
+
white-space: pre-wrap; overflow-wrap: anywhere;
|
|
19386
|
+
}
|
|
19387
|
+
.sx .sx-pre--sm { max-height: 120px; padding: 6px 8px; }
|
|
19388
|
+
.sx .sx-meter { display: inline-block; width: 56px; height: 6px; border-radius: 3px; background: var(--s-medium); vertical-align: middle; overflow: hidden; }
|
|
19389
|
+
.sx .sx-meter > i { display: block; height: 100%; background: var(--t-secondary); }
|
|
19390
|
+
.sx .is-over .sx-meter > i { background: var(--sx-warn); }
|
|
19391
|
+
.sx .sx-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--sx-gold); flex: none; }
|
|
19392
|
+
|
|
19393
|
+
/* ── Library ── */
|
|
19394
|
+
.sx-summary { margin: 0; padding: 8px 16px 0; font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19395
|
+
.sx-lib { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; margin-top: 8px; font-size: var(--fs-xs); }
|
|
19396
|
+
.sx-lib th {
|
|
19397
|
+
position: sticky; top: 0; z-index: 1;
|
|
19398
|
+
padding: 8px 10px; text-align: left;
|
|
19399
|
+
font-size: var(--sx-meta); font-weight: 600; letter-spacing: 0.02em; color: var(--t-secondary);
|
|
19400
|
+
background: var(--sx-raised); border-bottom: 1px solid var(--b-subtle);
|
|
19401
|
+
}
|
|
19402
|
+
.sx-lib td { padding: 8px 10px; border-bottom: 1px solid var(--b-subtle); vertical-align: middle; overflow-wrap: anywhere; }
|
|
19403
|
+
.sx-lib tbody tr:hover td { background: var(--s-subtle); }
|
|
19404
|
+
.sx-lib tbody tr.is-selected td { background: var(--s-light); }
|
|
19405
|
+
.sx-lib .sx-col-check { width: 40px; padding-left: 16px; }
|
|
19406
|
+
.sx-lib th.sx-col-kind { width: 96px; }
|
|
19407
|
+
.sx-lib th.sx-col-source { width: 150px; }
|
|
19408
|
+
.sx-lib th.sx-col-health { width: 190px; }
|
|
19409
|
+
.sx-lib th.sx-col-rt { width: 96px; }
|
|
19410
|
+
.sx-lib th.sx-col-updated { width: 84px; }
|
|
19411
|
+
.sx-col-name { min-width: 0; }
|
|
19412
|
+
.sx .sx-name-btn {
|
|
19413
|
+
display: block; max-width: 100%; padding: 0; border: 0; background: none; cursor: pointer;
|
|
19414
|
+
font-weight: 600; font-size: var(--fs-sm); line-height: 1.3; font-family: inherit; color: var(--t-bright); text-align: left;
|
|
19415
|
+
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
20233
19416
|
}
|
|
20234
|
-
.
|
|
20235
|
-
|
|
19417
|
+
.sx .sx-name-btn:hover { text-decoration: underline; text-underline-offset: 3px; }
|
|
19418
|
+
.sx-desc { display: block; margin-top: 2px; color: var(--t-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
19419
|
+
.sx-source { display: block; color: var(--t-primary); }
|
|
19420
|
+
.sx-source-detail { display: block; color: var(--t-secondary); font-size: var(--sx-meta); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19421
|
+
.sx .sx-health {
|
|
19422
|
+
display: inline-flex; align-items: center; gap: 6px; max-width: 100%;
|
|
19423
|
+
min-height: 22px; padding: 2px 8px; line-height: 1.3; box-sizing: border-box;
|
|
19424
|
+
border: 1px solid var(--b-light); border-radius: 6px;
|
|
19425
|
+
font-size: var(--fs-xs); font-weight: 500;
|
|
20236
19426
|
}
|
|
20237
|
-
.
|
|
20238
|
-
|
|
20239
|
-
|
|
20240
|
-
|
|
19427
|
+
.sx .sx-health > span:first-of-type { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19428
|
+
.sx .sx-health--err { color: var(--sx-err); border-color: color-mix(in oklab, var(--sx-err) 40%, transparent); background: color-mix(in oklab, var(--sx-err) 10%, transparent); }
|
|
19429
|
+
.sx .sx-health--warn { color: var(--sx-warn); border-color: color-mix(in oklab, var(--sx-warn) 40%, transparent); background: color-mix(in oklab, var(--sx-warn) 8%, transparent); }
|
|
19430
|
+
.sx .sx-health--ok { color: var(--sx-ok); border-color: color-mix(in oklab, var(--sx-ok) 35%, transparent); background: color-mix(in oklab, var(--sx-ok) 8%, transparent); }
|
|
19431
|
+
.sx .sx-health--info { color: var(--sx-info); border-color: var(--b-visible); background: var(--s-light); }
|
|
19432
|
+
.sx .sx-health--off { color: var(--t-secondary); }
|
|
19433
|
+
.sx-health-more { margin-left: 2px; font: 500 var(--sx-meta)/1 var(--ff-mono, 'JetBrains Mono', monospace); opacity: 0.85; }
|
|
19434
|
+
.sx-rts { display: inline-flex; gap: 4px; }
|
|
19435
|
+
.sx .sx-rt {
|
|
19436
|
+
width: 24px; height: 22px; display: inline-grid; place-items: center;
|
|
19437
|
+
border: 1px solid var(--b-light); border-radius: 5px;
|
|
19438
|
+
font: 500 var(--sx-meta)/1 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-secondary);
|
|
19439
|
+
}
|
|
19440
|
+
.sx .sx-rt--installed { color: var(--t-bright); border-color: var(--b-visible); background: var(--s-light); }
|
|
19441
|
+
.sx .sx-rt--present { color: var(--t-primary); border-color: var(--b-hover); }
|
|
19442
|
+
.sx .sx-rt--outdated { color: var(--sx-warn); border-color: color-mix(in oklab, var(--sx-warn) 45%, transparent); }
|
|
19443
|
+
.sx .sx-rt--bridge { color: var(--sx-warn); border-style: dashed; border-color: color-mix(in oklab, var(--sx-warn) 45%, transparent); }
|
|
19444
|
+
.sx .sx-rt--none { border-style: dashed; color: var(--t-secondary); opacity: 0.8; }
|
|
19445
|
+
.sx-bulk {
|
|
19446
|
+
flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
|
|
19447
|
+
padding: 8px 16px; background: var(--sx-raised); border-top: 1px solid var(--b-light);
|
|
19448
|
+
}
|
|
19449
|
+
.sx-bulk-count { font-weight: 600; margin-right: 8px; color: var(--t-bright); font-size: var(--fs-xs); }
|
|
19450
|
+
|
|
19451
|
+
/* ── Menus ── */
|
|
19452
|
+
.sx .sx-menu {
|
|
19453
|
+
position: absolute; right: 16px; z-index: 30; margin-top: 34px; min-width: 200px;
|
|
19454
|
+
padding: 6px; display: grid; gap: 1px;
|
|
19455
|
+
background: var(--sx-menu); border: 1px solid var(--b-light); border-radius: 8px;
|
|
19456
|
+
box-shadow: 0 12px 32px rgba(0,0,0,0.4);
|
|
19457
|
+
}
|
|
19458
|
+
.sx .sx-menu-item {
|
|
19459
|
+
padding: 7px 10px; border: 0; border-radius: 5px; background: transparent; text-align: left;
|
|
19460
|
+
font-size: var(--fs-xs); font-family: inherit; color: var(--t-primary); cursor: pointer;
|
|
19461
|
+
}
|
|
19462
|
+
.sx .sx-menu-item:hover, .sx .sx-menu-item:focus-visible { background: var(--s-hover); color: var(--t-bright); }
|
|
19463
|
+
.sx .sx-menu-item--danger:hover { color: var(--sx-err); }
|
|
19464
|
+
|
|
19465
|
+
/* ── Workspace ── */
|
|
19466
|
+
.sx-ws-head { flex: none; padding: 8px 16px 0; display: grid; gap: 8px; position: relative; }
|
|
19467
|
+
.sx-crumb { display: flex; align-items: center; gap: 6px; font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19468
|
+
.sx-ws-title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19469
|
+
.sx-ws-name { margin: 0; font: 600 calc(18px * var(--font-scale, 1))/1.3 var(--ff-heading); color: var(--t-bright); overflow-wrap: anywhere; }
|
|
19470
|
+
.sx-ws-name:focus { outline: none; }
|
|
19471
|
+
.sx .sx-tag { font-size: var(--fs-xs); color: var(--t-primary); padding: 2px 8px; border: 1px solid var(--b-light); border-radius: 6px; max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19472
|
+
.sx-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--b-subtle); overflow-x: auto; }
|
|
19473
|
+
.sx .sx-tab {
|
|
19474
|
+
height: 32px; padding: 0 12px; display: inline-flex; align-items: center; gap: 6px;
|
|
19475
|
+
border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; cursor: pointer;
|
|
19476
|
+
font-weight: 500; font-size: var(--fs-xs); line-height: 1; font-family: inherit; color: var(--t-secondary); white-space: nowrap;
|
|
19477
|
+
}
|
|
19478
|
+
.sx .sx-tab:hover { color: var(--t-bright); }
|
|
19479
|
+
.sx .sx-tab[aria-selected="true"] { color: var(--t-bright); border-bottom-color: var(--t-bright); }
|
|
19480
|
+
.sx-banners:empty { display: none; }
|
|
19481
|
+
.sx-banners { display: grid; gap: 6px; padding: 8px 16px 0; }
|
|
19482
|
+
.sx .sx-banner {
|
|
19483
|
+
display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
|
|
19484
|
+
padding: 8px 12px; border-radius: 8px; font-size: var(--fs-xs); color: var(--t-primary);
|
|
19485
|
+
border: 1px solid var(--b-light); background: var(--s-subtle);
|
|
19486
|
+
}
|
|
19487
|
+
.sx .sx-banner > .sx-i { color: var(--t-primary); }
|
|
19488
|
+
.sx .sx-banner--warn, .sx .sx-banner--update { border-color: color-mix(in oklab, var(--sx-warn) 35%, transparent); background: color-mix(in oklab, var(--sx-warn) 7%, transparent); }
|
|
19489
|
+
.sx .sx-banner--warn > .sx-i, .sx .sx-banner--update > .sx-i { color: var(--sx-warn); }
|
|
19490
|
+
.sx .sx-banner--draft > .sx-i { color: var(--sx-gold); }
|
|
19491
|
+
.sx-banner-text { flex: 1 1 260px; }
|
|
19492
|
+
.sx-tabpanel { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
|
|
19493
|
+
.sx-tabpanel:focus { outline: none; }
|
|
19494
|
+
|
|
19495
|
+
/* ── Edit ── */
|
|
19496
|
+
.sx-edit { flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
19497
|
+
.sx-pane-switch { display: none; margin: 8px 16px 0; border: 1px solid var(--b-light); border-radius: 5px; overflow: hidden; width: max-content; }
|
|
19498
|
+
.sx-pane-switch button { height: 28px; padding: 0 12px; border: 0; background: transparent; font-size: var(--fs-xs); font-family: inherit; color: var(--t-secondary); cursor: pointer; }
|
|
19499
|
+
.sx-pane-switch button[aria-pressed="true"] { background: var(--s-active); color: var(--t-bright); }
|
|
19500
|
+
.sx-panes { flex: 1; min-height: 0; display: grid; grid-template-columns: 200px minmax(0, 1fr) 300px; margin-top: 8px; border-top: 1px solid var(--b-subtle); }
|
|
19501
|
+
.sx-pane { min-height: 0; min-width: 0; overflow: auto; }
|
|
19502
|
+
.sx-pane + .sx-pane { border-left: 1px solid var(--b-subtle); }
|
|
19503
|
+
.sx-pane--doc { display: flex; flex-direction: column; overflow: hidden; }
|
|
19504
|
+
.sx-pane-label { margin: 0; padding: 8px 12px 4px; font-size: var(--sx-meta); font-weight: 600; letter-spacing: 0.02em; color: var(--t-secondary); }
|
|
19505
|
+
.sx-tree { list-style: none; margin: 0; padding: 0 4px 8px; }
|
|
19506
|
+
.sx-tree-group { list-style: none; margin: 0; padding: 0; }
|
|
19507
|
+
.sx-tree-row { display: flex; align-items: center; padding-left: calc(var(--depth, 0) * 14px); border-radius: 5px; }
|
|
19508
|
+
.sx-tree-row:hover { background: var(--s-hover); }
|
|
19509
|
+
.sx-tree-row.is-current { background: var(--s-active); }
|
|
19510
|
+
.sx .sx-tree-item {
|
|
19511
|
+
flex: 1; min-width: 0; height: 28px; padding: 0 8px;
|
|
19512
|
+
display: flex; align-items: center; gap: 6px;
|
|
19513
|
+
border: 0; background: transparent; text-align: left; cursor: pointer;
|
|
19514
|
+
font: 400 var(--fs-xs)/1 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-primary);
|
|
19515
|
+
}
|
|
19516
|
+
.sx .sx-tree-dir { cursor: default; color: var(--t-secondary); }
|
|
19517
|
+
.sx-tree-row.is-current .sx-tree-item { color: var(--t-bright); }
|
|
19518
|
+
.sx-tree-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19519
|
+
.sx-tree-badge { margin-left: auto; font-weight: 500; font-size: var(--sx-meta); line-height: 1; font-family: inherit; font-family: 'Inter', sans-serif; color: var(--t-secondary); }
|
|
19520
|
+
.sx-tree-badge--warn { color: var(--sx-warn); }
|
|
19521
|
+
.sx-tree-actions { display: none; gap: 2px; padding-right: 4px; }
|
|
19522
|
+
.sx-tree-row:hover .sx-tree-actions, .sx-tree-row:focus-within .sx-tree-actions { display: inline-flex; }
|
|
19523
|
+
.sx-tree-tools { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 8px 12px; }
|
|
19524
|
+
.sx-doc-bar { flex: none; display: flex; align-items: center; gap: 6px; padding: 4px 8px 0; border-bottom: 1px solid var(--b-subtle); }
|
|
19525
|
+
.sx-doc-tabs { display: flex; gap: 2px; min-width: 0; overflow-x: auto; }
|
|
19526
|
+
.sx-doc-tab { display: inline-flex; align-items: center; border-radius: 5px 5px 0 0; }
|
|
19527
|
+
.sx-doc-tab.is-active { background: var(--s-light); }
|
|
19528
|
+
.sx .sx-doc-tab-btn {
|
|
19529
|
+
height: 28px; padding: 0 10px; display: inline-flex; align-items: center; gap: 6px;
|
|
19530
|
+
border: 0; background: transparent; cursor: pointer;
|
|
19531
|
+
font: 400 var(--fs-xs)/1 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-secondary); white-space: nowrap;
|
|
19532
|
+
}
|
|
19533
|
+
.sx-doc-tab.is-active .sx-doc-tab-btn { color: var(--t-bright); }
|
|
19534
|
+
.sx .sx-doc-tab-close { width: 20px; height: 20px; margin-right: 4px; padding: 0; display: inline-grid; place-items: center; border: 0; border-radius: 4px; background: transparent; color: var(--t-secondary); cursor: pointer; }
|
|
19535
|
+
.sx .sx-doc-tab-close:hover { background: var(--s-hover); color: var(--t-bright); }
|
|
19536
|
+
.sx-doc-body { flex: 1; min-height: 0; display: flex; position: relative; }
|
|
19537
|
+
.sx-ed-host { flex: 1; min-width: 0; min-height: 0; display: flex; background: var(--ed-bg); }
|
|
19538
|
+
.sx-ed-host .cm-editor { flex: 1; min-width: 0; height: 100%; }
|
|
19539
|
+
.sx-ed-loading { margin: 16px; }
|
|
19540
|
+
.sx-preview { flex: 1; min-height: 0; overflow: auto; padding: 16px 20px; }
|
|
19541
|
+
.sx-md { font-size: var(--fs-sm); line-height: 1.6; color: var(--t-primary); max-width: 78ch; }
|
|
19542
|
+
.sx-md :is(h1, h2, h3, h4) { font-family: var(--ff-heading); color: var(--t-bright); margin: 16px 0 8px; line-height: 1.3; }
|
|
19543
|
+
.sx-md h1 { font-size: calc(20px * var(--font-scale, 1)); }
|
|
19544
|
+
.sx-md h2 { font-size: calc(17px * var(--font-scale, 1)); }
|
|
19545
|
+
.sx-md h3 { font-size: calc(15px * var(--font-scale, 1)); }
|
|
19546
|
+
.sx-md p { margin: 0 0 10px; }
|
|
19547
|
+
.sx-md a { color: var(--t-bright); }
|
|
19548
|
+
.sx-md code { font: 400 var(--fs-xs)/1.5 var(--ff-mono, 'JetBrains Mono', monospace); padding: 1px 4px; border-radius: 4px; background: var(--s-light); color: var(--t-bright); }
|
|
19549
|
+
.sx-md pre { padding: 10px 12px; border-radius: 6px; background: var(--sx-field); border: 1px solid var(--b-subtle); overflow: auto; }
|
|
19550
|
+
.sx-md pre code { padding: 0; background: none; }
|
|
19551
|
+
.sx-md blockquote { margin: 0 0 10px; padding: 4px 12px; border-left: 2px solid var(--b-visible); color: var(--t-primary); }
|
|
19552
|
+
.sx-md table { border-collapse: collapse; margin: 0 0 10px; font-size: var(--fs-xs); }
|
|
19553
|
+
.sx-md :is(th, td) { padding: 4px 8px; border: 1px solid var(--b-light); text-align: left; }
|
|
19554
|
+
.sx-mermaid svg { max-width: 100%; height: auto; }
|
|
19555
|
+
.sx-binary { flex: 1; min-height: 0; overflow: auto; display: flex; }
|
|
19556
|
+
.sx-binary-view { margin: auto; padding: 24px; display: grid; justify-items: center; gap: 8px; text-align: center; font-size: var(--fs-xs); }
|
|
19557
|
+
.sx-binary-view p { margin: 0; }
|
|
19558
|
+
.sx-binary-img { max-width: min(480px, 100%); max-height: 320px; border-radius: 6px; border: 1px solid var(--b-light); background: var(--s-subtle); }
|
|
19559
|
+
.sx-binary-icon { display: inline-flex; padding: 12px; border: 1px solid var(--b-light); border-radius: 8px; }
|
|
19560
|
+
.sx-binary-name { font-family: var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-bright); overflow-wrap: anywhere; }
|
|
19561
|
+
.sx-fallback { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 8px; }
|
|
19562
|
+
.sx .sx-fallback-text { flex: 1; min-height: 240px; font-family: var(--ff-mono, 'JetBrains Mono', monospace); resize: none; }
|
|
19563
|
+
.sx-statusbar {
|
|
19564
|
+
flex: none; min-height: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px;
|
|
19565
|
+
padding: 4px 16px; border-top: 1px solid var(--b-subtle);
|
|
19566
|
+
font: 400 var(--sx-meta)/1.4 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-secondary);
|
|
19567
|
+
}
|
|
19568
|
+
.sx-statusbar > span { white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
|
|
19569
|
+
.sx-statusbar .sx-state { color: var(--t-primary); }
|
|
19570
|
+
.sx-guidance.is-over { color: var(--sx-warn); }
|
|
19571
|
+
|
|
19572
|
+
/* ── Inspector ── */
|
|
19573
|
+
.sx-inspector { padding: 8px 12px 16px; display: grid; gap: 12px; align-content: start; }
|
|
19574
|
+
.sx-form { display: grid; gap: 10px; }
|
|
19575
|
+
.sx-chips { display: flex; flex-wrap: wrap; gap: 4px; }
|
|
19576
|
+
.sx .sx-chip {
|
|
19577
|
+
display: inline-flex; align-items: center; gap: 4px; padding: 2px 4px 2px 8px; border-radius: 6px;
|
|
19578
|
+
border: 1px solid var(--b-light); background: var(--s-light); font: 400 var(--fs-xs)/1.4 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-bright);
|
|
19579
|
+
}
|
|
19580
|
+
.sx .sx-chip-x { width: 18px; height: 18px; padding: 0; display: inline-grid; place-items: center; border: 0; border-radius: 4px; background: transparent; color: var(--t-secondary); cursor: pointer; }
|
|
19581
|
+
.sx .sx-chip-x:hover { color: var(--sx-err); background: var(--s-hover); }
|
|
19582
|
+
.sx-tools-add { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
|
|
19583
|
+
.sx-tools-add .sx-input { flex: 1 1 120px; width: auto; }
|
|
19584
|
+
.sx-helper { display: grid; gap: 6px; }
|
|
19585
|
+
.sx-budgets, .sx-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
|
|
19586
|
+
.sx-budget { display: grid; grid-template-columns: minmax(70px, auto) 56px auto; gap: 8px; align-items: center; font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19587
|
+
.sx-budget.is-over { color: var(--sx-warn); }
|
|
19588
|
+
.sx-budget-count { font: 400 var(--sx-meta)/1.4 var(--ff-mono, 'JetBrains Mono', monospace); }
|
|
19589
|
+
.sx-checks li { display: flex; align-items: center; gap: 6px; font-size: var(--fs-xs); }
|
|
19590
|
+
.sx-checks .is-ok { color: var(--sx-ok); }
|
|
19591
|
+
.sx-checks .is-warn { color: var(--sx-warn); }
|
|
19592
|
+
.sx-insp-section { display: grid; gap: 6px; }
|
|
19593
|
+
.sx-insp-h { margin: 0; display: flex; align-items: center; gap: 6px; font-size: var(--fs-xs); font-weight: 600; color: var(--t-primary); }
|
|
19594
|
+
.sx-problems { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
|
|
19595
|
+
.sx .sx-problem {
|
|
19596
|
+
width: 100%; padding: 6px 8px; display: flex; gap: 6px; align-items: flex-start; text-align: left;
|
|
19597
|
+
border: 1px solid var(--b-subtle); border-radius: 5px; background: var(--s-subtle); cursor: pointer;
|
|
19598
|
+
font-size: var(--fs-xs); font-family: inherit; color: var(--t-primary);
|
|
19599
|
+
}
|
|
19600
|
+
.sx .sx-problem:hover { border-color: var(--b-hover); }
|
|
19601
|
+
.sx .sx-problem--error > .sx-i { color: var(--sx-err); }
|
|
19602
|
+
.sx .sx-problem--warning > .sx-i { color: var(--sx-warn); }
|
|
19603
|
+
.sx-problem-text { flex: 1; overflow-wrap: anywhere; }
|
|
19604
|
+
.sx-problem-line { color: var(--t-secondary); font-family: var(--ff-mono, 'JetBrains Mono', monospace); font-size: var(--sx-meta); }
|
|
19605
|
+
.sx-problem-tag { font-size: var(--sx-meta); color: var(--t-secondary); white-space: nowrap; }
|
|
19606
|
+
.sx-advanced { display: grid; gap: 6px; }
|
|
19607
|
+
.sx-kept { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
|
|
19608
|
+
.sx-snip-group { margin: 6px 0 2px; font-size: var(--sx-meta); font-weight: 600; letter-spacing: 0.02em; color: var(--t-secondary); }
|
|
19609
|
+
.sx-snippets { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
|
|
19610
|
+
.sx .sx-snippet {
|
|
19611
|
+
display: flex; align-items: center; gap: 8px; padding: 8px;
|
|
19612
|
+
border: 1px solid var(--b-light); border-radius: 5px; background: var(--s-subtle);
|
|
19613
|
+
cursor: move;
|
|
20241
19614
|
}
|
|
20242
|
-
.
|
|
20243
|
-
|
|
20244
|
-
|
|
19615
|
+
.sx .sx-snippet .sx-btn { cursor: pointer; }
|
|
19616
|
+
.sx-snippet-text { flex: 1; min-width: 0; }
|
|
19617
|
+
.sx-snippet-name { display: block; font-size: var(--fs-xs); font-weight: 500; color: var(--t-bright); }
|
|
19618
|
+
.sx-snippet-where { display: block; font-size: var(--sx-meta); color: var(--t-secondary); }
|
|
19619
|
+
|
|
19620
|
+
/* ── Versions ── */
|
|
19621
|
+
.sx-versions { flex: 1; min-height: 0; overflow: auto; padding: 12px 16px 16px; display: grid; gap: 12px; align-content: start; }
|
|
19622
|
+
.sx-versions-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19623
|
+
.sx-compare-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
|
|
19624
|
+
.sx-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
|
|
19625
|
+
.sx-version { padding: 8px 12px; border: 1px solid var(--b-light); border-radius: 8px; background: var(--s-subtle); display: grid; gap: 4px; }
|
|
19626
|
+
.sx-version--draft { border-style: dashed; }
|
|
19627
|
+
.sx-version-main { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
|
|
19628
|
+
.sx-version-id { font: 600 var(--fs-xs)/1.3 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-bright); }
|
|
19629
|
+
.sx-version-meta { margin: 0; font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19630
|
+
.sx-version-note { color: var(--t-primary); }
|
|
19631
|
+
.sx-version-actions { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
19632
|
+
.sx .sx-label { padding: 1px 7px; border-radius: 6px; border: 1px solid var(--b-light); font-size: var(--sx-meta); font-weight: 500; color: var(--t-primary); white-space: nowrap; }
|
|
19633
|
+
.sx .sx-label--latest { color: var(--t-bright); border-color: var(--b-visible); }
|
|
19634
|
+
.sx .sx-label--approved { color: var(--sx-ok); border-color: color-mix(in oklab, var(--sx-ok) 40%, transparent); }
|
|
19635
|
+
.sx .sx-label--upstream { color: var(--sx-info); }
|
|
19636
|
+
.sx .sx-label--installed { color: var(--sx-ok); border-style: dashed; border-color: color-mix(in oklab, var(--sx-ok) 40%, transparent); }
|
|
19637
|
+
.sx .sx-label--draft, .sx .sx-label--candidate { color: var(--sx-gold); border-color: color-mix(in oklab, var(--sx-gold) 40%, transparent); }
|
|
19638
|
+
.sx .sx-label--best { color: var(--t-bright); border-color: var(--b-visible); background: var(--s-light); }
|
|
19639
|
+
|
|
19640
|
+
/* ── Differences ── */
|
|
19641
|
+
.sx-diff-box:empty { display: none; }
|
|
19642
|
+
.sx-diff { display: grid; gap: 8px; }
|
|
19643
|
+
.sx-diff-file { border: 1px solid var(--b-light); border-radius: 6px; overflow: hidden; }
|
|
19644
|
+
.sx-diff-file > summary { display: flex; align-items: center; gap: 8px; padding: 6px 10px; background: var(--s-subtle); cursor: pointer; font-size: var(--fs-xs); }
|
|
19645
|
+
.sx-diff-status { font-size: var(--sx-meta); font-weight: 600; color: var(--t-primary); }
|
|
19646
|
+
.sx-diff-status--added { color: var(--sx-ok); }
|
|
19647
|
+
.sx-diff-status--removed { color: var(--sx-err); }
|
|
19648
|
+
.sx-diff-status--modified, .sx-diff-status--mode { color: var(--sx-warn); }
|
|
19649
|
+
.sx-diff-path { font-family: var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-bright); overflow-wrap: anywhere; }
|
|
19650
|
+
.sx-diff-counts { margin-left: auto; font: 500 var(--sx-meta)/1 var(--ff-mono, 'JetBrains Mono', monospace); }
|
|
19651
|
+
.sx-diff-plus { color: var(--sx-ok); }
|
|
19652
|
+
.sx-diff-minus { color: var(--sx-err); }
|
|
19653
|
+
.sx-diff-hunk { width: 100%; border-collapse: collapse; font: 400 var(--fs-xs)/1.55 var(--ff-mono, 'JetBrains Mono', monospace); }
|
|
19654
|
+
.sx-diff-head { padding: 4px 10px; text-align: left; color: var(--t-secondary); background: var(--sx-field); }
|
|
19655
|
+
.sx-diff-num { width: 40px; padding: 0 6px; text-align: right; color: var(--t-secondary); user-select: none; vertical-align: top; }
|
|
19656
|
+
.sx-diff-sign { width: 16px; padding: 0 4px; color: var(--t-secondary); vertical-align: top; }
|
|
19657
|
+
.sx-diff-text { padding: 0 8px; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--t-bright); }
|
|
19658
|
+
.sx-diff-row--add td { background: color-mix(in oklab, var(--sx-ok) 9%, transparent); }
|
|
19659
|
+
.sx-diff-row--del td { background: color-mix(in oklab, var(--sx-err) 9%, transparent); }
|
|
19660
|
+
.sx-diff-row--add .sx-diff-sign { color: var(--sx-ok); }
|
|
19661
|
+
.sx-diff-row--del .sx-diff-sign { color: var(--sx-err); }
|
|
19662
|
+
|
|
19663
|
+
/* ── Publish: one choice (the tiles), one line per target (the plan), one button (the foot, always in sight) ── */
|
|
19664
|
+
.sx-publish { flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
19665
|
+
.sx-pub-scroll { flex: 1; min-height: 0; overflow: auto; padding: 12px 16px 16px; display: grid; gap: 16px; align-content: start; }
|
|
19666
|
+
.sx-pub-section { display: grid; gap: 8px; }
|
|
19667
|
+
.sx-pub-section:empty { display: none; }
|
|
19668
|
+
.sx .sx-pub-status { margin: 0; display: flex; align-items: flex-start; gap: 8px; font-size: var(--fs-sm); line-height: 1.45; color: var(--t-bright); }
|
|
19669
|
+
.sx .sx-pub-status > .sx-i { flex: none; margin-top: 3px; color: var(--sx-ok); }
|
|
19670
|
+
.sx-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
|
|
19671
|
+
.sx .sx-tile {
|
|
19672
|
+
position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; row-gap: 2px; align-items: center;
|
|
19673
|
+
min-height: 56px; padding: 10px 12px; border: 1px solid var(--b-light); border-radius: 8px; background: var(--s-subtle); cursor: pointer;
|
|
19674
|
+
transition: background 0.15s ease, border-color 0.15s ease;
|
|
20245
19675
|
}
|
|
20246
|
-
.
|
|
20247
|
-
|
|
20248
|
-
|
|
20249
|
-
.
|
|
20250
|
-
|
|
19676
|
+
.sx .sx-tile:hover { border-color: var(--b-hover); background: var(--s-light); }
|
|
19677
|
+
.sx .sx-tile.is-on { border-color: var(--b-visible); background: var(--s-light); }
|
|
19678
|
+
.sx .sx-tile.is-off { opacity: 0.6; cursor: default; }
|
|
19679
|
+
.sx .sx-tile:focus-within { outline: 2px solid var(--sx-focus); outline-offset: 1px; }
|
|
19680
|
+
.sx .sx-tile > input { grid-row: 1 / span 2; width: 16px; height: 16px; }
|
|
19681
|
+
.sx-tile-name { font-weight: 600; font-size: var(--fs-sm); color: var(--t-bright); line-height: 1.3; }
|
|
19682
|
+
.sx-tile-state { font-size: var(--sx-meta); color: var(--t-secondary); line-height: 1.3; }
|
|
19683
|
+
.sx-tile-state--installed { color: var(--sx-ok); }
|
|
19684
|
+
.sx-tile-state--outdated, .sx-tile-state--bridge { color: var(--sx-warn); }
|
|
19685
|
+
.sx-pub-scope .sx-seg button { height: 26px; }
|
|
19686
|
+
.sx-plan-lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
|
|
19687
|
+
.sx-plan-line { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border: 1px solid var(--b-light); border-radius: 6px; background: var(--s-subtle); font-size: var(--fs-xs); color: var(--t-primary); line-height: 1.45; }
|
|
19688
|
+
.sx-plan-line-icon { flex: none; display: inline-flex; margin-top: 2px; color: var(--t-secondary); }
|
|
19689
|
+
.sx-plan-line-text { min-width: 0; overflow-wrap: anywhere; }
|
|
19690
|
+
.sx-plan-line-text strong { color: var(--t-bright); font-weight: 600; }
|
|
19691
|
+
.sx-plan-line--ok .sx-plan-line-icon { color: var(--sx-ok); }
|
|
19692
|
+
.sx-plan-line--warn { border-color: color-mix(in oklab, var(--sx-warn) 35%, transparent); }
|
|
19693
|
+
.sx-plan-line--warn .sx-plan-line-icon { color: var(--sx-warn); }
|
|
19694
|
+
.sx-plan-line--err { border-color: color-mix(in oklab, var(--sx-err) 35%, transparent); }
|
|
19695
|
+
.sx-plan-line--err .sx-plan-line-icon { color: var(--sx-err); }
|
|
19696
|
+
.sx .sx-pub-checking { display: inline-flex; align-items: center; gap: 8px; }
|
|
19697
|
+
.sx .sx-pub-checking::before { content: ''; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--b-visible); border-top-color: var(--t-bright); animation: sx-spin 0.9s linear infinite; }
|
|
19698
|
+
@keyframes sx-spin { to { transform: rotate(360deg); } }
|
|
19699
|
+
.sx-outcome { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid color-mix(in oklab, var(--sx-ok) 40%, transparent); border-radius: 8px; background: color-mix(in oklab, var(--sx-ok) 7%, transparent); font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19700
|
+
.sx-outcome--error { border-color: color-mix(in oklab, var(--sx-warn) 40%, transparent); background: color-mix(in oklab, var(--sx-warn) 7%, transparent); }
|
|
19701
|
+
.sx .sx-outcome-line { margin: 0; display: flex; align-items: flex-start; gap: 8px; font-size: var(--fs-sm); color: var(--t-bright); }
|
|
19702
|
+
.sx .sx-outcome-line > .sx-i { flex: none; margin-top: 3px; color: var(--sx-ok); }
|
|
19703
|
+
.sx-outcome--error .sx-outcome-line > .sx-i { color: var(--sx-warn); }
|
|
19704
|
+
.sx .sx-outcome-notes { display: grid; gap: 2px; padding-left: 22px; }
|
|
19705
|
+
.sx-installs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
|
|
19706
|
+
.sx-install-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--b-light); border-radius: 6px; font-size: var(--fs-xs); }
|
|
19707
|
+
.sx-install-where { font-weight: 600; color: var(--t-bright); }
|
|
19708
|
+
.sx-install-actions { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: auto; }
|
|
19709
|
+
.sx-install-facts { flex-basis: 100%; }
|
|
19710
|
+
.sx .sx-pub-advanced > summary { padding: 6px 0; }
|
|
19711
|
+
.sx-pub-advanced-body { display: grid; gap: 10px; padding: 8px 0 4px; }
|
|
19712
|
+
.sx-pub-bar {
|
|
19713
|
+
flex: none; position: sticky; bottom: 0; z-index: 2;
|
|
19714
|
+
display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px;
|
|
19715
|
+
padding: 10px 16px; background: var(--sx-raised); border-top: 1px solid var(--b-light);
|
|
19716
|
+
}
|
|
19717
|
+
.sx-pub-bar-text { flex: 1 1 240px; min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19718
|
+
.sx-pub-bar-where { font-weight: 600; color: var(--t-bright); overflow-wrap: anywhere; }
|
|
19719
|
+
.sx-pub-bar-version { font-size: var(--sx-meta); }
|
|
19720
|
+
.sx .sx-btn--lg { height: 36px; padding: 0 20px; font-size: var(--fs-sm); font-weight: 600; }
|
|
19721
|
+
.sx .sx-btn--lg[data-state="installed"] { color: var(--sx-ok); background: transparent; border-color: color-mix(in oklab, var(--sx-ok) 40%, transparent); opacity: 1; }
|
|
19722
|
+
.sx .sx-btn--lg[data-state="installed"] .sx-i { color: var(--sx-ok); }
|
|
19723
|
+
.sx-confirm-list { display: grid; gap: 8px; margin-top: 4px; }
|
|
19724
|
+
.sx .sx-confirm-item { margin: 0; font-size: var(--fs-xs); color: var(--t-primary); line-height: 1.45; overflow-wrap: anywhere; }
|
|
19725
|
+
.sx .sx-confirm-item p { margin: 0 0 6px; }
|
|
19726
|
+
/* The one status of a library skill: the same pill in the workspace head and the Library row. */
|
|
19727
|
+
.sx .sx-status {
|
|
19728
|
+
display: inline-flex; align-items: center; gap: 6px; max-width: 100%;
|
|
19729
|
+
min-height: 22px; padding: 2px 8px; line-height: 1.3; box-sizing: border-box;
|
|
19730
|
+
border: 1px solid var(--b-light); border-radius: 6px; background: transparent;
|
|
19731
|
+
font-size: var(--fs-xs); font-weight: 500; font-family: inherit; color: var(--t-primary); white-space: nowrap;
|
|
19732
|
+
}
|
|
19733
|
+
.sx .sx-status > span { overflow: hidden; text-overflow: ellipsis; }
|
|
19734
|
+
.sx button.sx-status { cursor: pointer; }
|
|
19735
|
+
.sx button.sx-status:hover { border-color: var(--b-hover); color: var(--t-bright); }
|
|
19736
|
+
.sx .sx-status--installed { color: var(--sx-ok); border-color: color-mix(in oklab, var(--sx-ok) 40%, transparent); background: color-mix(in oklab, var(--sx-ok) 8%, transparent); }
|
|
19737
|
+
.sx .sx-status--outdated { color: var(--sx-warn); border-color: color-mix(in oklab, var(--sx-warn) 40%, transparent); background: color-mix(in oklab, var(--sx-warn) 8%, transparent); }
|
|
19738
|
+
.sx .sx-status--approved { color: var(--t-bright); border-color: var(--b-visible); background: var(--s-light); }
|
|
19739
|
+
.sx .sx-status--review, .sx .sx-status--changes { color: var(--sx-info); border-color: var(--b-visible); }
|
|
19740
|
+
.sx .sx-status--draft { color: var(--sx-gold); border-color: color-mix(in oklab, var(--sx-gold) 40%, transparent); }
|
|
19741
|
+
.sx .sx-status--none { color: var(--t-secondary); }
|
|
19742
|
+
.sx-health-cell { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; max-width: 100%; }
|
|
19743
|
+
.sx-health-cell .sx-status { white-space: normal; }
|
|
19744
|
+
.sx-health-cell .sx-status > span { white-space: normal; overflow: visible; }
|
|
19745
|
+
.sx .sx-banner-lines { display: grid; gap: 2px; margin-top: 4px; color: var(--t-primary); }
|
|
19746
|
+
.sx .sx-banner--ok { border-color: color-mix(in oklab, var(--sx-ok) 35%, transparent); background: color-mix(in oklab, var(--sx-ok) 7%, transparent); }
|
|
19747
|
+
.sx .sx-banner--ok > .sx-i { color: var(--sx-ok); }
|
|
19748
|
+
.sx .sx-rt-row--fix .sx-rt-state { color: var(--sx-warn); text-align: right; line-height: 1.25; }
|
|
19749
|
+
.sx-grid { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--fs-xs); }
|
|
19750
|
+
.sx-grid th { text-align: left; padding: 8px; color: var(--t-secondary); font-size: var(--sx-meta); font-weight: 600; border-bottom: 1px solid var(--b-subtle); }
|
|
19751
|
+
.sx-grid td { padding: 8px; border-bottom: 1px solid var(--b-subtle); vertical-align: top; }
|
|
19752
|
+
.sx-grid .sx-path { max-width: 280px; overflow-wrap: anywhere; color: var(--t-secondary); }
|
|
19753
|
+
.sx-actions-cell { display: flex; flex-wrap: wrap; gap: 4px; }
|
|
19754
|
+
.sx .sx-state-chip { display: inline-block; padding: 1px 7px; border-radius: 6px; border: 1px solid var(--b-light); font-size: var(--sx-meta); font-weight: 500; color: var(--t-primary); white-space: nowrap; }
|
|
19755
|
+
.sx .sx-state-chip--installed, .sx .sx-state-chip--ready, .sx .sx-state-chip--review-approved, .sx .sx-state-chip--review-published { color: var(--sx-ok); border-color: color-mix(in oklab, var(--sx-ok) 40%, transparent); }
|
|
19756
|
+
.sx .sx-state-chip--outdated, .sx .sx-state-chip--bridge, .sx .sx-state-chip--needs, .sx .sx-state-chip--review-pending, .sx .sx-state-chip--review-partial { color: var(--sx-warn); border-color: color-mix(in oklab, var(--sx-warn) 40%, transparent); }
|
|
19757
|
+
.sx .sx-state-chip--blocked, .sx .sx-state-chip--review-rejected, .sx .sx-state-chip--review-publish_failed { color: var(--sx-err); border-color: color-mix(in oklab, var(--sx-err) 40%, transparent); }
|
|
19758
|
+
.sx .sx-state-chip--none, .sx .sx-state-chip--off, .sx .sx-state-chip--present { color: var(--t-secondary); }
|
|
19759
|
+
.sx-facts { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 2px; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19760
|
+
.sx-plan { display: grid; gap: 8px; }
|
|
19761
|
+
.sx-plan-row { padding: 10px 12px; border: 1px solid var(--b-light); border-radius: 8px; background: var(--s-subtle); display: grid; gap: 6px; }
|
|
19762
|
+
.sx-plan-row--blocked { border-color: color-mix(in oklab, var(--sx-err) 35%, transparent); }
|
|
19763
|
+
.sx-plan-row--needs { border-color: color-mix(in oklab, var(--sx-warn) 35%, transparent); }
|
|
19764
|
+
.sx-plan-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19765
|
+
.sx-plan-target { font-weight: 600; color: var(--t-bright); font-size: var(--fs-xs); }
|
|
19766
|
+
.sx .sx-confirm { display: flex; align-items: flex-start; gap: 8px; font-size: var(--fs-xs); color: var(--t-bright); cursor: pointer; }
|
|
19767
|
+
.sx .sx-confirm input { margin-top: 2px; accent-color: var(--sx-primary); }
|
|
19768
|
+
.sx-findings { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
|
|
19769
|
+
.sx-finding { padding: 6px 8px; border-radius: 5px; background: var(--s-subtle); border-left: 2px solid var(--b-light); font-size: var(--fs-xs); }
|
|
19770
|
+
.sx-finding--critical, .sx-finding--high { border-left-color: var(--sx-err); }
|
|
19771
|
+
.sx-finding--medium { border-left-color: var(--sx-warn); }
|
|
19772
|
+
.sx-finding-sev { font-weight: 600; color: var(--t-bright); }
|
|
19773
|
+
.sx-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
|
|
19774
|
+
.sx-result { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: var(--fs-xs); }
|
|
19775
|
+
|
|
19776
|
+
/* ── Review ── */
|
|
19777
|
+
.sx-cards { padding: 16px; display: grid; gap: 12px; max-width: 880px; }
|
|
19778
|
+
.sx-card { padding: 12px 16px; display: grid; gap: 8px; background: var(--s-subtle); border: 1px solid var(--b-light); border-radius: 8px; }
|
|
19779
|
+
.sx-card:focus { outline: none; }
|
|
19780
|
+
.sx-card.is-focused { border-color: var(--b-visible); }
|
|
19781
|
+
.sx-card-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19782
|
+
.sx-card-kind { margin: 0; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: var(--fs-sm); line-height: 1.3; font-family: inherit; color: var(--t-bright); }
|
|
19783
|
+
.sx-card-mark { display: inline-flex; color: var(--sx-gold); }
|
|
19784
|
+
.sx-card-from { font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19785
|
+
.sx-card-notes { margin: 0; color: var(--t-primary); font-size: var(--fs-xs); overflow-wrap: anywhere; white-space: pre-wrap; }
|
|
19786
|
+
.sx-card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
19787
|
+
.sx-card .sx-scan-err { color: var(--sx-err); }
|
|
19788
|
+
.sx-card .sx-scan-warn { color: var(--sx-warn); }
|
|
19789
|
+
.sx-card .sx-scan-ok { color: var(--sx-ok); }
|
|
19790
|
+
.sx-authority { display: grid; gap: 4px; }
|
|
19791
|
+
|
|
19792
|
+
/* ── Create ── */
|
|
19793
|
+
.sx-create { padding: 24px 24px 16px; display: grid; gap: 16px; max-width: 820px; }
|
|
19794
|
+
.sx-ai { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--b-light); border-radius: 8px; background: var(--s-subtle); }
|
|
19795
|
+
.sx .sx-prompt { min-height: 110px; font-size: var(--fs-sm); line-height: 1.5; padding: 12px 14px; border-radius: 8px; }
|
|
19796
|
+
.sx-sources { gap: 6px; }
|
|
19797
|
+
.sx-blank { display: grid; gap: 12px; padding: 12px; border: 1px solid var(--b-light); border-radius: 8px; }
|
|
19798
|
+
.sx-layouts { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px; }
|
|
19799
|
+
.sx .sx-layout {
|
|
19800
|
+
position: relative; /* the hidden radio stays inside its card (focusing it never scrolls elsewhere) */
|
|
19801
|
+
display: grid; gap: 2px; padding: 8px 10px; border: 1px solid var(--b-light); border-radius: 6px; cursor: pointer;
|
|
19802
|
+
background: transparent;
|
|
20251
19803
|
}
|
|
20252
|
-
.
|
|
20253
|
-
|
|
20254
|
-
|
|
20255
|
-
|
|
20256
|
-
|
|
19804
|
+
.sx .sx-layout.is-on { border-color: var(--b-visible); background: var(--s-light); }
|
|
19805
|
+
.sx .sx-layout input { position: absolute; opacity: 0; pointer-events: none; }
|
|
19806
|
+
.sx .sx-layout:focus-within { outline: 2px solid var(--sx-focus); outline-offset: 1px; }
|
|
19807
|
+
.sx-layout-name { font-size: var(--fs-xs); font-weight: 600; color: var(--t-bright); }
|
|
19808
|
+
.sx-layout-desc { font-size: var(--sx-meta); color: var(--t-secondary); }
|
|
19809
|
+
.sx-examples { color: var(--t-primary); }
|
|
19810
|
+
/* ── Create: drafting with AI (P3, shared/skills/studio/sx-create-ai-view.js) ── */
|
|
19811
|
+
.sx-ai #sx-ai-main, .sx-ai-form, .sx-ai-job { display: grid; gap: 10px; min-width: 0; }
|
|
19812
|
+
.sx-ai .sx-section-title { display: inline-flex; align-items: center; gap: 6px; }
|
|
19813
|
+
.sx .sx-ai-example-toggle { justify-self: start; }
|
|
19814
|
+
.sx-ai-chips { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
|
|
19815
|
+
.sx-ai-chip {
|
|
19816
|
+
display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 2px 2px 2px 8px;
|
|
19817
|
+
border: 1px solid var(--b-light); border-radius: 5px; background: var(--s-light); font-size: var(--fs-xs); color: var(--t-bright);
|
|
19818
|
+
}
|
|
19819
|
+
.sx-ai-chip-kind { color: var(--t-secondary); white-space: nowrap; }
|
|
19820
|
+
.sx-ai-chip-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19821
|
+
.sx .sx-ai-chip-x { width: 22px; height: 22px; }
|
|
19822
|
+
.sx .sx-sources .sx-btn.is-on { border-color: var(--b-visible); background: var(--s-active); }
|
|
19823
|
+
.sx-ai-editor { display: grid; gap: 8px; padding: 10px 12px; border: 1px solid var(--b-light); border-radius: 8px; background: var(--sx-field); }
|
|
19824
|
+
.sx-ai-editor-title { margin: 0; font: 600 var(--fs-xs)/1.3 var(--ff-heading); color: var(--t-bright); }
|
|
19825
|
+
.sx-ai-editor-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; }
|
|
19826
|
+
.sx-ai-wide { grid-column: 1 / -1; }
|
|
19827
|
+
.sx-ai-editor-actions { justify-content: flex-end; }
|
|
19828
|
+
.sx-ai-sessions { display: grid; gap: 2px; max-height: 240px; overflow: auto; padding: 2px; }
|
|
19829
|
+
.sx .sx-ai-session {
|
|
19830
|
+
display: grid; gap: 2px; padding: 6px 10px; text-align: left; border: 1px solid transparent; border-radius: 5px;
|
|
19831
|
+
background: transparent; color: var(--t-bright); font: inherit; font-size: var(--fs-xs); cursor: pointer;
|
|
19832
|
+
}
|
|
19833
|
+
.sx .sx-ai-session:hover { background: var(--s-hover); }
|
|
19834
|
+
.sx .sx-ai-session.is-on { border-color: var(--b-visible); background: var(--s-active); }
|
|
19835
|
+
.sx .sx-ai-session:focus-visible { outline: 2px solid var(--sx-focus); outline-offset: 1px; }
|
|
19836
|
+
.sx-ai-session-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19837
|
+
.sx-ai-session-meta { font-size: var(--sx-meta); color: var(--t-secondary); }
|
|
19838
|
+
.sx-ai-options { display: grid; gap: 8px; margin: 0; padding: 10px 0 0; border: 0; border-top: 1px solid var(--b-subtle); min-width: 0; }
|
|
19839
|
+
.sx-ai-options .sx-choices { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
|
|
19840
|
+
.sx-ai-go .sx-help { flex: 1 1 260px; }
|
|
19841
|
+
.sx-ai-job-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19842
|
+
.sx-ai-job-head .sx-spacer { flex: 1; }
|
|
19843
|
+
.sx-ai-job .sx-section-title:focus { outline: none; }
|
|
19844
|
+
.sx-ai-steps { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: var(--fs-xs); color: var(--t-secondary); }
|
|
19845
|
+
.sx-ai-step { display: inline-flex; align-items: center; gap: 6px; }
|
|
19846
|
+
.sx-ai-step-n {
|
|
19847
|
+
width: 20px; height: 20px; flex: none; display: inline-flex; align-items: center; justify-content: center;
|
|
19848
|
+
border-radius: 50%; border: 1px solid var(--b-light); font-size: var(--sx-meta); color: var(--t-secondary);
|
|
19849
|
+
}
|
|
19850
|
+
.sx-ai-step.is-done { color: var(--t-primary); }
|
|
19851
|
+
.sx-ai-step.is-done .sx-ai-step-n { border-color: color-mix(in oklab, var(--sx-ok) 50%, transparent); color: var(--sx-ok); }
|
|
19852
|
+
.sx-ai-step.is-active { color: var(--t-bright); }
|
|
19853
|
+
.sx-ai-step.is-active .sx-ai-step-n { border-color: var(--b-visible); color: var(--t-bright); animation: sx-ai-pulse 1.6s ease-in-out infinite; }
|
|
19854
|
+
.sx-ai-step.is-failed { color: var(--sx-err); }
|
|
19855
|
+
.sx-ai-step.is-failed .sx-ai-step-n { border-color: color-mix(in oklab, var(--sx-err) 50%, transparent); color: var(--sx-err); }
|
|
19856
|
+
.sx-ai-step.is-skipped { text-decoration: line-through; }
|
|
19857
|
+
@keyframes sx-ai-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
|
|
19858
|
+
.sx-ai-facts { margin: 0; display: grid; gap: 6px; font-size: var(--fs-xs); }
|
|
19859
|
+
.sx-ai-facts > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 8px; }
|
|
19860
|
+
.sx-ai-facts dt { color: var(--t-secondary); }
|
|
19861
|
+
.sx-ai-facts dd { margin: 0; color: var(--t-primary); min-width: 0; overflow-wrap: anywhere; }
|
|
19862
|
+
.sx-ai-written, .sx-ai-activity, .sx-ai-result { display: grid; gap: 6px; }
|
|
19863
|
+
.sx-ai-activity pre {
|
|
19864
|
+
margin: 0; padding: 8px 10px; max-height: 160px; overflow: auto; border-radius: 6px;
|
|
19865
|
+
background: var(--sx-field); border: 1px solid var(--b-subtle); color: var(--t-primary); white-space: pre-wrap; overflow-wrap: anywhere;
|
|
19866
|
+
}
|
|
19867
|
+
.sx-ai-result p { margin: 0; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19868
|
+
.sx .sx-ai-checks { padding-left: 0; list-style: none; }
|
|
19869
|
+
.sx-ai-checks .sx-scan-ok { color: var(--sx-ok); }
|
|
19870
|
+
.sx-ai-checks .sx-scan-warn { color: var(--sx-warn); }
|
|
19871
|
+
.sx-ai-checks .sx-scan-err { color: var(--sx-err); }
|
|
19872
|
+
.sx-ai-details summary { cursor: pointer; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
19873
|
+
.sx-ai-details[open] summary { margin-bottom: 4px; }
|
|
19874
|
+
.sx-ai-error {
|
|
19875
|
+
display: grid; gap: 4px; padding: 8px 10px; border-radius: 8px;
|
|
19876
|
+
border: 1px solid color-mix(in oklab, var(--sx-err) 35%, transparent); background: color-mix(in oklab, var(--sx-err) 6%, transparent);
|
|
19877
|
+
}
|
|
19878
|
+
.sx-ai-error p { margin: 0; font-size: var(--fs-xs); }
|
|
19879
|
+
.sx-ai-recent { display: grid; gap: 6px; padding-top: 10px; border-top: 1px solid var(--b-subtle); }
|
|
19880
|
+
.sx-ai-recent-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
|
|
19881
|
+
.sx .sx-ai-recent-row {
|
|
19882
|
+
width: 100%; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto auto; align-items: center; gap: 8px; padding: 5px 8px;
|
|
19883
|
+
border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--t-bright); font: inherit; font-size: var(--fs-xs); text-align: left; cursor: pointer;
|
|
19884
|
+
}
|
|
19885
|
+
.sx .sx-ai-recent-row:hover { background: var(--s-hover); }
|
|
19886
|
+
.sx .sx-ai-recent-row.is-on { border-color: var(--b-light); background: var(--s-light); }
|
|
19887
|
+
.sx .sx-ai-recent-row:focus-visible { outline: 2px solid var(--sx-focus); outline-offset: 1px; }
|
|
19888
|
+
.sx-ai-recent-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
19889
|
+
.sx-ai-recent-state { color: var(--t-secondary); white-space: nowrap; }
|
|
19890
|
+
.sx-ai-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--t-secondary); }
|
|
19891
|
+
.sx-ai-dot--done { background: var(--sx-ok); }
|
|
19892
|
+
.sx-ai-dot--failed, .sx-ai-dot--interrupted { background: var(--sx-err); }
|
|
19893
|
+
.sx-ai-dot--cancelled { background: var(--sx-warn); }
|
|
19894
|
+
.sx-ai-dot--queued, .sx-ai-dot--gathering, .sx-ai-dot--drafting, .sx-ai-dot--checking, .sx-ai-dot--submitting { background: var(--sx-info); animation: sx-ai-pulse 1.6s ease-in-out infinite; }
|
|
19895
|
+
@container ss (max-width: 560px) {
|
|
19896
|
+
.sx-ai-facts > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
|
|
19897
|
+
.sx .sx-ai-recent-row { grid-template-columns: 10px minmax(0, 1fr) auto; }
|
|
19898
|
+
.sx-ai-recent-row time { display: none; }
|
|
20257
19899
|
}
|
|
20258
|
-
|
|
20259
|
-
|
|
19900
|
+
@media (prefers-reduced-motion: reduce) {
|
|
19901
|
+
.sx-ai-step.is-active .sx-ai-step-n, .sx-ai-dot { animation: none; }
|
|
19902
|
+
}
|
|
19903
|
+
|
|
19904
|
+
/* ── Test: evaluations (P4, shared/skills/studio/sx-test-view.js) ──
|
|
19905
|
+
One scroll area (the head, the setup, the open run, a trial beside its request, the history) over one foot bar
|
|
19906
|
+
(Run evals, always in sight, as Publish's). Every colour is a token or a --sx-* status variable of the Studio. */
|
|
19907
|
+
.sx-test { flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
19908
|
+
.sx-test-scroll { flex: 1; min-height: 0; overflow: auto; padding: 12px 16px 16px; display: grid; gap: 16px; align-content: start; }
|
|
19909
|
+
.sx-test-section { display: grid; gap: 8px; min-width: 0; }
|
|
19910
|
+
.sx-test-section:empty { display: none; }
|
|
19911
|
+
.sx-test-headline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19912
|
+
.sx-test-headline .sx-section-title { display: inline-flex; align-items: center; gap: 6px; }
|
|
19913
|
+
.sx-test-headline .sx-spacer { flex: 1; }
|
|
19914
|
+
.sx-test-queue { font-size: var(--sx-meta); color: var(--sx-info); }
|
|
19915
|
+
.sx .sx-test-safety { display: flex; align-items: flex-start; gap: 6px; }
|
|
19916
|
+
.sx .sx-test-safety > .sx-i { flex: none; margin-top: 2px; }
|
|
19917
|
+
.sx-test-safety-box { display: grid; gap: 2px; }
|
|
19918
|
+
.sx .sx-test-safety--warn > .sx-i { color: var(--sx-warn); }
|
|
19919
|
+
#sx-test-codex-box:empty { display: none; }
|
|
19920
|
+
.sx-test-codex { display: grid; gap: 6px; }
|
|
19921
|
+
.sx .sx-test-codex-line { margin: 0; display: flex; align-items: flex-start; gap: 6px; color: var(--t-bright); }
|
|
19922
|
+
.sx .sx-test-codex-line > .sx-i { flex: none; margin-top: 2px; color: var(--sx-warn); }
|
|
19923
|
+
.sx-test-codex .sx-help { margin: 0; }
|
|
19924
|
+
.sx-test-setup { padding: 12px 14px; border: 1px solid var(--b-light); border-radius: 8px; background: var(--s-subtle); }
|
|
19925
|
+
.sx-test-setup-box { display: grid; gap: 10px; }
|
|
19926
|
+
.sx-test-setup-box[open] > .sx-test-setup-summary { margin-bottom: 8px; }
|
|
19927
|
+
.sx-test-setup-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; cursor: pointer; list-style: none; }
|
|
19928
|
+
.sx-test-setup-summary::-webkit-details-marker { display: none; }
|
|
19929
|
+
.sx-test-setup-summary::before { content: '▸'; color: var(--t-secondary); font-size: var(--fs-xs); transition: transform 0.15s ease; }
|
|
19930
|
+
.sx-test-setup-box[open] > .sx-test-setup-summary::before { transform: rotate(90deg); }
|
|
19931
|
+
.sx-test-setup-summary:focus-visible { outline: 2px solid var(--sx-focus); outline-offset: 2px; border-radius: 4px; }
|
|
19932
|
+
.sx .sx-test-setup-line { font-size: var(--fs-xs); min-width: 0; overflow-wrap: anywhere; }
|
|
19933
|
+
.sx-test-setup-box[open] .sx-test-setup-line { display: none; }
|
|
19934
|
+
.sx-test-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 16px; align-items: start; }
|
|
19935
|
+
/* A field of the setup grid never grows past its column: its own content fits it instead. */
|
|
19936
|
+
.sx-test-grid > .sx-field { min-width: 0; grid-template-columns: minmax(0, 1fr); }
|
|
19937
|
+
/* The segment fits its cell in every language: one row, a long label wraps inside its own button (pt-BR "Tarefas e acionamentos"). */
|
|
19938
|
+
.sx .sx-test .sx-seg { display: inline-grid; grid-auto-flow: column; grid-auto-columns: minmax(0, auto); max-width: 100%; }
|
|
19939
|
+
.sx .sx-test .sx-seg button { height: auto; min-height: 26px; min-width: 0; padding: 3px 10px; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; text-align: center; }
|
|
19940
|
+
.sx-test-runtimes { gap: 6px; }
|
|
19941
|
+
.sx-test-runtime { display: flex; align-items: center; gap: 6px; min-width: 0; }
|
|
19942
|
+
.sx-test-runtime .cc-dropdown { flex: 1; min-width: 0; }
|
|
19943
|
+
.sx .sx-test-add { justify-self: start; font-size: var(--fs-xs); }
|
|
19944
|
+
.sx-test-more > summary { margin-top: 2px; }
|
|
19945
|
+
.sx-test-more[open] > .sx-test-grid { margin-top: 8px; }
|
|
19946
|
+
.sx .sx-test-judge { align-self: end; padding-bottom: 6px; }
|
|
19947
|
+
.sx-test-estimate { display: grid; gap: 4px; padding-top: 8px; border-top: 1px solid var(--b-subtle); }
|
|
19948
|
+
.sx .sx-test-estimate-line { margin: 0; display: flex; align-items: flex-start; gap: 6px; font-size: var(--fs-xs); color: var(--t-bright); }
|
|
19949
|
+
.sx .sx-test-estimate-line > .sx-i { flex: none; margin-top: 2px; color: var(--sx-info); }
|
|
19950
|
+
.sx .sx-test-notes { color: var(--t-secondary); }
|
|
19951
|
+
.sx-test-bar {
|
|
19952
|
+
flex: none; position: sticky; bottom: 0; z-index: 2;
|
|
19953
|
+
display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
|
|
19954
|
+
padding: 10px 16px; background: var(--sx-raised); border-top: 1px solid var(--b-light);
|
|
19955
|
+
}
|
|
19956
|
+
.sx .sx-test-bar-text { flex: 1 1 240px; min-width: 0; }
|
|
19957
|
+
.sx-test-run, .sx-test-trial { display: grid; gap: 10px; padding: 12px 14px; border: 1px solid var(--b-light); border-radius: 8px; background: var(--s-subtle); min-width: 0; }
|
|
19958
|
+
.sx-test-trial:focus { outline: none; border-color: var(--b-visible); }
|
|
19959
|
+
.sx-test-run-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
19960
|
+
.sx-test-run-head .sx-spacer { flex: 1; }
|
|
19961
|
+
.sx-test-run-head .sx-section-title:focus { outline: none; }
|
|
19962
|
+
.sx-test-state { display: inline-flex; align-items: center; gap: 6px; font-size: var(--sx-meta); color: var(--t-secondary); }
|
|
19963
|
+
.sx-test-state::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--t-secondary); }
|
|
19964
|
+
.sx-test-state--done::before { background: var(--sx-ok); }
|
|
19965
|
+
.sx-test-state--failed::before, .sx-test-state--interrupted::before { background: var(--sx-err); }
|
|
19966
|
+
.sx-test-state--cancelled::before, .sx-test-state--stopped::before { background: var(--sx-warn); }
|
|
19967
|
+
.sx-test-state--queued::before, .sx-test-state--preparing::before, .sx-test-state--running::before, .sx-test-state--grading::before { background: var(--sx-info); animation: sx-ai-pulse 1.6s ease-in-out infinite; }
|
|
19968
|
+
.sx-test-spend { white-space: nowrap; }
|
|
19969
|
+
.sx-test-spend.is-over .sx-meter > i { background: var(--sx-warn); }
|
|
19970
|
+
.sx .sx-test-progress-line { margin: 0; font-size: var(--fs-xs); color: var(--t-bright); }
|
|
19971
|
+
.sx-test-live { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
|
|
19972
|
+
.sx-test-live-case { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: var(--fs-xs); }
|
|
19973
|
+
.sx-test-case-id { font: 500 var(--fs-xs)/1.4 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-bright); overflow-wrap: anywhere; }
|
|
19974
|
+
.sx .sx-tag--train, .sx .sx-tag--validation, .sx .sx-tag--test { font-size: var(--sx-meta); padding: 0 6px; }
|
|
19975
|
+
.sx .sx-tag--test { color: var(--sx-gold); border-color: color-mix(in oklab, var(--sx-gold) 40%, transparent); }
|
|
19976
|
+
.sx-test-dots { display: inline-flex; flex-wrap: wrap; gap: 3px; }
|
|
19977
|
+
.sx-test-dot { width: 10px; height: 10px; border-radius: 3px; background: var(--s-medium); border: 1px solid var(--b-light); }
|
|
19978
|
+
.sx-test-dot--running { background: var(--sx-info); animation: sx-ai-pulse 1.6s ease-in-out infinite; }
|
|
19979
|
+
.sx-test-dot--pass { background: var(--sx-ok); border-color: transparent; }
|
|
19980
|
+
.sx-test-dot--partial { background: color-mix(in oklab, var(--sx-ok) 45%, var(--sx-warn)); border-color: transparent; }
|
|
19981
|
+
.sx-test-dot--fail { background: var(--sx-err); border-color: transparent; }
|
|
19982
|
+
.sx-test-dot--error { background: transparent; border-color: var(--sx-err); }
|
|
19983
|
+
.sx-test-dot--skipped { background: transparent; border-style: dashed; }
|
|
19984
|
+
.sx-test-export { display: inline-flex; align-items: center; gap: 6px; }
|
|
19985
|
+
.sx-test-runtime-report { display: grid; gap: 8px; padding-top: 8px; border-top: 1px solid var(--b-subtle); min-width: 0; }
|
|
19986
|
+
.sx-test-runtime-name { margin: 0; font: 600 var(--fs-xs)/1.4 var(--ff-heading); color: var(--t-bright); }
|
|
19987
|
+
.sx-test-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; }
|
|
19988
|
+
.sx-test-stat { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 8px 10px; border: 1px solid var(--b-light); border-radius: 6px; background: var(--sx-field); font-size: var(--fs-xs); }
|
|
19989
|
+
.sx-test-stat-label { flex-basis: 100%; font-size: var(--sx-meta); color: var(--t-secondary); text-transform: none; }
|
|
19990
|
+
.sx-test-stat-value { font: 600 calc(18px * var(--font-scale, 1))/1.2 var(--ff-heading); color: var(--t-bright); }
|
|
19991
|
+
.sx-test-stat-vs { color: var(--t-primary); }
|
|
19992
|
+
.sx-test-delta { font-weight: 600; white-space: nowrap; }
|
|
19993
|
+
.sx-test-delta--up { color: var(--sx-ok); }
|
|
19994
|
+
.sx-test-delta--down { color: var(--sx-err); }
|
|
19995
|
+
.sx-test-delta--flat, .sx-test-delta--none { color: var(--t-secondary); }
|
|
19996
|
+
.sx-test-table { width: 100%; border-collapse: collapse; font-size: var(--fs-xs); }
|
|
19997
|
+
.sx-test-table th, .sx-test-table td { padding: 6px 8px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--b-subtle); }
|
|
19998
|
+
.sx-test-table thead th { font-weight: 500; color: var(--t-secondary); border-bottom-color: var(--b-light); }
|
|
19999
|
+
.sx-test-table tbody th { font-weight: 400; }
|
|
20000
|
+
.sx-test-table tr.is-best td, .sx-test-table tr.is-best th { background: var(--s-light); }
|
|
20001
|
+
.sx-test-desc { max-width: 52ch; overflow-wrap: anywhere; color: var(--t-primary); }
|
|
20002
|
+
.sx-test-pass { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
|
|
20003
|
+
.sx-test-pass--yes { color: var(--sx-ok); }
|
|
20004
|
+
.sx-test-pass--no { color: var(--sx-err); }
|
|
20005
|
+
.sx-test-pass--maybe { color: var(--sx-warn); }
|
|
20006
|
+
.sx-test-optimise { display: grid; gap: 8px; }
|
|
20007
|
+
.sx-test-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
|
|
20008
|
+
.sx-test-pane { display: grid; gap: 6px; align-content: start; min-width: 0; }
|
|
20009
|
+
.sx-test-pane-title { margin: 0; font: 600 var(--sx-meta)/1.4 var(--ff-heading); color: var(--t-secondary); }
|
|
20010
|
+
.sx .sx-test-pane .sx-pre { max-height: 320px; }
|
|
20011
|
+
.sx .sx-test-files { padding-left: 0; list-style: none; }
|
|
20012
|
+
.sx-test-files .sx-link { font-size: var(--fs-xs); }
|
|
20013
|
+
.sx .sx-test-next .sx-i { transform: scaleX(-1); }
|
|
20014
|
+
.sx-test-assertions { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
|
|
20015
|
+
.sx-test-assertion { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: var(--fs-xs); color: var(--t-primary); }
|
|
20016
|
+
.sx-test-assertion-text { color: var(--t-bright); }
|
|
20017
|
+
.sx .sx-test-evidence { flex-basis: 100%; margin: 0; padding-left: 18px; color: var(--t-secondary); overflow-wrap: anywhere; }
|
|
20018
|
+
.sx .sx-test-feedback .sx-field-label { align-items: baseline; }
|
|
20019
|
+
.sx-test-history { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
|
|
20020
|
+
.sx-test-history-row { display: flex; align-items: center; gap: 8px; padding: 0 0 0 8px; border: 1px solid transparent; border-radius: 5px; }
|
|
20021
|
+
.sx-test-history-row.is-on { border-color: var(--b-light); background: var(--s-light); }
|
|
20022
|
+
.sx .sx-test-history-open {
|
|
20023
|
+
flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 6px 8px;
|
|
20024
|
+
border: 0; border-radius: 5px; background: transparent; color: var(--t-primary); font: inherit; font-size: var(--fs-xs); text-align: left; cursor: pointer;
|
|
20025
|
+
}
|
|
20026
|
+
.sx .sx-test-history-open:hover { background: var(--s-hover); color: var(--t-bright); }
|
|
20027
|
+
.sx .sx-test-history-open:focus-visible { outline: 2px solid var(--sx-focus); outline-offset: 1px; }
|
|
20028
|
+
.sx-test-history-what { min-width: 0; flex: 1 1 200px; color: var(--t-bright); overflow-wrap: anywhere; }
|
|
20029
|
+
.sx-test-history-numbers { font: 500 var(--fs-xs)/1.4 var(--ff-mono, 'JetBrains Mono', monospace); color: var(--t-bright); }
|
|
20030
|
+
.sx-test-comparison { display: grid; gap: 8px; padding-top: 8px; border-top: 1px solid var(--b-subtle); }
|
|
20031
|
+
.sx-test-empty { max-width: 620px; }
|
|
20032
|
+
.sx-test-empty-actions { justify-content: center; }
|
|
20033
|
+
.sx-test-import { width: 100%; text-align: left; }
|
|
20034
|
+
.sx .sx-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
|
|
20035
|
+
@container ss (max-width: 760px) {
|
|
20036
|
+
.sx-test-side { grid-template-columns: minmax(0, 1fr); }
|
|
20037
|
+
.sx-test-stats { grid-template-columns: minmax(0, 1fr); }
|
|
20260
20038
|
}
|
|
20261
|
-
|
|
20262
|
-
|
|
20039
|
+
@container ss (max-width: 560px) {
|
|
20040
|
+
.sx-test-grid { grid-template-columns: minmax(0, 1fr); }
|
|
20041
|
+
.sx-test-scroll { padding: 12px 12px 16px; }
|
|
20042
|
+
.sx-test-bar { padding: 8px 12px; }
|
|
20043
|
+
.sx .sx-test-bar-text { flex-basis: 100%; }
|
|
20044
|
+
.sx .sx-test-bar .sx-btn--lg { width: 100%; }
|
|
20045
|
+
.sx-test-table thead { display: none; }
|
|
20046
|
+
.sx-test-table, .sx-test-table tbody, .sx-test-table tr, .sx-test-table th, .sx-test-table td { display: block; width: auto; }
|
|
20047
|
+
.sx-test-table tr { padding: 6px 0; border-bottom: 1px solid var(--b-subtle); }
|
|
20048
|
+
.sx-test-table th, .sx-test-table td { border: 0; padding: 2px 0; }
|
|
20263
20049
|
}
|
|
20264
|
-
|
|
20265
|
-
|
|
20266
|
-
|
|
20267
|
-
|
|
20050
|
+
@media (prefers-reduced-motion: reduce) {
|
|
20051
|
+
.sx-test-state::before, .sx-test-dot--running { animation: none; }
|
|
20052
|
+
.sx-test-setup-summary::before { transition: none; }
|
|
20053
|
+
}
|
|
20054
|
+
|
|
20055
|
+
/* ── Narrow windows: fold, never shrink the text ── */
|
|
20056
|
+
@container ss (max-width: 900px) {
|
|
20057
|
+
.sx-rail { --sx-rail: 56px; padding: 8px 6px; }
|
|
20058
|
+
.sx-rail :is(.sx-rail-label, .sx-rail-count, .sx-rail-groups, .sx-rt-name, .sx-rt-state) { display: none; }
|
|
20059
|
+
.sx .sx-rail-item { justify-content: center; padding: 0; }
|
|
20060
|
+
.sx .sx-rt-row { justify-content: center; }
|
|
20061
|
+
.sx-panes { grid-template-columns: 180px minmax(0, 1fr) 260px; }
|
|
20062
|
+
.sx-lib .sx-col-updated { display: none; }
|
|
20063
|
+
}
|
|
20064
|
+
@container ss (max-width: 760px) {
|
|
20065
|
+
.sx-pane-switch { display: inline-flex; }
|
|
20066
|
+
.sx-tiles { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
|
|
20067
|
+
.sx-panes { grid-template-columns: minmax(0, 1fr); }
|
|
20068
|
+
.sx-pane + .sx-pane { border-left: 0; }
|
|
20069
|
+
.sx-edit[data-pane="files"] .sx-pane:not(.sx-pane--files),
|
|
20070
|
+
.sx-edit[data-pane="doc"] .sx-pane:not(.sx-pane--doc),
|
|
20071
|
+
.sx-edit[data-pane="details"] .sx-pane:not(.sx-pane--details) { display: none; }
|
|
20072
|
+
.sx-lib .sx-col-kind { display: none; }
|
|
20073
|
+
.sx-grid .sx-path { max-width: 160px; }
|
|
20268
20074
|
}
|
|
20269
|
-
|
|
20270
|
-
|
|
20271
|
-
|
|
20272
|
-
|
|
20273
|
-
|
|
20274
|
-
|
|
20275
|
-
|
|
20276
|
-
|
|
20075
|
+
@container ss (max-width: 560px) {
|
|
20076
|
+
.sx-body { flex-direction: column; }
|
|
20077
|
+
.sx-rail { --sx-rail: auto; width: auto; flex-direction: row; align-items: center; padding: 4px 8px; border-right: 0; border-bottom: 1px solid var(--b-subtle); overflow-x: auto; overflow-y: hidden; }
|
|
20078
|
+
.sx-rail .sx-rail-list { flex-direction: row; }
|
|
20079
|
+
.sx .sx-rail-item { width: auto; padding: 0 10px; }
|
|
20080
|
+
.sx-rail .sx-rail-item .sx-rail-label, .sx-rail .sx-rail-item .sx-rail-count { display: inline; }
|
|
20081
|
+
.sx-rail-foot { display: none; }
|
|
20082
|
+
.sx-lib thead { display: none; }
|
|
20083
|
+
.sx-lib, .sx-lib tbody, .sx-lib tr, .sx-lib td { display: block; width: auto; }
|
|
20084
|
+
.sx-lib tr { position: relative; margin: 0 12px 8px; padding: 8px 12px; border: 1px solid var(--b-light); border-radius: 8px; }
|
|
20085
|
+
.sx-lib td { border: 0; padding: 2px 0; }
|
|
20086
|
+
.sx-lib .sx-col-check { position: absolute; right: 12px; top: 8px; width: auto; padding: 0; }
|
|
20087
|
+
.sx-lib .sx-col-name { padding-right: 28px; }
|
|
20088
|
+
.sx-desc { white-space: normal; }
|
|
20089
|
+
.sx-search { max-width: none; flex-basis: 100%; }
|
|
20090
|
+
.sx-ws-title .sx-tag { max-width: 100%; }
|
|
20091
|
+
.sx-create { padding: 16px; }
|
|
20092
|
+
.sx-cards { padding: 12px; }
|
|
20093
|
+
.sx-tiles { grid-template-columns: 1fr; }
|
|
20094
|
+
.sx-pub-bar { padding: 8px 12px; }
|
|
20095
|
+
.sx-pub-bar-text { flex-basis: 100%; }
|
|
20096
|
+
.sx .sx-pub-bar .sx-btn--lg { width: 100%; }
|
|
20097
|
+
.sx-pub-scroll { padding: 12px 12px 16px; }
|
|
20098
|
+
.sx-install-actions { margin-left: 0; flex-basis: 100%; }
|
|
20277
20099
|
}
|
|
20278
|
-
|
|
20279
|
-
|
|
20280
|
-
|
|
20100
|
+
@media (prefers-reduced-motion: reduce) {
|
|
20101
|
+
.skills-studio-panel.sx, .sx .sx-btn, .sx .sx-icon-btn { transition: none; }
|
|
20102
|
+
.skills-studio-panel.sx { transform: none; }
|
|
20281
20103
|
}
|
|
20282
20104
|
|
|
20283
|
-
/* ──
|
|
20284
|
-
|
|
20285
|
-
|
|
20286
|
-
padding: 4px 10px; border-radius: var(--r-small);
|
|
20287
|
-
background: var(--s-panel, rgba(30,30,40,0.95)); border: 1px solid var(--b-light);
|
|
20288
|
-
color: var(--t-bright); font-size: 11px; font-weight: 500;
|
|
20289
|
-
white-space: nowrap; pointer-events: none; z-index: 99999;
|
|
20290
|
-
}
|
|
20105
|
+
/* ── Kept from the Studio before 2.0 ──
|
|
20106
|
+
The questions inside the panel (shared/skills/ss-dialog.js), an import's review, the toasts, and the
|
|
20107
|
+
Markdown toolbar the Automation Studio's editor uses (.ss-md-toolbar, .ss-view-toggle). */
|
|
20291
20108
|
|
|
20292
|
-
/* ──
|
|
20293
|
-
.ss-
|
|
20294
|
-
|
|
20295
|
-
|
|
20296
|
-
background: rgba(0, 0, 0, 0.25);
|
|
20109
|
+
/* ── File browser dialog ── */
|
|
20110
|
+
.ss-file-dialog-overlay {
|
|
20111
|
+
position: absolute; inset: 0; z-index: 200;
|
|
20112
|
+
display: flex; align-items: center; justify-content: center;
|
|
20297
20113
|
}
|
|
20298
|
-
|
|
20299
|
-
|
|
20300
|
-
|
|
20301
|
-
.ss-preset-form input,
|
|
20302
|
-
.ss-preset-form textarea {
|
|
20303
|
-
font-size: 10px; padding: 4px 6px;
|
|
20304
|
-
background: rgba(0,0,0,0.15); border: 1px solid var(--b-subtle);
|
|
20305
|
-
border-radius: var(--r-small); color: var(--t-bright);
|
|
20306
|
-
font-family: inherit; outline: none;
|
|
20114
|
+
.ss-fd-backdrop {
|
|
20115
|
+
position: absolute; inset: 0;
|
|
20116
|
+
background: rgba(0,0,0,0.5); backdrop-filter: blur(2px);
|
|
20307
20117
|
}
|
|
20308
|
-
.ss-
|
|
20309
|
-
|
|
20310
|
-
|
|
20311
|
-
|
|
20312
|
-
|
|
20118
|
+
.ss-file-dialog {
|
|
20119
|
+
position: relative; z-index: 1;
|
|
20120
|
+
width: 340px;
|
|
20121
|
+
background: var(--s-glass-bg, rgba(18,18,28,0.96));
|
|
20122
|
+
border: 1px solid var(--b-light);
|
|
20123
|
+
border-radius: var(--r-base);
|
|
20124
|
+
box-shadow: var(--shadow-lg);
|
|
20125
|
+
display: flex; flex-direction: column;
|
|
20126
|
+
overflow: hidden;
|
|
20313
20127
|
}
|
|
20314
|
-
|
|
20315
|
-
|
|
20316
|
-
|
|
20317
|
-
|
|
20318
|
-
.ss-
|
|
20319
|
-
font-
|
|
20320
|
-
|
|
20128
|
+
/* ── Questions inside the panel (shared/skills/ss-dialog.js) ──
|
|
20129
|
+
Drawn over the panel's content in the file dialog's overlay; a modal alertdialog. */
|
|
20130
|
+
.ss-dlg { width: min(400px, calc(100% - 32px)); padding: 16px 18px; gap: 0; }
|
|
20131
|
+
.ss-dlg--wide { width: min(620px, calc(100% - 32px)); max-height: calc(100% - 40px); }
|
|
20132
|
+
.ss-dlg-title {
|
|
20133
|
+
font-family: var(--ff-heading); font-size: var(--fs-sm); font-weight: 600;
|
|
20134
|
+
color: var(--t-bright); margin-bottom: 8px; overflow-wrap: anywhere;
|
|
20135
|
+
}
|
|
20136
|
+
.ss-dlg-body {
|
|
20137
|
+
font-size: var(--fs-xs); line-height: 1.5; color: var(--t-primary);
|
|
20138
|
+
overflow-y: auto; min-height: 0; flex: 1; overflow-wrap: anywhere;
|
|
20139
|
+
}
|
|
20140
|
+
.ss-dlg-body p { margin: 0 0 6px; }
|
|
20141
|
+
.ss-dlg-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
|
|
20142
|
+
.ss-dlg-btn {
|
|
20143
|
+
padding: 6px 14px; border-radius: var(--r-small);
|
|
20144
|
+
font-size: var(--fs-xs); font-family: inherit; font-weight: 500;
|
|
20145
|
+
background: var(--s-light); color: var(--t-primary);
|
|
20146
|
+
border: 1px solid var(--b-subtle); cursor: pointer;
|
|
20147
|
+
transition: background 0.12s, color 0.12s, border-color 0.12s;
|
|
20321
20148
|
}
|
|
20149
|
+
.ss-dlg-btn:hover:not(:disabled) { background: var(--s-medium); color: var(--t-bright); }
|
|
20150
|
+
.ss-dlg-btn:focus-visible { outline: 2px solid var(--accent-blue); outline-offset: 1px; }
|
|
20151
|
+
.ss-dlg-btn:disabled { opacity: 0.4; cursor: default; }
|
|
20152
|
+
.ss-dlg-btn--primary { background: var(--s-medium); color: var(--t-bright); border-color: var(--b-light); }
|
|
20153
|
+
.ss-dlg-btn--primary:hover:not(:disabled) { background: var(--s-active); }
|
|
20154
|
+
.ss-dlg-btn--danger { background: var(--accent-red-bg); color: hsla(0, 70%, 72%, 1); border-color: hsla(0, 45%, 45%, 0.25); }
|
|
20155
|
+
.ss-dlg-btn--danger:hover:not(:disabled) { background: var(--accent-red-hover); color: var(--t-bright); }
|
|
20156
|
+
.ss-dlg-form { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
|
|
20157
|
+
.ss-dlg-error { margin: 4px 0 0; min-height: 1em; color: hsla(0, 70%, 72%, 1); font-size: var(--fs-xs); }
|
|
20158
|
+
.ss-dlg-error:empty { display: none; }
|
|
20159
|
+
|
|
20160
|
+
/* ── An import's review ── */
|
|
20161
|
+
.ss-review { display: flex; flex-direction: column; gap: 8px; }
|
|
20162
|
+
.ss-review-row { display: flex; gap: 10px; align-items: baseline; }
|
|
20163
|
+
.ss-review-label { flex: 0 0 64px; color: var(--t-secondary); }
|
|
20164
|
+
.ss-review-value { color: var(--t-bright); overflow-wrap: anywhere; }
|
|
20165
|
+
code.ss-review-value, .ss-review-evidence { font-family: var(--ff-mono, monospace); font-size: 11px; }
|
|
20166
|
+
.ss-review-files summary { cursor: pointer; color: var(--t-secondary); }
|
|
20167
|
+
.ss-review-files ul, .ss-review-list, .ss-review-facts { margin: 4px 0 0; padding-left: 18px; }
|
|
20168
|
+
.ss-review-files li, .ss-review-facts li { margin: 2px 0; }
|
|
20169
|
+
.ss-review-section { border-top: 1px solid var(--b-subtle); padding-top: 8px; }
|
|
20170
|
+
.ss-review-head { color: var(--t-bright); font-weight: 600; margin-bottom: 4px; }
|
|
20171
|
+
.ss-review-list { list-style: none; padding-left: 0; display: flex; flex-direction: column; gap: 6px; }
|
|
20172
|
+
.ss-review-item { padding: 6px 8px; border-radius: var(--r-small); background: var(--s-subtle); border-left: 2px solid var(--b-light); }
|
|
20173
|
+
.ss-review-item--critical, .ss-review-item--high { border-left-color: var(--accent-red); }
|
|
20174
|
+
.ss-review-item--medium { border-left-color: var(--accent-orange); }
|
|
20175
|
+
.ss-review-sev { color: var(--t-bright); font-weight: 600; text-transform: capitalize; }
|
|
20176
|
+
.ss-review-where { color: var(--t-secondary); font-family: var(--ff-mono, monospace); font-size: 11px; }
|
|
20177
|
+
.ss-review-evidence { display: block; margin-top: 4px; color: var(--t-primary); white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
20178
|
+
.ss-review-muted { color: var(--t-secondary); }
|
|
20179
|
+
.ss-review-warn { margin: 0; color: var(--accent-orange); }
|
|
20180
|
+
.ss-review-check { display: flex; gap: 8px; align-items: flex-start; color: var(--t-bright); cursor: pointer; }
|
|
20181
|
+
.ss-review-check input { margin-top: 2px; }
|
|
20322
20182
|
|
|
20323
|
-
/* ──
|
|
20324
|
-
.ss-
|
|
20325
|
-
|
|
20326
|
-
|
|
20327
|
-
|
|
20328
|
-
padding: 20px 14px; border: 1px solid var(--b-light);
|
|
20329
|
-
border-radius: var(--r-card); cursor: pointer;
|
|
20330
|
-
background: var(--s-subtle);
|
|
20331
|
-
transition: all 0.15s ease;
|
|
20183
|
+
/* ── Markdown toolbar ── */
|
|
20184
|
+
.ss-md-toolbar {
|
|
20185
|
+
display: flex; align-items: center; gap: 1px;
|
|
20186
|
+
padding: 3px 6px; border-bottom: 1px solid var(--b-subtle);
|
|
20187
|
+
background: rgba(0,0,0,0.08); flex-shrink: 0;
|
|
20332
20188
|
}
|
|
20333
|
-
.ss-
|
|
20334
|
-
|
|
20335
|
-
background: hsla(var(--accent-hue, 174), 50%, 50%, 0.1);
|
|
20336
|
-
border-color: hsla(var(--accent-hue, 174), 50%, 55%, 0.35);
|
|
20189
|
+
.ss-md-toolbar-sep {
|
|
20190
|
+
width: 1px; height: 16px; background: var(--b-subtle); margin: 0 4px;
|
|
20337
20191
|
}
|
|
20338
|
-
.ss-
|
|
20339
|
-
width:
|
|
20340
|
-
|
|
20341
|
-
|
|
20192
|
+
.ss-md-tool {
|
|
20193
|
+
width: 26px; height: 24px; display: flex; align-items: center; justify-content: center;
|
|
20194
|
+
background: none; border: 1px solid transparent; border-radius: var(--r-small);
|
|
20195
|
+
color: var(--t-muted); cursor: pointer; font-size: 13px; padding: 0;
|
|
20196
|
+
transition: all 0.12s ease; font-weight: 600;
|
|
20342
20197
|
}
|
|
20343
|
-
.ss-
|
|
20344
|
-
.ss-
|
|
20345
|
-
.ss-
|
|
20346
|
-
.ss-
|
|
20347
|
-
|
|
20348
|
-
|
|
20349
|
-
|
|
20350
|
-
|
|
20351
|
-
.ss-template-item {
|
|
20352
|
-
padding: 10px 14px; border: 1px solid var(--b-light);
|
|
20353
|
-
border-radius: var(--r-card); cursor: pointer;
|
|
20354
|
-
background: var(--s-subtle);
|
|
20355
|
-
transition: all 0.15s ease;
|
|
20198
|
+
.ss-md-tool:hover { background: var(--s-hover); border-color: var(--b-subtle); color: var(--t-bright); }
|
|
20199
|
+
.ss-md-tool:active { background: var(--s-light); }
|
|
20200
|
+
.ss-md-tool svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
20201
|
+
.ss-md-tool[data-active="true"] { background: var(--s-light); color: var(--t-bright); border-color: var(--b-light); }
|
|
20202
|
+
|
|
20203
|
+
/* ── Preview/Raw toggle in toolbar ── */
|
|
20204
|
+
.ss-view-toggle {
|
|
20205
|
+
display: flex; margin-left: auto; border: 1px solid var(--b-subtle); border-radius: var(--r-small); overflow: hidden;
|
|
20356
20206
|
}
|
|
20357
|
-
.ss-
|
|
20358
|
-
|
|
20359
|
-
background:
|
|
20360
|
-
|
|
20207
|
+
.ss-view-toggle-btn {
|
|
20208
|
+
padding: 2px 10px; font-size: 10px; font-weight: 500;
|
|
20209
|
+
background: none; border: none; color: var(--t-muted);
|
|
20210
|
+
cursor: pointer; transition: all 0.12s ease;
|
|
20211
|
+
text-transform: uppercase; letter-spacing: 0.3px;
|
|
20361
20212
|
}
|
|
20362
|
-
.ss-
|
|
20363
|
-
.ss-
|
|
20364
|
-
|
|
20365
|
-
/* ── Wizard name preview ── */
|
|
20366
|
-
.ss-wiz-name-preview {
|
|
20367
|
-
font-size: var(--fs-xs); color: var(--t-faint);
|
|
20368
|
-
font-family: 'JetBrains Mono', monospace; margin-top: 2px;
|
|
20213
|
+
.ss-view-toggle-btn:hover { color: var(--t-secondary); }
|
|
20214
|
+
.ss-view-toggle-btn.active {
|
|
20215
|
+
background: var(--s-light); color: var(--t-bright);
|
|
20369
20216
|
}
|
|
20370
20217
|
|
|
20371
20218
|
/* ── Toast notifications ── */
|
|
@@ -20382,36 +20229,6 @@
|
|
|
20382
20229
|
.ss-toast--error { border-color: hsla(0, 50%, 45%, 0.4); color: hsla(0, 70%, 70%, 1); }
|
|
20383
20230
|
.ss-toast--info { border-color: hsla(var(--accent-hue, 174), 50%, 55%, 0.3); }
|
|
20384
20231
|
|
|
20385
|
-
/* ── Skills Studio responsive (container queries) ── */
|
|
20386
|
-
@container ss (max-width: 680px) {
|
|
20387
|
-
.ss-welcome { padding: 32px 32px 28px; gap: 12px; }
|
|
20388
|
-
.ss-welcome-logo { width: 200px; }
|
|
20389
|
-
.ss-welcome-hero h2 { font-size: 1.3rem; }
|
|
20390
|
-
.ss-welcome-sub { font-size: 0.7rem; }
|
|
20391
|
-
.ss-stat { padding: 10px 20px; }
|
|
20392
|
-
.ss-stat-num { font-size: 22px; }
|
|
20393
|
-
.ss-stat-label { font-size: 9px; }
|
|
20394
|
-
}
|
|
20395
|
-
@container ss (max-width: 560px) {
|
|
20396
|
-
.ss-welcome { padding: 24px 20px 20px; gap: 10px; }
|
|
20397
|
-
.ss-welcome-logo { width: 150px; }
|
|
20398
|
-
.ss-welcome-hero h2 { font-size: 1.1rem; }
|
|
20399
|
-
.ss-welcome-sub { font-size: 0.65rem; max-width: 280px; }
|
|
20400
|
-
.ss-stat { padding: 8px 14px; }
|
|
20401
|
-
.ss-stat-num { font-size: 18px; }
|
|
20402
|
-
.ss-stat-label { font-size: 8px; letter-spacing: 0.8px; }
|
|
20403
|
-
.ss-welcome-hint { font-size: 10px; }
|
|
20404
|
-
}
|
|
20405
|
-
@container ss (max-width: 440px) {
|
|
20406
|
-
.ss-welcome { padding: 16px 14px 14px; gap: 8px; }
|
|
20407
|
-
.ss-welcome-logo { width: 110px; }
|
|
20408
|
-
.ss-welcome-hero h2 { font-size: 0.95rem; }
|
|
20409
|
-
.ss-welcome-sub { font-size: 0.6rem; max-width: 220px; line-height: 1.4; }
|
|
20410
|
-
.ss-stat { padding: 6px 10px; }
|
|
20411
|
-
.ss-stat-num { font-size: 16px; }
|
|
20412
|
-
.ss-stat-label { font-size: 7px; }
|
|
20413
|
-
.ss-welcome-hint { font-size: 9px; }
|
|
20414
|
-
}
|
|
20415
20232
|
|
|
20416
20233
|
/* ══════════════════════════════════════════════
|
|
20417
20234
|
AUTOMATION STUDIO PANEL
|
|
@@ -22359,55 +22176,6 @@
|
|
|
22359
22176
|
color: var(--t-secondary);
|
|
22360
22177
|
}
|
|
22361
22178
|
|
|
22362
|
-
/* ── MCP Profile selector (Codex/Gemini) ── */
|
|
22363
|
-
.as-launch-mcp-profiles {
|
|
22364
|
-
display: flex; flex-wrap: wrap; gap: 4px;
|
|
22365
|
-
width: 100%; min-width: 0;
|
|
22366
|
-
}
|
|
22367
|
-
.as-launch-mcp-loading {
|
|
22368
|
-
font-size: 10px; color: var(--t-tertiary); padding: 6px 0;
|
|
22369
|
-
}
|
|
22370
|
-
.as-launch-mcp-profile {
|
|
22371
|
-
flex: 1 1 0; min-width: 0;
|
|
22372
|
-
display: flex; flex-direction: column; align-items: center; gap: 2px;
|
|
22373
|
-
padding: 7px 6px 6px;
|
|
22374
|
-
background: rgba(255,255,255,0.03);
|
|
22375
|
-
border: 1px solid rgba(255,255,255,0.06);
|
|
22376
|
-
border-radius: 12px;
|
|
22377
|
-
cursor: pointer; transition: all 0.18s ease;
|
|
22378
|
-
backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
|
|
22379
|
-
overflow: hidden;
|
|
22380
|
-
}
|
|
22381
|
-
.as-launch-mcp-profile:hover {
|
|
22382
|
-
background: rgba(255,255,255,0.06);
|
|
22383
|
-
border-color: rgba(255,255,255,0.10);
|
|
22384
|
-
}
|
|
22385
|
-
.as-launch-mcp-profile.active {
|
|
22386
|
-
background: rgba(255,255,255,0.08);
|
|
22387
|
-
border-color: rgba(255,255,255,0.14);
|
|
22388
|
-
box-shadow: var(--shadow-xs), var(--shadow-highlight);
|
|
22389
|
-
}
|
|
22390
|
-
.as-launch-mcp-profile.active .as-launch-mcp-profile-name {
|
|
22391
|
-
color: hsla(210, 45%, 80%, 0.95);
|
|
22392
|
-
}
|
|
22393
|
-
.as-launch-mcp-profile.active .as-launch-mcp-profile-tools {
|
|
22394
|
-
color: var(--t-secondary);
|
|
22395
|
-
}
|
|
22396
|
-
.as-launch-mcp-profile-name {
|
|
22397
|
-
font-size: 11px; font-weight: 600;
|
|
22398
|
-
color: var(--t-secondary);
|
|
22399
|
-
transition: color 0.15s;
|
|
22400
|
-
max-width: 100%; text-align: center; line-height: 1.2;
|
|
22401
|
-
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
22402
|
-
}
|
|
22403
|
-
.as-launch-mcp-profile-tools {
|
|
22404
|
-
font-size: 9px; font-weight: 400;
|
|
22405
|
-
color: var(--t-faint);
|
|
22406
|
-
font-family: var(--ff-mono);
|
|
22407
|
-
transition: color 0.15s;
|
|
22408
|
-
max-width: 100%; text-align: center; line-height: 1.2;
|
|
22409
|
-
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
22410
|
-
}
|
|
22411
22179
|
|
|
22412
22180
|
/* ── Launch select — scalable dropdown for long model/MCP lists ── */
|
|
22413
22181
|
.as-launch-select {
|
|
@@ -24415,83 +24183,6 @@
|
|
|
24415
24183
|
transform: scale(1.15);
|
|
24416
24184
|
}
|
|
24417
24185
|
|
|
24418
|
-
/* MCP profile dropdown in floating terminal header */
|
|
24419
|
-
.term-float-profile-dd {
|
|
24420
|
-
position: relative;
|
|
24421
|
-
flex-shrink: 0;
|
|
24422
|
-
margin-left: 4px;
|
|
24423
|
-
}
|
|
24424
|
-
.term-float-profile-btn {
|
|
24425
|
-
display: flex;
|
|
24426
|
-
align-items: center;
|
|
24427
|
-
gap: 3px;
|
|
24428
|
-
background: rgba(255,255,255,0.06);
|
|
24429
|
-
border: 1px solid rgba(255,255,255,0.08);
|
|
24430
|
-
border-radius: 4px;
|
|
24431
|
-
padding: 2px 6px;
|
|
24432
|
-
cursor: pointer !important;
|
|
24433
|
-
color: rgba(255,255,255,0.55);
|
|
24434
|
-
font-size: 10px;
|
|
24435
|
-
font-family: var(--ff-heading);
|
|
24436
|
-
line-height: 1;
|
|
24437
|
-
white-space: nowrap;
|
|
24438
|
-
transition: color 0.15s, background 0.15s, border-color 0.15s;
|
|
24439
|
-
}
|
|
24440
|
-
.term-float-profile-btn:hover {
|
|
24441
|
-
color: rgba(255,255,255,0.85);
|
|
24442
|
-
background: rgba(255,255,255,0.1);
|
|
24443
|
-
border-color: rgba(255,255,255,0.15);
|
|
24444
|
-
}
|
|
24445
|
-
.term-float-profile-arrow {
|
|
24446
|
-
font-size: 8px;
|
|
24447
|
-
opacity: 0.5;
|
|
24448
|
-
}
|
|
24449
|
-
.term-float-profile-menu {
|
|
24450
|
-
display: none;
|
|
24451
|
-
position: absolute;
|
|
24452
|
-
top: calc(100% + 4px);
|
|
24453
|
-
left: 0;
|
|
24454
|
-
min-width: 160px;
|
|
24455
|
-
max-height: 320px;
|
|
24456
|
-
overflow-y: auto;
|
|
24457
|
-
background: rgba(18, 18, 24, 0.97);
|
|
24458
|
-
border: 1px solid rgba(255,255,255,0.1);
|
|
24459
|
-
border-radius: 8px;
|
|
24460
|
-
padding: 4px;
|
|
24461
|
-
z-index: 10010;
|
|
24462
|
-
backdrop-filter: blur(12px);
|
|
24463
|
-
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
|
24464
|
-
}
|
|
24465
|
-
.term-float-profile-menu.open { display: block; }
|
|
24466
|
-
.term-float-profile-option {
|
|
24467
|
-
display: flex;
|
|
24468
|
-
align-items: center;
|
|
24469
|
-
justify-content: space-between;
|
|
24470
|
-
gap: 8px;
|
|
24471
|
-
padding: 6px 8px;
|
|
24472
|
-
border-radius: 5px;
|
|
24473
|
-
cursor: pointer;
|
|
24474
|
-
transition: background 0.12s;
|
|
24475
|
-
}
|
|
24476
|
-
.term-float-profile-option:hover {
|
|
24477
|
-
background: rgba(255,255,255,0.08);
|
|
24478
|
-
}
|
|
24479
|
-
.term-float-profile-option.selected {
|
|
24480
|
-
background: rgba(79, 195, 247, 0.12);
|
|
24481
|
-
}
|
|
24482
|
-
.term-float-profile-option .tfp-name {
|
|
24483
|
-
font-size: 11px;
|
|
24484
|
-
color: rgba(255,255,255,0.85);
|
|
24485
|
-
font-family: var(--ff-heading);
|
|
24486
|
-
}
|
|
24487
|
-
.term-float-profile-option.selected .tfp-name {
|
|
24488
|
-
color: #4FC3F7;
|
|
24489
|
-
}
|
|
24490
|
-
.term-float-profile-option .tfp-hint {
|
|
24491
|
-
font-size: 9px;
|
|
24492
|
-
color: rgba(255,255,255,0.3);
|
|
24493
|
-
font-family: var(--ff-mono);
|
|
24494
|
-
}
|
|
24495
24186
|
|
|
24496
24187
|
/* Recall profile dropdown in floating terminal header */
|
|
24497
24188
|
.term-float-recall-dd {
|
|
@@ -26223,7 +25914,7 @@
|
|
|
26223
25914
|
|
|
26224
25915
|
.link-panel {
|
|
26225
25916
|
position: fixed;
|
|
26226
|
-
z-index:
|
|
25917
|
+
z-index: 49900; /* under the app frame (49990) */
|
|
26227
25918
|
display: flex;
|
|
26228
25919
|
flex-direction: column;
|
|
26229
25920
|
border: 1px solid rgba(255,255,255,0.12);
|
|
@@ -26963,7 +26654,7 @@
|
|
|
26963
26654
|
.as-launch-inline-header, .as-unsaved-dialog-header) > button,
|
|
26964
26655
|
body :is(.ecm-close, .awiz-close, .sched-prompt-close),
|
|
26965
26656
|
body .as-header .as-sidebar-toggle,
|
|
26966
|
-
body .term-float-tab-header :is(.term-float-
|
|
26657
|
+
body .term-float-tab-header :is(.term-float-recall-btn) { min-width: 44px; min-height: 44px; }
|
|
26967
26658
|
}
|
|
26968
26659
|
|
|
26969
26660
|
/* ═══════════════════════════════════════════
|
|
@@ -26971,7 +26662,7 @@
|
|
|
26971
26662
|
Uses the shared Settings roles above; shell/glass preferences stay shared.
|
|
26972
26663
|
═══════════════════════════════════════════ */
|
|
26973
26664
|
.command-runner-panel {
|
|
26974
|
-
position: fixed; z-index:
|
|
26665
|
+
position: fixed; z-index: 49900; /* under the app frame (49990) */
|
|
26975
26666
|
width: 720px; max-width: calc(100vw - 16px); min-width: min(320px, calc(100vw - 16px));
|
|
26976
26667
|
height: 680px; max-height: calc(100dvh - var(--navbar-height, 48px) - 16px);
|
|
26977
26668
|
min-height: min(360px, calc(100dvh - var(--navbar-height, 48px) - 16px));
|
|
@@ -28706,9 +28397,9 @@
|
|
|
28706
28397
|
border-bottom: 1px solid var(--b-subtle);
|
|
28707
28398
|
flex-shrink: 0;
|
|
28708
28399
|
user-select: none;
|
|
28709
|
-
cursor:
|
|
28400
|
+
cursor: move;
|
|
28710
28401
|
}
|
|
28711
|
-
.ig-header:active { cursor:
|
|
28402
|
+
.ig-header:active { cursor: move; }
|
|
28712
28403
|
.ig-header-left {
|
|
28713
28404
|
display: flex;
|
|
28714
28405
|
align-items: center;
|
|
@@ -29058,6 +28749,25 @@
|
|
|
29058
28749
|
outline: 2px solid var(--stg-focus, #93c5fd);
|
|
29059
28750
|
outline-offset: 2px;
|
|
29060
28751
|
}
|
|
28752
|
+
/* The notice after an automatic restart (ui-crash-notice.js): the same toast, until it is dismissed. It moves to
|
|
28753
|
+
the top right while another update toast (the desktop app's update notice, a check's answer) holds the bottom right. */
|
|
28754
|
+
.crash-notice { max-height: calc(100vh - 120px); overflow-y: auto; }
|
|
28755
|
+
.crash-notice .utc-sub { overflow-wrap: anywhere; margin-top: 2px; }
|
|
28756
|
+
.crash-notice-lost-title {
|
|
28757
|
+
margin-top: 8px;
|
|
28758
|
+
font-weight: 600;
|
|
28759
|
+
color: var(--t-primary);
|
|
28760
|
+
}
|
|
28761
|
+
.crash-notice .crash-notice-lost { margin-top: 2px; }
|
|
28762
|
+
.crash-notice .crash-notice-lost li { overflow-wrap: anywhere; }
|
|
28763
|
+
.crash-notice-note { margin-top: 6px; }
|
|
28764
|
+
.crash-notice-note[hidden] { display: none; }
|
|
28765
|
+
.crash-notice .action-btn:focus-visible {
|
|
28766
|
+
outline: 2px solid var(--stg-focus, #93c5fd);
|
|
28767
|
+
outline-offset: 2px;
|
|
28768
|
+
}
|
|
28769
|
+
body:has(.update-check-toast:not(.crash-notice)) .crash-notice { bottom: auto; top: 64px; }
|
|
28770
|
+
@media (prefers-reduced-motion: reduce) { .crash-notice { transition: none; } }
|
|
29061
28771
|
|
|
29062
28772
|
.update-channel-pill {
|
|
29063
28773
|
display: inline-block;
|
|
@@ -29458,3 +29168,39 @@ body .styleguide-panel {
|
|
|
29458
29168
|
@media (prefers-reduced-motion: reduce) {
|
|
29459
29169
|
.wa-primary, .wa-btn, .wa-mode-card, .wa-level-card { transition: none; }
|
|
29460
29170
|
}
|
|
29171
|
+
|
|
29172
|
+
/* Skills Studio: Health and Discover reuse the existing shell tokens. */
|
|
29173
|
+
.sx .sx-ops-grid { display: grid; align-items: stretch; grid-auto-rows: 1fr; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 12px; margin: 12px 0; }
|
|
29174
|
+
.sx .sx-ops-card { padding: 12px; border: 1px solid var(--b-light); border-radius: var(--r-card); background: var(--s-subtle); min-width: 0; overflow-wrap: anywhere; }
|
|
29175
|
+
.sx .sx-ops-card[hidden] { display: none; }
|
|
29176
|
+
.sx .sx-ops-card code { font-family: var(--ff-mono, 'JetBrains Mono', monospace); font-size: var(--sx-meta); }
|
|
29177
|
+
|
|
29178
|
+
/* Tool-list multiple mode: the Settings control/check tokens, within the existing dropdown. */
|
|
29179
|
+
.cc-dropdown[data-multiple="true"] .cc-dropdown-trigger {
|
|
29180
|
+
height: 22px; max-width: 100%; font-family: inherit; font-size: var(--fs-xs);
|
|
29181
|
+
border-radius: var(--radius-control, 5px);
|
|
29182
|
+
}
|
|
29183
|
+
.cc-dropdown[data-multiple="true"] .cc-dropdown-trigger:focus-visible { outline: 2px solid var(--stg-focus, var(--accent-blue)); outline-offset: 2px; }
|
|
29184
|
+
.cc-dropdown[data-multiple="true"] .cc-dropdown-item { display: flex; align-items: center; gap: 8px; white-space: normal; }
|
|
29185
|
+
.cc-dropdown[data-multiple="true"] .cc-dropdown-item.highlight { outline: 1px solid var(--stg-focus, var(--accent-blue)); outline-offset: -1px; }
|
|
29186
|
+
.cc-dropdown[data-multiple="true"] .cc-dropdown-item[aria-disabled="true"] { cursor: default; }
|
|
29187
|
+
.cc-dropdown-check { width: 14px; height: 14px; flex: 0 0 14px; border: 1px solid var(--b-visible); border-radius: var(--radius-check, 3px); background: var(--s-subtle); }
|
|
29188
|
+
.cc-dropdown-item.active > .cc-dropdown-check { background: var(--stg-accent-fill, var(--accent-blue)); border-color: var(--stg-accent-fill, var(--accent-blue)); }
|
|
29189
|
+
.cc-dropdown-item.active > .cc-dropdown-check::after { content: '✓'; display: block; text-align: center; line-height: 12px; color: var(--t-bright); }
|
|
29190
|
+
.cc-dropdown-caption { display: block; font-size: inherit; font-weight: 400; color: var(--t-muted); }
|
|
29191
|
+
.cc-dropdown-group { padding: 4px 8px; color: var(--t-muted); font-size: var(--fs-xs); }
|
|
29192
|
+
.tool-list-picker { max-width: 100%; min-width: 0; }
|
|
29193
|
+
|
|
29194
|
+
.tool-list-picker .cc-dropdown-menu { background: var(--color-surface-raised, #16161a); min-width: 240px; max-width: 360px; overflow-y: auto; border-radius: var(--radius-md, var(--r-card)); box-shadow: var(--shadow-popover, var(--shadow-lg)); }
|
|
29195
|
+
.asst-tools-picker { min-width: 0; max-width: 180px; flex: 0 1 180px; }
|
|
29196
|
+
.asst-tools-picker .cc-dropdown { width: 100%; }
|
|
29197
|
+
.asst-tools-picker .cc-dropdown-trigger { position: relative; isolation: isolate; width: 100%; min-width: 0; height: var(--asst-pill-h-sm); background: var(--asst-field); color: var(--asst-text-2); border-color: var(--asst-line); }
|
|
29198
|
+
/* The same invisible hit margin as the Assistant's other compact toolbar controls. */
|
|
29199
|
+
.asst-tools-picker .cc-dropdown-trigger::after { content: ''; position: absolute; inset: calc((var(--asst-pill-h-sm) - var(--asst-pill-h-md)) / 2); z-index: -1; border-radius: inherit; }
|
|
29200
|
+
.asst-tools-picker .cc-dropdown-menu { background: var(--asst-popover); border-color: var(--asst-popover-ring); box-shadow: var(--asst-popover-shadow); }
|
|
29201
|
+
.asst-tools-picker .cc-dropdown-caption { color: var(--asst-text-3); }
|
|
29202
|
+
.ocpv2-tools-picker { min-width: 0; max-width: 160px; }
|
|
29203
|
+
.ocpv2-tools-picker .ocpv2-dropdown { padding: 0; max-width: 160px; }
|
|
29204
|
+
.ocpv2-tools-picker .cc-dropdown-trigger { min-width: 0; max-width: 160px; border: none; background: transparent; color: var(--t-primary); font-family: inherit; }
|
|
29205
|
+
|
|
29206
|
+
.ocpv2-tools-picker .tool-list-picker .cc-dropdown-menu { background: rgba(22,22,26,0.98); }
|