insika 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +145 -17
- data/README.md +7 -1
- data/bin/insika +211 -8
- data/docs/AGENTS.md +377 -2
- data/docs/API.md +56 -0
- data/docs/CHANNELS.md +99 -9
- data/docs/CONTEXT.md +127 -16
- data/docs/DEPLOY.md +5 -2
- data/docs/EVALS.md +19 -0
- data/docs/FACTS.md +135 -0
- data/docs/HARVEST.md +117 -0
- data/docs/LOADTEST.md +14 -8
- data/docs/OBSERVABILITY.md +54 -0
- data/docs/REFINEMENT.md +3 -3
- data/docs/RELEASING.md +27 -0
- data/docs/RUNNING-LOCAL.md +3 -3
- data/docs/SECURITY.md +61 -0
- data/docs/SKILLS.md +2 -2
- data/docs/SOAK.md +127 -0
- data/docs/TOOLS.md +70 -2
- data/docs/domain.md +115 -0
- data/docs/index.md +1 -1
- data/lib/insika/agent_profile.rb +145 -10
- data/lib/insika/balloon_splitter.rb +102 -0
- data/lib/insika/budget_ledger.rb +34 -3
- data/lib/insika/cache_series_store.rb +49 -0
- data/lib/insika/channel_delivery.rb +118 -13
- data/lib/insika/channels/relay.rb +77 -3
- data/lib/insika/channels/web.rb +2 -2
- data/lib/insika/chat_builder.rb +84 -1
- data/lib/insika/checkpoint_store.rb +16 -0
- data/lib/insika/commands/agent_payload.rb +3 -3
- data/lib/insika/commands/cancel_followup.rb +49 -0
- data/lib/insika/commands/delete_tenant_data.rb +95 -0
- data/lib/insika/commands/export_customer_memory.rb +48 -0
- data/lib/insika/commands/forget_customer.rb +117 -0
- data/lib/insika/commands/freeze_funnel_baseline.rb +113 -0
- data/lib/insika/commands/gate_harvest.rb +138 -0
- data/lib/insika/commands/gate_refinement.rb +1 -1
- data/lib/insika/commands/judge_shadow_pairs.rb +124 -0
- data/lib/insika/commands/memory_forget_fact.rb +20 -4
- data/lib/insika/commands/memory_put_fact.rb +23 -4
- data/lib/insika/commands/promote_harvest.rb +130 -0
- data/lib/insika/commands/record_outcome.rb +46 -0
- data/lib/insika/commands/record_shadow_reply.rb +68 -0
- data/lib/insika/commands/reject_harvest.rb +38 -0
- data/lib/insika/commands/resolve_proposal.rb +108 -0
- data/lib/insika/commands/revoke_contact.rb +49 -0
- data/lib/insika/commands/rollback_harvest.rb +86 -0
- data/lib/insika/commands/run_distillation.rb +186 -0
- data/lib/insika/commands/run_harvest.rb +393 -0
- data/lib/insika/commands/send_message.rb +103 -6
- data/lib/insika/commands/session_purge.rb +67 -0
- data/lib/insika/contact_store.rb +183 -0
- data/lib/insika/context/builder.rb +21 -3
- data/lib/insika/context/fragment.rb +7 -3
- data/lib/insika/context/priority.rb +3 -0
- data/lib/insika/context/provider.rb +17 -3
- data/lib/insika/context/providers/briefing.rb +96 -0
- data/lib/insika/context/providers/memory.rb +16 -7
- data/lib/insika/context/providers/prompt.rb +30 -2
- data/lib/insika/context/providers/skill.rb +2 -0
- data/lib/insika/context/providers/tool_search.rb +2 -0
- data/lib/insika/context_trace_store.rb +38 -2
- data/lib/insika/distill.rb +224 -0
- data/lib/insika/distill_engine.rb +169 -0
- data/lib/insika/doctor.rb +716 -6
- data/lib/insika/dsl/runtime.rb +9 -3
- data/lib/insika/dsl/server_boot.rb +70 -1
- data/lib/insika/dsl.rb +83 -3
- data/lib/insika/edge_limiter.rb +28 -7
- data/lib/insika/env_schema.rb +9 -2
- data/lib/insika/errors.rb +11 -0
- data/lib/insika/evals/assertions.rb +3 -2
- data/lib/insika/evals/pairwise.rb +18 -6
- data/lib/insika/evidence.rb +183 -0
- data/lib/insika/executor.rb +687 -70
- data/lib/insika/followup_engine.rb +207 -0
- data/lib/insika/followup_policy.rb +221 -0
- data/lib/insika/followup_store.rb +306 -0
- data/lib/insika/funnel_declaration.rb +106 -0
- data/lib/insika/funnel_fold.rb +179 -0
- data/lib/insika/funnel_store.rb +163 -0
- data/lib/insika/golden_store.rb +1 -1
- data/lib/insika/grounding/matcher.rb +69 -0
- data/lib/insika/grounding.rb +44 -0
- data/lib/insika/harvest/conversion_gate.rb +159 -0
- data/lib/insika/harvest/criterion.rb +98 -0
- data/lib/insika/harvest/gate.rb +194 -0
- data/lib/insika/harvest/negative_list.rb +199 -0
- data/lib/insika/harvest.rb +241 -0
- data/lib/insika/harvest_engine.rb +193 -0
- data/lib/insika/harvest_store.rb +548 -0
- data/lib/insika/media.rb +298 -0
- data/lib/insika/memory_audit_store.rb +85 -0
- data/lib/insika/memory_store.rb +264 -23
- data/lib/insika/message_origin.rb +6 -1
- data/lib/insika/model_visible.rb +87 -0
- data/lib/insika/model_visible_trace_store.rb +66 -0
- data/lib/insika/onboarding.rb +6 -1
- data/lib/insika/outbox_store.rb +42 -4
- data/lib/insika/outcome_store.rb +147 -0
- data/lib/insika/packaging.rb +163 -0
- data/lib/insika/parity/criterion.rb +79 -0
- data/lib/insika/parity/verdict.rb +318 -0
- data/lib/insika/prefix_fingerprint.rb +58 -0
- data/lib/insika/profile_source.rb +22 -1
- data/lib/insika/proposal_store.rb +271 -0
- data/lib/insika/queue_policy.rb +4 -1
- data/lib/insika/refinement/proposer.rb +1 -1
- data/lib/insika/reliability.rb +32 -6
- data/lib/insika/retention.rb +281 -0
- data/lib/insika/routing.rb +101 -0
- data/lib/insika/safety/config.rb +44 -4
- data/lib/insika/safety/corpus.rb +255 -0
- data/lib/insika/safety/detectors.rb +32 -113
- data/lib/insika/safety/factory.rb +15 -2
- data/lib/insika/safety/grounding_enforcer.rb +59 -0
- data/lib/insika/safety/grounding_validator.rb +49 -0
- data/lib/insika/safety/input_guardrail.rb +1 -1
- data/lib/insika/safety/moderator.rb +1 -1
- data/lib/insika/safety/output_filter.rb +9 -5
- data/lib/insika/safety/output_validator.rb +11 -5
- data/lib/insika/schema_guard.rb +35 -0
- data/lib/insika/server/app.rb +144 -4
- data/lib/insika/server/rack_app.rb +16 -0
- data/lib/insika/server/responses.rb +40 -1
- data/lib/insika/session_actor.rb +8 -4
- data/lib/insika/session_store.rb +65 -2
- data/lib/insika/settings_store.rb +10 -0
- data/lib/insika/shadow_pair_store.rb +258 -0
- data/lib/insika/skill_catalog.rb +4 -0
- data/lib/insika/soak/envelope.rb +140 -0
- data/lib/insika/soak/report.rb +392 -0
- data/lib/insika/soak/runner.rb +554 -0
- data/lib/insika/store.rb +10 -1
- data/lib/insika/stores/memory.rb +6 -0
- data/lib/insika/stores/sqlite.rb +8 -0
- data/lib/insika/studio/app.rb +875 -14
- data/lib/insika/studio/assets/dist/application.css +1 -1
- data/lib/insika/studio/assets/dist/application.js +22 -22
- data/lib/insika/studio/assets/dist/favicon.svg +6 -0
- data/lib/insika/studio/forms.rb +262 -5
- data/lib/insika/studio/nav_icons.rb +6 -1
- data/lib/insika/studio/views/agent_detail.erb +627 -84
- data/lib/insika/studio/views/agents.erb +10 -6
- data/lib/insika/studio/views/approvals.erb +4 -1
- data/lib/insika/studio/views/chats.erb +4 -1
- data/lib/insika/studio/views/customer.erb +94 -0
- data/lib/insika/studio/views/customers.erb +32 -0
- data/lib/insika/studio/views/evals.erb +4 -1
- data/lib/insika/studio/views/facts.erb +133 -0
- data/lib/insika/studio/views/followups.erb +125 -0
- data/lib/insika/studio/views/funnel.erb +106 -0
- data/lib/insika/studio/views/harvest.erb +234 -0
- data/lib/insika/studio/views/home.erb +2 -1
- data/lib/insika/studio/views/layout.erb +1 -0
- data/lib/insika/studio/views/parity.erb +147 -0
- data/lib/insika/studio/views/playground.erb +7 -1
- data/lib/insika/studio/views/session.erb +56 -1
- data/lib/insika/studio/views/settings.erb +2 -0
- data/lib/insika/studio/views/skills.erb +0 -1
- data/lib/insika/studio/views/system_files.erb +1 -1
- data/lib/insika/studio/views/task.erb +13 -0
- data/lib/insika/studio/views/tasks.erb +4 -1
- data/lib/insika/studio/views/tools.erb +0 -1
- data/lib/insika/task_store.rb +21 -1
- data/lib/insika/testing/store_contract.rb +27 -6
- data/lib/insika/tick.rb +25 -1
- data/lib/insika/tool_definition.rb +17 -7
- data/lib/insika/tool_envelope.rb +69 -0
- data/lib/insika/tool_manifest.rb +5 -1
- data/lib/insika/tools/data_defined_tool.rb +10 -0
- data/lib/insika/tools/generate_image.rb +44 -0
- data/lib/insika/tools/schedule_followup.rb +164 -0
- data/lib/insika/tools/tts.rb +47 -0
- data/lib/insika/tools/update_briefing.rb +126 -0
- data/lib/insika/turn_state.rb +38 -1
- data/lib/insika/turn_timing.rb +22 -2
- data/lib/insika/version.rb +1 -1
- data/lib/insika/vitals.rb +84 -0
- data/lib/insika/wiring/graph.rb +300 -13
- data/lib/insika.rb +92 -3
- metadata +77 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--ink:#f4f5f7;--panel:#fff;--panel-2:#f5f6f9;--panel-3:#eceef3;--line:#e2e5ec;--line-strong:#cfd4de;--fg:#161922;--dim:#5a6272;--faint:#8b93a3;--accent:#9a6a00;--accent-fg:#161922;--accent-bg:#e8a92a;--accent-weak:rgba(232,169,42,.14);--ring:rgba(232,169,42,.45);--ok:#1a7f37;--run:#b45309;--err:#c62f2f;--info:#2563eb;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--sans:"Inter","Inter var","Geist","SF Pro Text",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--radius:12px;--radius-sm:9px;--radius-lg:16px;--shadow:0 1px 2px rgba(16,20,40,.05),0 2px 8px rgba(16,20,40,.04);--shadow-lg:0 12px 32px rgba(16,20,40,.12);--sidebar-w:250px}@media (prefers-color-scheme:dark){:root{--ink:#0a0b0e;--panel:#14161c;--panel-2:#1a1d25;--panel-3:#222633;--line:#262a34;--line-strong:#353b49;--fg:#e7e9ef;--dim:#98a0af;--faint:#6b7280;--accent:#f0be4d;--accent-fg:#0a0b0e;--accent-bg:#e8b23a;--accent-weak:rgba(232,178,58,.12);--ring:rgba(232,178,58,.5);--ok:#3fb950;--run:#e3a008;--err:#f4685c;--info:#5b9bff;--shadow:0 1px 2px rgba(0,0,0,.4),0 2px 10px rgba(0,0,0,.25);--shadow-lg:0 16px 40px rgba(0,0,0,.5)}}:root[data-theme=light]{--ink:#f4f5f7;--panel:#fff;--panel-2:#f5f6f9;--panel-3:#eceef3;--line:#e2e5ec;--line-strong:#cfd4de;--fg:#161922;--dim:#5a6272;--faint:#8b93a3;--accent:#9a6a00;--accent-fg:#161922;--accent-bg:#e8a92a;--accent-weak:rgba(232,169,42,.14);--ring:rgba(232,169,42,.45);--ok:#1a7f37;--run:#b45309;--err:#c62f2f;--info:#2563eb;--shadow:0 1px 2px rgba(16,20,40,.05),0 2px 8px rgba(16,20,40,.04);--shadow-lg:0 12px 32px rgba(16,20,40,.12)}:root[data-theme=dark]{--ink:#0a0b0e;--panel:#14161c;--panel-2:#1a1d25;--panel-3:#222633;--line:#262a34;--line-strong:#353b49;--fg:#e7e9ef;--dim:#98a0af;--faint:#6b7280;--accent:#f0be4d;--accent-fg:#0a0b0e;--accent-bg:#e8b23a;--accent-weak:rgba(232,178,58,.12);--ring:rgba(232,178,58,.5);--ok:#3fb950;--run:#e3a008;--err:#f4685c;--info:#5b9bff;--shadow:0 1px 2px rgba(0,0,0,.4),0 2px 10px rgba(0,0,0,.25);--shadow-lg:0 16px 40px rgba(0,0,0,.5)}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);margin:0;color:var(--fg);background:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:14.5px;letter-spacing:-.006em;font-feature-settings:"cv02","cv03","cv04","cv11","ss01";font-variant-numeric:tabular-nums}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}.mono,code{font-family:var(--mono);font-size:.85em}::-moz-selection{background:var(--accent-weak)}::selection{background:var(--accent-weak)}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-bg);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line);gap:.25rem;padding:1rem .75rem}.app-main,.sidebar{display:flex;flex-direction:column}.app-main{min-width:0}.brand{display:flex;align-items:center;gap:.6rem;padding:.4rem .55rem .9rem;color:var(--fg);font-weight:680;letter-spacing:-.02em;font-size:1.05rem}.brand:hover{text-decoration:none}.brand small{color:var(--dim);font-weight:500;font-size:.82rem;letter-spacing:0}.brand .dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--accent-bg);box-shadow:0 0 0 3px var(--accent-weak),0 0 12px 0 var(--accent-bg);animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px var(--accent-weak),0 0 10px 0 var(--accent-bg)}50%{box-shadow:0 0 0 4px var(--accent-weak),0 0 18px 1px var(--accent-bg)}}.brand.big{font-size:1.4rem;padding:0;margin-bottom:.5rem}.nav-group{margin-top:.9rem}.nav-label{font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:0 .6rem .35rem}.nav{flex-direction:column;gap:1px}.nav,.nav a{display:flex}.nav a{align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:var(--radius-sm);color:var(--dim);font-size:.9rem;font-weight:500;position:relative;transition:background .12s,color .12s}.nav a:hover{color:var(--fg);background:var(--panel-2);text-decoration:none}.nav a svg{width:1.05rem;height:1.05rem;flex:0 0 auto;opacity:.85}.nav a[aria-current=page]{color:var(--fg);background:var(--accent-weak);font-weight:600}.nav a[aria-current=page] svg{color:var(--accent-bg);opacity:1}.nav a[aria-current=page]:before{content:"";position:absolute;left:-.75rem;top:.35rem;bottom:.35rem;width:3px;border-radius:0 3px 3px 0;background:var(--accent-bg)}.sidebar-foot{margin-top:auto;padding-top:1rem;display:flex;flex-direction:column;gap:.7rem}.health-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);padding:.65rem .75rem;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 4%,transparent)}.health-card .row{display:flex;align-items:center;gap:.45rem;font-size:.82rem}.health-card .stat{color:var(--dim);font-size:.76rem;margin-top:.5rem;display:flex;flex-direction:column;gap:.2rem}.health-card .stat-row{display:flex;align-items:baseline;gap:.35rem}.health-card .stat-row b{flex:0 0 auto}.health-card .stat b{color:var(--fg);font-weight:650}.foot-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar-foot .logout{margin:0}.env-chip{display:flex;align-items:center;gap:.6rem;padding:.55rem .5rem 0;border-top:1px solid var(--line);margin-top:.15rem}.env-mark{flex:0 0 auto;width:1.9rem;height:1.9rem;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:.82rem;color:var(--accent-fg);text-transform:uppercase;background:linear-gradient(150deg,var(--accent-bg),color-mix(in srgb,var(--accent-bg) 65%,#000))}.env-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.env-text b{font-size:.84rem;font-weight:600;color:var(--fg);text-transform:capitalize}.env-text small{font-size:.68rem;color:var(--faint);letter-spacing:.02em}.theme-switch{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel)}.theme-opt{font-size:.7rem;font-weight:600;color:var(--dim);background:transparent;border:0;border-radius:0;box-shadow:none;padding:.3rem .5rem}.theme-opt:hover{color:var(--fg);background:var(--panel-2);border-color:transparent}.theme-opt.on{color:var(--accent-fg);background:var(--accent-bg)}.theme-opt+.theme-opt{border-left:1px solid var(--line)}.banner,.flash{border-radius:var(--radius-sm);font-size:.9rem;padding:.65rem .95rem;margin:1rem 2.5rem 0}.banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--run);background:color-mix(in srgb,var(--run) 12%,transparent);border:1px solid color-mix(in srgb,var(--run) 34%,transparent)}.banner form{margin:0}.banner strong{color:var(--fg)}.flash{font-weight:500;display:flex;align-items:center;gap:.5rem}.flash:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex:0 0 auto}.flash.err{color:var(--err);background:color-mix(in srgb,var(--err) 11%,transparent);border:1px solid color-mix(in srgb,var(--err) 32%,transparent)}.flash.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 11%,transparent);border:1px solid color-mix(in srgb,var(--ok) 32%,transparent)}.page{width:100%;max-width:1560px;margin:0 auto;padding:2rem clamp(1.25rem,3.5vw,3rem) 5rem}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap;margin:-2rem clamp(-3rem,-3.5vw,-1.25rem) 1.9rem;padding:1.1rem clamp(1.25rem,3.5vw,3rem) 1rem;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--ink) 88%,transparent);-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4);border-bottom:1px solid var(--line)}.page-head>div:first-child{min-width:0}.page-head .head-actions{display:flex;align-items:center;gap:.6rem;flex:0 0 auto}h1{font-size:1.7rem;font-weight:700;letter-spacing:-.03em;margin:.05rem 0;line-height:1.15;text-wrap:balance}h1 .sub{display:block;font-size:.9rem;font-weight:450;letter-spacing:-.005em;margin-top:.35rem}.muted,h1 .sub{color:var(--dim)}.eyebrow{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.45rem;box-shadow:var(--shadow),inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent)}.card+.card{margin-top:1rem}.btn,button{font:inherit;font-size:.85rem;font-weight:560;cursor:pointer;color:var(--fg);background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.52rem .95rem;display:inline-flex;align-items:center;gap:.4rem;line-height:1.2;transition:background .12s,border-color .12s,color .12s,filter .12s,box-shadow .12s}.btn:hover,button:hover{background:var(--panel-3);border-color:var(--line-strong);text-decoration:none}.btn.primary,button.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent-bg) 92%,#fff),var(--accent-bg));color:var(--accent-fg);border-color:color-mix(in srgb,var(--accent-bg) 70%,#000);font-weight:650;box-shadow:0 1px 2px rgba(0,0,0,.18),inset 0 1px 0 color-mix(in srgb,#fff 22%,transparent)}.btn.primary:hover,button.primary:hover{filter:brightness(1.05);color:var(--accent-fg)}.btn.ghost,button.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--dim)}.btn.ghost:hover,button.ghost:hover{background:var(--panel-2);color:var(--fg)}.btn.danger,button.danger{color:var(--err);background:transparent;border-color:transparent}.btn.danger:hover,button.danger:hover{background:color-mix(in srgb,var(--err) 12%,transparent);color:var(--err)}.btn.mono{font-family:var(--mono);font-size:.8rem}.btn[disabled],button[aria-disabled=true],button[disabled]{opacity:.55;cursor:not-allowed;filter:none}.btn[disabled]:hover,button[disabled]:hover{background:var(--panel-2);border-color:var(--line-strong)}button.ghost[disabled]:hover{background:transparent}label{display:block;font-size:.78rem;font-weight:600;color:var(--dim);margin:.85rem 0 0;letter-spacing:.005em}input[type=number],input[type=password],input[type=text],select,textarea{display:block;width:100%;margin-top:.4rem;font:inherit;font-size:.9rem;padding:.6rem .8rem;font-weight:400;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--fg);transition:border-color .12s,box-shadow .12s,background .12s}input[type=number]:hover,input[type=password]:hover,input[type=text]:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--line-strong) 70%,var(--fg))}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--faint)}input::placeholder,textarea::placeholder{color:var(--faint)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-bg);box-shadow:0 0 0 3px var(--ring)}input[readonly]{color:var(--dim);background:var(--panel)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2rem}.auth-page{display:grid;place-items:center;min-height:100vh;padding:2rem}.auth-card{width:min(92vw,400px)}.auth-card .lead{margin:.2rem 0 1.1rem}.pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;padding:.18rem .55rem;border-radius:999px;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap}.pill:before{content:"";width:.42rem;height:.42rem;border-radius:50%;background:currentColor}.pill.plain:before{display:none}.pill.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent);border-color:color-mix(in srgb,var(--ok) 26%,transparent)}.pill.run,.pill.warn{color:var(--run);background:color-mix(in srgb,var(--run) 15%,transparent);border-color:color-mix(in srgb,var(--run) 28%,transparent)}.pill.err{color:var(--err);background:color-mix(in srgb,var(--err) 13%,transparent);border-color:color-mix(in srgb,var(--err) 28%,transparent)}.pill.info{color:var(--info);background:color-mix(in srgb,var(--info) 13%,transparent);border-color:color-mix(in srgb,var(--info) 26%,transparent)}.pill:not(.ok):not(.warn):not(.run):not(.err):not(.info){color:var(--dim);background:var(--panel-2);border-color:var(--line)}.pill.online:before{animation:pulse-sm 2s ease-in-out infinite}@keyframes pulse-sm{0%,to{opacity:1}50%{opacity:.4}}.empty{color:var(--dim);padding:2.5rem 2rem;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--panel)}.empty.big{padding:5rem 2rem}.empty.big h1{font-size:3.5rem;margin:0;letter-spacing:-.04em;color:var(--faint)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.4rem}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--shadow),inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent)}.stat-num{font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.stat-label{margin-top:.4rem;font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.home-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:1rem;align-items:start}@media (max-width:900px){.home-grid{grid-template-columns:1fr}}.home-activity .section-head,.home-recent .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;margin-bottom:1rem}.home-activity .section-head h2,.home-recent .section-head h2{font-size:1rem;font-weight:650;margin:0}.barchart{display:block;width:100%;height:11rem;overflow:visible}.barchart .bar{fill:var(--accent-bg);transition:fill .12s}.barchart .bar:hover{fill:var(--accent)}.barchart .bar-empty{fill:var(--line-strong)}.barchart-axis-line{stroke:var(--line);stroke-width:1}.barchart-axis{display:flex;justify-content:space-between;margin-top:.4rem;font-family:var(--mono);font-size:.68rem;color:var(--faint)}.barchart-axis .peak{color:var(--dim)}.convo-rail{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.convo-rail li+li{border-top:1px solid var(--line)}.convo-rail a{display:flex;align-items:center;gap:.7rem;padding:.6rem .2rem;color:var(--fg)}.convo-rail a:hover{text-decoration:none}.convo-rail a:hover .convo-id{color:var(--accent)}.convo-main{min-width:0;display:flex;flex-direction:column;gap:.15rem}.convo-id{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convo-sub{font-size:.72rem;color:var(--dim)}.agent-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.agent{display:flex;flex-direction:column;gap:.9rem;transition:border-color .14s,transform .14s,box-shadow .14s}.agent:hover{border-color:var(--line-strong);box-shadow:var(--shadow-lg)}.agent-head{display:flex;align-items:flex-start;gap:.75rem;color:inherit}a.agent-head:hover{text-decoration:none}a.agent-head:hover .agent-id{color:var(--accent)}.agent-head .avatar{flex:0 0 2.5rem;height:2.5rem;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:.9rem;color:var(--accent-fg);background:linear-gradient(150deg,var(--accent-bg),color-mix(in srgb,var(--accent-bg) 70%,#000))}.agent-head>div{flex:1 1 auto;min-width:0}.agent-head .pill{flex:0 0 auto;align-self:center}.agent-id{font-weight:640;letter-spacing:-.01em;font-size:1.02rem;overflow-wrap:anywhere}.agent-head .mono{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-meta{display:flex;gap:0;margin:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.agent-meta>div{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .75rem;flex:1;background:var(--panel-2)}.agent-meta>div+div{border-left:1px solid var(--line)}.agent-meta dt{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:600}.agent-meta dd{margin:0;font-size:1.1rem;font-weight:650;letter-spacing:-.01em}.agent-actions{margin-top:auto;display:flex;gap:.5rem}.avatar.sm{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:8px;font-size:.72rem;font-weight:700;color:var(--accent-fg);background:linear-gradient(150deg,var(--accent-bg),color-mix(in srgb,var(--accent-bg) 70%,#000));vertical-align:middle;margin-right:.45rem}.drill{display:flex;height:calc(100vh - 7rem);min-height:34rem;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);box-shadow:var(--shadow),inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent)}.drill-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.drill-pane+.drill-pane{border-left:1px solid var(--line)}.drill-master{flex:0 0 300px;background:var(--panel-2)}.drill-detail{flex:1 1 auto}.drill-pane-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.8rem 1.1rem;min-height:3.5rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 65%,var(--panel-2))}.drill-pane-head .title{min-width:0}.drill-pane-head strong{font-size:.95rem;font-weight:650;letter-spacing:-.01em;display:block}.drill-pane-head .crumbs{margin:0 0 .1rem}.drill-pane-head .count{color:var(--faint);font-weight:500;font-size:.8rem}.drill-pane-body{flex:1 1 auto;overflow-y:auto;min-height:0}.drill-detail .drill-pane-body{padding:1.3rem 1.45rem 2.25rem}.drill-search{flex:0 0 auto;padding:.6rem .75rem;border-bottom:1px solid var(--line)}.drill-search .filter-input{margin:0;font-size:.82rem;padding:.42rem .7rem .42rem 2rem}.drill-list{display:flex;flex-direction:column}.drill-item{display:block;padding:.6rem .9rem;border-bottom:1px solid var(--line);color:var(--fg)}.drill-item:hover{background:var(--panel-3);text-decoration:none}.drill-item.active{background:var(--accent-weak);box-shadow:inset 3px 0 0 var(--accent-bg)}.drill-item-name{font-family:var(--mono);font-size:.82rem;font-weight:600;display:flex;align-items:center;gap:.4rem;min-width:0}.drill-item-name>span.txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-item.active .drill-item-name{color:var(--accent)}.drill-item-sub{font-size:.74rem;color:var(--dim);margin-top:.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-item.drill-item-sm{padding:.42rem .9rem}.drill-item .drill-item-name .pill{margin-left:auto}.drill-group-label{font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:.85rem .9rem .35rem;border-bottom:1px solid var(--line)}.matrix-topline{display:flex;align-items:center;gap:.9rem;margin-bottom:.5rem}.matrix-topline .count-badge{font-size:.74rem;font-weight:600;color:var(--dim);padding:.16rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);white-space:nowrap}.drill-empty{flex:1;display:grid;place-items:center;text-align:center;padding:2rem;color:var(--dim)}.drill-empty h2{font-size:1.2rem;margin:0 0 .45rem;color:var(--fg)}.drill-empty p{max-width:30rem;margin:0 auto}.drill-section{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}.drill-section-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.7rem}.drill-section-head h3{margin:0;font-size:.82rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:600}.btn.btn-sm{padding:.32rem .65rem;font-size:.78rem}@media (max-width:820px){.drill{flex-direction:column;height:auto}.drill-master,.drill-nav{flex:0 0 auto;max-height:18rem}.drill-pane+.drill-pane{border-left:0;border-top:1px solid var(--line)}}.crumbs{font-family:var(--mono);font-size:.76rem;margin-bottom:.4rem;display:flex;gap:.4rem;align-items:center}.crumbs,.crumbs a{color:var(--dim)}.crumbs a:hover{color:var(--accent)}.subnav{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:1.5rem;position:sticky;top:0;background:color-mix(in srgb,var(--ink) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.5rem 0;z-index:5}.subnav a{font-size:.82rem;color:var(--dim);padding:.35rem .7rem;border-radius:999px;border:1px solid var(--line);background:var(--panel)}.subnav a:hover{color:var(--fg);border-color:var(--line-strong);text-decoration:none}.section{margin-bottom:2.5rem;scroll-margin-top:5rem}.section>.card{margin-top:.75rem}.section-head h2{font-size:1.15rem;font-weight:650;letter-spacing:-.015em;margin:.1rem 0;display:flex;align-items:center;gap:.55rem}.section-head p{margin:.25rem 0 0;font-size:.86rem}.section h3{font-size:.82rem;margin:.1rem 0 .6rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:600}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1.25rem}label.check{display:flex;align-items:center;gap:.55rem;font-weight:500;color:var(--fg);margin:.6rem 0;cursor:pointer;font-size:.9rem}label.check input{width:auto;margin:0;accent-color:var(--accent-bg)}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.15rem 1rem;margin:.6rem 0}.tool-grid.check-grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:.5rem .6rem;margin:.9rem 0 0}label.check.tool-check{display:flex;align-items:center;gap:.55rem;margin:0;min-width:0;font-size:.85rem;padding:.5rem .65rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);transition:border-color .12s,background .12s}label.check.tool-check:hover{border-color:var(--line-strong)}label.check.tool-check:has(input:checked){border-color:color-mix(in srgb,var(--accent-bg) 42%,var(--line));background:var(--accent-weak)}label.check.tool-check>.mono{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}label.check.tool-check .pill{flex:0 0 auto}.tool-check input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 auto;margin:0;position:relative;width:1.85rem;height:1.05rem;border-radius:999px;background:var(--line-strong);border:0;cursor:pointer;transition:background .14s}.tool-check input[type=checkbox]:after{content:"";position:absolute;top:.13rem;left:.13rem;width:.79rem;height:.79rem;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.35);transition:transform .14s}.tool-check input[type=checkbox]:checked{background:var(--accent-bg)}.tool-check input[type=checkbox]:checked:after{transform:translateX(.8rem)}.tool-check input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.actions{gap:.6rem;margin-top:1rem}.actions,.inline-form{display:flex;align-items:center;flex-wrap:wrap}.inline-form{gap:.5rem;margin-top:.75rem}.inline-form input[type=text]{width:auto;flex:1;min-width:150px;margin-top:0}.promptfile{margin-top:1rem}.promptfile-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.promptfile-head form{margin:0}.versions{margin-top:.75rem;font-size:.85rem}.versions summary{cursor:pointer;color:var(--dim);font-family:var(--mono);font-size:.8rem}.versions ul{list-style:none;padding:0;margin:.6rem 0 0;display:flex;flex-direction:column;gap:.35rem}.versions li{display:flex;align-items:center;gap:.6rem}.versions li form{margin:0}.newfile{margin-top:1rem}.newfile summary{cursor:pointer;font-weight:600;font-size:.9rem;color:var(--fg)}.newfile>summary::marker{color:var(--accent-bg)}ul.history,ul.kv,ul.notes{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-direction:column}ul.kv li{display:flex;align-items:center;gap:.7rem;padding:.5rem .1rem;border-bottom:1px solid var(--line)}ul.kv li:last-child{border-bottom:0}ul.kv .k{flex:0 0 auto;font-weight:600;color:var(--accent)}ul.kv .v{flex:1;word-break:break-word}ul.kv li form{margin:0}ul.notes li{padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.9rem}ul.notes li:last-child{border-bottom:0}.skill-name{font-weight:640;display:flex;align-items:center;gap:.55rem;font-family:var(--mono);font-size:.92rem}.skill-desc{font-size:.86rem;margin-top:.25rem}.tool-card-head .agent-id{font-weight:640;font-size:1rem}.tool-card-head label.check{margin:0}.matrix-hint{margin:0 0 1.25rem;font-size:.88rem}.deny{margin:.5rem 0 0}.deny,pre.diff{font-size:.82rem}pre.diff{font-family:var(--mono);line-height:1.55;margin:.4rem 0 .9rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg-soft,transparent)}pre.diff .del{display:block;color:#b4232b;text-decoration:line-through;text-decoration-thickness:1px}pre.diff .ins{display:block;color:#1a7f45}@media (prefers-color-scheme:dark){pre.diff .del{color:#ff8a8a}pre.diff .ins{color:#6ee7a8}}ul.history li{display:flex;align-items:center;gap:.75rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.88rem}ul.history li:last-child{border-bottom:0}ul.history .preview{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim)}.chat{height:calc(100vh - 7rem);min-height:34rem;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);box-shadow:var(--shadow),inset 0 1px 0 color-mix(in srgb,#fff 5%,transparent)}.chat,.chat-form{display:flex;flex-direction:column}.chat-form{flex:1;min-height:0}.chat-head{flex:0 0 auto;gap:.85rem;flex-wrap:wrap;padding:.65rem 1rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 65%,var(--panel-2))}.chat-field,.chat-head{display:flex;align-items:center}.chat-field{gap:.5rem;margin:0;font-size:.76rem;font-weight:600;color:var(--dim)}.chat-field input,.chat-field select{margin:0;width:auto;font-size:.85rem;padding:.4rem .6rem}.chat-field input{min-width:15rem}.chat-status{margin-left:auto}.chat-pin{flex:1 0 100%;margin:0}.chat-pin>summary{font-size:.78rem;color:var(--dim)}.chat-pin .row{display:flex;gap:.9rem;margin-top:.55rem}.chat-pin .row label{flex:1}.chat-thread{flex:1 1 auto;overflow-y:auto;min-height:0;padding:1.5rem 1.6rem}.chat-thread .thread{display:flex;flex-direction:column;gap:1rem}.chat-empty{border:0;background:transparent;padding:3rem 1rem}.chat-composer{flex:0 0 auto;display:flex;gap:.65rem;align-items:flex-end;padding:.8rem 1rem;border-top:1px solid var(--line);background:var(--panel-2)}.chat-composer textarea{flex:1;margin:0;resize:none;min-height:2.7rem;max-height:12rem;line-height:1.45}.chat-composer button.primary{flex:0 0 auto;align-self:stretch;padding-inline:1.3rem}.transcript{min-height:60vh}.thread{display:flex;flex-direction:column;gap:1rem}.msg{display:flex;gap:.65rem;max-width:88%}.msg .who{flex:0 0 2rem;height:2rem;border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:700;color:#fff;background:var(--info)}.msg .bubble{border:1px solid var(--line);border-radius:14px;padding:.65rem .9rem;background:var(--panel-2)}.msg .bubble .content{white-space:pre-wrap;word-break:break-word}.origin{color:var(--run);font-weight:700}.role-tag{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:.25rem;font-weight:600;font-family:var(--mono);color:var(--faint)}.msg.user{flex-direction:row-reverse;margin-left:auto}.msg.user .who{background:linear-gradient(150deg,var(--accent-bg),color-mix(in srgb,var(--accent-bg) 70%,#000));color:var(--accent-fg)}.msg.user .bubble{background:var(--accent-weak);border-color:color-mix(in srgb,var(--accent-bg) 30%,transparent)}.msg.system .who{background:var(--faint)}.toolcard{border:1px solid var(--line);border-left:3px solid var(--run);border-radius:10px;background:var(--panel-2);padding:.6rem .8rem;margin:.1rem 0}.toolcard.result{border-left-color:var(--ok)}.toolcard.skill{border-left-color:var(--accent-bg)}.toolcard.muted-card{border-left-color:var(--faint)}.toolcard.guardrail{border-left-color:var(--err);background:color-mix(in srgb,var(--err) 8%,var(--panel-2))}.toolcard.thinking{border-left-color:var(--faint)}.toolcard.thinking>pre,.toolcard.thinking>summary strong{color:var(--dim);font-style:italic}.msg.assistant .bubble.draft{border-style:dashed;background:transparent}.msg.assistant .bubble.draft .content{color:var(--dim);font-style:italic}.toolcard .h{display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.82rem}.toolcard .h .arrow{color:var(--dim)}.toolcard pre,pre{background:var(--panel-3);border:1px solid var(--line);border-radius:8px;padding:.65rem .75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.8rem;margin:.45rem 0 0;line-height:1.5}.usage-chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;border:1px solid var(--line);border-radius:999px;padding:.2rem .6rem;margin:.25rem 0;white-space:nowrap}.copy-btn,.usage-chip{font-family:var(--mono);color:var(--dim);background:var(--panel-2)}.copy-btn{font-size:.66rem;font-weight:600;line-height:1;padding:.25rem .45rem;border-radius:6px;border:1px solid var(--line);cursor:pointer}.copy-btn:hover{color:var(--fg);background:var(--panel-3)}.copy-btn.copied{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.copy-id{display:inline-flex;align-items:baseline;gap:.5rem}.copy-id .copy-btn{align-self:center}.copywrap{position:relative}.copywrap>.copy-btn{position:absolute;top:.4rem;right:.4rem;z-index:1;opacity:0;transition:opacity .12s}.copywrap:hover>.copy-btn,.copywrap>.copy-btn.copied,.copywrap>.copy-btn:focus-visible{opacity:1}.copywrap>pre{padding-right:3.2rem}details.toolcard{padding:0}details.toolcard>summary{cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;list-style:none;font-family:var(--mono);font-size:.82rem}details.toolcard>summary::-webkit-details-marker{display:none}details.toolcard>summary:after{content:"▸";margin-left:auto;color:var(--faint);transition:transform .15s}details.toolcard[open]>summary:after{transform:rotate(90deg)}details.toolcard>summary .arrow{color:var(--dim)}details.toolcard>.copywrap,details.toolcard>pre{margin:0 .8rem .7rem}.toolcard .badge{font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.1rem .4rem;border-radius:5px}.toolcard .badge.ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.toolcard .badge.err{background:color-mix(in srgb,var(--err) 18%,transparent);color:var(--err)}.stamp{font-family:var(--mono);font-size:.68rem;color:var(--faint);font-weight:400;letter-spacing:0;text-transform:none}.content.md{white-space:normal}.content.md>:first-child{margin-top:0}.content.md>:last-child{margin-bottom:0}.content.md p{margin:.5rem 0}.content.md ol,.content.md ul{margin:.5rem 0;padding-left:1.3rem}.content.md pre{margin:.5rem 0}.content.md code{font-family:var(--mono);font-size:.85em}.content.md h1,.content.md h2,.content.md h3,.content.md h4{margin:.7rem 0 .35rem;line-height:1.25}.content.md blockquote{margin:.5rem 0;padding-left:.75rem;border-left:3px solid var(--line);color:var(--dim)}.tooltrace{position:relative}.tooltrace .trace-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1rem}.tooltrace .trace-head h2{font-size:1rem;font-weight:640;margin:0}.trace-turn{position:relative;padding-left:1.5rem;margin:0 0 .4rem}.trace-turn:before{content:"";position:absolute;left:.32rem;top:1.4rem;bottom:-.4rem;width:2px;background:var(--line)}.trace-turn:last-child:before{display:none}.trace-turn .turn-label{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:.35rem}.trace-item{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);margin:.4rem 0;overflow:hidden}.trace-item:before{content:"";position:absolute;left:-1.18rem;top:.85rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--panel);border:2px solid var(--ok);box-shadow:0 0 0 3px var(--panel)}.trace-item.err:before{border-color:var(--err)}.trace-item>summary{cursor:pointer;display:flex;gap:.6rem;align-items:center;padding:.6rem .8rem;list-style:none}.trace-item>summary::-webkit-details-marker{display:none}.trace-item>summary:after{content:"▸";margin-left:auto;color:var(--faint);transition:transform .15s}.trace-item[open]>summary:after{transform:rotate(90deg)}.trace-item[open]>summary{border-bottom:1px solid var(--line)}.trace-item .badge{font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.12rem .45rem;border-radius:5px}.trace-item.ok .badge{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.trace-item.err .badge{background:color-mix(in srgb,var(--err) 18%,transparent);color:var(--err)}.trace-item summary strong{font-family:var(--mono);font-size:.86rem}.trace-item .lat{font-family:var(--mono);font-size:.74rem;color:var(--dim)}.trace-item .at{font-size:.74rem;color:var(--faint)}.trace-item .kv{padding:.2rem .8rem}.trace-item .kv:first-of-type{padding-top:.6rem}.trace-item .kv:last-of-type{padding-bottom:.8rem}.trace-item .kv>span{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.tooltrace pre{max-height:20rem;overflow:auto}.filter-bar{display:flex;align-items:center;gap:.75rem;margin:0 0 1.1rem}input[type=search].filter-input{display:block;flex:1;margin:0;font:inherit;font-size:.88rem;padding:.5rem .8rem .5rem 2.1rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel-2) no-repeat .7rem 50%;color:var(--fg);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='none' stroke='%238b93a3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}input[type=search].filter-input:focus{outline:none;border-color:var(--accent-bg);box-shadow:0 0 0 3px var(--ring)}input[type=search].filter-input::-webkit-search-cancel-button{-webkit-appearance:none}.filter-count{flex:0 0 auto;font-size:.78rem}[data-list-filter-target=item][hidden]{display:none}fieldset.subgroup{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.4rem 1rem 1rem;margin:1.1rem 0 .3rem;background:var(--panel-2)}fieldset.subgroup legend{padding:0 .5rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:600;font-family:var(--mono)}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 1.25rem}details.pin{margin:.6rem 0 0}details.pin>summary{cursor:pointer;font-size:.82rem;color:var(--dim)}details.pin>summary:hover{color:var(--fg)}details.pin .row{margin-top:.5rem}.count-badge{font-size:.74rem;font-weight:600;color:var(--dim);padding:.16rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);white-space:nowrap}.switch{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;margin:0;font-weight:500;color:var(--fg);font-size:.86rem}.switch input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.switch-track{position:relative;width:2.2rem;height:1.25rem;border-radius:999px;background:var(--line-strong);transition:background .14s;flex:0 0 auto}.switch-track:after{content:"";position:absolute;top:.15rem;left:.15rem;width:.95rem;height:.95rem;border-radius:50%;background:var(--panel);box-shadow:var(--shadow);transition:transform .14s}.switch input:checked+.switch-track{background:var(--accent-bg)}.switch input:checked+.switch-track:after{transform:translateX(.95rem)}.switch input:focus-visible+.switch-track{box-shadow:0 0 0 3px var(--ring)}.tool-grid.is-open{opacity:.45}label.check.tool-check.locked{color:var(--faint);cursor:not-allowed}label.check.tool-check.locked input{accent-color:var(--faint)}.pill.locked{color:var(--err);background:color-mix(in srgb,var(--err) 12%,transparent);border-color:color-mix(in srgb,var(--err) 26%,transparent)}.pill.locked:before{display:none}.editor-toolbar{display:flex;justify-content:flex-end;margin-bottom:.4rem}.editor-toggle{font-size:.78rem;padding:.3rem .8rem}.editor-toggle.is-active{border-color:var(--accent-bg);color:var(--accent)}.markdown-preview{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);padding:.9rem 1.1rem;max-height:60vh;overflow:auto}.markdown-preview>:first-child{margin-top:0}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3,.markdown-preview h4,.markdown-preview h5,.markdown-preview h6{font-weight:650;letter-spacing:-.01em;margin:1.1rem 0 .5rem;line-height:1.3}.markdown-preview h1{font-size:1.5rem}.markdown-preview h2{font-size:1.25rem}.markdown-preview h3{font-size:1.08rem}.markdown-preview p{margin:.6rem 0}.markdown-preview ol,.markdown-preview ul{margin:.6rem 0;padding-left:1.4rem}.markdown-preview li{margin:.2rem 0}.markdown-preview code{background:var(--panel-3);padding:.1rem .35rem;border-radius:5px}.markdown-preview pre{margin:.6rem 0}.markdown-preview pre code{background:none;padding:0}.markdown-preview blockquote{margin:.6rem 0;padding:.2rem 0 .2rem 1rem;border-left:3px solid var(--accent-bg);color:var(--dim)}.markdown-preview hr{border:0;border-top:1px solid var(--line);margin:1.1rem 0}.markdown-preview a{color:var(--accent)}@media (max-width:880px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;border-right:0;border-bottom:1px solid var(--line);padding:.6rem 1rem}.brand{padding:0}.brand,.nav-group{margin:0}.nav-label{display:none}.nav{flex-direction:row;flex-wrap:wrap;gap:.15rem}.nav a span.lbl,.nav a[aria-current=page]:before{display:none}.nav a{padding:.5rem}.sidebar-foot{margin:0 0 0 auto;padding:0;flex-direction:row;align-items:center}.health-card{display:none}.banner,.flash{margin:1rem 1.25rem 0}.page{padding:1.5rem 1.25rem 4rem}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.relative{position:relative}.block{display:block}.inline{display:inline}.grid{display:grid}.hidden{display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--ink:#f6f7f9;--panel:#fff;--surface-1:#f1f2f6;--surface-2:#e9ebf0;--surface-3:#dfe2e9;--line-1:#e7e9ee;--line-2:#d6d9e1;--line-3:#c1c5d0;--fg:#181a21;--dim:#565c69;--faint:#8b91a0;--accent:#8a5f00;--accent-fg:#2b1d00;--accent-bg:#e8a92a;--accent-weak:rgba(232,169,42,.16);--ring:rgba(232,169,42,.38);--ok:#157347;--warn:#b45309;--err:#c62f2f;--info:#2563eb;--diff-del:#b4232b;--diff-ins:#1a7f45;--av-1-bg:#d9e3ff;--av-1-fg:#2349b8;--av-2-bg:#d3f0e0;--av-2-fg:#14663c;--av-3-bg:#e6dffb;--av-3-fg:#5b3dc4;--av-4-bg:#fbe0ec;--av-4-fg:#b0316f;--av-5-bg:#ffe3cd;--av-5-fg:#a34a0e;--av-6-bg:#cdeeec;--av-6-fg:#0f6e6a;--av-7-bg:#fbdcd9;--av-7-fg:#b03128;--av-8-bg:#dde4f7;--av-8-fg:#36409c;--av-9-bg:#e3f3c9;--av-9-fg:#4f6d10;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--radius:8px;--radius-sm:6px;--radius-lg:12px;--radius-xl:16px;--shadow:0 1px 2px rgba(16,20,40,.05),0 1px 3px rgba(16,20,40,.04);--shadow-lg:0 12px 32px rgba(16,20,40,.1);--t-fast:.12s ease;--t:.18s ease;--sidebar-w:240px;--text-xs:.75rem;--text-sm:.8125rem;--text:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.75rem;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ink:#0e0f13;--panel:#15161b;--surface-1:#1a1c22;--surface-2:#21242c;--surface-3:#2a2d37;--line-1:#23252d;--line-2:#2e313b;--line-3:#3d414e;--fg:#e8eaef;--dim:#9aa1af;--faint:#6e7584;--accent:#f0be4d;--accent-fg:#171207;--accent-bg:#e8b23a;--accent-weak:rgba(232,178,58,.13);--ring:rgba(232,178,58,.42);--ok:#3fb950;--warn:#e3a008;--err:#f4685c;--info:#5b9bff;--diff-del:#ff8a8a;--diff-ins:#6ee7a8;--av-1-bg:#2c3f7a;--av-1-fg:#aec3ff;--av-2-bg:#1f5c3f;--av-2-fg:#7fe3ab;--av-3-bg:#3f2f7a;--av-3-fg:#c9b8ff;--av-4-bg:#6e2a52;--av-4-fg:#ffb3d4;--av-5-bg:#7a4218;--av-5-fg:#ffc290;--av-6-bg:#1d5c58;--av-6-fg:#86e2dc;--av-7-bg:#6e2f2a;--av-7-fg:#ffaca3;--av-8-bg:#333a77;--av-8-fg:#b9c3fa;--av-9-bg:#485f14;--av-9-fg:#c8ea7e;--shadow:0 1px 2px rgba(0,0,0,.45),0 2px 10px rgba(0,0,0,.25);--shadow-lg:0 16px 40px rgba(0,0,0,.5);color-scheme:dark}}:root[data-theme=light]{--ink:#f6f7f9;--panel:#fff;--surface-1:#f1f2f6;--surface-2:#e9ebf0;--surface-3:#dfe2e9;--line-1:#e7e9ee;--line-2:#d6d9e1;--line-3:#c1c5d0;--fg:#181a21;--dim:#565c69;--faint:#8b91a0;--accent:#8a5f00;--accent-fg:#2b1d00;--accent-bg:#e8a92a;--accent-weak:rgba(232,169,42,.16);--ring:rgba(232,169,42,.38);--ok:#157347;--warn:#b45309;--err:#c62f2f;--info:#2563eb;--diff-del:#b4232b;--diff-ins:#1a7f45;--av-1-bg:#d9e3ff;--av-1-fg:#2349b8;--av-2-bg:#d3f0e0;--av-2-fg:#14663c;--av-3-bg:#e6dffb;--av-3-fg:#5b3dc4;--av-4-bg:#fbe0ec;--av-4-fg:#b0316f;--av-5-bg:#ffe3cd;--av-5-fg:#a34a0e;--av-6-bg:#cdeeec;--av-6-fg:#0f6e6a;--av-7-bg:#fbdcd9;--av-7-fg:#b03128;--av-8-bg:#dde4f7;--av-8-fg:#36409c;--av-9-bg:#e3f3c9;--av-9-fg:#4f6d10;--shadow:0 1px 2px rgba(16,20,40,.05),0 1px 3px rgba(16,20,40,.04);--shadow-lg:0 12px 32px rgba(16,20,40,.1);color-scheme:light}:root[data-theme=dark]{--ink:#0e0f13;--panel:#15161b;--surface-1:#1a1c22;--surface-2:#21242c;--surface-3:#2a2d37;--line-1:#23252d;--line-2:#2e313b;--line-3:#3d414e;--fg:#e8eaef;--dim:#9aa1af;--faint:#6e7584;--accent:#f0be4d;--accent-fg:#171207;--accent-bg:#e8b23a;--accent-weak:rgba(232,178,58,.13);--ring:rgba(232,178,58,.42);--ok:#3fb950;--warn:#e3a008;--err:#f4685c;--info:#5b9bff;--diff-del:#ff8a8a;--diff-ins:#6ee7a8;--av-1-bg:#2c3f7a;--av-1-fg:#aec3ff;--av-2-bg:#1f5c3f;--av-2-fg:#7fe3ab;--av-3-bg:#3f2f7a;--av-3-fg:#c9b8ff;--av-4-bg:#6e2a52;--av-4-fg:#ffb3d4;--av-5-bg:#7a4218;--av-5-fg:#ffc290;--av-6-bg:#1d5c58;--av-6-fg:#86e2dc;--av-7-bg:#6e2f2a;--av-7-fg:#ffaca3;--av-8-bg:#333a77;--av-8-fg:#b9c3fa;--av-9-bg:#485f14;--av-9-fg:#c8ea7e;--shadow:0 1px 2px rgba(0,0,0,.45),0 2px 10px rgba(0,0,0,.25);--shadow-lg:0 16px 40px rgba(0,0,0,.5);color-scheme:dark}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);margin:0;color:var(--fg);background:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:var(--text);letter-spacing:-.006em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}.mono,code{font-family:var(--mono);font-size:.9em}::-moz-selection{background:var(--accent-weak)}::selection{background:var(--accent-weak)}hr{border:0;border-top:1px solid var(--line-1);margin:1.25rem 0}*{scrollbar-width:thin;scrollbar-color:var(--line-3) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--line-3);border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-bg);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line-1);gap:.125rem;padding:.75rem .75rem .5rem}.app-main,.sidebar{display:flex;flex-direction:column}.app-main{min-width:0}.brand{display:flex;align-items:center;gap:.55rem;padding:.35rem .5rem .85rem;color:var(--fg);font-weight:600;letter-spacing:-.02em;font-size:var(--text-md)}.brand:hover{text-decoration:none}.brand small{color:var(--faint);font-weight:500;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.brand .dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--accent-bg);box-shadow:0 0 0 3px var(--accent-weak),0 0 10px 0 var(--accent-bg);animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px var(--accent-weak),0 0 8px 0 var(--accent-bg)}50%{box-shadow:0 0 0 4px var(--accent-weak),0 0 14px 1px var(--accent-bg)}}.brand.big{font-size:var(--text-2xl);padding:0;margin-bottom:.5rem}.nav-group{margin-top:.6rem}.nav-label{font-family:var(--mono);font-size:.625rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:0 .5rem .3rem}.nav{flex-direction:column;gap:1px}.nav,.nav a{display:flex}.nav a{align-items:center;gap:.55rem;padding:.4rem .5rem;border-radius:var(--radius-sm);color:var(--dim);font-size:var(--text);font-weight:500;transition:background var(--t-fast),color var(--t-fast)}.nav a:hover{color:var(--fg);background:var(--surface-1);text-decoration:none}.nav a svg{width:1rem;height:1rem;flex:0 0 auto;opacity:.85}.nav a[aria-current=page]{color:var(--accent);background:var(--accent-weak);font-weight:600}.nav a[aria-current=page] svg{color:var(--accent-bg);opacity:1}.sidebar-foot{margin-top:auto;padding-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.health-card{border:1px solid var(--line-1);border-radius:var(--radius);background:var(--surface-1);padding:.55rem .7rem}.health-card .row{display:flex;align-items:center;gap:.45rem;font-size:var(--text-sm)}.health-card .stat{color:var(--dim);font-size:var(--text-xs);margin-top:.3rem;display:flex;flex-direction:column;gap:.1rem}.health-card .stat-row{display:flex;align-items:baseline;gap:.35rem}.health-card .stat-row b{flex:0 0 auto}.health-card .stat b{color:var(--fg);font-weight:600}.foot-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar-foot .logout{margin:0}.env-chip{display:flex;align-items:center;gap:.6rem;padding:.55rem .5rem 0;border-top:1px solid var(--line-1);margin-top:.125rem}.env-mark{flex:0 0 auto;width:1.75rem;height:1.75rem;border-radius:var(--radius-sm);display:grid;place-items:center;font-weight:700;font-size:var(--text-xs);color:var(--accent-fg);text-transform:uppercase;background:var(--accent-bg)}.env-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.env-text b{font-size:var(--text-sm);font-weight:600;color:var(--fg);text-transform:capitalize}.env-text small{font-size:.625rem;color:var(--faint);letter-spacing:.02em}.theme-switch{display:inline-flex;border:1px solid var(--line-1);border-radius:var(--radius-sm);background:var(--surface-1);padding:2px;gap:2px}.theme-opt{font-size:.625rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);background:transparent;border:0;border-radius:4px;box-shadow:none;padding:.18rem .5rem;min-height:1.6rem;transition:color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}.theme-opt:hover{color:var(--fg);background:var(--surface-2);border-color:transparent}.theme-opt.on{color:var(--fg);background:var(--panel);box-shadow:var(--shadow)}.banner,.flash{border-radius:var(--radius);font-size:var(--text-sm);padding:.6rem .9rem;margin:1rem 2.5rem 0;animation:rise .25s ease}@keyframes rise{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.banner form{margin:0}.banner strong{color:var(--fg)}.flash{font-weight:500;display:flex;align-items:center;gap:.5rem}.flash:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor;flex:0 0 auto}.flash.err{color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent);border:1px solid color-mix(in srgb,var(--err) 30%,transparent)}.flash.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,transparent);border:1px solid color-mix(in srgb,var(--ok) 30%,transparent)}.page{width:100%;max-width:1560px;margin:0 auto;padding:1.75rem clamp(1.25rem,3.5vw,3rem) 4rem}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap;margin:-1.75rem clamp(-3rem,-3.5vw,-1.25rem) 1.5rem;padding:1rem clamp(1.25rem,3.5vw,3rem) .875rem;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--ink) 85%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);border-bottom:1px solid var(--line-1)}.page-head>div:first-child{min-width:0}.page-head .head-actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}h1{font-size:var(--text-xl);font-weight:700;letter-spacing:-.015em;margin:.05rem 0;line-height:1.2;text-wrap:balance}h1 .sub{display:block;font-size:var(--text-sm);font-weight:400;letter-spacing:-.004em;margin-top:.3rem}.muted,h1 .sub{color:var(--dim)}.eyebrow{font-family:var(--mono);font-size:.625rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.card{background:var(--panel);border:1px solid var(--line-1);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow)}.card+.card{margin-top:1rem}.agent-grid>.card,.check-grid>.card,.home-grid>.card,.stat-cards>.card{margin-top:0}.btn,button{font:inherit;font-size:var(--text-sm);font-weight:500;cursor:pointer;color:var(--fg);background:var(--surface-1);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:.34rem .8rem;min-height:2rem;display:inline-flex;align-items:center;gap:.4rem;line-height:1.2;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),filter var(--t-fast),box-shadow var(--t-fast)}.btn:hover,button:hover{background:var(--surface-2);border-color:var(--line-3);text-decoration:none}.btn:active,button:active{background:var(--surface-3)}.btn.primary,button.primary{color:var(--accent-fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.15)}.btn.primary,.btn.primary:hover,button.primary,button.primary:hover{background:var(--accent-bg);border-color:color-mix(in srgb,var(--accent-bg) 60%,#000)}.btn.primary:hover,button.primary:hover{filter:brightness(1.06)}.btn.primary:active,button.primary:active{filter:brightness(.96)}.btn.ghost,button.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--dim)}.btn.ghost:hover,button.ghost:hover{background:var(--surface-1);color:var(--fg);border-color:transparent}.btn.danger,button.danger{color:var(--err);background:transparent;border-color:transparent}.btn.danger:hover,button.danger:hover{background:color-mix(in srgb,var(--err) 11%,transparent);color:var(--err);border-color:transparent}.btn.mono{font-family:var(--mono)}.btn.btn-sm,.btn.mono{font-size:var(--text-xs)}.btn.btn-sm{padding:.22rem .55rem;min-height:1.75rem}.btn[disabled],button[aria-disabled=true],button[disabled]{opacity:.55;cursor:not-allowed;filter:none}.btn[disabled]:hover,button[disabled]:hover{background:var(--surface-1);border-color:var(--line-2)}button.ghost[disabled]:hover{background:transparent}label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--dim);margin:.6rem 0 0;letter-spacing:.004em}input[type=number],input[type=password],input[type=text],select,textarea{display:block;width:100%;margin-top:.35rem;font:inherit;font-size:var(--text);padding:.32rem .65rem;font-weight:400;min-height:2rem;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--fg);transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}input[type=number]:hover,input[type=password]:hover,input[type=text]:hover,select:hover,textarea:hover{border-color:var(--line-3)}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--faint)}input::placeholder,textarea::placeholder{color:var(--faint)}textarea{resize:vertical;min-height:5rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-bg);box-shadow:0 0 0 3px var(--ring)}input[readonly]{color:var(--dim);background:var(--panel)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);background-position:calc(100% - 15px) 55%,calc(100% - 10px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:1.9rem}.auth-page{display:grid;place-items:center;min-height:100vh;padding:2rem}.auth-card{width:min(92vw,400px)}.auth-card .lead{margin:.2rem 0 1.1rem}.pill{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-xs);font-weight:500;padding:.12rem .5rem;border-radius:999px;letter-spacing:.01em;white-space:nowrap}.pill:before{content:"";width:.35rem;height:.35rem;border-radius:50%;background:currentColor}.pill.plain:before{display:none}.pill.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 13%,transparent)}.pill.run,.pill.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 13%,transparent)}.pill.err{color:var(--err);background:color-mix(in srgb,var(--err) 12%,transparent)}.pill.info{color:var(--info);background:color-mix(in srgb,var(--info) 12%,transparent)}.pill:not(.ok):not(.warn):not(.run):not(.err):not(.info){color:var(--dim);background:var(--surface-2)}.pill.online:before{animation:pulse-sm 2s ease-in-out infinite}@keyframes pulse-sm{0%,to{opacity:1}50%{opacity:.4}}.empty{color:var(--dim);padding:2.5rem 2rem;text-align:center;border:1px solid var(--line-1);border-radius:var(--radius);background:var(--panel)}.empty.big{padding:5rem 2rem}.empty.big h1{font-size:var(--text-3xl);margin:0;letter-spacing:-.02em;color:var(--faint)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1.25rem}.stat-card{background:var(--panel);border:1px solid var(--line-1);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow)}.stat-num{font-size:var(--text-3xl);font-weight:700;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.stat-label{margin-top:.5rem;font-size:.625rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.home-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:.75rem;align-items:start}@media (max-width:900px){.home-grid{grid-template-columns:1fr}}.home-activity .section-head,.home-recent .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;margin-bottom:.875rem}.home-activity .section-head h2,.home-recent .section-head h2{font-size:var(--text-md);font-weight:600;margin:0}.barchart{display:block;width:100%;height:11rem;overflow:visible}.barchart .bar{fill:var(--accent-bg);transition:fill var(--t-fast),filter var(--t-fast)}.barchart .bar:hover{fill:var(--accent-bg);filter:brightness(1.1)}.barchart .bar-empty{fill:var(--line-2)}.barchart-axis-line{stroke:var(--line-1);stroke-width:1}.barchart-axis{display:flex;justify-content:space-between;margin-top:.35rem;font-family:var(--mono);font-size:.625rem;color:var(--faint)}.barchart-axis .peak{color:var(--dim)}.convo-rail{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.convo-rail a{display:flex;align-items:center;gap:.6rem;padding:.45rem .5rem;border-radius:var(--radius-sm);color:var(--fg);transition:background var(--t-fast)}.convo-rail a:hover{text-decoration:none;background:var(--surface-1)}.convo-rail a:hover .convo-id{color:var(--accent)}.convo-main{min-width:0;display:flex;flex-direction:column;gap:.1rem}.convo-id{font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convo-sub{font-size:var(--text-xs);color:var(--dim)}.agent-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.agent{display:flex;flex-direction:column;gap:.8rem;transition:border-color var(--t),box-shadow var(--t)}.agent:hover{border-color:var(--line-2);box-shadow:var(--shadow-lg)}.agent-head{display:flex;align-items:flex-start;gap:.7rem;color:inherit}a.agent-head:hover{text-decoration:none}a.agent-head:hover .agent-id{color:var(--accent)}.agent-head .avatar{flex:0 0 2.25rem;height:2.25rem;border-radius:var(--radius-sm);display:grid;place-items:center;font-weight:700;font-size:var(--text-sm);color:var(--accent-fg);background:var(--accent-bg)}.agent-head>div{flex:1 1 auto;min-width:0}.agent-head .pill{flex:0 0 auto;align-self:center}.agent-id{font-weight:600;letter-spacing:-.01em;font-size:var(--text-md);overflow-wrap:anywhere}.agent-head .mono{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-meta{display:flex;gap:0;margin:0;border:1px solid var(--line-1);border-radius:var(--radius-sm);overflow:hidden}.agent-meta>div{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .75rem;flex:1;background:var(--surface-1)}.agent-meta>div+div{border-left:1px solid var(--line-1)}.agent-meta dt{font-size:.625rem;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);font-weight:600}.agent-meta dd{margin:0;font-size:var(--text-md);font-weight:600;letter-spacing:-.01em}.agent-actions{margin-top:auto;display:flex;gap:.5rem}.avatar.sm{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:var(--radius-sm);font-size:.7rem;font-weight:700;color:var(--accent-fg);background:var(--accent-bg);vertical-align:middle;margin-right:.45rem}.avatar.avatar-h1{background:var(--av-1-bg);color:var(--av-1-fg)}.avatar.avatar-h2{background:var(--av-2-bg);color:var(--av-2-fg)}.avatar.avatar-h3{background:var(--av-3-bg);color:var(--av-3-fg)}.avatar.avatar-h4{background:var(--av-4-bg);color:var(--av-4-fg)}.avatar.avatar-h5{background:var(--av-5-bg);color:var(--av-5-fg)}.avatar.avatar-h6{background:var(--av-6-bg);color:var(--av-6-fg)}.avatar.avatar-h7{background:var(--av-7-bg);color:var(--av-7-fg)}.avatar.avatar-h8{background:var(--av-8-bg);color:var(--av-8-fg)}.avatar.avatar-h9{background:var(--av-9-bg);color:var(--av-9-fg)}.drill{display:flex;height:calc(100vh - 7rem);min-height:34rem;border:1px solid var(--line-1);border-radius:var(--radius-lg);overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}.drill-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.drill-pane+.drill-pane{border-left:1px solid var(--line-1)}.drill-master{flex:0 0 288px;background:var(--surface-1)}.drill-detail{flex:1 1 auto}.drill-pane-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem 1rem;min-height:3.5rem;border-bottom:1px solid var(--line-1);background:color-mix(in srgb,var(--panel) 65%,var(--surface-1))}.drill-pane-head .title{min-width:0}.drill-pane-head strong{font-size:var(--text);font-weight:600;letter-spacing:-.01em;display:block}.drill-pane-head .crumbs{margin:0 0 .1rem}.drill-pane-head .count{color:var(--faint);font-weight:500;font-size:var(--text-xs)}.drill-pane-body{flex:1 1 auto;overflow-y:auto;min-height:0}.drill-detail .drill-pane-body{padding:1.25rem 1.5rem 2.25rem}.drill-search{flex:0 0 auto;padding:.6rem .7rem;border-bottom:1px solid var(--line-1)}.drill-search .filter-input{margin:0;font-size:var(--text-sm);padding:.36rem .6rem .36rem 1.9rem;min-height:2rem}.drill-list{display:flex;flex-direction:column;gap:2px;padding:.4rem}.drill-item{display:block;padding:.45rem .6rem;border-radius:var(--radius-sm);color:var(--fg);transition:background var(--t-fast)}.drill-item:hover{background:var(--surface-2);text-decoration:none}.drill-item.active{background:var(--accent-weak)}.drill-item-name{font-family:var(--mono);font-size:var(--text-sm);font-weight:600;display:flex;align-items:center;gap:.4rem;min-width:0}.drill-item-name>span.txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-item.active .drill-item-name{color:var(--accent)}.drill-item-sub{font-size:var(--text-xs);color:var(--dim);margin-top:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-item.drill-item-sm{padding:.3rem .6rem}.drill-item .drill-item-name .pill{margin-left:auto}.drill-group-label{font-family:var(--mono);font-size:.625rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);padding:.75rem .6rem .3rem}.matrix-topline{display:flex;align-items:center;gap:.8rem;margin-bottom:.5rem}.matrix-topline .count-badge{font-size:var(--text-xs);font-weight:600;color:var(--dim);padding:.12rem .5rem;border:1px solid var(--line-1);border-radius:999px;background:var(--surface-1);white-space:nowrap}.drill-empty{flex:1;display:grid;place-items:center;text-align:center;padding:2rem;color:var(--dim)}.drill-empty h2{font-size:var(--text-lg);margin:0 0 .4rem;color:var(--fg)}.drill-empty p{max-width:30rem;margin:0 auto}.drill-section{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line-1)}.drill-section-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.6rem}.drill-section-head h3{margin:0;font-size:var(--text-xs);font-family:var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:600}@media (max-width:820px){.drill{flex-direction:column;height:auto}.drill-master{flex:0 0 auto;max-height:18rem}.drill-pane+.drill-pane{border-left:0;border-top:1px solid var(--line-1)}}.crumbs{font-family:var(--mono);font-size:var(--text-xs);margin-bottom:.35rem;display:flex;gap:.4rem;align-items:center}.crumbs,.crumbs a{color:var(--dim)}.crumbs a:hover{color:var(--accent)}.subnav{display:inline-flex;flex-wrap:wrap;gap:2px;margin-bottom:1.25rem;padding:2px;border:1px solid var(--line-1);border-radius:var(--radius-sm);background:var(--surface-1)}.subnav a{font-size:var(--text-sm);font-weight:500;color:var(--dim);padding:.3rem .7rem;border:0;background:transparent;border-radius:var(--radius-sm);transition:background var(--t-fast),color var(--t-fast)}.subnav a:hover{color:var(--fg);background:var(--surface-2);text-decoration:none}.subnav a.on{color:var(--fg);font-weight:600;background:var(--accent-weak)}.section .drill{height:calc(100vh - 19rem);min-height:26rem}.tabs-page .section{margin-bottom:.5rem}.section{margin-bottom:2.5rem;scroll-margin-top:9rem}.section>.card{margin-top:.75rem}.section-head h2{font-size:var(--text-md);font-weight:600;letter-spacing:-.01em;margin:.1rem 0;display:flex;align-items:center;gap:.5rem}.section-head p{margin:.2rem 0 0;font-size:var(--text-sm)}.section h3{font-size:var(--text-xs);margin:.1rem 0 .6rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:600}.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-2,.grid-3{display:grid;gap:0 1.25rem}.grid-3{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}label.check{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--fg);margin:.6rem 0;cursor:pointer;font-size:var(--text)}label.check input{width:auto;margin:0;accent-color:var(--accent-bg)}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.15rem 1rem;margin:.6rem 0}.tool-grid.check-grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:.5rem .55rem;margin:.8rem 0 0}label.check.tool-check{display:flex;align-items:center;gap:.5rem;margin:0;min-width:0;font-size:var(--text-sm);padding:.42rem .6rem;border:1px solid var(--line-1);border-radius:var(--radius-sm);background:var(--surface-1);transition:border-color var(--t-fast),background var(--t-fast)}label.check.tool-check:hover{border-color:var(--line-3)}label.check.tool-check:has(input:checked){border-color:color-mix(in srgb,var(--accent-bg) 42%,var(--line-2));background:var(--accent-weak)}label.check.tool-check>.mono{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}label.check.tool-check .pill{flex:0 0 auto}.tool-check input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 auto;margin:0;position:relative;width:1.75rem;height:1rem;border-radius:999px;background:var(--surface-3);border:0;cursor:pointer;transition:background var(--t)}.tool-check input[type=checkbox]:after{content:"";position:absolute;top:.12rem;left:.12rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--panel);box-shadow:0 1px 2px rgba(0,0,0,.35);transition:transform var(--t)}.tool-check input[type=checkbox]:checked{background:var(--accent-bg)}.tool-check input[type=checkbox]:checked:after{transform:translateX(.75rem)}.tool-check input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.agent-grid.check-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem;margin:.8rem 0 0}.agent-check{display:flex;flex-direction:column;gap:.35rem;min-width:0;padding:.55rem .65rem;border:1px solid var(--line-1);border-radius:var(--radius-sm);background:var(--surface-1);transition:border-color var(--t-fast)}.agent-check:hover{border-color:var(--line-3)}.agent-check-name{display:flex;align-items:center;gap:.5rem;min-width:0}.agent-check-name>.mono{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm)}.agent-check-name .pill{flex:0 0 auto;text-decoration:none}.actions{margin-top:1rem}.actions,.inline-form{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.inline-form{margin-top:.75rem}.inline-form input[type=text]{width:auto;flex:1;min-width:150px;margin-top:0}.promptfile{margin-top:1rem}.promptfile-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.promptfile-head form{margin:0}.versions{margin-top:.75rem;font-size:var(--text-sm)}.versions summary{cursor:pointer;color:var(--dim);font-family:var(--mono);font-size:var(--text-xs)}.versions ul{list-style:none;padding:0;margin:.6rem 0 0;display:flex;flex-direction:column;gap:.35rem}.versions li{display:flex;align-items:center;gap:.6rem}.versions li form{margin:0}.versions-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.versions-list li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--line-1);font-size:var(--text-sm)}.versions-list li:last-child{border-bottom:0}.versions-list li form{margin:0}.newfile{margin-top:1rem}.newfile summary{cursor:pointer;font-weight:600;font-size:var(--text);color:var(--fg)}.newfile>summary::marker{color:var(--accent-bg)}ul.history,ul.kv,ul.notes{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-direction:column}ul.kv li{display:flex;align-items:center;gap:.7rem;padding:.45rem .1rem;border-bottom:1px solid var(--line-1)}ul.kv li:last-child{border-bottom:0}ul.kv .k{flex:0 0 auto;font-weight:600;color:var(--accent)}ul.kv .v{flex:1;word-break:break-word}ul.kv li form{margin:0}ul.notes li{padding:.45rem 0;border-bottom:1px solid var(--line-1);font-size:var(--text)}ul.notes li:last-child{border-bottom:0}.skill-name{font-weight:600;display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:var(--text)}.skill-desc{font-size:var(--text-sm);margin-top:.2rem}.matrix-hint{margin:0 0 1.25rem}.matrix-hint,pre.diff{font-size:var(--text-sm)}pre.diff{font-family:var(--mono);line-height:1.55;margin:.4rem 0 .9rem;padding:.6rem .75rem;border:1px solid var(--line-1);border-radius:var(--radius-sm);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-1)}pre.diff .del{display:block;color:var(--diff-del);text-decoration:line-through;text-decoration-thickness:1px}pre.diff .ins{display:block;color:var(--diff-ins)}ul.history li{display:flex;align-items:center;gap:.75rem;padding:.5rem .35rem;border-bottom:1px solid var(--line-1);font-size:var(--text-sm);border-radius:var(--radius-sm);transition:background var(--t-fast)}ul.history li:last-child{border-bottom:0}ul.history li:hover{background:var(--surface-1)}ul.history .preview{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim)}.chat{height:calc(100vh - 7rem);min-height:34rem;border:1px solid var(--line-1);border-radius:var(--radius-lg);overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}.chat,.chat-form{display:flex;flex-direction:column}.chat-form{flex:1;min-height:0}.chat-head{flex:0 0 auto;gap:.8rem;flex-wrap:wrap;padding:.55rem .9rem;border-bottom:1px solid var(--line-1);background:var(--surface-1)}.chat-field,.chat-head{display:flex;align-items:center}.chat-field{gap:.45rem;margin:0;font-size:var(--text-xs);font-weight:600;color:var(--dim)}.chat-field input,.chat-field select{margin:0;width:auto;font-size:var(--text-sm);padding:.3rem .5rem;min-height:1.9rem}.chat-field input{min-width:15rem}.chat-status{margin-left:auto}.chat-pin{flex:1 0 100%;margin:0}.chat-pin>summary{font-size:var(--text-xs);color:var(--dim);cursor:pointer}.chat-pin .row{display:flex;gap:.8rem;margin-top:.5rem}.chat-pin .row label{flex:1}.chat-thread{flex:1 1 auto;overflow-y:auto;min-height:0;padding:1.5rem 1.25rem}.chat-thread .thread{display:flex;flex-direction:column;gap:1rem}.chat-empty{border:0;background:transparent;padding:3rem 1rem}.chat-composer{flex:0 0 auto;display:flex;gap:.5rem;align-items:flex-end;margin:.875rem 1rem 1rem;padding:.4rem .4rem .4rem .85rem;border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--surface-1);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.chat-composer:focus-within{border-color:var(--accent-bg);box-shadow:0 0 0 3px var(--ring)}.chat-composer textarea{flex:1;margin:0;resize:none;min-height:2.3rem;max-height:12rem;line-height:1.45;background:transparent;padding:.45rem .2rem}.chat-composer textarea,.chat-composer textarea:focus{border:0;box-shadow:none}.chat-composer button.primary{flex:0 0 auto;align-self:stretch;min-height:2.6rem;padding-inline:1.2rem}.transcript{min-height:60vh}.thread{display:flex;flex-direction:column;gap:1rem}.msg{display:flex;gap:.55rem;max-width:85%}.msg .who{flex:0 0 1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;font-size:.66rem;font-weight:700;color:#fff;background:var(--info);margin-top:.15rem}.msg .bubble{border:1px solid var(--line-1);border-radius:var(--radius-lg);padding:.6rem .85rem;background:var(--surface-1);min-width:0}.msg .bubble .content{white-space:pre-wrap;word-break:break-word}.origin{color:var(--warn);font-weight:600}.role-tag{font-size:.625rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.2rem;font-weight:600;font-family:var(--mono);color:var(--faint)}.msg.user{flex-direction:row-reverse;margin-left:auto}.msg.user .who{background:var(--accent-bg);color:var(--accent-fg)}.msg.user .bubble{background:var(--accent-weak);border-color:color-mix(in srgb,var(--accent-bg) 30%,transparent)}.msg.system .who{background:var(--faint)}.toolcard{border:1px solid var(--line-1);border-left:2px solid var(--warn);border-radius:var(--radius);background:var(--surface-1);padding:.55rem .7rem;margin:.15rem 0}.toolcard.result{border-left-color:var(--ok)}.toolcard.skill{border-left-color:var(--accent-bg)}.toolcard.muted-card{border-left-color:var(--line-3)}.toolcard.guardrail{border-left-color:var(--err);background:color-mix(in srgb,var(--err) 7%,var(--surface-1))}.toolcard.thinking{border-left-color:var(--line-3)}.toolcard.thinking>pre,.toolcard.thinking>summary strong{color:var(--dim);font-style:italic}.msg.assistant .bubble.draft{border-style:dashed;background:transparent}.msg.assistant .bubble.draft .content{color:var(--dim);font-style:italic}.toolcard .h{display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:var(--text-xs)}.toolcard .h .arrow{color:var(--dim)}.toolcard pre,pre{background:var(--surface-2);border:1px solid var(--line-1);border-radius:var(--radius-sm);padding:.55rem .65rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.78rem;margin:.4rem 0 0;line-height:1.5}.usage-chip{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-xs);background:var(--surface-1);border:1px solid var(--line-1);border-radius:999px;padding:.15rem .55rem;margin:.2rem 0;white-space:nowrap}.copy-btn,.usage-chip{font-family:var(--mono);color:var(--dim)}.copy-btn{font-size:.625rem;font-weight:600;line-height:1;padding:.25rem .45rem;min-height:0;border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--line-1);cursor:pointer}.copy-btn:hover{color:var(--fg);background:var(--surface-1)}.copy-btn.copied{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.copy-id{display:inline-flex;align-items:baseline;gap:.5rem}.copy-id .copy-btn{align-self:center}.copywrap{position:relative}.copywrap>.copy-btn{position:absolute;top:.35rem;right:.35rem;z-index:1;opacity:0;transition:opacity var(--t-fast)}.copywrap:hover>.copy-btn,.copywrap>.copy-btn.copied,.copywrap>.copy-btn:focus-visible{opacity:1}.copywrap>pre{padding-right:3.2rem}details.toolcard{padding:0}details.toolcard>summary{cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;list-style:none;font-family:var(--mono);font-size:var(--text-xs);transition:background var(--t-fast)}details.toolcard>summary:hover{background:var(--surface-2)}details.toolcard>summary::-webkit-details-marker{display:none}details.toolcard>summary:after{content:"▸";margin-left:auto;color:var(--faint);transition:transform var(--t)}details.toolcard[open]>summary:after{transform:rotate(90deg)}details.toolcard>summary .arrow{color:var(--dim)}details.toolcard>.copywrap,details.toolcard>pre{margin:0 .7rem .6rem}.toolcard .badge{font-family:var(--mono);font-size:.625rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.08rem .4rem;border-radius:4px}.toolcard .badge.ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.toolcard .badge.err{background:color-mix(in srgb,var(--err) 16%,transparent);color:var(--err)}.stamp{font-family:var(--mono);font-size:.625rem;color:var(--faint);font-weight:400;letter-spacing:0;text-transform:none}.content.md{white-space:normal}.content.md>:first-child{margin-top:0}.content.md>:last-child{margin-bottom:0}.content.md p{margin:.5rem 0}.content.md ol,.content.md ul{margin:.5rem 0;padding-left:1.3rem}.content.md pre{margin:.5rem 0}.content.md code{font-family:var(--mono);font-size:.85em}.content.md h1,.content.md h2,.content.md h3,.content.md h4{margin:.7rem 0 .35rem;line-height:1.25}.content.md blockquote{margin:.5rem 0;padding-left:.75rem;border-left:2px solid var(--line-2);color:var(--dim)}.tooltrace{position:relative}.tooltrace .trace-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1rem}.tooltrace .trace-head h2{font-size:var(--text-md);font-weight:600;margin:0}.trace-turn{position:relative;padding-left:1.4rem;margin:0 0 .4rem}.trace-turn:before{content:"";position:absolute;left:.3rem;top:1.4rem;bottom:-.4rem;width:2px;background:var(--line-1)}.trace-turn:last-child:before{display:none}.trace-turn .turn-label{font-family:var(--mono);font-size:.625rem;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:.35rem}.trace-item{position:relative;border:1px solid var(--line-1);border-radius:var(--radius);background:var(--surface-1);margin:.4rem 0;overflow:hidden}.trace-item:before{content:"";position:absolute;left:-1.1rem;top:.8rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--panel);border:2px solid var(--ok);box-shadow:0 0 0 3px var(--panel)}.trace-item.err:before{border-color:var(--err)}.trace-item>summary{cursor:pointer;display:flex;gap:.6rem;align-items:center;padding:.55rem .7rem;list-style:none;transition:background var(--t-fast)}.trace-item>summary:hover{background:var(--surface-2)}.trace-item>summary::-webkit-details-marker{display:none}.trace-item>summary:after{content:"▸";margin-left:auto;color:var(--faint);transition:transform var(--t)}.trace-item[open]>summary:after{transform:rotate(90deg)}.trace-item[open]>summary{border-bottom:1px solid var(--line-1)}.trace-item .badge{font-family:var(--mono);font-size:.625rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.08rem .4rem;border-radius:4px}.trace-item.ok .badge{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.trace-item.err .badge{background:color-mix(in srgb,var(--err) 16%,transparent);color:var(--err)}.trace-item summary strong{font-family:var(--mono);font-size:var(--text-sm)}.trace-item .lat{font-family:var(--mono);font-size:var(--text-xs);color:var(--dim)}.trace-item .at{font-size:var(--text-xs);color:var(--faint)}.trace-item .kv{padding:.2rem .7rem}.trace-item .kv:first-of-type{padding-top:.55rem}.trace-item .kv:last-of-type{padding-bottom:.7rem}.trace-item .kv>span{font-family:var(--mono);font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.tooltrace pre{max-height:20rem;overflow:auto}.filter-bar{display:flex;align-items:center;gap:.7rem;margin:0 0 1rem}input[type=search].filter-input{display:block;flex:1;margin:0;font:inherit;font-size:var(--text-sm);padding:.32rem .8rem .32rem 2rem;min-height:2rem;border:1px solid var(--line-2);border-radius:var(--radius);background-color:var(--surface-1);background-repeat:no-repeat;background-position:.65rem 50%;color:var(--fg);-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='none' stroke='%238b93a3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}input[type=search].filter-input:hover{border-color:var(--line-3)}input[type=search].filter-input:focus{outline:none;border-color:var(--accent-bg);box-shadow:0 0 0 3px var(--ring)}input[type=search].filter-input::-webkit-search-cancel-button{-webkit-appearance:none}.filter-count{flex:0 0 auto;font-size:var(--text-xs)}[data-list-filter-target=item][hidden]{display:none}fieldset.subgroup{border:1px solid var(--line-1);border-radius:var(--radius);padding:.4rem 1rem .9rem;margin:1.1rem 0 .3rem;background:var(--surface-1)}fieldset.subgroup legend{padding:0 .5rem;font-size:.625rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:600;font-family:var(--mono)}details.pin{margin:.6rem 0 0}details.pin>summary{cursor:pointer;font-size:var(--text-sm);color:var(--dim)}details.pin>summary:hover{color:var(--fg)}details.pin .row{margin-top:.5rem}.count-badge{font-size:var(--text-xs);font-weight:600;color:var(--dim);padding:.12rem .5rem;border:1px solid var(--line-1);border-radius:999px;background:var(--surface-1);white-space:nowrap}.switch{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;margin:0;font-weight:500;color:var(--fg);font-size:var(--text-sm)}.switch input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.switch-track{position:relative;width:2rem;height:1.15rem;border-radius:999px;background:var(--surface-3);transition:background var(--t);flex:0 0 auto}.switch-track:after{content:"";position:absolute;top:.13rem;left:.13rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--panel);box-shadow:var(--shadow);transition:transform var(--t)}.switch input:checked+.switch-track{background:var(--accent-bg)}.switch input:checked+.switch-track:after{transform:translateX(.85rem)}.switch input:focus-visible+.switch-track{box-shadow:0 0 0 3px var(--ring)}.tool-grid.is-open{opacity:.45}label.check.tool-check.locked{color:var(--faint);cursor:not-allowed}label.check.tool-check.locked input{accent-color:var(--faint)}.pill.locked{color:var(--err);background:color-mix(in srgb,var(--err) 11%,transparent)}.pill.locked:before{display:none}.editor-toolbar{display:flex;justify-content:flex-end;margin-bottom:.35rem}.editor-toggle{font-size:var(--text-xs);padding:.22rem .65rem}.editor-toggle.is-active{border-color:var(--accent-bg);color:var(--accent)}.markdown-preview{border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--panel);padding:.85rem 1rem;max-height:60vh;overflow:auto}.markdown-preview>:first-child{margin-top:0}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3,.markdown-preview h4,.markdown-preview h5,.markdown-preview h6{font-weight:600;letter-spacing:-.01em;margin:1.1rem 0 .5rem;line-height:1.3}.markdown-preview h1{font-size:var(--text-2xl)}.markdown-preview h2{font-size:var(--text-xl)}.markdown-preview h3{font-size:var(--text-lg)}.markdown-preview p{margin:.6rem 0}.markdown-preview ol,.markdown-preview ul{margin:.6rem 0;padding-left:1.4rem}.markdown-preview li{margin:.2rem 0}.markdown-preview code{background:var(--surface-2);padding:.1rem .35rem;border-radius:4px}.markdown-preview pre{margin:.6rem 0}.markdown-preview pre code{background:none;padding:0}.markdown-preview blockquote{margin:.6rem 0;padding:.2rem 0 .2rem 1rem;border-left:2px solid var(--accent-bg);color:var(--dim)}.markdown-preview hr{border:0;border-top:1px solid var(--line-1);margin:1.1rem 0}.markdown-preview a{color:var(--accent)}@media (max-width:880px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;border-right:0;border-bottom:1px solid var(--line-1);padding:.6rem 1rem}.brand{padding:0}.brand,.nav-group{margin:0}.nav-label{display:none}.nav{flex-direction:row;flex-wrap:wrap;gap:.15rem}.nav a span.lbl{display:none}.nav a{padding:.5rem}.sidebar-foot{margin:0 0 0 auto;padding:0;flex-direction:row;align-items:center}.health-card{display:none}.banner,.flash{margin:1rem 1.25rem 0}.page{padding:1.5rem 1.25rem 4rem}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.relative{position:relative}.block{display:block}.inline{display:inline}.table{display:table}.grid{display:grid}.hidden{display:none}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
|