@pyric/cli 0.1.0-alpha.14 → 0.1.0-alpha.15
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/dist/assurance/.generated/conformance-verdicts.d.ts +120 -75
- package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
- package/dist/assurance/.generated/conformance-verdicts.js +120 -75
- package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +207 -284
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/service-command-records/database-rules-generate.d.ts +4 -0
- package/dist/cli/service-command-records/database-rules-generate.d.ts.map +1 -0
- package/dist/cli/service-command-records/database-rules-generate.js +3 -0
- package/dist/cli/service-command-records/database-rules-generate.js.map +1 -0
- package/dist/cli/service-command-records/database-rules-lint.d.ts +4 -0
- package/dist/cli/service-command-records/database-rules-lint.d.ts.map +1 -0
- package/dist/cli/service-command-records/database-rules-lint.js +3 -0
- package/dist/cli/service-command-records/database-rules-lint.js.map +1 -0
- package/dist/cli/service-command-records/database-rules-simulate.d.ts +4 -0
- package/dist/cli/service-command-records/database-rules-simulate.d.ts.map +1 -0
- package/dist/cli/service-command-records/database-rules-simulate.js +3 -0
- package/dist/cli/service-command-records/database-rules-simulate.js.map +1 -0
- package/dist/cli/service-command-records/database-rules-validate.d.ts +4 -0
- package/dist/cli/service-command-records/database-rules-validate.d.ts.map +1 -0
- package/dist/cli/service-command-records/database-rules-validate.js +3 -0
- package/dist/cli/service-command-records/database-rules-validate.js.map +1 -0
- package/dist/cli/service-command-records/firestore-indexes-generate.d.ts +4 -0
- package/dist/cli/service-command-records/firestore-indexes-generate.d.ts.map +1 -0
- package/dist/cli/service-command-records/firestore-indexes-generate.js +3 -0
- package/dist/cli/service-command-records/firestore-indexes-generate.js.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-lint.d.ts +4 -0
- package/dist/cli/service-command-records/firestore-rules-lint.d.ts.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-lint.js +3 -0
- package/dist/cli/service-command-records/firestore-rules-lint.js.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-resolve.d.ts +4 -0
- package/dist/cli/service-command-records/firestore-rules-resolve.d.ts.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-resolve.js +3 -0
- package/dist/cli/service-command-records/firestore-rules-resolve.js.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-simulate.d.ts +4 -0
- package/dist/cli/service-command-records/firestore-rules-simulate.d.ts.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-simulate.js +3 -0
- package/dist/cli/service-command-records/firestore-rules-simulate.js.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-validate.d.ts +4 -0
- package/dist/cli/service-command-records/firestore-rules-validate.d.ts.map +1 -0
- package/dist/cli/service-command-records/firestore-rules-validate.js +3 -0
- package/dist/cli/service-command-records/firestore-rules-validate.js.map +1 -0
- package/dist/cli/service-command-records/storage-rules-lint.d.ts +4 -0
- package/dist/cli/service-command-records/storage-rules-lint.d.ts.map +1 -0
- package/dist/cli/service-command-records/storage-rules-lint.js +3 -0
- package/dist/cli/service-command-records/storage-rules-lint.js.map +1 -0
- package/dist/cli/service-command-records/storage-rules-simulate.d.ts +4 -0
- package/dist/cli/service-command-records/storage-rules-simulate.d.ts.map +1 -0
- package/dist/cli/service-command-records/storage-rules-simulate.js +3 -0
- package/dist/cli/service-command-records/storage-rules-simulate.js.map +1 -0
- package/dist/cli/service-commands.d.ts +7 -0
- package/dist/cli/service-commands.d.ts.map +1 -1
- package/dist/cli/service-commands.generated.d.ts +35 -0
- package/dist/cli/service-commands.generated.d.ts.map +1 -0
- package/dist/cli/service-commands.generated.js +25 -0
- package/dist/cli/service-commands.generated.js.map +1 -0
- package/dist/cli/service-commands.js +23 -40
- package/dist/cli/service-commands.js.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.js +1 -1
- package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
- package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use.js +1 -1
- package/dist/conformance/.generated/can-i-use.js.map +1 -1
- package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
- package/dist/conformance/.generated/conformance-docs.js +1 -1
- package/dist/conformance/.generated/conformance-docs.js.map +1 -1
- package/dist/functions-rtdb/development-runtime.d.ts +63 -0
- package/dist/functions-rtdb/development-runtime.d.ts.map +1 -0
- package/dist/functions-rtdb/development-runtime.js +244 -0
- package/dist/functions-rtdb/development-runtime.js.map +1 -0
- package/dist/serve/bridge-mount.d.ts +32 -2
- package/dist/serve/bridge-mount.d.ts.map +1 -1
- package/dist/serve/bridge-mount.js +232 -18
- package/dist/serve/bridge-mount.js.map +1 -1
- package/dist/serve/bundler.d.ts +2 -18
- package/dist/serve/bundler.d.ts.map +1 -1
- package/dist/serve/bundler.js +7 -35
- package/dist/serve/bundler.js.map +1 -1
- package/dist/serve/entries/app-client.d.ts.map +1 -1
- package/dist/serve/entries/app-client.js +5 -5
- package/dist/serve/entries/app-client.js.map +1 -1
- package/dist/serve/entries/auth-helper-core.d.ts +23 -6
- package/dist/serve/entries/auth-helper-core.d.ts.map +1 -1
- package/dist/serve/entries/auth-helper-core.js +55 -24
- package/dist/serve/entries/auth-helper-core.js.map +1 -1
- package/dist/serve/entries/database.d.ts +28 -0
- package/dist/serve/entries/database.d.ts.map +1 -1
- package/dist/serve/entries/database.js +95 -26
- package/dist/serve/entries/database.js.map +1 -1
- package/dist/serve/entries/init.d.ts.map +1 -1
- package/dist/serve/entries/init.js +21 -12
- package/dist/serve/entries/init.js.map +1 -1
- package/dist/serve/html-injection.d.ts +5 -0
- package/dist/serve/html-injection.d.ts.map +1 -0
- package/dist/serve/html-injection.js +59 -0
- package/dist/serve/html-injection.js.map +1 -0
- package/dist/serve/namespace.d.ts +6 -22
- package/dist/serve/namespace.d.ts.map +1 -1
- package/dist/serve/namespace.js +23 -145
- package/dist/serve/namespace.js.map +1 -1
- package/dist/serve/runtime/worker-replacement.d.ts +1 -2
- package/dist/serve/runtime/worker-replacement.d.ts.map +1 -1
- package/dist/serve/sandbox-session.d.ts +78 -0
- package/dist/serve/sandbox-session.d.ts.map +1 -0
- package/dist/serve/sandbox-session.js +171 -0
- package/dist/serve/sandbox-session.js.map +1 -0
- package/dist/serve/server.d.ts +5 -2
- package/dist/serve/server.d.ts.map +1 -1
- package/dist/serve/server.js +21 -5
- package/dist/serve/server.js.map +1 -1
- package/dist/serve/site-tree.d.ts +8 -0
- package/dist/serve/site-tree.d.ts.map +1 -0
- package/dist/serve/site-tree.js +113 -0
- package/dist/serve/site-tree.js.map +1 -0
- package/dist/serve/site-ui/_astro/RulesCodeEditor.CzwHdCi9.js +23 -0
- package/dist/serve/site-ui/_astro/_example_.jevZ7OdV.css +1 -0
- package/dist/serve/site-ui/_astro/_slug_.BoKXYrnu.css +1 -0
- package/dist/serve/site-ui/_astro/_studio_.BtYpqe1A.css +1 -0
- package/dist/serve/site-ui/_astro/app.BnMC0ywl.js +109 -0
- package/dist/serve/site-ui/_astro/app.BsFsMjn0.css +1 -0
- package/dist/serve/site-ui/_astro/app.DVXXR-WI.js +1 -0
- package/dist/serve/site-ui/_astro/chess-showcase.DzPO6kz0.js +1 -0
- package/dist/serve/site-ui/_astro/chess-source-explorer.C5k9c5yK.js +1 -0
- package/dist/serve/site-ui/_astro/chess-v2.CFHmd3UL.js +354 -0
- package/dist/serve/site-ui/_astro/client.D2ORs4B-.js +25 -0
- package/dist/serve/site-ui/_astro/example-runtime.CM0H02rx.js +291 -0
- package/dist/serve/site-ui/_astro/index.B4Kh80he.js +1 -0
- package/dist/serve/site-ui/_astro/index.DBy5LfQW.js +9 -0
- package/dist/serve/site-ui/_astro/index.DNyk7q8W.js +9 -0
- package/dist/serve/site-ui/_astro/jsx-runtime.D_zvdyIk.js +9 -0
- package/dist/serve/site-ui/_astro/reads.D1exkX1-.js +1 -0
- package/dist/serve/site-ui/_astro/sandbox-controls.BqMePr5V.js +1153 -0
- package/dist/serve/site-ui/_astro/seed.BCn5DhHS.js +20 -0
- package/dist/serve/site-ui/auth/index.html +11 -0
- package/dist/serve/site-ui/docs/_rhythm/index.html +100 -0
- package/dist/serve/site-ui/docs/agent/set-up-your-agent/index.html +43 -0
- package/dist/serve/site-ui/docs/agent/watch-and-review/index.html +26 -0
- package/dist/serve/site-ui/docs/agent/work-with-an-agent/index.html +70 -0
- package/dist/serve/{docs-ui → site-ui}/docs/ai-compat/index.html +3 -3
- package/dist/serve/site-ui/docs/api-reference/index.html +68 -0
- package/dist/serve/{docs-ui → site-ui}/docs/app-compat/index.html +3 -3
- package/dist/serve/{docs-ui → site-ui}/docs/auth-compat/index.html +3 -3
- package/dist/serve/site-ui/docs/build/ai-logic/index.html +64 -0
- package/dist/serve/site-ui/docs/build/authentication/index.html +66 -0
- package/dist/serve/site-ui/docs/build/cloud-firestore/index.html +84 -0
- package/dist/serve/site-ui/docs/build/cloud-messaging/index.html +71 -0
- package/dist/serve/site-ui/docs/build/cloud-storage/index.html +66 -0
- package/dist/serve/{docs-ui → site-ui}/docs/build/cloud-storage.md +2 -2
- package/dist/serve/site-ui/docs/build/realtime-database/index.html +67 -0
- package/dist/serve/site-ui/docs/conformance-scores/index.html +50 -0
- package/dist/serve/{docs-ui → site-ui}/docs/conformance-scores.md +3 -3
- package/dist/serve/site-ui/docs/create-pyric-reference-api/index.html +531 -0
- package/dist/serve/{docs-ui → site-ui}/docs/database-compat/index.html +211 -168
- package/dist/serve/{docs-ui → site-ui}/docs/database-compat.md +208 -170
- package/dist/serve/site-ui/docs/examples/chess/index.html +384 -0
- package/dist/serve/site-ui/docs/examples/chess.md +57 -0
- package/dist/serve/site-ui/docs/examples/index.html +3 -0
- package/dist/serve/site-ui/docs/examples.md +4 -0
- package/dist/serve/{docs-ui → site-ui}/docs/firestore-compat/index.html +55 -91
- package/dist/serve/{docs-ui → site-ui}/docs/firestore-compat.md +52 -88
- package/dist/serve/site-ui/docs/functions-rtdb-compat/index.html +73 -0
- package/dist/serve/site-ui/docs/get-started/how-the-swap-works/index.html +29 -0
- package/dist/serve/site-ui/docs/get-started/start-building/index.html +33 -0
- package/dist/serve/{docs-ui → site-ui}/docs/index.json +595 -26
- package/dist/serve/site-ui/docs/messaging-compat/index.html +324 -0
- package/dist/serve/{docs-ui → site-ui}/docs/messaging-compat.md +71 -1
- package/dist/serve/site-ui/docs/observe/resolve-runtime-status/index.html +28 -0
- package/dist/serve/site-ui/docs/observe/see-whats-happening/index.html +74 -0
- package/dist/serve/site-ui/docs/observe/shape-your-data/index.html +45 -0
- package/dist/serve/site-ui/docs/overview/index.html +17 -0
- package/dist/serve/site-ui/docs/pyric-admin-app-reference-api/index.html +186 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-auth-reference-api/index.html +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-database-reference-api/index.html +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-firestore-reference-api/index.html +318 -202
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-firestore-reference-api.md +154 -27
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-messaging-reference-api/index.html +5 -5
- package/dist/serve/site-ui/docs/pyric-admin-storage-reference-api/index.html +318 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ai-reference-api/index.html +5 -5
- package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api/index.html +160 -0
- package/dist/serve/site-ui/docs/pyric-app-reference-api/index.html +425 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-auth-reference-api/index.html +5 -5
- package/dist/serve/site-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +60 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-assurance-reference-api/index.html +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-bridge-client-reference-api/index.html +4 -4
- package/dist/serve/site-ui/docs/pyric-cli-bridge-reference-api/index.html +507 -0
- package/dist/serve/site-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +258 -0
- package/dist/serve/site-ui/docs/pyric-cli-conformance-docs-reference-api/index.html +51 -0
- package/dist/serve/site-ui/docs/pyric-cli-conformance-reference-api/index.html +308 -0
- package/dist/serve/site-ui/docs/pyric-cli-credentials-node-reference-api/index.html +68 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-discover-reference-api/index.html +4 -4
- package/dist/serve/site-ui/docs/pyric-cli-register-reference-api/index.html +11 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-remote-reference-api/index.html +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-serve-worker-reference-api/index.html +1186 -1384
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-serve-worker-reference-api.md +817 -1291
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-verify-reference-api/index.html +4 -4
- package/dist/serve/site-ui/docs/pyric-cli-vite-reference-api/index.html +126 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-vite-reference-api.md +1 -1
- package/dist/serve/site-ui/docs/pyric-database-reference-api/index.html +2641 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-database-reference-api.md +1055 -158
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-firestore-reference-api/index.html +311 -249
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-firestore-reference-api.md +72 -54
- package/dist/serve/site-ui/docs/pyric-messaging-reference-api/index.html +509 -0
- package/dist/serve/site-ui/docs/pyric-messaging-sw-reference-api/index.html +182 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-rules-reference-api/index.html +7 -26
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-rules-reference-api.md +13 -23
- package/dist/serve/site-ui/docs/pyric-sandbox-database-reference-api/index.html +121 -0
- package/dist/serve/site-ui/docs/pyric-sandbox-firestore-reference-api/index.html +203 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-sandbox-reference-api/index.html +26 -5
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-sandbox-reference-api.md +22 -22
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-storage-reference-api/index.html +5 -15
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-storage-reference-api.md +0 -13
- package/dist/serve/site-ui/docs/pyric-ui-agents-reference-api/index.html +639 -0
- package/dist/serve/site-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +100 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-auth-reference-api/index.html +4 -4
- package/dist/serve/site-ui/docs/pyric-ui-events-hooks-reference-api/index.html +24 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-events-reference-api/index.html +4 -4
- package/dist/serve/site-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +136 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-firestore-reference-api/index.html +7 -7
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-firestore-reference-api.md +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-primitives-reference-api/index.html +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-rtdb-reference-api/index.html +4 -4
- package/dist/serve/site-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +16 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-rules-reference-api/index.html +4 -4
- package/dist/serve/site-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +176 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-storage-reference-api/index.html +10 -11
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-storage-reference-api.md +7 -8
- package/dist/serve/site-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +188 -0
- package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-traffic-reference-api/index.html +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/rules-compat/index.html +87 -57
- package/dist/serve/{docs-ui → site-ui}/docs/rules-compat.md +84 -54
- package/dist/serve/site-ui/docs/secure/audit-your-rules/index.html +51 -0
- package/dist/serve/site-ui/docs/secure/firestore-rules-limits/index.html +106 -0
- package/dist/serve/site-ui/docs/secure/read-a-denial/index.html +41 -0
- package/dist/serve/site-ui/docs/secure/rtdb-rules-in-typescript/index.html +67 -0
- package/dist/serve/site-ui/docs/secure/rules-standard-library/index.html +159 -0
- package/dist/serve/{docs-ui → site-ui}/docs/secure/rules-standard-library.md +2 -2
- package/dist/serve/site-ui/docs/secure/secure-it-with-rules/index.html +47 -0
- package/dist/serve/site-ui/docs/secure/simulate-and-lint/index.html +95 -0
- package/dist/serve/site-ui/docs/secure/write-a-rules-test-suite/index.html +82 -0
- package/dist/serve/site-ui/docs/ship/ship-to-production/index.html +37 -0
- package/dist/serve/site-ui/docs/ship/test-in-node/index.html +75 -0
- package/dist/serve/{docs-ui → site-ui}/docs/storage-compat/index.html +8 -8
- package/dist/serve/{docs-ui → site-ui}/docs/storage-compat.md +5 -5
- package/dist/serve/site-ui/docs/trust/how-we-know-it-matches-firebase/index.html +132 -0
- package/dist/serve/site-ui/docs/trust/rules-standard-library/index.html +861 -0
- package/dist/serve/site-ui/docs/trust/rules-standard-library.md +344 -0
- package/dist/serve/site-ui/docs/trust/storage-rules-stdlib-research/index.html +582 -0
- package/dist/serve/site-ui/docs/trust/storage-rules-stdlib-research.md +448 -0
- package/dist/serve/site-ui/docs/trust/versioning-and-compatibility/index.html +14 -0
- package/dist/serve/{docs-ui → site-ui}/docs/tutorial/index.html +4 -4
- package/dist/serve/{docs-ui → site-ui}/docs/tutorial.md +1 -1
- package/dist/serve/site-ui/examples/chess/index.html +2 -0
- package/dist/serve/site-ui/examples/firestore-first-write/index.html +2 -0
- package/dist/serve/site-ui/firestore/index.html +11 -0
- package/dist/serve/site-ui/index.html +11 -0
- package/dist/serve/{docs-ui → site-ui}/llms.txt +6 -2
- package/dist/serve/site-ui/rtdb/index.html +11 -0
- package/dist/serve/site-ui/settings/index.html +11 -0
- package/dist/serve/site-ui/storage/index.html +11 -0
- package/dist/serve/site-ui/studio-routes.json +1 -0
- package/dist/serve/site-ui/traffic/index.html +11 -0
- package/dist/serve/standalone-assets.d.ts +4 -10
- package/dist/serve/standalone-assets.d.ts.map +1 -1
- package/dist/serve/standalone-assets.js +8 -21
- package/dist/serve/standalone-assets.js.map +1 -1
- package/dist/serve/vite-functions-development.d.ts +29 -0
- package/dist/serve/vite-functions-development.d.ts.map +1 -0
- package/dist/serve/vite-functions-development.js +150 -0
- package/dist/serve/vite-functions-development.js.map +1 -0
- package/dist/serve/vite-generation-bridge.d.ts +17 -0
- package/dist/serve/vite-generation-bridge.d.ts.map +1 -0
- package/dist/serve/vite-generation-bridge.js +47 -0
- package/dist/serve/vite-generation-bridge.js.map +1 -0
- package/dist/serve/vite-generation-functions.d.ts +35 -0
- package/dist/serve/vite-generation-functions.d.ts.map +1 -0
- package/dist/serve/vite-generation-functions.js +46 -0
- package/dist/serve/vite-generation-functions.js.map +1 -0
- package/dist/serve/vite-generation-middleware.d.ts +10 -0
- package/dist/serve/vite-generation-middleware.d.ts.map +1 -0
- package/dist/serve/vite-generation-middleware.js +40 -0
- package/dist/serve/vite-generation-middleware.js.map +1 -0
- package/dist/serve/vite-generation-rules-watch.d.ts +8 -0
- package/dist/serve/vite-generation-rules-watch.d.ts.map +1 -0
- package/dist/serve/vite-generation-rules-watch.js +33 -0
- package/dist/serve/vite-generation-rules-watch.js.map +1 -0
- package/dist/serve/vite-module-swap.d.ts +16 -0
- package/dist/serve/vite-module-swap.d.ts.map +1 -0
- package/dist/serve/vite-module-swap.js +96 -0
- package/dist/serve/vite-module-swap.js.map +1 -0
- package/dist/serve/vite-page-runtime.d.ts +29 -0
- package/dist/serve/vite-page-runtime.d.ts.map +1 -0
- package/dist/serve/vite-page-runtime.js +71 -0
- package/dist/serve/vite-page-runtime.js.map +1 -0
- package/dist/serve/vite-plugin.d.ts +44 -4
- package/dist/serve/vite-plugin.d.ts.map +1 -1
- package/dist/serve/vite-plugin.js +62 -864
- package/dist/serve/vite-plugin.js.map +1 -1
- package/dist/serve/vite-sandbox-generation.d.ts +57 -0
- package/dist/serve/vite-sandbox-generation.d.ts.map +1 -0
- package/dist/serve/vite-sandbox-generation.js +178 -0
- package/dist/serve/vite-sandbox-generation.js.map +1 -0
- package/dist/serve/worker/client/disconnect.d.ts.map +1 -1
- package/dist/serve/worker/client/disconnect.js +2 -0
- package/dist/serve/worker/client/disconnect.js.map +1 -1
- package/dist/serve/worker/client/handles.d.ts +5 -0
- package/dist/serve/worker/client/handles.d.ts.map +1 -1
- package/dist/serve/worker/client/handles.js.map +1 -1
- package/dist/serve/worker/client/pagehide.d.ts +13 -0
- package/dist/serve/worker/client/pagehide.d.ts.map +1 -0
- package/dist/serve/worker/client/pagehide.js +19 -0
- package/dist/serve/worker/client/pagehide.js.map +1 -0
- package/dist/serve/worker/client/rtdb-admin.d.ts +8 -0
- package/dist/serve/worker/client/rtdb-admin.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-admin.js +39 -0
- package/dist/serve/worker/client/rtdb-admin.js.map +1 -0
- package/dist/serve/worker/client/rtdb-connection-lifecycle.d.ts +15 -0
- package/dist/serve/worker/client/rtdb-connection-lifecycle.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-connection-lifecycle.js +45 -0
- package/dist/serve/worker/client/rtdb-connection-lifecycle.js.map +1 -0
- package/dist/serve/worker/client/rtdb-controls.d.ts +6 -0
- package/dist/serve/worker/client/rtdb-controls.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-controls.js +8 -0
- package/dist/serve/worker/client/rtdb-controls.js.map +1 -0
- package/dist/serve/worker/client/rtdb-listeners.d.ts +24 -0
- package/dist/serve/worker/client/rtdb-listeners.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-listeners.js +262 -0
- package/dist/serve/worker/client/rtdb-listeners.js.map +1 -0
- package/dist/serve/worker/client/rtdb-reads.d.ts +4 -0
- package/dist/serve/worker/client/rtdb-reads.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-reads.js +11 -0
- package/dist/serve/worker/client/rtdb-reads.js.map +1 -0
- package/dist/serve/worker/client/rtdb-references.d.ts +19 -0
- package/dist/serve/worker/client/rtdb-references.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-references.js +63 -0
- package/dist/serve/worker/client/rtdb-references.js.map +1 -0
- package/dist/serve/worker/client/rtdb-snapshots.d.ts +20 -0
- package/dist/serve/worker/client/rtdb-snapshots.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-snapshots.js +64 -0
- package/dist/serve/worker/client/rtdb-snapshots.js.map +1 -0
- package/dist/serve/worker/client/rtdb-transactions.d.ts +14 -0
- package/dist/serve/worker/client/rtdb-transactions.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-transactions.js +34 -0
- package/dist/serve/worker/client/rtdb-transactions.js.map +1 -0
- package/dist/serve/worker/client/rtdb-writes.d.ts +8 -0
- package/dist/serve/worker/client/rtdb-writes.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-writes.js +65 -0
- package/dist/serve/worker/client/rtdb-writes.js.map +1 -0
- package/dist/serve/worker/client.d.ts +0 -2
- package/dist/serve/worker/client.d.ts.map +1 -1
- package/dist/serve/worker/client.js +0 -2
- package/dist/serve/worker/client.js.map +1 -1
- package/dist/serve/worker/entry.js +2 -2
- package/dist/serve/worker/entry.js.map +1 -1
- package/dist/serve/worker/host/dispatch.d.ts +2 -0
- package/dist/serve/worker/host/dispatch.d.ts.map +1 -1
- package/dist/serve/worker/host/dispatch.js +24 -2
- package/dist/serve/worker/host/dispatch.js.map +1 -1
- package/dist/serve/worker/host/rtdb.d.ts +6 -2
- package/dist/serve/worker/host/rtdb.d.ts.map +1 -1
- package/dist/serve/worker/host/rtdb.js +224 -2
- package/dist/serve/worker/host/rtdb.js.map +1 -1
- package/dist/serve/worker/host/studio.d.ts.map +1 -1
- package/dist/serve/worker/host/studio.js +2 -0
- package/dist/serve/worker/host/studio.js.map +1 -1
- package/dist/serve/worker/host/subscriptions.d.ts.map +1 -1
- package/dist/serve/worker/host/subscriptions.js +3 -3
- package/dist/serve/worker/host/subscriptions.js.map +1 -1
- package/dist/serve/worker/host.d.ts +1 -1
- package/dist/serve/worker/host.d.ts.map +1 -1
- package/dist/serve/worker/host.js +1 -1
- package/dist/serve/worker/host.js.map +1 -1
- package/dist/serve/worker/index.d.ts +16 -1
- package/dist/serve/worker/index.d.ts.map +1 -1
- package/dist/serve/worker/index.js +17 -4
- package/dist/serve/worker/index.js.map +1 -1
- package/dist/serve/worker/protocol.d.ts +57 -0
- package/dist/serve/worker/protocol.d.ts.map +1 -1
- package/dist/serve/worker/protocol.js.map +1 -1
- package/dist/serve/worker/rtdb-value-equality.d.ts +3 -0
- package/dist/serve/worker/rtdb-value-equality.d.ts.map +1 -0
- package/dist/serve/worker/rtdb-value-equality.js +18 -0
- package/dist/serve/worker/rtdb-value-equality.js.map +1 -0
- package/dist/serve/worker/serve-init.js +2 -2
- package/dist/serve/worker/serve-init.js.map +1 -1
- package/dist/serve/worker/service-worker-relay.js +2 -2
- package/dist/serve/worker/service-worker-relay.js.map +1 -1
- package/package.json +7 -5
- package/src/assurance/.generated/conformance-verdicts.ts +120 -75
- package/src/cli/serve.ts +215 -307
- package/src/cli/service-command-records/database-rules-generate.ts +3 -0
- package/src/cli/service-command-records/database-rules-lint.ts +3 -0
- package/src/cli/service-command-records/database-rules-simulate.ts +3 -0
- package/src/cli/service-command-records/database-rules-validate.ts +3 -0
- package/src/cli/service-command-records/firestore-indexes-generate.ts +3 -0
- package/src/cli/service-command-records/firestore-rules-lint.ts +3 -0
- package/src/cli/service-command-records/firestore-rules-resolve.ts +3 -0
- package/src/cli/service-command-records/firestore-rules-simulate.ts +3 -0
- package/src/cli/service-command-records/firestore-rules-validate.ts +3 -0
- package/src/cli/service-command-records/storage-rules-lint.ts +3 -0
- package/src/cli/service-command-records/storage-rules-simulate.ts +3 -0
- package/src/cli/service-commands.generated.ts +27 -0
- package/src/cli/service-commands.test.ts +43 -0
- package/src/cli/service-commands.ts +36 -51
- package/src/conformance/.generated/can-i-use-browser.ts +1 -1
- package/src/conformance/.generated/can-i-use.ts +1 -1
- package/src/conformance/.generated/conformance-docs.ts +1 -1
- package/src/functions-rtdb/development-runtime.ts +299 -0
- package/src/serve/bridge-mount.ts +253 -19
- package/src/serve/bundler.ts +8 -34
- package/src/serve/entries/app-client.ts +5 -4
- package/src/serve/entries/auth-helper-core.ts +83 -30
- package/src/serve/entries/database.ts +180 -57
- package/src/serve/entries/init.ts +30 -20
- package/src/serve/html-injection.ts +65 -0
- package/src/serve/namespace.ts +26 -169
- package/src/serve/runtime/worker-replacement.ts +1 -1
- package/src/serve/sandbox-session.ts +233 -0
- package/src/serve/server.ts +20 -5
- package/src/serve/site-tree.ts +146 -0
- package/src/serve/standalone-assets.ts +9 -26
- package/src/serve/vite-functions-development.ts +201 -0
- package/src/serve/vite-generation-bridge.ts +66 -0
- package/src/serve/vite-generation-functions.ts +78 -0
- package/src/serve/vite-generation-middleware.ts +56 -0
- package/src/serve/vite-generation-rules-watch.ts +37 -0
- package/src/serve/vite-module-swap.ts +119 -0
- package/src/serve/vite-page-runtime.ts +100 -0
- package/src/serve/vite-plugin.ts +78 -883
- package/src/serve/vite-sandbox-generation.ts +255 -0
- package/src/serve/worker/client/disconnect.ts +3 -1
- package/src/serve/worker/client/handles.ts +5 -0
- package/src/serve/worker/client/pagehide.ts +31 -0
- package/src/serve/worker/client/rtdb-admin.ts +74 -0
- package/src/serve/worker/client/rtdb-connection-lifecycle.ts +52 -0
- package/src/serve/worker/client/rtdb-controls.ts +8 -0
- package/src/serve/worker/client/rtdb-listeners.ts +337 -0
- package/src/serve/worker/client/rtdb-reads.ts +12 -0
- package/src/serve/worker/client/rtdb-references.ts +85 -0
- package/src/serve/worker/client/rtdb-snapshots.ts +118 -0
- package/src/serve/worker/client/rtdb-transactions.ts +51 -0
- package/src/serve/worker/client/rtdb-writes.ts +74 -0
- package/src/serve/worker/client.ts +0 -2
- package/src/serve/worker/entry.ts +2 -2
- package/src/serve/worker/host/dispatch.ts +22 -2
- package/src/serve/worker/host/rtdb.ts +243 -2
- package/src/serve/worker/host/studio.ts +2 -0
- package/src/serve/worker/host/subscriptions.ts +8 -4
- package/src/serve/worker/host.ts +1 -1
- package/src/serve/worker/index.ts +58 -10
- package/src/serve/worker/protocol.ts +23 -2
- package/src/serve/worker/rtdb-value-equality.ts +17 -0
- package/src/serve/worker/serve-init.ts +2 -2
- package/src/serve/worker/service-worker-relay.ts +2 -2
- package/dist/serve/docs-ui/_astro/_slug_.DUci-duz.css +0 -1
- package/dist/serve/docs-ui/docs/_rhythm/index.html +0 -100
- package/dist/serve/docs-ui/docs/agent/set-up-your-agent/index.html +0 -43
- package/dist/serve/docs-ui/docs/agent/watch-and-review/index.html +0 -26
- package/dist/serve/docs-ui/docs/agent/work-with-an-agent/index.html +0 -70
- package/dist/serve/docs-ui/docs/api-reference/index.html +0 -68
- package/dist/serve/docs-ui/docs/build/ai-logic/index.html +0 -64
- package/dist/serve/docs-ui/docs/build/authentication/index.html +0 -66
- package/dist/serve/docs-ui/docs/build/cloud-firestore/index.html +0 -70
- package/dist/serve/docs-ui/docs/build/cloud-messaging/index.html +0 -71
- package/dist/serve/docs-ui/docs/build/cloud-storage/index.html +0 -66
- package/dist/serve/docs-ui/docs/build/realtime-database/index.html +0 -67
- package/dist/serve/docs-ui/docs/conformance-scores/index.html +0 -50
- package/dist/serve/docs-ui/docs/create-pyric-reference-api/index.html +0 -531
- package/dist/serve/docs-ui/docs/functions-rtdb-compat/index.html +0 -73
- package/dist/serve/docs-ui/docs/get-started/how-the-swap-works/index.html +0 -29
- package/dist/serve/docs-ui/docs/get-started/start-building/index.html +0 -33
- package/dist/serve/docs-ui/docs/messaging-compat/index.html +0 -265
- package/dist/serve/docs-ui/docs/observe/resolve-runtime-status/index.html +0 -28
- package/dist/serve/docs-ui/docs/observe/see-whats-happening/index.html +0 -74
- package/dist/serve/docs-ui/docs/observe/shape-your-data/index.html +0 -45
- package/dist/serve/docs-ui/docs/overview/index.html +0 -17
- package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api/index.html +0 -186
- package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api/index.html +0 -318
- package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api/index.html +0 -160
- package/dist/serve/docs-ui/docs/pyric-app-reference-api/index.html +0 -425
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +0 -60
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api/index.html +0 -507
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +0 -258
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-docs-reference-api/index.html +0 -51
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api/index.html +0 -308
- package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api/index.html +0 -68
- package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api/index.html +0 -11
- package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api/index.html +0 -126
- package/dist/serve/docs-ui/docs/pyric-database-reference-api/index.html +0 -1852
- package/dist/serve/docs-ui/docs/pyric-messaging-reference-api/index.html +0 -509
- package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api/index.html +0 -182
- package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api/index.html +0 -121
- package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api/index.html +0 -203
- package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api/index.html +0 -639
- package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +0 -100
- package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api/index.html +0 -24
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +0 -136
- package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +0 -16
- package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +0 -176
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +0 -188
- package/dist/serve/docs-ui/docs/secure/audit-your-rules/index.html +0 -51
- package/dist/serve/docs-ui/docs/secure/firestore-rules-limits/index.html +0 -106
- package/dist/serve/docs-ui/docs/secure/read-a-denial/index.html +0 -41
- package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript/index.html +0 -67
- package/dist/serve/docs-ui/docs/secure/rules-standard-library/index.html +0 -159
- package/dist/serve/docs-ui/docs/secure/secure-it-with-rules/index.html +0 -47
- package/dist/serve/docs-ui/docs/secure/simulate-and-lint/index.html +0 -95
- package/dist/serve/docs-ui/docs/secure/write-a-rules-test-suite/index.html +0 -82
- package/dist/serve/docs-ui/docs/ship/ship-to-production/index.html +0 -37
- package/dist/serve/docs-ui/docs/ship/test-in-node/index.html +0 -75
- package/dist/serve/docs-ui/docs/trust/how-we-know-it-matches-firebase/index.html +0 -132
- package/dist/serve/docs-ui/docs/trust/versioning-and-compatibility/index.html +0 -14
- package/dist/serve/docs-ui/index.html +0 -1
- package/dist/serve/studio-ui/assets/RulesCodeEditor-BDlH-5lp.js +0 -23
- package/dist/serve/studio-ui/assets/index-Bf9SSE8L.js +0 -1218
- package/dist/serve/studio-ui/assets/index-BlSGru_r.css +0 -1
- package/dist/serve/studio-ui/assets/seed-D_UjxfOU.js +0 -20
- package/dist/serve/studio-ui/index.html +0 -32
- package/dist/serve/worker/client/rtdb.d.ts +0 -36
- package/dist/serve/worker/client/rtdb.d.ts.map +0 -1
- package/dist/serve/worker/client/rtdb.js +0 -241
- package/dist/serve/worker/client/rtdb.js.map +0 -1
- package/src/serve/worker/client/rtdb.ts +0 -311
- /package/dist/serve/{docs-ui → site-ui}/404.html +0 -0
- /package/dist/serve/{docs-ui → site-ui}/_astro/_slug_.CXh9yTP1.css +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/_rhythm.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/agent/set-up-your-agent.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/agent/watch-and-review.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/agent/work-with-an-agent.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/ai-compat.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/api-reference.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/app-compat.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/auth-compat.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/build/ai-logic.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/build/authentication.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/build/cloud-firestore.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/build/cloud-messaging.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/build/realtime-database.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/create-pyric-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/functions-rtdb-compat.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/get-started/how-the-swap-works.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/get-started/start-building.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/index.html +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/observe/resolve-runtime-status.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/observe/see-whats-happening.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/observe/shape-your-data.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/overview.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-app-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-auth-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-database-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-messaging-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-admin-storage-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ai-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ai-scripting-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-app-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-auth-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-assurance-browser-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-assurance-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-bridge-client-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-bridge-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-conformance-browser-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-conformance-docs-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-conformance-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-credentials-node-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-discover-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-register-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-remote-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-cli-verify-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-messaging-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-messaging-sw-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-sandbox-database-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-sandbox-firestore-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-agents-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-auth-hooks-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-auth-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-events-hooks-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-events-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-firestore-hooks-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-primitives-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-rtdb-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-rules-hooks-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-rules-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-storage-hooks-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-traffic-hooks-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/pyric-ui-traffic-reference-api.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/secure/audit-your-rules.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/secure/firestore-rules-limits.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/secure/read-a-denial.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/secure/rtdb-rules-in-typescript.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/secure/secure-it-with-rules.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/secure/simulate-and-lint.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/secure/write-a-rules-test-suite.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/ship/ship-to-production.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/ship/test-in-node.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/trust/how-we-know-it-matches-firebase.md +0 -0
- /package/dist/serve/{docs-ui → site-ui}/docs/trust/versioning-and-compatibility.md +0 -0
- /package/dist/serve/{studio-ui → site-ui}/pyric-logo.svg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.studio{--maxw: 820px;--wide: 1440px;--gutter: clamp(16px, 3vw, 32px);height:100vh;min-width:0;display:grid;grid-template-rows:54px 1fr;overflow-x:hidden}.studio__col{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}.studio__bar{border-bottom:1px solid var(--line);background:var(--panel);min-width:0}.studio__bar-inner{width:100%;max-width:var(--wide);margin:0 auto;height:54px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-4);padding:0 var(--gutter);min-width:0}.studio__brand{font-weight:600;color:var(--ink)}.studio__ctx{display:inline-flex;align-items:center;gap:7px;flex-shrink:0}.studio__ctx-project{font-size:12.5px;color:var(--muted)}.studio__ctx-mode{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px}.studio__nav{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-1);height:100%;min-width:0;overflow-x:auto;scrollbar-width:none}.studio__nav::-webkit-scrollbar{display:none}.studio__nav-tab{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;font:inherit;font-size:13px;font-weight:500;color:var(--muted);padding:0 12px;height:100%;cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s}a.studio__nav-tab{display:inline-flex;align-items:center;text-decoration:none}.studio__nav-tab:hover{color:color-mix(in srgb,var(--ink) 80%,transparent)}.studio__nav-tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}@media(max-width:760px){.studio__nav{scroll-snap-type:x proximity;padding-right:28px;mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}.studio__nav-tab{scroll-snap-align:start}}.studio__status{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);min-width:0}.studio__status button.studio-chip{font:inherit;cursor:pointer}.studio__status button.studio-chip:disabled{cursor:wait;opacity:.72}.studio__bar-tools{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}.studio__cmd{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:6px 9px;color:var(--faint);font:inherit;background:var(--elevated);cursor:text}.studio__cmd:hover{border-color:var(--line-2)}.studio__cmd-ico{font-size:13px;line-height:1}.studio__kbd{color:var(--faint);font-family:var(--font-mono);font-size:11px;border:1px solid var(--line);border-radius:6px;padding:2px 6px}.studio-theme-toggle{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--elevated);color:var(--muted);font-size:14px;line-height:1;cursor:pointer}.studio-theme-toggle:hover{border-color:var(--line-2);color:var(--ink)}.studio__menu,.studio__nav-backdrop{display:none}.studio__mode{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:2px;background:var(--elevated)}.studio__mode-opt{appearance:none;background:none;border:none;font:inherit;font-size:12px;color:var(--faint);padding:4px 9px;border-radius:6px;cursor:pointer;transition:color .12s,background .12s}.studio__mode-opt:hover{color:var(--ink)}.studio__mode-opt[aria-pressed=true]{color:var(--ink);background:var(--panel);font-weight:500}.studio__content{min-height:0;min-width:0;position:relative;overflow-y:auto;overflow-x:hidden}.studio__content[data-surface=home]>*,.studio__content[data-surface=rtdb]>*,.studio__content[data-surface=traffic]>*,.studio__content[data-surface=settings]>*{display:block;width:100%;max-width:var(--wide);margin:0 auto;padding:clamp(22px,4vw,40px) var(--gutter) 72px}.studio__content[data-surface=firestore],.studio__content[data-surface=auth],.studio__content[data-surface=storage]{overflow:hidden;display:flex;flex-direction:column}.studio__surface-slot{min-width:0}.studio__content[data-surface=firestore]>*,.studio__content[data-surface=auth]>*,.studio__content[data-surface=storage]>*{flex:1;min-height:0;width:100%;max-width:var(--wide);margin:0 auto;padding:18px var(--gutter);display:flex;flex-direction:column}.studio__placeholder{border:1px dashed var(--line-2);border-radius:10px;padding:32px 28px;background:var(--panel)}.studio__placeholder-eyebrow{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:0 0 8px}.studio__placeholder-title{font-size:16px;color:var(--ink);margin:0 0 6px;font-weight:600}.studio__placeholder-blurb{font-size:13px;color:var(--muted);margin:0;max-width:560px;line-height:1.55}.studio__placeholder-meta{margin-top:18px;font-family:var(--font-mono);font-size:11.5px;color:var(--faint);display:flex;flex-wrap:wrap;gap:6px 14px}.studio__theme{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:7px;padding:2px;background:var(--elevated)}.studio__theme button{appearance:none;background:none;border:none;font:inherit;font-size:11.5px;color:var(--muted);padding:3px 9px;border-radius:5px;cursor:pointer;transition:color .12s,background .12s}.studio__theme button:hover{color:var(--ink)}.studio__theme button[aria-pressed=true]{color:var(--ink);background:var(--panel);font-weight:500}.studio__cmdk-backdrop{position:fixed;inset:54px 0 0;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding:clamp(24px,8vh,72px) var(--gutter, 16px) 0;z-index:40}.studio__cmdk{width:100%;max-width:560px;border-radius:12px;box-shadow:0 18px 48px -12px #00000059}.studio__cmdk .studio-home__command-results{background:var(--elevated)}@media(max-width:760px){.studio{--gutter: 16px;height:100dvh;grid-template-rows:54px 1fr}.studio__bar{position:relative;z-index:10}.studio__bar-inner{max-width:none;height:54px;padding-inline:10px;gap:8px}.studio__menu,.studio__bar-tools{display:none}.studio__status{gap:4px}.studio__nav{justify-content:flex-start;overflow-x:auto;padding-inline:2px}.studio__nav-tab{flex:0 0 auto;padding:0 10px;font-size:13px}.studio__nav-backdrop{display:none}.studio__content[data-surface=home]>*,.studio__content[data-surface=rtdb]>*,.studio__content[data-surface=traffic]>*,.studio__content[data-surface=settings]>*,.studio__content[data-surface=storage]>*,.studio__content[data-surface=firestore]>*,.studio__content[data-surface=auth]>*{max-width:none;padding:18px 16px 56px}}[data-pyric-ui=fs-browser]{display:flex;flex-direction:column;min-height:0;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;background:var(--color-content-bg)}.fs-delete-recursive{display:flex;align-items:flex-start;gap:9px;color:var(--ink);cursor:pointer}.fs-delete-recursive input{width:15px;height:15px;margin:2px 0 0;accent-color:var(--accent);flex:none}[data-pyric-ui=fs-breadcrumb]{display:flex;align-items:center;gap:6px;padding:9px 14px;border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--fs-data);overflow-x:auto;white-space:nowrap}[data-pyric-ui=fs-breadcrumb] .fs-crumb{appearance:none;border:none;background:none;padding:0;font:inherit;color:var(--color-primary);cursor:pointer}[data-pyric-ui=fs-breadcrumb] .fs-crumb:hover{text-decoration:underline}[data-pyric-ui=fs-breadcrumb] .fs-crumb--current{color:var(--color-soft-white);cursor:default;text-decoration:none}[data-pyric-ui=fs-breadcrumb] .fs-crumb-sep{color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] .fs-columns{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}[data-pyric-ui=fs-browser] .fs-col{flex:1 1 0;min-width:0;overflow-y:auto;border-right:1px solid var(--color-border);min-height:0;animation:fs-col-in .26s ease}[data-pyric-ui=fs-browser] .fs-col:last-child{flex:1.7 1 0;border-right:none}[data-pyric-ui=fs-browser] .fs-col--empty{animation:none;display:flex;align-items:center;justify-content:center}[data-pyric-ui=fs-browser] .fs-col--empty .fs-empty{text-align:center;max-width:80%}@keyframes fs-col-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){[data-pyric-ui=fs-browser] .fs-col{animation:none}}[data-pyric-ui=fs-browser] .fs-pane{overflow:auto;min-height:0}[data-pyric-ui=fs-browser] .fs-phead{position:sticky;top:0;z-index:1;background:var(--color-content-bg);display:flex;align-items:baseline;gap:8px;padding:12px 16px 9px;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--color-slate-gray);border-bottom:1px solid var(--color-border)}[data-pyric-ui=fs-browser] .fs-phead .fs-add{margin-left:auto;color:var(--color-primary);letter-spacing:0;text-transform:none;font-size:12px;background:none;border:none;font-family:inherit;cursor:pointer}[data-pyric-ui=fs-browser] .fs-phead-actions{display:flex;align-items:baseline;gap:14px;margin-left:auto}[data-pyric-ui=fs-browser] .fs-phead-actions .fs-add{margin-left:0}[data-pyric-ui=fs-browser] .fs-create{display:flex;flex-direction:column;gap:16px;padding:12px 18px 24px}[data-pyric-ui=fs-browser] .fs-create__group{display:flex;flex-direction:column;gap:6px}[data-pyric-ui=fs-browser] .fs-create__label{font-size:var(--fs-label);color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] .fs-create input[type=text],[data-pyric-ui=fs-browser] .fs-create input[type=file]{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px}[data-pyric-ui=fs-browser] .fs-create input[type=text]:focus{outline:none;border-color:var(--color-primary)}[data-pyric-ui=fs-browser] .fs-create__err{color:var(--color-danger);font-size:var(--fs-caption)}[data-pyric-ui=fs-browser] .fs-create__actions{display:flex;gap:10px}.fs-modal-backdrop{position:fixed;inset:0;z-index:40;background:color-mix(in srgb,var(--color-content-bg) 55%,transparent);backdrop-filter:blur(1.5px);display:flex;align-items:flex-start;justify-content:center;padding:9vh 16px 16px}.fs-modal{display:flex;flex-direction:column;gap:16px;width:min(560px,100%);max-height:82vh;overflow:auto;background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:10px;padding:18px 20px 20px;box-shadow:0 18px 48px color-mix(in srgb,#000 35%,transparent)}.fs-modal__title{margin:0;font-size:14px;font-weight:600;color:var(--color-soft-white)}.fs-modal__group{display:flex;flex-direction:column;gap:6px}.fs-modal__label{font-size:var(--fs-label);color:var(--color-slate-gray)}.fs-modal__path{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-slate-gray);overflow-wrap:anywhere}.fs-modal__group input[type=text]{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px}.fs-modal__group input[type=text]:focus{outline:none;border-color:var(--color-primary)}.fs-modal__err{margin:0;color:var(--color-danger);font-size:var(--fs-caption)}.fs-modal__hint{color:var(--color-slate-gray);font-size:var(--fs-caption)}.fs-modal__fields{border:1px solid var(--color-border);border-radius:8px;padding:4px 12px 10px}.fs-modal__actions{display:flex;justify-content:flex-end;gap:10px}[data-pyric-ui=fs-browser] .fs-import__textarea{width:100%;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:8px}[data-pyric-ui=fs-browser] .fs-import__preview,[data-pyric-ui=fs-browser] .fs-import__result{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-label);color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] .fs-import__count{margin:0;color:var(--color-soft-white)}[data-pyric-ui=fs-browser] .fs-import__errs{margin:0;padding-left:18px;color:var(--color-danger);font-size:var(--fs-caption)}[data-pyric-ui=fs-browser] .fs-import__collisions{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--color-warning) 40%,transparent);background:color-mix(in srgb,var(--color-warning) 10%,transparent);border-radius:7px}[data-pyric-ui=fs-browser] .fs-import__collisions label{display:flex;align-items:center;gap:8px;font-size:var(--fs-label)}[data-pyric-ui=fs-browser] [data-pyric-ui=collection-list],[data-pyric-ui=fs-browser] [data-pyric-ui=document-list],[data-pyric-ui=fs-browser] [data-pyric-document-list-items]{list-style:none;margin:0;padding:0}[data-pyric-ui=fs-browser] [data-pyric-collection-entry],[data-pyric-ui=fs-browser] [data-pyric-document-entry]{list-style:none}[data-pyric-ui=fs-browser] [data-pyric-collection-select],[data-pyric-ui=fs-browser] [data-pyric-document-select]{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:8px 16px;border:none;border-left:2px solid transparent;background:transparent;color:var(--color-soft-white);cursor:pointer;font:inherit}[data-pyric-ui=fs-browser] [data-pyric-collection-select]{font-size:13px}[data-pyric-ui=fs-browser] [data-pyric-document-select]{font-family:var(--font-mono);font-size:12.5px}[data-pyric-ui=fs-browser] [data-pyric-collection-select]:hover,[data-pyric-ui=fs-browser] [data-pyric-document-select]:hover{background:var(--color-sidebar-bg)}[data-pyric-ui=fs-browser] [data-pyric-collection-entry][data-pyric-selected] [data-pyric-collection-select],[data-pyric-ui=fs-browser] [data-pyric-document-entry]:has([data-pyric-selected]) [data-pyric-document-select]{background:var(--color-sidebar-bg);border-left-color:var(--color-primary)}[data-pyric-ui=fs-browser] [data-pyric-document-entry]{display:flex;align-items:stretch}[data-pyric-ui=fs-browser] [data-pyric-document-entry] [data-pyric-document-select]{flex:1;min-width:0;width:auto}[data-pyric-ui=fs-browser] [data-pyric-document-action]{display:flex;align-items:center;padding-right:8px}[data-pyric-ui=fs-browser] .fs-doc-del{opacity:0;border:none;background:transparent;color:var(--color-soft-white);font:inherit;font-size:15px;line-height:1;padding:2px 7px;border-radius:4px;cursor:pointer;transition:opacity .12s ease,color .12s ease,background .12s ease}[data-pyric-ui=fs-browser] [data-pyric-document-entry]:hover .fs-doc-del,[data-pyric-ui=fs-browser] [data-pyric-document-entry]:focus-within .fs-doc-del{opacity:.55}[data-pyric-ui=fs-browser] .fs-doc-del:hover{opacity:1;color:var(--color-danger, #ff6b6b);background:var(--color-sidebar-bg)}[data-pyric-ui=fs-browser] .fs-doc-del-err{color:var(--color-danger, #ff6b6b);padding:6px 16px}[data-pyric-ui=fs-browser] .fs-doc-phantom{font-style:italic;color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] .fs-doc-phantom-hint{font-style:italic;margin-right:6px}[data-pyric-ui=fs-browser] .fs-sub{font-size:11.5px;color:var(--color-slate-gray);margin-left:auto;white-space:nowrap;max-width:96px;overflow:hidden;text-overflow:ellipsis}[data-pyric-ui=fs-browser] .fs-empty{padding:18px 16px;font-size:12.5px;color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] [data-pyric-load-more]{display:block;width:calc(100% - 24px);margin:8px 12px;padding:6px 0;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-slate-gray);font:inherit;font-size:12px;cursor:pointer}[data-pyric-ui=fs-browser] [data-pyric-load-more]:hover{color:var(--color-soft-white)}[data-pyric-ui=fs-browser] .fs-docact{margin-left:auto;color:var(--color-primary);background:transparent;border:none;cursor:pointer;letter-spacing:0;text-transform:none;font:inherit;font-size:12px}[data-pyric-ui=fs-browser] .fs-docbody{padding:6px 0 30px}[data-pyric-ui=document-preview] [data-pyric-field-entry]{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;align-items:baseline;padding:8px 18px;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--fs-data);line-height:1.5}[data-pyric-ui=document-preview] [data-pyric-field-entry]:first-child{border-top:none}[data-pyric-ui=document-preview] [data-pyric-field-key]{min-width:0;color:var(--color-slate-gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-pyric-ui=document-preview] [data-pyric-field-keycell]{display:inline-flex;align-items:baseline;gap:6px;min-width:0}[data-pyric-ui=document-preview] button[data-pyric-field-keycell]{appearance:none;border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}[data-pyric-ui=document-preview] [data-pyric-field-toggle][aria-expanded=true] [data-pyric-tree-chevron]{transform:rotate(90deg)}[data-pyric-ui=document-preview] [data-pyric-field-toggle]:hover [data-pyric-field-key]{color:var(--color-soft-white)}[data-pyric-ui=document-preview] [data-pyric-field-entry]>[data-pyric-field-type]{min-width:0;color:var(--color-soft-white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-pyric-ui=document-preview] [data-pyric-clickable]{appearance:none;border:none;background:none;padding:0;font:inherit;color:var(--color-primary);cursor:pointer}[data-pyric-ui=document-preview] [data-pyric-field-entry]>[data-pyric-tree]{white-space:normal;overflow:visible;text-overflow:clip}[data-pyric-ui=document-preview] [data-pyric-tree]{min-width:0;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}[data-pyric-ui=document-preview] [data-pyric-tree-entry]{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}[data-pyric-ui=document-preview] [data-pyric-tree-key],[data-pyric-ui=document-preview] [data-pyric-tree-index]{flex:0 0 auto;color:var(--color-slate-gray)}[data-pyric-ui=document-preview] [data-pyric-tree-entry]:not(:has(>[data-pyric-tree]))>[data-pyric-tree-key]:after{content:":"}[data-pyric-ui=document-preview] [data-pyric-tree-entry]>[data-pyric-tree]{flex-basis:100%;padding-inline-start:14px}[data-pyric-ui=document-preview] [data-pyric-tree-chevron]{flex:0 0 auto;width:12px;display:inline-block;text-align:center;color:var(--color-slate-gray);transition:transform .15s ease}[data-pyric-ui=document-preview] [data-pyric-tree-toggle]{appearance:none;border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:inline-flex;align-items:baseline;gap:8px}[data-pyric-ui=document-preview] [data-pyric-tree-toggle][aria-expanded=true] [data-pyric-tree-chevron]{transform:rotate(90deg)}[data-pyric-ui=document-preview] [data-pyric-tree-toggle]:hover [data-pyric-tree-key],[data-pyric-ui=document-preview] [data-pyric-tree-toggle]:hover [data-pyric-tree-index]{color:var(--color-soft-white)}@media(prefers-reduced-motion:reduce){[data-pyric-ui=document-preview] [data-pyric-tree-chevron]{transition:none}}[data-pyric-ui=document-preview] [data-pyric-ui=subcollections]{margin-top:8px;border-top:1px solid var(--color-border)}[data-pyric-ui=document-preview] [data-pyric-subcollections-group]{font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--color-slate-gray);padding:14px 18px 6px}[data-pyric-ui=document-preview] [data-pyric-subcollections-list]{list-style:none;margin:0;padding:0}[data-pyric-ui=document-preview] [data-pyric-subcollection]{list-style:none}[data-pyric-ui=document-preview] [data-pyric-subcollection-row]{appearance:none;border:none;background:none;width:100%;display:flex;align-items:center;gap:8px;padding:5px 18px;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);text-align:left;cursor:pointer}[data-pyric-ui=document-preview] [data-pyric-subcollection-row]:hover{background:var(--color-sidebar-bg)}[data-pyric-ui=document-preview] [data-pyric-subcollection-type]{color:var(--color-slate-gray);font-size:var(--fs-micro)}[data-pyric-ui=document-preview] [data-pyric-subcollection-drill]{margin-left:auto;color:var(--color-slate-gray)}.fs-editor{padding:12px 18px 24px}[data-pyric-ui=document-editor] [data-pyric-editor-fields]{display:flex;flex-direction:column}[data-pyric-ui=document-editor] [data-pyric-field-entry]{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:8px 0;border-top:1px solid var(--color-border)}[data-pyric-ui=document-editor] [data-pyric-field-entry]:first-child{border-top:none}[data-pyric-ui=document-editor] [data-pyric-map-children],[data-pyric-ui=document-editor] [data-pyric-array-children]{display:flex;flex-direction:column;gap:3px;margin:2px 0 0 8px;padding:0 0 0 10px;border-left:1px solid var(--color-border);width:100%}[data-pyric-ui=document-editor] [data-pyric-field-chrome]{display:flex;align-items:center;gap:6px;flex-shrink:0}[data-pyric-ui=document-editor] input,[data-pyric-ui=document-editor] select{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:5px 8px}[data-pyric-ui=document-editor] input[data-pyric-field-key-input]{width:128px}[data-pyric-ui=document-editor] input:focus,[data-pyric-ui=document-editor] select:focus{outline:none;border-color:var(--color-primary)}[data-pyric-ui=document-editor] [data-pyric-field-entry]>[data-pyric-field-type]{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}[data-pyric-ui=document-editor] [data-pyric-field-entry]>[data-pyric-field-type=boolean],[data-pyric-ui=document-editor] [data-pyric-field-entry]>[data-pyric-field-type=null]{flex-direction:row;align-items:center}[data-pyric-ui=document-editor] [data-pyric-field-type] input{width:100%;max-width:420px}[data-pyric-ui=document-editor] [data-pyric-field-type] input[type=number]{max-width:160px}[data-pyric-ui=document-editor] [data-pyric-field-type=vector]{flex-direction:column;align-items:stretch;gap:4px}[data-pyric-ui=document-editor] [data-pyric-vector-dims]{color:var(--color-slate-gray);font-size:var(--fs-micro)}[data-pyric-ui=document-editor] [data-pyric-vector-note]{color:var(--color-slate-gray);font-size:var(--fs-caption)}[data-pyric-ui=document-editor] [data-pyric-vector-raw]{width:100%;max-width:420px;min-height:52px;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px}[data-pyric-ui=document-editor] button[data-pyric-remove]{appearance:none;border:none;background:none;color:var(--color-slate-gray);cursor:pointer;font-size:16px;line-height:1;padding:0 4px}[data-pyric-ui=document-editor] button[data-pyric-remove]:hover{color:var(--color-danger)}[data-pyric-ui=document-editor] [data-pyric-add-map-entry],[data-pyric-ui=document-editor] [data-pyric-add-array-entry]{align-self:flex-start;appearance:none;border:none;background:none;color:var(--color-primary);cursor:pointer;font:inherit;font-size:var(--fs-label);padding:10px 0 0}[data-pyric-ui=document-editor] [data-pyric-error-message]{color:var(--color-danger);font-size:var(--fs-caption)}.fs-editor__err{margin:10px 0 0;font-size:var(--fs-label);color:var(--color-danger)}.fs-editor__actions{display:flex;gap:10px;margin-top:16px}.fs-editor__save,.fs-editor__cancel{appearance:none;font:inherit;font-size:var(--fs-label);font-weight:500;padding:7px 14px;border-radius:7px;cursor:pointer}.fs-editor__save{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--accent-ink)}.fs-editor__save:disabled{opacity:.5;cursor:default}.fs-editor__cancel{border:1px solid var(--color-border-strong);background:var(--color-content-bg);color:var(--color-slate-gray)}.fs-overflow{position:relative;margin-left:auto}.fs-phead-actions+.fs-overflow{margin-left:0}.fs-overflow__trigger{appearance:none;border:none;background:none;color:var(--color-slate-gray);cursor:pointer;font-size:15px;line-height:1;padding:3px 6px;border-radius:5px}.fs-overflow__trigger:hover,.fs-overflow__trigger[aria-expanded=true]{color:var(--color-soft-white);background:var(--color-sidebar-bg)}.fs-overflow__trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.fs-overflow__backdrop{position:fixed;inset:0;z-index:39}.fs-overflow__menu{position:fixed;z-index:40;display:flex;flex-direction:column;gap:1px;min-width:190px;padding:4px;background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:8px;box-shadow:0 10px 28px color-mix(in srgb,#000 40%,transparent)}.fs-overflow__item{appearance:none;border:none;background:none;text-align:left;font:inherit;font-size:var(--fs-label);color:var(--color-soft-white);padding:7px 9px;border-radius:5px;cursor:pointer}.fs-overflow__item:hover,.fs-overflow__item:focus-visible{background:var(--color-sidebar-bg);outline:none}.fs-doctree{padding:4px 0 20px;font-family:var(--font-mono);font-size:var(--fs-data)}.fs-doctree__head{position:sticky;top:0;z-index:1;background:var(--color-content-bg);display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--color-border)}.fs-doctree__docid{font-weight:600;color:var(--color-soft-white);overflow-wrap:anywhere}.fs-doctree__err{margin:0;padding:8px 18px;color:var(--color-danger);font-size:var(--fs-caption)}.fs-doctree__rows{list-style:none;margin:0;padding:0}.fs-doctree__action-row+.fs-doctree__action-row{border-top:1px solid var(--color-border)}.fs-doctree__action{display:flex;align-items:center;gap:8px;width:100%;appearance:none;border:none;background:none;text-align:left;font:inherit;font-size:var(--fs-data);color:var(--color-primary);padding:9px 18px;cursor:pointer}.fs-doctree__action:hover,.fs-doctree__action:focus-visible{background:var(--color-sidebar-bg);outline:none}.fs-doctree__action-row--nested .fs-doctree__action{padding:6px 0 6px calc(18px + (var(--fs-depth, 0) + 1) * 18px);font-size:var(--fs-caption)}.fs-doctree__line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-height:36px;padding:8px 18px 8px calc(18px + var(--fs-depth, 0) * 18px)}.fs-doctree__row[data-pyric-doctree-nested]>.fs-doctree__line{align-items:center}.fs-doctree__caret{flex:0 0 auto;width:14px;appearance:none;border:none;background:none;padding:0;color:var(--color-slate-gray);cursor:pointer;font-size:10px;line-height:1}.fs-doctree__caret:hover{color:var(--color-soft-white)}.fs-doctree__caret--empty{cursor:default}.fs-doctree__key{flex:0 0 auto;color:var(--color-slate-gray)}.fs-doctree__key:after{content:":"}.fs-doctree__chip{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:1px 7px;border-radius:999px;background:var(--color-sidebar-bg);border:1px solid var(--color-border-strong);color:var(--color-slate-gray);font-size:var(--fs-micro)}.fs-doctree__value{min-width:0;color:var(--color-soft-white);overflow-wrap:anywhere}.fs-doctree__value{flex:1 1 auto;padding-left:0;text-indent:0}.fs-doctree__preview{flex:1 1 auto;min-width:0;color:var(--color-slate-gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-doctree__hover{margin-left:auto;display:flex;align-items:center;gap:6px;opacity:0;transition:opacity .12s ease}.fs-doctree__row:hover .fs-doctree__hover,.fs-doctree__row:focus-within .fs-doctree__hover{opacity:1}.fs-doctree__typenote{color:var(--color-slate-gray);font-size:var(--fs-micro)}.fs-doctree__icon{appearance:none;border:none;background:none;color:var(--color-slate-gray);cursor:pointer;font-size:12px;line-height:1;padding:3px 5px;border-radius:4px}.fs-doctree__icon:hover,.fs-doctree__icon:focus-visible{color:var(--color-soft-white);background:var(--color-sidebar-bg);outline:none}.fs-doctree__icon--danger:hover{color:var(--color-danger)}.fs-doctree__children{list-style:none;margin:0;padding:0}.fs-doctree__editrow{display:flex;flex-direction:column;align-items:stretch;gap:6px;background:transparent;padding:7px 18px 7px calc(18px + var(--fs-depth, 0) * 18px)}.fs-doctree__editline{display:flex;align-items:center;gap:8px;min-width:0}.fs-doctree__editkey{flex:0 1 220px;min-width:0}.fs-doctree__editkey,.fs-doctree__edittype{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:5px 7px}.fs-doctree__editkey:focus,.fs-doctree__edittype:focus{outline:none;border-color:var(--color-primary)}.fs-doctree__editkey[aria-invalid=true]{border-color:var(--color-danger)}.fs-doctree__editline>[data-pyric-field-type]{flex:1 1 auto;min-width:0}.fs-doctree__editline [data-pyric-field-type] input{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:5px 7px;width:100%;max-width:220px}.fs-doctree__editline [data-pyric-field-type] input:focus{outline:none;border-color:var(--color-primary)}.fs-doctree__editnote{color:var(--color-slate-gray);font-size:var(--fs-caption)}.fs-doctree__editerr{color:var(--color-danger);font-size:var(--fs-caption)}.fs-doctree__editactions{display:flex;gap:4px;margin-left:auto}.fs-doctree__editsave,.fs-doctree__editcancel{appearance:none;border:none;background:none;cursor:pointer;font-size:13px;line-height:1;padding:4px 7px;border-radius:5px}.fs-doctree__editsave{color:var(--color-primary)}.fs-doctree__editsave:hover{background:color-mix(in srgb,var(--color-primary) 18%,transparent)}.fs-doctree__editcancel{color:var(--color-slate-gray)}.fs-doctree__editcancel:hover{background:var(--color-sidebar-bg);color:var(--color-soft-white)}[data-pyric-ui=fs-doctree-subcollections]{margin-top:6px;border-top:1px solid var(--color-border)}.fs-doctree__subhead{font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--color-slate-gray);padding:14px 18px 6px}.fs-doctree__sublist{list-style:none;margin:0;padding:0}.fs-doctree__subrow{appearance:none;border:none;background:none;width:100%;display:flex;align-items:center;gap:8px;padding:6px 18px;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);text-align:left;cursor:pointer}.fs-doctree__subrow:hover{background:var(--color-sidebar-bg)}.fs-doctree__subtype{margin-left:auto;color:var(--color-slate-gray);font-size:var(--fs-micro)}[data-pyric-ui=fs-browser] .fs-col:focus{outline:none}[data-pyric-ui=fs-browser][data-size=medium] .fs-col:last-child{flex:1.3 1 0}[data-pyric-ui=fs-browser][data-size=narrow] .fs-col{flex:1 1 auto;border-right:none;animation:none}.storage{--storage-gutter: 24px;--storage-cols: 1fr 150px 92px 84px;display:flex;flex-direction:column;min-height:0}.storage__sub{display:flex;align-items:center;gap:14px;padding:0 0 13px;border-bottom:1px solid var(--line)}.storage__sub .storage__actions{margin-left:auto;display:flex;gap:14px;align-items:center}.storage__action{appearance:none;background:none;border:none;font:inherit;font-size:12.5px;color:var(--faint);cursor:pointer;padding:0}.storage__action:hover{color:var(--ink)}.storage__action--upload{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:7px;padding:6px 12px}.storage__action--upload:hover{color:var(--accent);background:var(--panel)}.storage__newfolder{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.storage__newfolder-input{flex:0 1 340px;min-width:120px;font-family:var(--font-mono);font-size:12.5px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:6px 10px}.storage__newfolder-input:focus-visible{outline:none;border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.storage__newfolder-btn{appearance:none;background:none;font:inherit;font-size:12.5px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:7px;padding:6px 12px;cursor:pointer}.storage__newfolder-btn:hover{background:var(--panel)}.storage__newfolder-note{font-size:11.5px;color:var(--faint);min-width:0}.storage__newfolder-err{font-size:11.5px;color:var(--deny)}.storage__upload-err{display:flex;align-items:baseline;gap:12px;margin:0;padding:8px 0;border-bottom:1px solid var(--line);font-size:11.5px;color:var(--deny)}.storage__upload-err-dismiss{appearance:none;background:none;border:none;font:inherit;font-size:11.5px;color:var(--accent);cursor:pointer;padding:0;flex-shrink:0}.storage [data-pyric-ui=path-breadcrumb] [data-pyric-breadcrumb-list]{list-style:none;margin:0;padding:0;display:flex;align-items:center;font-family:var(--font-mono);font-size:13px;color:var(--muted)}.storage [data-pyric-ui=path-breadcrumb] [data-pyric-breadcrumb-item]{display:inline-flex;align-items:center}.storage [data-pyric-breadcrumb-link]{appearance:none;background:none;border:none;font:inherit;color:var(--muted);padding:0;cursor:pointer}.storage [data-pyric-breadcrumb-link]:hover{color:var(--ink)}.storage [data-pyric-breadcrumb-link][data-pyric-current]{color:var(--ink);font-weight:600;cursor:default}.storage [data-pyric-breadcrumb-separator]{color:var(--line-2);margin:0 4px}.storage__body{display:grid;grid-template-columns:1fr 360px;flex:1;min-height:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.storage__browser{overflow:auto;position:relative}.storage__dropcue{display:none}.storage__browser[data-dragging] .storage__dropcue{display:grid;place-items:center;position:absolute;inset:0;font-size:13px;font-weight:500;color:var(--accent);background:color-mix(in srgb,var(--panel) 82%,transparent);outline:2px dashed color-mix(in srgb,var(--accent) 55%,var(--line));outline-offset:-6px;border-radius:8px;pointer-events:none;word-break:break-all;padding:0 var(--storage-gutter)}.storage__inspector{overflow:auto;border-left:1px solid var(--line)}.storage__lhead{position:relative;display:grid;grid-template-columns:var(--storage-cols);gap:16px;align-items:baseline;padding:10px var(--storage-gutter) 10px calc(var(--storage-gutter) + 34px);background:var(--panel);border-bottom:1px solid var(--line);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.storage__lhead,.storage [data-pyric-entry-select]{padding-left:calc(var(--storage-gutter) + 34px)}.storage__select-all,.storage [data-pyric-storage-action]{position:absolute;left:var(--storage-gutter);top:50%;z-index:1;display:inline-flex;align-items:center;transform:translateY(-50%)}.storage [data-pyric-storage-entry]{position:relative}.storage__select-all input,.storage__select-row input{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}.storage [data-pyric-ui=object-browser] [data-pyric-object-browser-items]{list-style:none;margin:0;padding:0}.storage [data-pyric-entry-select]{appearance:none;width:100%;display:grid;grid-template-columns:var(--storage-cols);gap:16px;align-items:baseline;background:none;border:none;border-bottom:1px solid var(--line);border-left:2px solid transparent;padding:10px var(--storage-gutter) 10px calc(var(--storage-gutter) + 34px);font:inherit;text-align:left;cursor:pointer;color:var(--ink)}.storage [data-pyric-entry-select]:hover{background:var(--panel)}.storage [data-pyric-entry-select][data-pyric-selected]{background:var(--panel);border-left-color:var(--accent)}.storage__cell-name{font-size:13px;color:var(--ink);display:flex;align-items:center;gap:8px;min-width:0}.storage__cell-name .storage__nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage__ic{color:var(--faint);display:inline-flex;align-items:center;flex-shrink:0}.storage__chev{margin-left:auto;color:var(--faint);flex-shrink:0}.storage__cell-type,.storage__cell-size,.storage__cell-updated{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.storage__cell-updated{color:var(--faint)}.storage [data-pyric-entry-kind=folder] .storage__cell-name{font-weight:500}.storage [data-pyric-denied] .storage__cell-name{color:var(--faint)}.storage [data-pyric-denied] .storage__cell-name:after{content:"read denied";font-family:var(--font-ui);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--deny-ink);background:var(--deny);border-radius:4px;padding:1px 6px;flex-shrink:0}.storage [data-pyric-ui=object-browser][data-pyric-empty],.storage [data-pyric-ui=object-browser][data-pyric-loading],.storage [data-pyric-ui=object-browser][data-pyric-idle]{padding:8px var(--storage-gutter)}.storage__empty{color:var(--faint);font-size:13px;padding:28px 0;margin:0}.storage [data-pyric-ui=object-browser][data-pyric-error]{color:var(--deny);font-size:13px;padding:16px var(--storage-gutter)}.storage [data-pyric-ui=object-inspector]{padding-bottom:30px}.storage [data-pyric-ui=object-inspector][data-pyric-idle],.storage [data-pyric-ui=object-inspector][data-pyric-loading]{padding:0;min-height:120px}.storage__inspector-hint{padding:20px;color:var(--faint);font-size:13px}.storage [data-pyric-object-name]{padding:16px 16px 0;font-family:var(--font-mono);font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage [data-pyric-object-preview]{margin:14px 16px;min-height:168px;border:1px solid var(--line);border-radius:8px;background:repeating-conic-gradient(var(--panel) 0% 25%,var(--elevated) 0% 50%) 0 / 18px 18px;display:grid;place-items:center;overflow:hidden}.storage [data-pyric-object-preview] img[data-pyric-preview-image]{max-width:100%;max-height:168px;display:block}.storage [data-pyric-object-preview] pre[data-pyric-preview-text]{margin:0;padding:12px;width:100%;max-height:168px;overflow:auto;font-family:var(--font-mono);font-size:11.5px;color:var(--ink);white-space:pre-wrap;word-break:break-word;place-self:stretch;background:var(--bg)}.storage [data-pyric-object-preview][data-pyric-preview-none]:after,.storage [data-pyric-object-preview][data-pyric-preview-too-large]:after,.storage [data-pyric-object-preview][data-pyric-preview-loading]:after{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);background:var(--elevated);border:1px solid var(--line);border-radius:6px;padding:5px 10px}.storage [data-pyric-object-preview][data-pyric-preview-none]:after{content:"no preview"}.storage [data-pyric-object-preview][data-pyric-preview-too-large]:after{content:"too large to preview"}.storage [data-pyric-object-preview][data-pyric-preview-loading]:after{content:"loading preview…"}.storage [data-pyric-object-preview][data-pyric-preview-error]{color:var(--deny);font-family:var(--font-mono);font-size:11.5px;padding:12px;place-items:start}.storage [data-pyric-object-metadata]{margin:0;padding:4px 16px 14px}.storage__meta-group{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:16px 0 6px}.storage [data-pyric-object-metadata]>div{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:12px}.storage [data-pyric-object-metadata] dt{color:var(--faint);margin:0}.storage [data-pyric-object-metadata] dd{color:var(--ink);margin:0;word-break:break-all}.storage [data-pyric-object-metadata] [data-storage-meta-group]{display:block;grid-template-columns:none;border-top:none;padding:16px 0 0;font-family:var(--font-ui);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}.storage [data-pyric-object-metadata] [data-storage-meta-group]:first-child{padding-top:4px}.storage__back{display:none}@media(max-width:760px){.storage{--storage-cols: 1fr auto}.storage__lhead span:nth-child(n+3),.storage__cell-size,.storage__cell-updated{display:none}.storage__body{grid-template-columns:1fr}.storage__body[data-storage-level=browser] .storage__inspector,.storage__body[data-storage-level=inspector] .storage__browser{display:none}.storage__inspector{border-left:none}.storage__back{display:inline-flex;align-items:center;gap:4px;appearance:none;background:none;border:none;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;padding:12px var(--storage-gutter) 0}}[data-pyric-ui=data-feature]{display:flex;flex-direction:column;min-height:0;flex:1}[data-pyric-ui=data-feature]>[data-pyric-ui=fs-browser],[data-pyric-ui=data-feature]>.storage{flex:1;min-height:0}.auth-surface{--auth-gutter: 24px;display:flex;flex-direction:column;min-height:0}.auth-sub{display:flex;align-items:center;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.auth-sub__h{font-family:var(--font-mono);font-size:12.5px;color:var(--ink)}.auth-sub__n{color:var(--faint)}.auth-sub__filter{width:220px;height:28px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--elevated)}.auth-sub__filter::placeholder{color:var(--faint)}.auth-sub__filter:focus{outline:none;border-color:var(--accent)}.auth-sub__right{margin-left:auto;display:flex;gap:14px;align-items:center}.auth-sub__add{appearance:none;background:none;border:none;font:inherit;color:var(--accent);font-size:12.5px;cursor:pointer;padding:0}.auth-sub__clear{appearance:none;background:none;border:none;font:inherit;color:var(--faint);font-size:12.5px;cursor:pointer;padding:0}.auth-sub__clear:hover:not(:disabled){color:var(--ink)}.auth-sub__clear:disabled{opacity:.45;cursor:default}.auth-sub__error{font-size:11.5px;color:var(--diff-remove)}.auth-providers-editor__list{display:flex;flex-direction:column}.auth-provider-row{display:flex;align-items:center;gap:10px;padding:8px var(--auth-gutter);border-top:1px solid var(--line);cursor:pointer}.auth-provider-row input[type=checkbox]{accent-color:var(--accent)}.auth-provider-row__label{font-size:13px;color:var(--ink)}.auth-provider-row__id{font-family:var(--font-mono);font-size:11px;color:var(--faint);margin-left:auto}.auth-providers-editor__derived{margin:6px 0 0;padding:0 var(--auth-gutter);font-size:11.5px;color:var(--muted)}.auth-provider-custom{padding:10px var(--auth-gutter) 0}.auth-provider-custom__field{display:flex;flex-direction:column;gap:6px}.auth-provider-custom__label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.auth-provider-custom__row{display:flex;gap:10px}.auth-provider-custom__row input{flex:1;min-width:0;height:28px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--elevated)}.auth-provider-custom__row input:focus{outline:none;border-color:var(--accent)}.auth-provider-custom__row button{appearance:none;font:inherit;font-size:12.5px;font-weight:500;padding:0 14px;height:28px;border-radius:7px;border:1px solid var(--line-2);background:var(--elevated);color:var(--ink);cursor:pointer}.auth-provider-custom__row button:disabled{opacity:.45;cursor:default}.auth-providers-editor .auth-save--error{padding:0 var(--auth-gutter)}.auth-body{display:grid;grid-template-columns:1fr 392px;flex:1;min-height:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.auth-list{overflow:auto}.auth-detail{overflow:auto;border-left:1px solid var(--line)}.auth-detail__empty{padding:28px var(--auth-gutter)}.auth-zero{margin:0;font-size:13px;color:var(--muted);line-height:1.55}[data-pyric-ui=auth-user-list]{display:block;font-size:13px}[data-pyric-ui=auth-user-list] [data-pyric-user-header],[data-pyric-ui=auth-user-list] [data-pyric-user-entry]{display:grid;grid-template-columns:1fr 200px 96px 100px;gap:16px;align-items:baseline;padding:10px var(--auth-gutter)}[data-pyric-ui=auth-user-list][data-pyric-selection] :is([data-pyric-user-header],[data-pyric-user-entry]){grid-template-columns:32px 1fr 200px 96px 100px}[data-pyric-ui=auth-user-list][data-pyric-actions] :is([data-pyric-user-header],[data-pyric-user-entry]){grid-template-columns:1fr 200px 96px 100px 32px}[data-pyric-ui=auth-user-list][data-pyric-selection][data-pyric-actions] :is([data-pyric-user-header],[data-pyric-user-entry]){grid-template-columns:32px 1fr 200px 96px 100px 32px}[data-pyric-user-cell=selection],[data-pyric-user-cell=actions]{display:grid;place-items:center}.auth-select{display:inline-flex;align-items:center}.auth-select input{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}[data-pyric-ui=auth-user-list] [data-pyric-user-cell=uid]{display:none}[data-pyric-ui=auth-user-list] [data-pyric-user-header]{background:var(--panel);border-bottom:1px solid var(--line);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}[data-pyric-ui=auth-user-list] [data-pyric-user-entry]{border-bottom:1px solid var(--line);cursor:default}[data-pyric-ui=auth-user-list] [data-pyric-user-entry]:hover{background:var(--panel)}[data-pyric-ui=auth-user-list] [data-pyric-user-entry][data-pyric-user-disabled]{opacity:.6}[data-pyric-ui=auth-user-list] [data-pyric-user-select]{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;text-align:left;cursor:pointer;color:inherit;width:100%}[data-pyric-ui=auth-user-list] [data-pyric-user-cell=identifier]{min-width:0}.auth-ident{display:block;min-width:0}.auth-ident__primary{display:block;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-ident--anon .auth-ident__primary{color:var(--muted);font-style:italic}.auth-ident__uid{display:block;font-family:var(--font-mono);font-size:11px;color:var(--faint);margin-top:1px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-pyric-user-cell=providers]{display:flex;flex-wrap:wrap;gap:4px}[data-pyric-user-cell=providers] [data-pyric-provider-id]{font-family:var(--font-mono);font-size:11px;border:1px solid var(--line-2);border-radius:4px;padding:1px 6px;color:var(--muted)}[data-pyric-user-cell=created],[data-pyric-user-cell=signed-in]{font-family:var(--font-mono);font-size:11.5px;color:var(--faint)}[data-pyric-ui=auth-user-list][data-pyric-empty],[data-pyric-ui=auth-user-list][data-pyric-loading],[data-pyric-ui=auth-user-list][data-pyric-error]{padding:24px var(--auth-gutter)}[data-pyric-ui=auth-user-list][data-pyric-error]{color:var(--diff-remove)}.auth-editor{padding:0 0 40px}.auth-editor__head{padding:16px var(--auth-gutter) 0}.auth-editor__who{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--ink)}.auth-editor__uid{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);margin-top:2px}.auth-editor__meta{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);margin-top:6px}.auth-tag-off{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--deny-ink);background:var(--deny);border-radius:4px;padding:1px 6px}.auth-editor[data-pyric-user-disabled] .auth-editor__head{background:var(--deny-tint);padding-bottom:12px;border-bottom:1px solid var(--line)}.auth-group{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:18px 0 8px;padding:0 var(--auth-gutter)}[data-pyric-ui=auth-user-form]{padding:6px var(--auth-gutter) 0;display:flex;flex-direction:column}[data-pyric-ui=auth-user-form] [data-pyric-field-label]{display:flex;flex-direction:column;padding:9px 0;border-top:1px solid var(--line)}[data-pyric-ui=auth-user-form] [data-pyric-label-text]{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}[data-pyric-ui=auth-user-form] input[data-pyric-field]{width:100%;border:1px solid var(--line-2);border-radius:6px;padding:6px 10px;font:inherit;font-size:13px;background:var(--elevated);color:var(--ink)}[data-pyric-ui=auth-user-form] input[data-pyric-field]:focus{outline:none;border-color:var(--accent)}[data-pyric-ui=auth-user-form] [data-pyric-field-label=email-verified],[data-pyric-ui=auth-user-form] [data-pyric-field-label=disabled]{flex-direction:row;align-items:center;gap:9px}[data-pyric-ui=auth-user-form] [data-pyric-field-label=email-verified] [data-pyric-label-text],[data-pyric-ui=auth-user-form] [data-pyric-field-label=disabled] [data-pyric-label-text]{margin-bottom:0;text-transform:none;letter-spacing:0;font-size:12.5px;color:var(--ink)}[data-pyric-ui=auth-user-form] input[type=checkbox][data-pyric-field]{width:auto;accent-color:var(--accent)}[data-pyric-ui=auth-user-form] fieldset[data-pyric-field-label=providers]{display:block;border:0;margin:0;min-width:0}[data-pyric-ui=auth-user-form] fieldset[data-pyric-field-label=providers] legend{padding:0}[data-pyric-ui=auth-user-form] [data-pyric-provider-checklist]{display:flex;flex-direction:column;gap:7px}[data-pyric-ui=auth-user-form] [data-pyric-provider-option]{display:flex;align-items:center;gap:9px;cursor:pointer}[data-pyric-ui=auth-user-form] [data-pyric-provider-option] input[type=checkbox]{accent-color:var(--accent)}[data-pyric-ui=auth-user-form] [data-pyric-provider-option-label]{font-size:12.5px;color:var(--ink)}[data-pyric-ui=auth-user-form] [data-pyric-provider-option-id]{font-family:var(--font-mono);font-size:11px;color:var(--faint);margin-left:auto}[data-pyric-ui=auth-user-form] [data-pyric-field-error]{margin:6px 0 0;font-size:11.5px;color:var(--diff-remove)}[data-pyric-ui=claims-field]{padding:9px 0;border-top:1px solid var(--line)}[data-pyric-ui=claims-field] textarea[data-pyric-field=claims]{width:100%;min-height:64px;resize:vertical;font-family:var(--font-mono);font-size:12.5px;border:1px solid var(--line-2);border-radius:7px;padding:9px 11px;background:var(--panel);color:var(--ink);line-height:1.6}[data-pyric-ui=claims-field] textarea[data-pyric-field=claims]:focus{outline:none;border-color:var(--accent)}[data-pyric-ui=claims-field] textarea[data-pyric-claims-invalid]{border-color:var(--diff-remove)}[data-pyric-ui=claims-field] [data-pyric-claims-error]{margin:6px 0 0;font-size:11.5px;color:var(--diff-remove)}[data-pyric-ui=claims-field] [data-pyric-claims-hint]{margin:6px 0 0;font-size:11.5px;color:var(--faint)}[data-pyric-ui=auth-user-form] [data-pyric-form-actions]{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}[data-pyric-ui=auth-user-form] [data-pyric-form-actions] button{appearance:none;font:inherit;font-size:13px;font-weight:500;padding:8px 15px;border-radius:7px;border:1px solid var(--line-2);background:var(--elevated);color:var(--ink);cursor:pointer}[data-pyric-ui=auth-user-form] [data-pyric-submit]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}[data-pyric-ui=auth-user-form] [data-pyric-form-actions] button:disabled{opacity:.45;cursor:default}.auth-save{margin:12px 0 0;font-size:12px}.auth-save--error{color:var(--diff-remove)}.auth-save--ok{color:var(--accent)}.auth-editor__foot{display:flex;align-items:center;margin-top:18px;padding:0 var(--auth-gutter)}.auth-del{margin-left:auto;appearance:none;background:none;border:none;font:inherit;color:var(--faint);font-size:12.5px;cursor:pointer;padding:0}.auth-del:hover{color:var(--diff-remove)}.auth-back{display:none}@media(max-width:760px){.auth-sub{flex-wrap:wrap;gap:8px 12px}.auth-sub__filter{flex:1 1 100%;order:3}[data-pyric-ui=auth-user-list] [data-pyric-user-header],[data-pyric-ui=auth-user-list] [data-pyric-user-entry]{grid-template-columns:1fr auto;gap:10px}[data-pyric-ui=auth-user-list][data-pyric-selection] :is([data-pyric-user-header],[data-pyric-user-entry]){grid-template-columns:32px 1fr auto}[data-pyric-ui=auth-user-list][data-pyric-actions] :is([data-pyric-user-header],[data-pyric-user-entry]){grid-template-columns:1fr auto 32px}[data-pyric-ui=auth-user-list][data-pyric-selection][data-pyric-actions] :is([data-pyric-user-header],[data-pyric-user-entry]){grid-template-columns:32px 1fr auto 32px}[data-pyric-ui=auth-user-list] [data-pyric-user-cell=providers],[data-pyric-ui=auth-user-list] [data-pyric-user-cell=signed-in]{display:none}.auth-body{grid-template-columns:1fr}.auth-body[data-auth-level=list] .auth-detail,.auth-body[data-auth-level=detail] .auth-list{display:none}.auth-detail{border-left:none}.auth-back{display:inline-flex;align-items:center;gap:4px;appearance:none;background:none;border:none;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;padding:12px var(--auth-gutter) 0}}.traffic{display:flex;flex-direction:column;gap:22px}.traffic__empty{color:var(--faint);font-size:13px;text-align:center;padding:28px 0;margin:0}.traffic__tabs{display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line);padding-bottom:10px;min-width:0;overflow-x:auto;scrollbar-width:none}.traffic__tabs::-webkit-scrollbar{display:none}.traffic__tabs>*{white-space:nowrap;flex-shrink:0}@media(max-width:760px){.traffic__tabs{scroll-snap-type:x proximity;padding-right:28px;mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}.traffic__tabs>*{scroll-snap-align:start}}.traffic__tab{appearance:none;border:none;background:none;color:var(--muted);font:inherit;font-size:var(--fs-label);padding:4px 2px;cursor:pointer;position:relative}.traffic__tab:hover{color:var(--ink)}.traffic__tab[aria-selected=true]{color:var(--ink);font-weight:600}.traffic__tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:2px;background:var(--accent)}.traffic__metrics{display:flex;flex-direction:column;gap:var(--space-5)}.traffic__metric-panel{display:flex;flex-direction:column;gap:var(--space-3)}.traffic__metric-panel--journal{gap:var(--space-5)}.traffic__metric-story{display:flex;flex-direction:column;gap:var(--space-2);max-width:720px}.traffic__metric-eyebrow{margin:0;color:var(--faint);font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--tracking-micro);text-transform:uppercase}.traffic__metric-headline{margin:0;color:var(--ink);font-family:var(--font-display);font-size:var(--fs-display);font-weight:650;letter-spacing:-.025em;line-height:1.12}.traffic__metric-finding{margin:0;color:var(--muted);font-size:var(--fs-body);line-height:1.5}.traffic__metric-cards{display:flex;flex-wrap:wrap;gap:var(--space-3)}.traffic__metric-cards [data-pyric-metric-card]{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:var(--panel);cursor:pointer;user-select:none}.traffic__metric-cards [data-pyric-metric-hidden]{opacity:.45}.traffic__metric-cards [data-pyric-metric-checkbox]{accent-color:var(--accent)}.traffic__metric-cards [data-pyric-metric-swatch]{width:9px;height:9px;border-radius:50%;flex-shrink:0}.traffic__metric-cards [data-pyric-metric-label]{font-size:var(--fs-caption);color:var(--muted)}.traffic__metric-cards [data-pyric-metric-value]{font-family:var(--font-mono);font-size:var(--fs-data);font-weight:600;color:var(--ink)}.traffic__metric-cards--journal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-bottom:1px solid var(--line)}.traffic__metric-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic__metric-cards--journal [data-pyric-metric-card]{display:grid;grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"toggle swatch label" "value value value";align-items:center;gap:var(--space-2);min-width:0;border:none;border-top:3px solid var(--pyric-series-color, var(--line-2));border-radius:0;padding:var(--space-3) var(--space-4) var(--space-4);background:transparent}.traffic__metric-cards--journal [data-pyric-metric-card]+[data-pyric-metric-card]{border-left:1px solid var(--line)}.traffic__metric-cards--journal [data-pyric-metric-checkbox]{grid-area:toggle;margin:0}.traffic__metric-cards--journal [data-pyric-metric-swatch]{grid-area:swatch}.traffic__metric-cards--journal [data-pyric-metric-label]{grid-area:label;overflow:hidden;color:var(--muted);font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--tracking-micro);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.traffic__metric-cards--journal [data-pyric-metric-value]{grid-area:value;margin-top:var(--space-1);font-family:var(--font-display);font-size:var(--fs-display);font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:-.025em;line-height:1}.traffic__metric-cards [data-pyric-series-index="0"],.traffic__metric-cards [data-pyric-series-index="0"] [data-pyric-metric-swatch],.traffic__chart [data-pyric-series-index="0"]{--pyric-series-color: var(--accent)}.traffic__metric-cards [data-pyric-series-index="1"],.traffic__metric-cards [data-pyric-series-index="1"] [data-pyric-metric-swatch],.traffic__chart [data-pyric-series-index="1"]{--pyric-series-color: var(--diff-add)}.traffic__metric-cards [data-pyric-series-index="2"],.traffic__metric-cards [data-pyric-series-index="2"] [data-pyric-metric-swatch],.traffic__chart [data-pyric-series-index="2"]{--pyric-series-color: var(--diff-remove)}.traffic__metric-cards [data-pyric-metric-swatch]{background:var(--pyric-series-color, var(--muted))}[data-pyric-ui=traffic-rules-view] .traffic__metric-cards [data-pyric-series-index="0"],[data-pyric-ui=traffic-rules-view] .traffic__metric-cards [data-pyric-series-index="0"] [data-pyric-metric-swatch],[data-pyric-ui=traffic-rules-view] .traffic__chart [data-pyric-series-index="0"]{--pyric-series-color: var(--diff-add)}[data-pyric-ui=traffic-rules-view] .traffic__metric-cards [data-pyric-series-index="1"],[data-pyric-ui=traffic-rules-view] .traffic__metric-cards [data-pyric-series-index="1"] [data-pyric-metric-swatch],[data-pyric-ui=traffic-rules-view] .traffic__chart [data-pyric-series-index="1"]{--pyric-series-color: var(--diff-remove)}.traffic__chart{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--panel)}.traffic__chart [data-pyric-chart-svg]{position:relative;height:160px}.traffic__chart svg{width:100%;height:100%;overflow:visible}.traffic__chart [data-pyric-chart-line]{stroke:var(--pyric-series-color, var(--muted));stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.traffic__chart [data-pyric-chart-hits]{position:absolute;inset:0;display:flex}.traffic__chart [data-pyric-chart-hit]{appearance:none;border:none;background:none;padding:0;margin:0;flex:1;cursor:default}.traffic__chart [data-pyric-chart-tooltip]{position:absolute;top:0;left:calc(var(--pyric-hover-x, 0) * 1%);transform:translate(-50%);background:var(--elevated);border:1px solid var(--line-2);border-radius:6px;padding:6px 10px;font-size:var(--fs-caption);white-space:nowrap;pointer-events:none;z-index:1}.traffic__chart [data-pyric-tooltip-time]{color:var(--faint);margin-bottom:4px;font-family:var(--font-mono)}.traffic__chart [data-pyric-tooltip-row]{display:flex;align-items:center;gap:var(--space-2);justify-content:space-between}.traffic__chart [data-pyric-tooltip-row]:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pyric-series-color, var(--muted));flex-shrink:0}.traffic__chart [data-pyric-tooltip-label]{color:var(--muted)}.traffic__chart [data-pyric-tooltip-value]{font-family:var(--font-mono);color:var(--ink)}.traffic__metric-evidence{display:flex;flex-direction:column;gap:var(--space-2)}.traffic__metric-evidence-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.traffic__metric-evidence-header h4{margin:0;color:var(--ink);font-size:var(--fs-label);font-weight:600}.traffic__metric-evidence-header span,.traffic__metric-axis{color:var(--faint);font-family:var(--font-mono);font-size:var(--fs-micro)}.traffic__chart--journal{border:none;border-radius:0;padding:var(--space-3) 0 0;background:transparent}.traffic__chart--journal [data-pyric-chart-svg]{height:220px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent,transparent calc(25% - 1px),var(--line) 25%)}.traffic__chart--journal [data-pyric-chart-line]{stroke-width:2}.traffic__metric-axis{display:flex;justify-content:space-between}.traffic__metric-footer{display:flex;flex-direction:column;gap:var(--space-2);border-top:1px solid var(--line);padding-top:var(--space-3)}.traffic__metric-source{margin:0;color:var(--faint);font-size:var(--fs-caption)}.traffic__metric-methodology{color:var(--muted);font-size:var(--fs-caption)}.traffic__metric-methodology summary{width:max-content;color:var(--muted);cursor:pointer;font-size:var(--fs-caption);font-weight:600}.traffic__metric-methodology>div{max-width:760px;padding-top:var(--space-2);line-height:1.55}.traffic__metric-methodology p{margin:0}.traffic__metric-methodology p+p{margin-top:var(--space-2)}.traffic__metric-methodology code{font-family:var(--font-mono)}.traffic__metric-methodology strong{color:var(--ink)}@media(max-width:620px){.traffic__metric-cards--journal [data-pyric-metric-card]{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"swatch label" "value value";padding-inline:var(--space-2)}.traffic__metric-cards--journal [data-pyric-metric-checkbox]{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.traffic__metric-cards--journal [data-pyric-metric-card]:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.traffic__metric-evidence-header span{display:none}}.traffic__timeline{border:1px solid var(--line);border-radius:10px;padding:14px 16px 10px;background:var(--panel)}.traffic__tl-header{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;font-size:12.5px}.traffic__tl-count{font-weight:600;color:var(--ink)}.traffic__tl-deny{appearance:none;background:none;border:none;padding:0;font:inherit;color:var(--deny);font-weight:600;cursor:pointer}.traffic__tl-deny:hover,.traffic__tl-deny[aria-pressed=true]{text-decoration:underline}.traffic__tl-live{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--accent);display:inline-flex;align-items:center;gap:5px}.traffic__tl-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.traffic__timeline [data-pyric-timeline-chart]{position:relative}.traffic__timeline [data-pyric-bucket-summary]{position:absolute;z-index:4;top:4px;left:clamp(92px,calc(var(--pyric-bucket-summary-x, .5) * 100%),calc(100% - 92px));transform:translate(-50%);max-width:calc(100% - 12px);border:1px solid var(--line-2);border-radius:6px;padding:5px 8px;background:color-mix(in srgb,var(--panel) 94%,transparent);pointer-events:none}.traffic__bucket-summary{display:flex;align-items:baseline;gap:var(--space-2);color:var(--faint);font-family:var(--font-mono);font-size:var(--fs-micro);white-space:nowrap}.traffic__bucket-summary strong{color:var(--ink);font-weight:600}.traffic__timeline [data-pyric-timeline-bars]{display:flex;align-items:flex-end;gap:2px;height:96px}.traffic__timeline [data-pyric-bucket]{appearance:none;border:none;background:none;padding:0;margin:0;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;cursor:default;min-width:2px}.traffic__timeline [data-pyric-bucket]:not(:disabled){cursor:pointer}.traffic__timeline [data-pyric-bucket]:not(:disabled):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.traffic__timeline [data-pyric-bucket]:not(:disabled):hover [data-pyric-bucket-allow],.traffic__timeline [data-pyric-bucket]:not(:disabled):focus-visible [data-pyric-bucket-allow]{background:color-mix(in srgb,var(--accent) 42%,var(--line-2))}.traffic__timeline [data-pyric-bucket-allow]{display:block;width:100%;height:calc(max(0,(var(--pyric-bucket-h, 0) - var(--pyric-bucket-deny-h, 0)))*100%);background:var(--line-2);border-radius:2px 2px 0 0;min-height:0}.traffic__timeline [data-pyric-bucket-deny]{display:block;width:100%;height:calc(var(--pyric-bucket-deny-h, 0) * 100%);background:var(--deny)}.traffic__timeline [data-pyric-bucket]:not([data-pyric-has-denies]) [data-pyric-bucket-allow]{border-radius:2px}.traffic__timeline [data-pyric-brush]{position:absolute;z-index:1;inset-block:0;left:calc(var(--pyric-brush-left, 0) * 100%);right:calc(var(--pyric-brush-right, 0) * 100%);border:1px solid color-mix(in srgb,var(--accent) 70%,transparent);background:color-mix(in srgb,var(--accent-tint) 55%,transparent);pointer-events:none}.traffic__timeline [data-pyric-bucket-selected]{filter:saturate(1.2)}.traffic__timeline [data-pyric-live]{position:absolute;top:0;bottom:0;left:calc(var(--pyric-live-x, 1) * 100%);width:1px;background:color-mix(in srgb,var(--accent) 55%,transparent)}.traffic__tl-axis{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-mono);font-size:10.5px;color:var(--faint)}.traffic__time-focus{display:flex;align-items:center;gap:var(--space-4);border-left:3px solid var(--accent);padding:var(--space-2) var(--space-3);background:var(--panel)}.traffic__time-focus-story{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:var(--space-1) var(--space-3);min-width:0}.traffic__time-focus-eyebrow{grid-column:1 / -1;margin:0;color:var(--faint);font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--tracking-micro);text-transform:uppercase}.traffic__time-focus h3,.traffic__time-focus p{margin:0}.traffic__time-focus h3{color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:600;white-space:nowrap}.traffic__time-focus-story>p:last-child{color:var(--muted);font-size:var(--fs-caption)}.traffic__time-focus>button{flex-shrink:0;margin-left:auto;border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:none;color:var(--muted);font:inherit;font-size:var(--fs-caption);cursor:pointer}.traffic__time-focus>button:hover{border-color:var(--line-2);color:var(--ink)}@media(max-width:620px){.traffic__bucket-summary span:last-child{display:none}.traffic__time-focus{align-items:flex-start;flex-direction:column}.traffic__time-focus-story{grid-template-columns:1fr}.traffic__time-focus>button{margin-left:0}}.traffic__filters{display:flex;align-items:center;gap:var(--space-2);min-width:0;overflow-x:auto;scrollbar-width:none}.traffic__filters::-webkit-scrollbar{display:none}.traffic__filters>*{white-space:nowrap;flex-shrink:0}.traffic__filters-label{color:var(--faint);font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase}.traffic__filter{appearance:none;border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.03em;padding:2px 10px;cursor:pointer}.traffic__filter:hover{border-color:var(--line-2);color:var(--ink)}.traffic__filter[aria-pressed=true]{border-color:var(--line-2);background:var(--elevated);color:var(--ink)}.traffic__verdict{display:inline-flex;align-items:center;justify-content:center;width:52px;height:18px;border-radius:5px;align-self:center;flex-shrink:0;font-family:var(--font-ui);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.traffic__verdict[data-verdict=allow]{background:var(--elevated);color:var(--muted)}.traffic__verdict[data-verdict=deny]{background:var(--deny);color:var(--deny-ink)}.traffic__verdict[data-verdict=bypassed]{background:var(--accent-tint);color:var(--accent)}[data-pyric-traffic-entry][data-verdict=deny]{background:var(--deny-tint)}.traffic__inspector{display:grid;gap:var(--space-2);border-bottom:1px solid var(--line);padding:10px 14px 12px;background:color-mix(in srgb,var(--deny-tint) 60%,var(--panel))}.traffic>.traffic__inspector{border:1px solid var(--line);border-radius:10px}.traffic__inspector-bar{display:flex;align-items:baseline;gap:var(--space-3)}.traffic__inspector-title{color:var(--faint);text-transform:uppercase;letter-spacing:.03em;font-size:10px;font-weight:600}.traffic__inspector-close{appearance:none;margin-left:auto;background:none;border:none;padding:0;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-caption);cursor:pointer}.traffic__inspector-close:hover{color:var(--ink)}.traffic__inspector-missing{margin:0;color:var(--muted);font-size:var(--fs-caption)}.traffic__log{border:1px solid var(--line);border-radius:10px;overflow:hidden}.traffic__log [data-pyric-traffic-row]{appearance:none;width:100%;display:flex;align-items:baseline;gap:12px;background:none;border:none;border-bottom:1px solid var(--line);padding:8px 14px;font:inherit;font-family:var(--font-mono);font-size:12px;color:var(--muted);text-align:left;cursor:pointer}.traffic__log [data-pyric-traffic-row]:hover{background:var(--panel)}.traffic__log [data-pyric-traffic-time]{color:var(--faint);flex-shrink:0;min-width:64px}.traffic__log [data-pyric-traffic-path]{color:var(--ink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.traffic__log [data-pyric-traffic-row][data-pyric-result=deny]{background:var(--deny-tint)}.traffic__log [data-pyric-traffic-row][data-pyric-result=deny] [data-pyric-traffic-path]{color:var(--deny);font-weight:600}.traffic__log [data-pyric-traffic-service]{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;width:74px;padding:1px 0;border-radius:4px;background:var(--elevated);color:var(--faint);text-align:center;flex-shrink:0}.traffic__log [data-pyric-traffic-service=""]{background:none}.traffic__log [data-pyric-badge-kind]{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.03em;width:58px;padding:1px 0;text-align:center;border-radius:4px;border:1px solid var(--line-2);color:var(--muted);flex-shrink:0}.traffic__log [data-pyric-traffic-group-row],.traffic__log [data-pyric-traffic-group]{border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12px;color:var(--muted);background:var(--panel)}.traffic__log [data-pyric-traffic-group-header]{display:flex;align-items:baseline;gap:10px;width:100%;padding:8px 14px;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.traffic__log [data-pyric-traffic-group-header]:before{content:"▸";color:var(--muted)}.traffic__log [data-pyric-traffic-group][data-pyric-expanded] [data-pyric-traffic-group-header]:before{content:"▾"}.traffic__log [data-pyric-group-count]{color:var(--fg)}.traffic__log [data-pyric-group-denies]{color:var(--deny, #e5484d)}.traffic__log [data-pyric-traffic-group-members]{list-style:none;margin:0;padding:0 0 0 20px}.traffic__show-more{display:block;width:100%;padding:8px 14px;border:none;border-top:1px solid var(--line);background:var(--panel);color:var(--muted);font-family:var(--font-mono);font-size:12px;cursor:pointer;text-align:center}.traffic__show-more:hover{color:var(--ink)}.traffic__hide-studio{appearance:none;margin-left:auto;border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:var(--fs-caption);padding:2px 10px;cursor:pointer}.traffic__hide-studio:hover{border-color:var(--line-2);color:var(--ink)}.traffic__hide-studio[aria-pressed=true]{border-color:var(--line-2);background:var(--elevated);color:var(--ink)}.studio-home{display:grid;grid-template-rows:auto auto auto 1fr;gap:var(--space-5);grid-template-columns:minmax(0,72rem);justify-content:center}.studio-home__hero{--hero-size: 2.75rem;margin:0;padding-block:var(--space-6);display:flex;align-items:center;gap:var(--space-5)}.studio-home__hero-logo{height:var(--hero-size);width:auto;flex-shrink:0}.studio-home__hero-title{margin:0;font-size:var(--hero-size);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--text-1);text-wrap:balance}@media(max-width:760px){.studio-home__hero{flex-direction:column;align-items:flex-start}.studio-home__hero-logo{height:8rem;align-self:center}}.studio-home__body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:var(--space-5)}.studio-home__feed{grid-column:1 / -1}.studio-home__tiles{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--space-3)}.studio-home__command{display:grid;gap:var(--space-2)}.studio-home__command-row{display:grid;align-items:center;gap:var(--space-3);border:1px solid var(--line);border-radius:10px;background:var(--elevated);padding:var(--space-2) var(--space-3)}.studio-home__command-row:focus-within{border-color:var(--line-2)}.studio-home__command-input{border:none;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:14px;min-width:0}.studio-home__command-input::placeholder{color:var(--faint)}.studio-home__command-results{margin:0;padding:var(--space-1);display:grid;gap:var(--space-1);border:1px solid var(--line);border-radius:10px;background:var(--panel)}.studio-home__command-group{display:grid;gap:2px}.studio-home__command-group-title{color:var(--faint);font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;padding:4px 10px 0}.studio-home__command-group-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.studio-home__command-result{width:100%;display:grid;gap:2px;text-align:left;appearance:none;background:none;border:none;border-radius:8px;padding:8px 10px;font:inherit;cursor:pointer}.studio-home__command-result:hover,.studio-home__command-result[data-active=true]{background:var(--accent-tint)}.studio-home__command-label{color:var(--ink);font-size:var(--fs-body);font-weight:500}.studio-home__command-sub{color:var(--muted);font-size:var(--fs-label)}.studio-home__status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.studio-home__feed-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.studio-home__feed-title{margin:0}.studio-home__feed-all{color:var(--muted);font-size:var(--fs-label);text-decoration:none;white-space:nowrap}.studio-home__feed-all:hover{color:var(--ink)}.studio-home__feed-scroll{max-height:320px;overflow-y:auto;min-height:0}.studio-home__feed-empty{margin:0;padding-top:var(--space-2);color:var(--faint);font-size:var(--fs-body)}.studio-home__feed-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.studio-home__feed-row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:var(--space-3);padding:6px 8px;border-radius:7px;text-decoration:none;min-width:0}a.studio-home__feed-row:hover{background:var(--elevated)}.studio-home__feed-ident{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-caption);white-space:nowrap}.studio-home__feed-dot{width:6px;height:6px;border-radius:999px;background:var(--faint);flex:none}.studio-home__feed-ident[data-provenance=agent] .studio-home__feed-dot{background:var(--accent)}.studio-home__feed-ident[data-provenance=studio] .studio-home__feed-dot{background:var(--diff-add)}.studio-home__feed-ident[data-provenance=system] .studio-home__feed-dot{background:var(--line-2)}.studio-home__feed-summary{color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-data);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.studio-home__feed-summary[data-denied=true]{color:var(--diff-remove)}.studio-home__feed-time{color:var(--faint);font-family:var(--font-mono);font-size:var(--fs-caption);white-space:nowrap}a.studio-home__tile{text-decoration:none;cursor:pointer}a.studio-home__tile:hover{border-color:var(--line-2);background:color-mix(in srgb,var(--panel) 80%,var(--elevated))}.studio-home__onboard{min-height:0}.studio-home__snippet{display:block;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-caption);padding:8px 10px;overflow-x:auto;white-space:nowrap}.studio-home__onboard-link{color:var(--accent);font-size:var(--fs-label);text-decoration:none}.studio-home__onboard-link:hover{text-decoration:underline}.studio-home__skeleton-chip{min-width:96px;min-height:22px}.studio-home__skeleton{display:grid;gap:var(--space-2)}.studio-home__skeleton-row{height:16px;border-radius:6px;background:var(--elevated)}.studio-home__tile-top{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:10px}.studio-home__tile-label{color:var(--ink);font-size:15px;font-weight:650}.studio-home__tile-desc{color:var(--muted);font-size:var(--fs-body);line-height:1.55}.rtdb{display:grid;grid-template-rows:auto 1fr;min-height:480px;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}.rtdb__pathbar{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border-bottom:1px solid var(--line);background:var(--elevated);font-family:var(--font-mono);font-size:var(--fs-data)}.rtdb__pathbar [data-rtdb-crumb-list]{display:flex;align-items:center;flex-wrap:wrap;gap:2px;list-style:none;margin:0;padding:0;min-width:0}.rtdb__pathbar [data-rtdb-crumb-item]{display:inline-flex;align-items:center;gap:2px}.rtdb__pathbar [data-rtdb-crumb]{appearance:none;background:none;border:none;padding:2px 4px;border-radius:4px;font:inherit;color:var(--muted);cursor:pointer}.rtdb__pathbar [data-rtdb-crumb]:hover{color:var(--ink);background:var(--accent-tint)}.rtdb__pathbar [data-rtdb-crumb][data-pyric-current]{color:var(--ink)}.rtdb__pathbar [data-rtdb-crumb-root],.rtdb__pathbar [data-rtdb-crumb-separator]{color:var(--faint)}.rtdb__pathbar [data-rtdb-path-edit]{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;border-radius:4px;color:var(--faint);cursor:pointer}.rtdb__pathbar [data-rtdb-path-edit]:hover{color:var(--ink);background:var(--accent-tint)}.rtdb__pathbar [data-rtdb-path-form]{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.rtdb__pathbar [data-rtdb-path-prefix]{color:var(--faint);white-space:nowrap}.rtdb__pathbar [data-rtdb-path-input]{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line-2);border-radius:6px;padding:4px 8px;font:inherit;color:var(--ink)}.rtdb__pathbar [data-rtdb-path-input]:focus{outline:none;border-color:var(--accent)}.rtdb__tree{overflow:auto;padding:var(--space-2) var(--space-3) var(--space-4);font-family:var(--font-mono);font-size:var(--fs-data);line-height:1.9}.rtdb__tree [data-rtdb-loading],.rtdb__tree [data-rtdb-empty] p{margin:var(--space-2) 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--fs-body)}.rtdb__tree [data-rtdb-error]{margin:2px 0;padding:2px 8px;border-radius:4px;background:var(--deny-tint);color:var(--deny-ink);font-family:var(--font-ui);font-size:var(--fs-caption);width:fit-content}.rtdb__tree [data-rtdb-children]{list-style:none;padding:0 0 0 18px;border-left:1px solid var(--line);margin:0 0 0 3px}.rtdb__tree [data-rtdb-row]{display:flex;align-items:center;gap:6px;border-radius:4px;padding:0 4px}.rtdb__tree [data-rtdb-row]:hover{background:var(--elevated)}.rtdb__tree [data-rtdb-caret],.rtdb__tree [data-rtdb-caret-spacer]{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:none}.rtdb__tree [data-rtdb-caret]{appearance:none;background:none;border:none;padding:0;color:var(--faint);cursor:pointer;transition:transform .12s ease}.rtdb__tree [data-rtdb-caret]:hover{color:var(--ink)}.rtdb__tree [data-rtdb-caret][aria-expanded=true]{transform:rotate(90deg)}.rtdb__tree [data-rtdb-key]{appearance:none;background:none;border:none;padding:0;font:inherit;color:var(--ink);font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32ch}.rtdb__tree [data-rtdb-key]:hover{color:var(--accent);text-decoration:underline}.rtdb__tree [data-rtdb-view-root]>[data-rtdb-row]>[data-rtdb-key]{color:var(--muted);font-weight:600}.rtdb__tree [data-rtdb-sep]{color:var(--faint)}.rtdb__tree [data-rtdb-value]{appearance:none;background:none;border:none;border-radius:4px;padding:0 3px;font:inherit;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48ch;color:var(--ink)}.rtdb__tree [data-rtdb-value]:hover{background:var(--accent-tint)}.rtdb__tree [data-rtdb-value][data-rtdb-type=string]{color:var(--diff-add)}.rtdb__tree [data-rtdb-value][data-rtdb-type=number],.rtdb__tree [data-rtdb-value][data-rtdb-type=boolean]{color:var(--accent)}.rtdb__tree [data-rtdb-value][data-rtdb-type=null]{color:var(--faint);font-style:italic}.rtdb__tree [data-rtdb-actions]{display:inline-flex;align-items:center;gap:2px;opacity:0;transition:opacity .1s ease}.rtdb__tree [data-rtdb-row]:hover [data-rtdb-actions],.rtdb__tree [data-rtdb-row]:focus-within [data-rtdb-actions]{opacity:1}.rtdb__tree [data-rtdb-action-add],.rtdb__tree [data-rtdb-action-delete]{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;border-radius:4px;font:inherit;font-size:13px;line-height:1;color:var(--faint);cursor:pointer}.rtdb__tree [data-rtdb-action-add]:hover{color:var(--accent);background:var(--accent-tint)}.rtdb__tree [data-rtdb-action-delete]:hover{color:var(--deny-ink);background:var(--deny-tint)}.rtdb__tree [data-rtdb-confirm]{display:inline-flex;align-items:center;gap:6px;padding:0 6px;border-radius:4px;background:var(--deny-tint);font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--deny-ink)}.rtdb__tree [data-rtdb-confirm] button{appearance:none;background:none;border:none;padding:1px 4px;border-radius:3px;font:inherit;cursor:pointer}.rtdb__tree [data-rtdb-confirm-yes]{color:var(--deny-ink);font-weight:600}.rtdb__tree [data-rtdb-confirm-yes]:hover{background:var(--deny);color:var(--panel)}.rtdb__tree [data-rtdb-confirm-no]{color:var(--muted)}.rtdb__tree [data-rtdb-confirm-no]:hover{color:var(--ink)}.rtdb__tree [data-rtdb-editor]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:2px 0 2px 20px;padding:6px 8px;border:1px solid var(--line-2);border-radius:6px;background:var(--elevated);width:fit-content;max-width:100%}.rtdb__tree [data-rtdb-editor] input,.rtdb__tree [data-rtdb-editor] select{background:var(--bg);border:1px solid var(--line-2);border-radius:5px;padding:3px 7px;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink)}.rtdb__tree [data-rtdb-editor] input:focus,.rtdb__tree [data-rtdb-editor] select:focus{outline:none;border-color:var(--accent)}.rtdb__tree [data-rtdb-editor-key]{width:14ch}.rtdb__tree [data-rtdb-editor-value]{width:26ch}.rtdb__tree [data-rtdb-editor-save],.rtdb__tree [data-rtdb-editor-cancel]{appearance:none;border:none;border-radius:5px;padding:3px 10px;font-family:var(--font-ui);font-size:var(--fs-label);cursor:pointer}.rtdb__tree [data-rtdb-editor-save]{background:var(--accent);color:var(--accent-ink)}.rtdb__tree [data-rtdb-editor-cancel]{background:none;color:var(--muted)}.rtdb__tree [data-rtdb-editor-cancel]:hover{color:var(--ink)}.rtdb__tree [data-rtdb-editor-error]{flex-basis:100%;color:var(--deny-ink);font-family:var(--font-ui);font-size:var(--fs-caption)}.rtdb__tree [data-rtdb-show-more]{appearance:none;background:none;border:none;padding:2px 4px;border-radius:4px;font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--accent);cursor:pointer}.rtdb__tree [data-rtdb-show-more]:hover{background:var(--accent-tint)}.studio-settings__grid>*{min-width:0}.studio-settings__actions,.studio-settings__branch-actions{display:flex;flex-wrap:wrap;gap:8px}.studio-settings__grid{display:grid;grid-template-columns:minmax(min(100%,560px),1.1fr) minmax(min(100%,320px),.9fr);gap:14px;align-items:start;min-width:0}.studio-settings__ai{max-width:none;max-height:none;box-shadow:none}.studio-settings__panel{display:grid;gap:12px}.studio-settings__choice-group{display:grid;gap:8px}.studio-settings__choice{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--elevated);padding:12px;cursor:pointer}.studio-settings__choice:has(input:checked){border-color:var(--accent)}.studio-settings__choice input{margin-top:3px;accent-color:var(--accent)}.studio-settings__choice span{display:grid;gap:4px;min-width:0}.studio-settings__choice strong{color:var(--ink);font-size:var(--fs-body)}.studio-settings__choice small{color:var(--muted);font-size:var(--fs-label);line-height:1.45}.studio-settings__row,.studio-settings__branch{display:flex;align-items:center;justify-content:space-between;gap:12px}.studio-settings__label{color:var(--muted)}.studio-settings__muted{margin:0;color:var(--muted);font-size:var(--fs-label)}.studio-settings__file{display:none}.studio-settings__branches{display:grid;gap:8px;padding-top:4px}.studio-sandbox__live{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;border:1px solid var(--line);border-radius:8px;background:var(--elevated);padding:10px 12px}.studio-sandbox__instance{color:var(--ink);font-weight:600;font-size:var(--fs-body)}.studio-sandbox__inventory{color:var(--muted);font-size:var(--fs-label)}.studio-sandbox__persist{margin-left:auto;color:var(--faint);font-size:var(--fs-caption);white-space:nowrap}.studio-sandbox__actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:8px}.studio-sandbox__action{appearance:none;display:grid;gap:4px;align-content:start;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--elevated);padding:10px 12px;font:inherit;cursor:pointer}.studio-sandbox__action:hover{border-color:var(--line-2)}.studio-sandbox__action:disabled{cursor:default;opacity:.55}.studio-sandbox__action-top{display:inline-flex;align-items:center;gap:7px;color:var(--ink)}.studio-sandbox__action[data-danger=true] .studio-sandbox__action-top{color:var(--diff-remove)}.studio-sandbox__action-name{font-size:var(--fs-body);font-weight:600}.studio-sandbox__action-caption{color:var(--muted);font-size:var(--fs-caption);line-height:1.45}.studio-sandbox__name-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.studio-sandbox__name-input{flex:1;min-width:140px;border:1px solid var(--line);border-radius:7px;background:var(--elevated);color:var(--ink);font:inherit;font-size:var(--fs-body);padding:6px 10px;outline:none}.studio-sandbox__name-input:focus{border-color:var(--line-2)}.studio-sandbox__confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;border:1px solid color-mix(in srgb,var(--diff-remove) 45%,var(--line));border-radius:8px;background:var(--deny-tint);padding:10px 12px}.studio-sandbox__confirm-copy{color:var(--ink);font-size:var(--fs-label)}.studio-sandbox__confirm-actions{display:inline-flex;gap:8px}.studio-sandbox__branches-empty{margin:0;color:var(--faint);font-size:var(--fs-label)}@media(max-width:760px){.studio-settings__grid{grid-template-columns:1fr}.studio-settings__row,.studio-settings__branch{align-items:stretch;flex-direction:column}}.assurance-surface,.assurance-empty{width:100%;max-width:var(--wide);margin:0 auto;padding:24px var(--gutter) 72px}.assurance-empty{max-width:720px}.assurance-empty h1,.assurance-surface h1,.assurance-surface h2,.assurance-surface h3,.assurance-surface p{margin:0}.assurance-empty h1,.assurance-surface h1{margin-top:3px;font-family:var(--font-display);font-size:24px;font-weight:500;letter-spacing:0}.assurance-empty>p:not(.assurance-surface__eyebrow){max-width:620px;margin:12px 0 18px;color:var(--muted)}.assurance-surface__header,.assurance-surface__controls,.assurance-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.assurance-surface__eyebrow,.assurance-facts dt,.assurance-evidence span,.assurance-surface__controls label>span{color:var(--muted);font-size:var(--fs-caption);font-weight:500;text-transform:uppercase}.assurance-surface__controls label{display:flex;align-items:center;gap:8px}.assurance-surface__controls select{min-width:180px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);padding:6px 28px 6px 9px;font:inherit}.assurance-local-state{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:var(--fs-caption);white-space:nowrap}.assurance-local-state:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}.assurance-attachment{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(100px,.7fr));margin-top:18px;border-block:1px solid var(--line)}.assurance-attachment>span{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 14px;border-right:1px solid var(--line);color:var(--muted);font-size:var(--fs-caption)}.assurance-attachment>span:first-child{padding-left:0}.assurance-attachment>span:last-child{border-right:0}.assurance-attachment strong{overflow:hidden;color:var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.assurance-coverage-gaps{margin:16px 0;padding:0;list-style:none}.assurance-coverage-gaps li{display:grid;grid-template-columns:76px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);color:var(--muted)}.assurance-coverage-gaps code{color:var(--deny)}.assurance-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:22px 0 26px;border-block:1px solid var(--line)}.assurance-coverage-band{display:grid;grid-template-columns:auto 1fr;gap:14px;margin:-12px 0 24px;padding:9px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--fs-caption)}.assurance-verification-band{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline;margin:-12px 0 24px;padding:10px 0;border-block:1px solid var(--line);color:var(--muted);font-size:var(--fs-caption)}.assurance-verification-band strong{color:var(--deny);font-weight:500}.assurance-verification-band--passed strong{color:var(--accent)}.assurance-verification-band code{overflow:hidden;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.assurance-coverage-band strong{color:var(--deny);font-weight:500}.assurance-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:13px 18px;border-right:1px solid var(--line)}.assurance-summary>div:first-child{padding-left:0}.assurance-summary>div:last-child{border-right:0;padding-right:0}.assurance-summary span,.assurance-section-heading>span{color:var(--muted);font-size:var(--fs-caption)}.assurance-summary strong{font-family:var(--font-mono);font-size:16px;font-weight:500}.assurance-workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:28px;align-items:start}.assurance-section-heading{min-height:32px;margin-bottom:10px}.assurance-section-heading h2{margin-top:4px;font-size:15px;font-weight:500}.assurance-table{border-top:1px solid var(--line-2)}.assurance-table__header,.assurance-table__row{display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(86px,.65fr) 76px 76px minmax(150px,1fr);gap:10px;align-items:center}.assurance-table__header{padding:8px 10px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--fs-caption);font-weight:500}.assurance-table__row{appearance:none;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 10px;font:inherit;text-align:left;cursor:pointer}.assurance-table__row>span{min-width:0;overflow-wrap:anywhere}.assurance-table__row:hover,.assurance-table__row[aria-pressed=true]{background:var(--accent-tint)}.assurance-table__row[aria-pressed=true]{box-shadow:inset 3px 0 0 var(--accent)}.assurance-table__row small{display:block;color:var(--muted);font-size:var(--fs-caption);text-transform:uppercase}.assurance-verdict{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-caption);font-weight:500}.assurance-verdict:before{content:"";width:7px;height:7px;border-radius:2px}.assurance-verdict--allow:before{background:var(--accent)}.assurance-verdict--deny:before{background:var(--muted)}.assurance-verdict--mismatch:before{background:var(--deny)}.assurance-inspector{min-width:0;border-left:1px solid var(--line);padding-left:24px}.assurance-classification{color:var(--muted);font-size:var(--fs-caption);font-weight:500;text-transform:uppercase}.assurance-classification--local-counterexample,.assurance-classification--invalid-probe{color:var(--deny)}.assurance-classification--no-counterexample{color:var(--accent)}.assurance-facts{margin:16px 0 0}.assurance-facts>div{display:grid;grid-template-columns:84px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.assurance-facts dt,.assurance-facts dd{margin:0}.assurance-gaps{margin:14px 0 0;padding:0;list-style:none;color:var(--deny)}.assurance-gaps li{padding:8px 0;border-bottom:1px solid var(--line)}.assurance-gaps code{display:block;color:var(--ink)}.assurance-evidence,.assurance-rule-decision{margin-top:20px}.assurance-evidence h3,.assurance-rule-decision h3{margin-bottom:8px;font-size:13px;font-weight:500}.assurance-evidence__diff{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-block:1px solid var(--line)}.assurance-evidence__diff>div{min-width:0;background:var(--panel);padding:9px}.assurance-evidence__json{max-height:190px;margin:5px 0 0;overflow:auto;color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-caption);white-space:pre-wrap;overflow-wrap:anywhere}.assurance-rule-decision [data-pyric-ui=denial-detail]{border-radius:5px}.assurance-no-decision{margin-top:18px!important;padding:10px 0;border-block:1px solid var(--line);color:var(--muted)}@media(max-width:1050px){.assurance-workspace{grid-template-columns:1fr}.assurance-inspector{border-left:0;border-top:1px solid var(--line-2);padding:24px 0 0}}@media(max-width:760px){.assurance-surface,.assurance-empty{max-width:none;padding:18px 16px 56px}.assurance-surface__header,.assurance-surface__controls{align-items:flex-start;flex-direction:column}.assurance-summary,.assurance-attachment{grid-template-columns:1fr 1fr}.assurance-attachment>span,.assurance-attachment>span:first-child,.assurance-attachment>span:last-child{padding:9px;border-right:0;border-bottom:1px solid var(--line)}.assurance-coverage-band,.assurance-verification-band{grid-template-columns:1fr;gap:4px}.assurance-summary>div,.assurance-summary>div:first-child,.assurance-summary>div:last-child{padding:10px;border:0;border-bottom:1px solid var(--line)}.assurance-table__header{display:none}.assurance-table__row{grid-template-columns:1fr 1fr}.assurance-table__row>span:first-child,.assurance-table__row>span:last-child{grid-column:1 / -1}.assurance-evidence__diff{grid-template-columns:1fr}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{S as d}from"./app.BnMC0ywl.js";import"./jsx-runtime.D_zvdyIk.js";import"./index.DBy5LfQW.js";import"./sandbox-controls.BqMePr5V.js";import"./reads.D1exkX1-.js";import"./index.B4Kh80he.js";import"./index.DNyk7q8W.js";export{d as StudioApp};
|