@edspencer/paddock 0.67.0 → 0.68.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.
Files changed (102) hide show
  1. package/README.md +24 -30
  2. package/package.json +1 -1
  3. package/packages/server/dist/adoptable.d.ts +57 -0
  4. package/packages/server/dist/adoptable.js +26 -3
  5. package/packages/server/dist/agent-errors.js +1 -1
  6. package/packages/server/dist/claude-home.d.ts +4 -4
  7. package/packages/server/dist/claude-home.js +4 -4
  8. package/packages/server/dist/claude-mcp.d.ts +4 -2
  9. package/packages/server/dist/cli/args.d.ts +41 -2
  10. package/packages/server/dist/cli/args.js +119 -17
  11. package/packages/server/dist/cli/paddock.js +87 -96
  12. package/packages/server/dist/cli/service/backend.d.ts +38 -0
  13. package/packages/server/dist/cli/service/backend.js +19 -0
  14. package/packages/server/dist/cli/service/index.d.ts +28 -0
  15. package/packages/server/dist/cli/service/index.js +179 -0
  16. package/packages/server/dist/cli/service/launchd.d.ts +47 -0
  17. package/packages/server/dist/cli/service/launchd.js +206 -0
  18. package/packages/server/dist/cli/service/spec.d.ts +106 -0
  19. package/packages/server/dist/cli/service/spec.js +124 -0
  20. package/packages/server/dist/cli/service/systemd.d.ts +48 -0
  21. package/packages/server/dist/cli/service/systemd.js +155 -0
  22. package/packages/server/dist/discover.d.ts +170 -0
  23. package/packages/server/dist/discover.js +365 -0
  24. package/packages/server/dist/herdctl.d.ts +25 -2
  25. package/packages/server/dist/herdctl.js +30 -1
  26. package/packages/server/dist/routes/discover.d.ts +3 -0
  27. package/packages/server/dist/routes/discover.js +140 -0
  28. package/packages/server/dist/routes.d.ts +1 -0
  29. package/packages/server/dist/routes.js +2 -0
  30. package/packages/server/package.json +1 -1
  31. package/packages/web/dist/assets/Chip-DIdRqcqU.js +2 -0
  32. package/packages/web/dist/assets/DiscoverPage-BmCWnkjN.js +2 -0
  33. package/packages/web/dist/assets/DiscoverView-DwhtBdN2.js +2 -0
  34. package/packages/web/dist/assets/InstanceConfigPage-D01x1BUg.js +2 -0
  35. package/packages/web/dist/assets/{MarkdownRenderer-MaSe5aAI.js → MarkdownRenderer-BCheNET2.js} +11 -11
  36. package/packages/web/dist/assets/{ProjectMenu-DmWpr9od.js → ProjectMenu-BqlUQuxM.js} +1 -1
  37. package/packages/web/dist/assets/{ProjectRedirect-BJeDERUd.js → ProjectRedirect-D8QDxYLG.js} +1 -1
  38. package/packages/web/dist/assets/{ProjectView-Bbecs1u7.js → ProjectView-cevSYdcl.js} +10 -10
  39. package/packages/web/dist/assets/{ProjectsGrid-BE4cAtu5.js → ProjectsGrid-yd18DXdV.js} +1 -1
  40. package/packages/web/dist/assets/RootHome-DZEkOjko.js +2 -0
  41. package/packages/web/dist/assets/{Surfaces-DtSsbnLh.js → Surfaces-DvRztndg.js} +1 -1
  42. package/packages/web/dist/assets/{arc-NLb6J_GZ.js → arc-DFqBni1E.js} +1 -1
  43. package/packages/web/dist/assets/{architectureDiagram-3BPJPVTR-BbiSIctn.js → architectureDiagram-3BPJPVTR-DXFeq3pL.js} +1 -1
  44. package/packages/web/dist/assets/{blockDiagram-GPEHLZMM-Br1sRzRE.js → blockDiagram-GPEHLZMM-DpeYsIwP.js} +1 -1
  45. package/packages/web/dist/assets/{c4Diagram-AAUBKEIU-DUvJurko.js → c4Diagram-AAUBKEIU-Bw5r8wjW.js} +1 -1
  46. package/packages/web/dist/assets/channel-DU94S7yB.js +2 -0
  47. package/packages/web/dist/assets/{chunk-2J33WTMH-Cm_E_LAD.js → chunk-2J33WTMH-B0SAvGOr.js} +1 -1
  48. package/packages/web/dist/assets/{chunk-4BX2VUAB-CK6R2MCN.js → chunk-4BX2VUAB-BaUGs1hD.js} +1 -1
  49. package/packages/web/dist/assets/{chunk-55IACEB6-D7HXvxGy.js → chunk-55IACEB6-BDHRluF5.js} +1 -1
  50. package/packages/web/dist/assets/{chunk-727SXJPM-BLwevzlY.js → chunk-727SXJPM-BX93DBZO.js} +1 -1
  51. package/packages/web/dist/assets/{chunk-AQP2D5EJ-CpLWD5so.js → chunk-AQP2D5EJ-3RiQGxW2.js} +1 -1
  52. package/packages/web/dist/assets/{chunk-FMBD7UC4-BNlt1t19.js → chunk-FMBD7UC4-DMkjv9SP.js} +1 -1
  53. package/packages/web/dist/assets/{chunk-ND2GUHAM-CIt5gAq8.js → chunk-ND2GUHAM-CHiQfq4F.js} +1 -1
  54. package/packages/web/dist/assets/{chunk-QZHKN3VN-B1uwIQ9c.js → chunk-QZHKN3VN-B1wCSHbM.js} +1 -1
  55. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-BcRv1OPp.js +2 -0
  56. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-BcRv1OPp.js +2 -0
  57. package/packages/web/dist/assets/{core-HXUN76Po.js → core-C-49RP59.js} +1 -1
  58. package/packages/web/dist/assets/{cose-bilkent-S5V4N54A-DJ4_5jxB.js → cose-bilkent-S5V4N54A-BIwwgSTZ.js} +1 -1
  59. package/packages/web/dist/assets/{dagre-BM42HDAG-Bc9-haAu.js → dagre-BM42HDAG-BN45kshV.js} +1 -1
  60. package/packages/web/dist/assets/diagram-2AECGRRQ-C5NekbfR.js +44 -0
  61. package/packages/web/dist/assets/diagram-5GNKFQAL-De7wdssd.js +11 -0
  62. package/packages/web/dist/assets/{diagram-KO2AKTUF-C5hcR1vA.js → diagram-KO2AKTUF-CgG0UA0n.js} +3 -3
  63. package/packages/web/dist/assets/{diagram-LMA3HP47-BEFzrSHy.js → diagram-LMA3HP47-DC-bDqxV.js} +1 -1
  64. package/packages/web/dist/assets/{diagram-OG6HWLK6-BY5lPsX7.js → diagram-OG6HWLK6-XXfHDMhE.js} +1 -1
  65. package/packages/web/dist/assets/{erDiagram-TEJ5UH35-y_kB8ETg.js → erDiagram-TEJ5UH35-CHEd8JiS.js} +1 -1
  66. package/packages/web/dist/assets/{flowDiagram-I6XJVG4X-Cuhha5cF.js → flowDiagram-I6XJVG4X-BbuYxd15.js} +1 -1
  67. package/packages/web/dist/assets/{ganttDiagram-6RSMTGT7-DFJpciK5.js → ganttDiagram-6RSMTGT7-BkF77xn5.js} +1 -1
  68. package/packages/web/dist/assets/{gitGraphDiagram-PVQCEYII-FoA0yuh-.js → gitGraphDiagram-PVQCEYII-BdL5zVez.js} +2 -2
  69. package/packages/web/dist/assets/index-C3MdCCzF.js +71 -0
  70. package/packages/web/dist/assets/index-DYccdR9x.css +1 -0
  71. package/packages/web/dist/assets/{infoDiagram-5YYISTIA-CKYqD8-c.js → infoDiagram-5YYISTIA-vhTRATYg.js} +1 -1
  72. package/packages/web/dist/assets/{ishikawaDiagram-YF4QCWOH-CCIxHIBw.js → ishikawaDiagram-YF4QCWOH-CxjN-7YF.js} +2 -2
  73. package/packages/web/dist/assets/{journeyDiagram-JHISSGLW-lGYoSyk0.js → journeyDiagram-JHISSGLW-DJ414TaX.js} +1 -1
  74. package/packages/web/dist/assets/{kanban-definition-UN3LZRKU-B3D7CIwy.js → kanban-definition-UN3LZRKU-gaQeFRvZ.js} +1 -1
  75. package/packages/web/dist/assets/{linear-BiplJBex.js → linear-CcvdFgxd.js} +1 -1
  76. package/packages/web/dist/assets/{mermaid.core-BJ7aEinZ.js → mermaid.core-Es6hedDB.js} +5 -5
  77. package/packages/web/dist/assets/{mindmap-definition-RKZ34NQL-BiXcOtHo.js → mindmap-definition-RKZ34NQL-Dk7qf3FR.js} +1 -1
  78. package/packages/web/dist/assets/{pieDiagram-4H26LBE5-tnkj45YF.js → pieDiagram-4H26LBE5-CSWXwU6d.js} +3 -3
  79. package/packages/web/dist/assets/{quadrantDiagram-W4KKPZXB-LqReq3Gl.js → quadrantDiagram-W4KKPZXB-CBVdURbr.js} +1 -1
  80. package/packages/web/dist/assets/{requirementDiagram-4Y6WPE33-C1uk9Jty.js → requirementDiagram-4Y6WPE33-CbU18IZA.js} +3 -3
  81. package/packages/web/dist/assets/{sankeyDiagram-5OEKKPKP-eQQ3OKrV.js → sankeyDiagram-5OEKKPKP-BeAlNgjE.js} +4 -4
  82. package/packages/web/dist/assets/{sequenceDiagram-3UESZ5HK-C6-a0lH4.js → sequenceDiagram-3UESZ5HK-CKVKzxTs.js} +1 -1
  83. package/packages/web/dist/assets/{stateDiagram-AJRCARHV-CsTOkKqz.js → stateDiagram-AJRCARHV-B-aSaO4W.js} +1 -1
  84. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-TptFh32C.js +2 -0
  85. package/packages/web/dist/assets/{timeline-definition-PNZ67QCA-DUBXH1x-.js → timeline-definition-PNZ67QCA-CP9JHEBr.js} +1 -1
  86. package/packages/web/dist/assets/{vennDiagram-CIIHVFJN-CcQrNnou.js → vennDiagram-CIIHVFJN-Dbtwwvvd.js} +1 -1
  87. package/packages/web/dist/assets/{wardley-L42UT6IY-Br823uUV.js → wardley-L42UT6IY-NonvEhoT.js} +1 -1
  88. package/packages/web/dist/assets/{wardleyDiagram-YWT4CUSO-DRBECQc_.js → wardleyDiagram-YWT4CUSO-CDnpv9Ws.js} +2 -2
  89. package/packages/web/dist/assets/{xychartDiagram-2RQKCTM6--HtSFP24.js → xychartDiagram-2RQKCTM6-C1i-Wk0H.js} +1 -1
  90. package/packages/web/dist/index.html +2 -2
  91. package/packages/web/dist/sw.js +1 -1
  92. package/packages/server/dist/cli/here.d.ts +0 -25
  93. package/packages/server/dist/cli/here.js +0 -104
  94. package/packages/web/dist/assets/InstanceConfigPage-sDbCoFxC.js +0 -2
  95. package/packages/web/dist/assets/channel-bezC0w5b.js +0 -2
  96. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-DMgrTmQU.js +0 -2
  97. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-DMgrTmQU.js +0 -2
  98. package/packages/web/dist/assets/diagram-2AECGRRQ-nLOtPDzu.js +0 -44
  99. package/packages/web/dist/assets/diagram-5GNKFQAL-DThV84R3.js +0 -11
  100. package/packages/web/dist/assets/index-BxLurJvz.css +0 -1
  101. package/packages/web/dist/assets/index-C_PXsGTD.js +0 -71
  102. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-Bsc-VlVI.js +0 -2
@@ -1,104 +0,0 @@
1
- /**
2
- * `--here` support: opening the user's own directory as a Paddock workspace (#640).
3
- *
4
- * ## Why this needs no new concept
5
- *
6
- * A *project* cannot live outside `projectsRoot` — `dirFor` joins the key onto
7
- * the root with no branch, deliberately. But the **root workspace** is a
8
- * different thing: its key is `""`, so `dirFor("")` resolves to `projectsRoot`
9
- * itself, and `projectsRoot` is user-configurable. Pointing
10
- * `PADDOCK_PROJECTS_DIR` at a directory therefore makes that directory the root
11
- * workspace, named after its own basename, with no schema change anywhere.
12
- *
13
- * Session adoption then works by construction: `AdoptableIndex`'s notebook
14
- * branch matches on exact `cwd === project.workingDir` equality, and in this
15
- * mode the workspace's working directory IS the user's cwd.
16
- *
17
- * ## Why the data dir goes inside the directory
18
- *
19
- * `--here` puts state in `<dir>/.paddock` rather than the shared `~/.paddock`.
20
- * Two reasons, and the second is the important one:
21
- *
22
- * 1. **Self-containment.** Opening directory A and later directory B must not
23
- * have them share one job store, herdctl config and sidecar set — that is
24
- * how A's run history leaks into B's UI.
25
- * 2. **It gives us an unambiguous marker.** A second, flagless run in the same
26
- * directory should resume it (the `git` model: `--here` is `git init`,
27
- * `.paddock/` is `.git`). Keying that off `project.yaml` would be ambiguous
28
- * — that filename already exists in the wild, including in every project
29
- * directory of the `edspencer/projects` notes repo — whereas `.paddock/` is
30
- * ours and its presence means exactly one thing.
31
- */
32
- import fs from "node:fs";
33
- import path from "node:path";
34
- import { encodePathForCli } from "@herdctl/core";
35
- import { MIN_TRANSCRIPT_BYTES } from "../adoptable.js";
36
- /** Directory name that both stores `--here` state and marks the workspace. */
37
- export const HERE_MARKER = ".paddock";
38
- /** Has this directory been opened with `--here` before? */
39
- export function isHereWorkspace(dir) {
40
- try {
41
- return fs.statSync(path.join(dir, HERE_MARKER)).isDirectory();
42
- }
43
- catch {
44
- return false;
45
- }
46
- }
47
- /**
48
- * How many of `dir`'s existing Claude Code sessions are worth offering.
49
- *
50
- * **`encodePathForCli`, not `transcripts.ts`'s `encodeProjectDir`.** The latter
51
- * omits Claude Code's truncate-and-hash branch for paths over 200 characters,
52
- * on the explicit assumption that "paddock's project dirs are always short".
53
- * An arbitrary user directory is exactly where that assumption fails.
54
- *
55
- * `MIN_TRANSCRIPT_BYTES` is shared with `AdoptableIndex` so the number quoted
56
- * here matches what the UI will actually offer to import — a count that
57
- * disagreed with the import screen would be worse than no count.
58
- */
59
- export function countClaudeSessions(claudeHome, dir) {
60
- const folder = path.join(claudeHome, "projects", encodePathForCli(dir));
61
- let entries;
62
- try {
63
- entries = fs.readdirSync(folder);
64
- }
65
- catch {
66
- return 0;
67
- }
68
- let n = 0;
69
- for (const entry of entries) {
70
- if (!entry.endsWith(".jsonl"))
71
- continue;
72
- try {
73
- if (fs.statSync(path.join(folder, entry)).size >= MIN_TRANSCRIPT_BYTES)
74
- n++;
75
- }
76
- catch {
77
- /* raced or unreadable — not offerable either way */
78
- }
79
- }
80
- return n;
81
- }
82
- /**
83
- * Add `entry` to `dir`'s `.gitignore` if no equivalent line is already there.
84
- *
85
- * Mirrors `ProjectStore.ensureRootGitignore`: read, tolerate the equivalent
86
- * forms, append rather than overwrite. `--here` runs inside somebody's real
87
- * repository, so clobbering their `.gitignore` is not an option.
88
- */
89
- export function ensureGitignored(dir, entry) {
90
- const file = path.join(dir, ".gitignore");
91
- let existing = "";
92
- try {
93
- existing = fs.readFileSync(file, "utf8");
94
- }
95
- catch {
96
- /* no .gitignore yet */
97
- }
98
- const bare = entry.replace(/^\/|\/$/g, "");
99
- const have = new Set(existing.split("\n").map((l) => l.trim()));
100
- if (have.has(`/${bare}/`) || have.has(`${bare}/`) || have.has(bare))
101
- return;
102
- const body = existing && !existing.endsWith("\n") ? `${existing}\n` : existing;
103
- fs.writeFileSync(file, `${body}${entry}\n`, "utf8");
104
- }
@@ -1,2 +0,0 @@
1
- import{j as e,l as f,r as c,q as Z,s as ee,t as te,v as ve,w as ie,x as le,y as ye,z as we,D as oe,E as Ne,F as ke,b as F,A as ce,G as Ce,X as Se,H as Ae,I as Ee,J as Re,K as $e,O as Me}from"./index-C_PXsGTD.js";import{B as R,S as ne}from"./Surfaces-DtSsbnLh.js";const K=["w-full rounded-lg border border-edge-strong bg-surface-sunken px-3 py-2 text-sm text-fg","outline-none motion-fast transition-[border-color,box-shadow]","focus:border-accent focus:ring-2 focus:ring-accent/25","disabled:cursor-not-allowed disabled:opacity-60","aria-[invalid=true]:border-danger aria-[invalid=true]:focus:ring-danger/25"].join(" ");function B({className:t,...n}){return e.jsx("input",{className:f(K,t),...n})}function Oe({className:t,...n}){return e.jsx("textarea",{className:f(K,"resize-y",t),...n})}function Ie({className:t,...n}){return e.jsx("select",{className:f(K,t),...n})}function Pe({checked:t,onChange:n,label:s,disabled:l,id:r,className:a}){const x=c.useId(),m=r??x;return e.jsxs("label",{htmlFor:m,className:f("relative inline-block shrink-0 cursor-pointer",a),children:[e.jsx("input",{id:m,type:"checkbox","aria-label":s,className:"peer sr-only",checked:t,disabled:l,onChange:g=>n(g.target.checked)}),e.jsx("span",{className:f("block h-[18px] w-8 rounded-full bg-edge-strong","motion-fast transition-colors","after:absolute after:left-0.5 after:top-0.5 after:h-3.5 after:w-3.5 after:rounded-full","after:bg-surface-raised after:shadow-2xs after:transition-transform after:content-['']","peer-checked:bg-accent-solid peer-checked:after:translate-x-3.5","peer-focus-visible:ring-2 peer-focus-visible:ring-accent/50","peer-disabled:opacity-50")})]})}const de={neutral:"bg-surface-active text-fg-muted",accent:"bg-accent-soft text-accent",success:"bg-success-soft text-success",warn:"bg-warn-soft text-warn",danger:"bg-danger-soft text-danger",info:"bg-info-soft text-info",lineage:"bg-lineage-soft text-lineage"},ue={neutral:"bg-fg-subtle",accent:"bg-accent-solid",success:"bg-success-solid",warn:"bg-warn-solid",danger:"bg-danger-solid",info:"bg-info-solid",lineage:"bg-lineage-solid"};function xe({tone:t="neutral",shape:n="tag",size:s="md",dot:l=!1,icon:r,title:a,className:x,children:m}){return e.jsxs("span",{title:a,className:f("inline-flex items-center gap-1 font-medium leading-none",n==="pill"?"rounded-full px-2 py-0.5":"rounded-md px-1.5 py-0.5",s==="sm"?"text-3xs":"text-2xs",de[t],x),children:[l&&e.jsx("span",{className:f("h-1.5 w-1.5 shrink-0 rounded-full",ue[t])}),r,m]})}function L({tone:t="neutral",pulse:n=!1,className:s}){return e.jsx("span",{className:f("inline-block h-2 w-2 shrink-0 rounded-full",ue[t],n&&"animate-pulse",s)})}function Te({tone:t="info",icon:n,className:s,children:l}){const r={neutral:"border-edge",accent:"border-accent-edge",success:"border-success-edge",warn:"border-warn-edge",danger:"border-danger-edge",info:"border-info-edge",lineage:"border-lineage-edge"};return e.jsxs("div",{role:t==="danger"?"alert":void 0,className:f("flex items-start gap-2 rounded-lg border px-3 py-2 text-sm",de[t],r[t],s),children:[n&&e.jsx("span",{className:"mt-0.5 shrink-0",children:n}),e.jsx("div",{className:"min-w-0",children:l})]})}const Fe=Array.from({length:72},(t,n)=>n*5),S=[...le].sort((t,n)=>t.hue-n.hue),z=(t,n)=>Math.min(Math.abs(t-n),360-Math.abs(t-n));function se(t){const n=S.reduce((r,a)=>z(a.hue,t)<z(r.hue,t)?a:r);if(z(n.hue,t)<=8)return n.name;const s=S.find(r=>r.hue>t)??S[0];return`between ${S[(S.indexOf(s)-1+S.length)%S.length].name} and ${s.name}`}function Le({theme:t,dark:n,hue:s,className:l}){const r=c.useRef(null);return c.useLayoutEffect(()=>{const a=r.current;a&&(s===null?we(a):oe(s,a))},[t,n,s]),e.jsx("div",{ref:r,"data-theme":t,className:f("overflow-hidden rounded-lg border border-edge",n&&"dark",l),children:e.jsxs("div",{className:"flex h-full items-center gap-2 bg-surface p-2",children:[e.jsxs("div",{className:"flex-1 rounded-md border border-edge-subtle bg-surface-raised p-1.5",children:[e.jsx("div",{className:"h-1 w-4/5 rounded-full bg-fg"}),e.jsx("div",{className:"mt-1 h-1 w-3/5 rounded-full bg-fg-subtle"})]}),e.jsx("div",{className:"grid h-6 w-6 shrink-0 place-items-center rounded-md bg-accent-solid",children:e.jsx("div",{className:"h-1 w-3 rounded-full bg-accent-fg"})})]})})}function De({hexes:t,hue:n,active:s,onCommit:l}){const r=c.useRef(null),a=c.useRef(null),x=c.useRef(null),m=c.useRef(0),g=c.useRef(null),p=c.useRef(!1),j=c.useRef(null),u=c.useMemo(()=>{if(t.length===0)return;const d=t.map((b,y)=>`${b} ${(y/t.length*100).toFixed(2)}%`);return d.push(`${t[0]} 100%`),`linear-gradient(to right, ${d.join(", ")})`},[t]),h=c.useCallback(d=>{a.current&&(a.current.style.left=`${d/360*100}%`),x.current&&(x.current.textContent=se(d))},[]);c.useEffect(()=>{p.current||h(n)},[n,h]);const N=d=>{var $;const b=($=r.current)==null?void 0:$.getBoundingClientRect();if(!b||b.width===0)return 0;const y=Math.min(1,Math.max(0,(d-b.left)/b.width));return Math.round(y*360)%360},w=c.useCallback(d=>{g.current=d,!m.current&&(m.current=requestAnimationFrame(()=>{m.current=0;const b=g.current;g.current=null,b!==null&&(h(b),oe(b,document.documentElement,{context:j.current??void 0,live:!0}))}))},[h]);c.useEffect(()=>()=>cancelAnimationFrame(m.current),[]);const P=d=>{p.current=!1,j.current=null,cancelAnimationFrame(m.current),m.current=0,g.current=null,l(d)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mt-2 flex items-baseline justify-between gap-2",children:[e.jsx("span",{className:"text-3xs text-fg-subtle",children:"Drag along the strip"}),e.jsx("span",{ref:x,className:"text-3xs font-medium text-fg-muted","aria-hidden":!0})]}),e.jsx("div",{ref:r,role:"slider",tabIndex:0,"aria-label":"Accent colour","aria-valuemin":0,"aria-valuemax":359,"aria-valuenow":n,"aria-valuetext":s?se(n):"the theme’s own colour",onPointerDown:d=>{d.currentTarget.setPointerCapture(d.pointerId),p.current=!0,j.current=Ne(),w(N(d.clientX))},onPointerMove:d=>{p.current&&w(N(d.clientX))},onPointerUp:d=>{p.current&&P(N(d.clientX))},onPointerCancel:()=>{p.current&&P(n)},onKeyDown:d=>{const b=d.key==="PageUp"||d.key==="PageDown"?15:d.shiftKey?10:2;let y=null;d.key==="ArrowLeft"||d.key==="ArrowDown"||d.key==="PageDown"?y=(n-b+360)%360:d.key==="ArrowRight"||d.key==="ArrowUp"||d.key==="PageUp"?y=(n+b)%360:d.key==="Home"?y=0:d.key==="End"&&(y=359),y!==null&&(d.preventDefault(),l(y))},style:{backgroundImage:u,touchAction:"none"},className:f("relative mt-1 h-8 cursor-pointer rounded-lg border border-edge shadow-xs select-none","focus-visible:focus-ring"),children:e.jsx("div",{ref:a,"aria-hidden":!0,style:{left:`${n/360*100}%`},className:f("pointer-events-none absolute top-1/2 h-[calc(100%+6px)] w-1.5 -translate-x-1/2 -translate-y-1/2 rounded-full","border border-fg bg-surface-raised shadow-sm",!s&&"opacity-0")})})]})}function Ve({className:t}){const[n,s]=c.useState(Z),[l,r]=c.useState(null),a=typeof document<"u"&&document.documentElement.classList.contains("dark"),x=c.useRef(n),m=c.useCallback(u=>{const h={...x.current,...u};x.current=h,s(h),r(ee(h))},[]);c.useEffect(()=>{const u=h=>r(h.detail);return window.addEventListener(te,u),r(ee(Z())),()=>window.removeEventListener(te,u)},[]);const g=c.useMemo(()=>ve(Fe),[n.theme,a,l==null?void 0:l.mode]),p=(l==null?void 0:l.hue)??0,j=n.hue!==null;return e.jsxs("div",{className:f("space-y-5",t),children:[e.jsxs("fieldset",{children:[e.jsx("legend",{className:"text-2xs font-semibold uppercase tracking-wide text-fg-muted",children:"Theme"}),e.jsx("div",{className:f("mt-2 grid gap-2","grid-cols-2 sm:grid-cols-4"),children:ie.map(u=>{const h=n.theme===u.id;return e.jsxs("button",{type:"button","aria-pressed":h,title:`${u.label} — ${u.blurb}`,onClick:()=>m({theme:u.id}),className:f("motion-fast rounded-xl border text-left transition-[border-color,box-shadow]","focus-visible:focus-ring","p-1.5",h?"border-accent-edge bg-accent-soft shadow-xs":"border-edge bg-surface-raised hover:border-edge-strong"),children:[e.jsx(Le,{theme:u.id,dark:a,hue:n.hue,className:"h-10"}),e.jsxs("div",{className:"mt-1.5 min-w-0 px-0.5 pb-0.5",children:[e.jsx("span",{className:"block truncate text-xs font-semibold text-fg",children:u.label}),e.jsx("span",{className:"mt-0.5 line-clamp-2 text-3xs leading-snug text-fg-muted",children:u.blurb})]})]},u.id)})})]}),e.jsxs("div",{className:f("grid gap-5 lg:grid-cols-[minmax(0,1fr)_15rem] lg:items-start"),children:[e.jsxs("fieldset",{children:[e.jsx("legend",{className:"text-2xs font-semibold uppercase tracking-wide text-fg-muted",children:"Accent colour"}),e.jsx("p",{className:"mt-1 text-3xs leading-snug text-fg-subtle",children:"Pick any colour. The theme adjusts it so buttons and labels stay readable in both light and dark."}),e.jsx(De,{hexes:g,hue:p,active:j,onCommit:u=>m({hue:u})}),e.jsxs("div",{className:"mt-2 flex flex-wrap gap-1",children:[e.jsx("button",{type:"button",onClick:()=>m({hue:null}),"aria-pressed":!j,className:f("motion-fast rounded-md border px-2 py-1 text-3xs transition-colors","focus-visible:focus-ring",j?"border-edge text-fg-muted hover:border-edge-strong hover:text-fg":"border-accent-edge bg-accent-soft text-accent"),children:"Theme’s own"}),le.map(u=>{const h=j&&Math.abs(p-u.hue)<2.5;return e.jsxs("button",{type:"button","aria-pressed":h,onClick:()=>m({hue:u.hue}),className:f("motion-fast inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-3xs transition-colors","focus-visible:focus-ring",h?"border-edge-strong bg-surface-active text-fg":"border-edge text-fg-muted hover:border-edge-strong hover:text-fg"),children:[e.jsx("span",{"aria-hidden":!0,className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:g[Math.round(u.hue/5)%g.length]}}),u.name]},u.name)})]})]}),e.jsxs("fieldset",{children:[e.jsx("legend",{className:"text-2xs font-semibold uppercase tracking-wide text-fg-muted",children:"Tint the background"}),e.jsx("p",{className:"mt-1 text-3xs leading-snug text-fg-subtle",children:"Colours the whole page a little, not just the buttons. Useful for telling two Paddock instances apart at a glance."}),e.jsx("div",{className:"mt-2 inline-flex rounded-lg border border-edge p-0.5",children:ye.map(u=>e.jsx("button",{type:"button","aria-pressed":n.tint===u.level,onClick:()=>m({tint:u.level}),className:f("motion-fast rounded-md px-2.5 py-1 text-3xs transition-colors","focus-visible:focus-ring",n.tint===u.level?"bg-surface-active font-medium text-fg":"text-fg-muted hover:text-fg"),children:u.label},u.level))})]})]}),e.jsx(Be,{})]})}function Be(){return e.jsxs("div",{children:[e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-wide text-fg-muted",children:"Preview"}),e.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 rounded-xl border border-edge bg-surface p-3",children:[e.jsx(R,{variant:"primary",size:"sm",children:"Send"}),e.jsx(R,{variant:"ghost",size:"sm",children:"Cancel"}),e.jsx(R,{variant:"link",size:"sm",children:"A link"}),e.jsx("span",{className:"inline-flex items-center gap-1 rounded-md border border-accent-edge bg-accent-soft px-1.5 py-0.5 text-2xs font-medium text-accent",children:"accent chip"}),e.jsx(xe,{tone:"accent",shape:"pill",dot:!0,children:"running"}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-2xs text-fg-subtle",children:[e.jsx("span",{className:"h-4 w-4 rounded-md border border-edge bg-accent-solid-hover","aria-hidden":!0}),"hovered"]}),e.jsxs("span",{className:"ml-auto inline-flex items-center gap-1.5",children:[e.jsx(L,{tone:"success"}),e.jsx(L,{tone:"warn"}),e.jsx(L,{tone:"danger"}),e.jsx(L,{tone:"info"}),e.jsx("span",{className:"text-2xs text-fg-subtle",children:"status hues (theme’s, not yours)"})]})]})]})}const G="mx-auto w-full max-w-4xl",He="sm:w-64";function Ue(){const[t,n]=c.useState(null),[s,l]=c.useState(!0),[r,a]=c.useState(null),[x,m]=c.useState({}),[g,p]=c.useState(!1),[j,u]=c.useState(null),[h,N]=c.useState(!1),[w,P]=c.useState(""),[d,b]=c.useState(!1),[y,$]=c.useState(null),X=c.useRef(null),me=ke("(min-width: 1024px)");c.useEffect(()=>{let i=!0;return l(!0),F.getInstanceConfig().then(o=>{i&&(n(o),a(null))}).catch(o=>i&&a(o instanceof Error?o.message:String(o))).finally(()=>i&&l(!1)),()=>{i=!1}},[]);const fe=(i,o)=>{N(!1),u(null),m(v=>({...v,[i]:o}))},ge=i=>re(i,x),H=c.useMemo(()=>t?t.groups.flatMap(i=>i.fields):[],[t]),k=c.useMemo(()=>H.filter(i=>i.editable&&!i.envOverridden).filter(i=>Object.prototype.hasOwnProperty.call(x,i.key)).filter(i=>!ae(x[i.key],q(i))).map(i=>i.key),[H,x]),J=c.useMemo(()=>new Set(k),[k]),C=c.useMemo(()=>{if(!t)return[];const i=w.trim().toLowerCase(),o=[];for(const v of t.groups){const O=i!==""&&v.label.toLowerCase().includes(i),I=v.fields.filter(A=>{const T=re(A,x);return d&&ae(T,A.default)?!1:i===""||O?!0:Ze(A).includes(i)});I.length>0&&o.push({...v,fields:I})}return o},[t,w,d,x]),Y=C.reduce((i,o)=>i+o.fields.length,0),he=w.trim()!==""||d,U=!d&&(w.trim()===""||tt.includes(w.trim().toLowerCase())),M=c.useMemo(()=>U?[V,...C]:C,[U,C]),pe=C.some(i=>i.fields.some(o=>o.envOverridden)),Q=et(C,J);c.useEffect(()=>{const i=X.current;if(!i||M.length===0)return;const o=M.map(O=>O.id),v=()=>{const O=i.getBoundingClientRect().top;let I=o[0];for(const A of o){const T=document.getElementById(D(A));if(T)if(T.getBoundingClientRect().top-O<=80)I=A;else break}$(I)};return v(),i.addEventListener("scroll",v,{passive:!0}),()=>i.removeEventListener("scroll",v)},[M]);const W=i=>{var v;const o=document.getElementById(D(i));(v=o==null?void 0:o.scrollIntoView)==null||v.call(o,{behavior:"smooth",block:"start"}),$(i)},be=async()=>{if(k.length===0||!t)return;const i={};for(const o of k)i[o]=x[o];p(!0),u(null);try{await F.updateInstanceConfig(i,t.configVersion);const o=await F.getInstanceConfig();n(o),m({}),N(!0)}catch(o){if(o instanceof Ee&&o.status===409)try{n(await F.getInstanceConfig())}catch{}u(o instanceof Error?o.message:String(o))}finally{p(!1)}},je=()=>{m({}),u(null),N(!1)};return e.jsxs("div",{className:"flex min-h-0 flex-1",children:[t&&e.jsx(ze,{groups:M,active:y,onJump:W,dirtyCount:Q}),e.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[t&&e.jsx("div",{className:"border-b border-edge px-4 py-2.5 sm:px-6",children:e.jsxs("div",{className:G,children:[e.jsx(_e,{query:w,onQuery:P,modifiedOnly:d,onModifiedOnly:b,visibleCount:Y,totalCount:H.length,filtering:he,autoFocus:me}),e.jsx(Ge,{groups:M,active:y,onJump:W,dirtyCount:Q})]})}),e.jsx("div",{ref:X,className:"min-h-0 flex-1 overflow-y-auto px-4 py-5 sm:px-6",children:e.jsxs("div",{className:G,children:[U&&e.jsx("div",{className:"mb-8 border-b border-edge pb-7",children:e.jsx(ne,{id:D(V.id),title:V.label,description:V.description,variant:"rule",first:!0,children:e.jsx(Ve,{})})}),e.jsx(Ke,{saved:h,configPath:t==null?void 0:t.configPath,restartRequired:(t==null?void 0:t.restartRequired)??!1,fileError:t==null?void 0:t.configFileError}),s&&e.jsx("p",{className:"text-sm text-fg-muted",children:"Loading…"}),r&&e.jsxs("p",{className:"text-sm text-danger",role:"alert",children:["Failed to load settings: ",r]}),t&&pe&&e.jsx(qe,{}),t&&Y===0&&e.jsxs("p",{className:"py-8 text-center text-sm text-fg-muted",children:["No settings match"," ",w.trim()?e.jsxs(e.Fragment,{children:["“",e.jsx("span",{className:"font-medium",children:w.trim()}),"”"]}):"this filter","."]}),C.map(i=>e.jsx(ne,{id:D(i.id),title:i.label,description:i.description,variant:"card",flush:!0,children:e.jsx("div",{className:"divide-y divide-edge-subtle",children:i.fields.map(o=>e.jsx(Xe,{field:o,value:ge(o),dirty:J.has(o.key),onChange:v=>fe(o.key,v)},o.key))})},i.id))]})}),t&&e.jsx("footer",{className:"border-t border-edge px-4 py-3 sm:px-6",children:e.jsxs("div",{className:`${G} flex items-center gap-3`,children:[j&&e.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 text-sm text-danger",role:"alert",children:[e.jsx(ce,{width:14,height:14,className:"shrink-0"}),e.jsx("span",{className:"truncate",children:j})]}),e.jsx("span",{className:"ml-auto shrink-0 text-xs tabular text-fg-subtle",children:k.length>0?`${k.length} unsaved change${k.length===1?"":"s"}`:"No changes"}),e.jsx(R,{variant:"subtle",onClick:je,disabled:k.length===0||g,children:"Reset"}),e.jsx(R,{variant:"primary",onClick:be,disabled:k.length===0,loading:g,loadingLabel:"Saving…",children:"Save changes"})]})})]})]})}function ze({groups:t,active:n,onJump:s,dirtyCount:l}){return e.jsx("nav",{"aria-label":"Config sections",className:"hidden w-52 shrink-0 overflow-y-auto border-r border-edge px-2 py-4 lg:block",children:e.jsx("ul",{className:"space-y-0.5",children:t.map(r=>{const a=r.id===n,x=l[r.id]??0;return e.jsx("li",{children:e.jsxs("button",{type:"button",onClick:()=>s(r.id),"aria-current":a?"true":void 0,className:f("motion-fast flex w-full items-center gap-2 rounded-md px-2.5 py-1.5 text-left text-sm transition-colors",a?"bg-surface-selected font-medium text-fg":"text-fg-muted hover:bg-surface-hover hover:text-fg"),children:[e.jsx("span",{className:"min-w-0 flex-1 truncate",children:r.label}),x>0&&e.jsx("span",{className:"h-1.5 w-1.5 shrink-0 rounded-full bg-accent-solid","aria-label":`${x} unsaved`}),r.fields.length>0&&e.jsx("span",{className:"shrink-0 text-2xs tabular text-fg-subtle",children:r.fields.length})]})},r.id)})})})}function Ge({groups:t,active:n,onJump:s,dirtyCount:l}){return t.length===0?null:e.jsx("nav",{"aria-label":"Config sections",className:"-mx-1 mt-2 flex gap-1 overflow-x-auto px-1 pb-0.5 lg:hidden",children:t.map(r=>{const a=r.id===n,x=l[r.id]??0;return e.jsxs("button",{type:"button",onClick:()=>s(r.id),"aria-current":a?"true":void 0,className:f("motion-fast flex shrink-0 items-center gap-1.5 rounded-md px-2.5 py-1 text-xs transition-colors",a?"bg-surface-selected font-medium text-fg":"text-fg-muted hover:bg-surface-hover hover:text-fg"),children:[r.label,x>0&&e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-accent-solid","aria-label":`${x} unsaved`})]},r.id)})})}function _e({query:t,onQuery:n,modifiedOnly:s,onModifiedOnly:l,visibleCount:r,totalCount:a,filtering:x,autoFocus:m}){return e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:"relative min-w-0 flex-1 sm:max-w-sm",children:[e.jsx(Ce,{width:14,height:14,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-fg-subtle"}),e.jsx(B,{type:"search","aria-label":"Search settings",placeholder:"Search settings, keys, env vars…",className:"h-8 py-0 pl-8 pr-7 [&::-webkit-search-cancel-button]:appearance-none",value:t,autoFocus:m,onChange:g=>n(g.target.value),onKeyDown:g=>{g.key==="Escape"&&t!==""&&(g.preventDefault(),n(""))}}),t!==""&&e.jsx("button",{type:"button","aria-label":"Clear search",onClick:()=>n(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-fg-subtle hover:text-fg",children:e.jsx(Se,{width:13,height:13})})]}),e.jsx("button",{type:"button","aria-pressed":s,onClick:()=>l(!s),className:f("motion-fast shrink-0 rounded-md border px-2.5 py-1 text-xs transition-colors",s?"border-accent-edge bg-accent-soft text-accent":"border-edge text-fg-muted hover:text-fg"),children:"Modified only"}),e.jsx("span",{className:"shrink-0 text-xs tabular text-fg-subtle",children:x?`${r} of ${a}`:`${a} settings`})]})}function Ke({saved:t,configPath:n,restartRequired:s,fileError:l}){const r=l?"danger":t?"success":"warn";return e.jsx(Te,{tone:r,className:"mb-5 leading-snug",icon:r==="success"?e.jsx(Ae,{width:15,height:15}):e.jsx(ce,{width:15,height:15}),children:e.jsx("span",{role:"status",children:l?e.jsxs(e.Fragment,{children:[e.jsxs("strong",{children:["Could not read ",_(n),"."]})," ",l," — the values below are the running instance's; what a restart would load is unknown until the file parses."]}):t?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Saved to disk."})," These changes take effect only after the server restarts."]}):s?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Restart pending."})," ",e.jsx("code",{className:"font-mono text-xs",children:_(n)})," holds changes the running instance has not picked up — the fields below marked"," ",e.jsx(E,{tone:"warn",children:"restart"})," differ from what is in force right now."]}):e.jsxs(e.Fragment,{children:["Changes here are written to"," ",e.jsx("code",{className:"font-mono text-xs",children:_(n)})," and take effect only after the server restarts — the running instance keeps its current config until then."]})})})}function qe(){return e.jsxs("p",{className:"mb-5 text-xs leading-snug text-fg-muted",children:["Settings marked ",e.jsx(E,{tone:"neutral",children:"env"})," are overridden by an environment variable, which wins over this file — edit that variable (and restart) to change them."]})}function Xe({field:t,value:n,dirty:s,onChange:l}){const r=!t.editable||t.envOverridden,a=`cfg-${t.key}`,x=t.help?`${a}-help`:void 0,m=t.type==="boolean",g=c.useMemo(()=>We(t,q(t)),[t]),p=m&&!r,j=!t.help&&!t.envOverridden&&!t.pendingRestart,u=j?"items-center":"items-start",h=j?"sm:items-center":"sm:items-start",N=r?e.jsx(Qe,{field:t,value:n}):m?e.jsx(Pe,{id:a,checked:!!n,onChange:l,label:t.label}):e.jsx(Ye,{field:t,value:n,onChange:l,inputId:a,describedBy:x});return e.jsxs("div",{className:"relative px-4 py-3",children:[s&&e.jsx("span",{"aria-hidden":!0,className:"absolute inset-y-2 left-0 w-0.5 rounded-full bg-accent-solid"}),e.jsxs("div",{className:f(g?"":p?`flex gap-4 ${u}`:`sm:flex sm:gap-6 ${h}`),children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("label",{htmlFor:r?void 0:a,className:"text-sm font-medium text-fg",children:t.label}),t.sensitive&&e.jsx(E,{tone:"warn",children:"sensitive"}),t.envOverridden&&e.jsx(E,{tone:"neutral",title:`Overridden by environment variable ${t.envVar} — edit that env var (and restart) to change it.`,children:"env"}),!t.editable&&!t.envOverridden&&e.jsx(E,{tone:"neutral",children:"read-only"}),t.pendingRestart&&e.jsx(E,{tone:"warn",title:"The config file and the running instance disagree on this field — restart to apply.",children:"restart"})]}),t.help&&e.jsx("p",{id:x,className:"mt-0.5 text-xs leading-snug text-fg-muted",children:t.help}),t.envOverridden&&e.jsx("p",{className:"mt-1 truncate font-mono text-2xs text-fg-subtle",children:t.envVar}),t.pendingRestart&&e.jsxs("p",{className:"mt-1 text-2xs leading-snug text-warn",children:["In force now: ",e.jsx("span",{className:"font-mono",children:Je(t.value)})]})]}),e.jsx("div",{className:f(g?"mt-2":p?"flex shrink-0 justify-end":`mt-2 sm:mt-0 sm:shrink-0 ${He}`),children:N})]})]})}function Je(t){if(t==null||t==="")return"(not set)";const s=(Array.isArray(t)?t.join(", "):String(t)).replace(/\s+/g," ").trim();return s.length>60?`${s.slice(0,60)}…`:s}function E({children:t,tone:n,title:s}){return e.jsx(xe,{tone:n,size:"sm",title:s,className:"uppercase tracking-wide",children:t})}function Ye({field:t,value:n,onChange:s,inputId:l,describedBy:r}){if(t.type==="enum")return e.jsx(Ie,{id:l,"aria-describedby":r,value:String(n??""),onChange:a=>s(a.target.value),children:(t.enumValues??[]).map(a=>e.jsx("option",{value:a,children:a},a))});if(t.type==="number")return e.jsx(B,{id:l,type:"number","aria-describedby":r,className:"tabular",value:n==null?"":String(n),placeholder:t.default===null?"default":String(t.default),onChange:a=>s(a.target.value===""?null:Number(a.target.value))});if(t.type==="text"){const a=n==null||n===t.default,x=n==null?String(t.default??""):String(n),m=typeof t.default=="string"&&!a;return e.jsxs("div",{children:[e.jsx(Oe,{id:l,"aria-describedby":r,className:"min-h-[7rem] font-mono text-xs leading-relaxed",rows:6,spellCheck:!1,value:x,onChange:g=>s(g.target.value)}),e.jsxs("div",{className:"mt-1 flex items-center justify-between gap-3 text-xs text-fg-muted",children:[e.jsx("span",{children:a?"Using the built-in default.":n===""?"Empty — nothing will be appended.":`${x.length.toLocaleString()} characters.`}),m&&e.jsx(R,{variant:"link",size:"sm",className:"shrink-0",onClick:()=>s(null),children:"Restore default"})]})]})}if(t.type==="string-list"){const a=Array.isArray(n)?n.join(", "):String(n??"");return e.jsx(B,{id:l,type:"text","aria-describedby":r,value:a,onChange:x=>s(x.target.value.split(",").map(m=>m.trim()).filter(Boolean))})}return e.jsx(B,{id:l,type:"text","aria-describedby":r,value:n==null?"":String(n),placeholder:t.default===null?"":String(t.default),onChange:a=>s(a.target.value)})}function Qe({field:t,value:n}){const s="rounded-lg bg-surface-sunken px-3 py-2 font-mono text-xs text-fg-muted";return t.type==="boolean"?e.jsx("div",{className:s,children:n?"true":"false"}):n==null||n===""?e.jsx("div",{className:s,children:e.jsx("span",{className:"italic text-fg-subtle",children:t.type==="text"&&n===""?"(empty — nothing appended)":"(not set)"})}):t.type==="text"?e.jsx("div",{className:f(s,"max-h-40 overflow-y-auto whitespace-pre-wrap leading-relaxed"),children:String(n)}):e.jsx("div",{className:f(s,"break-all"),children:Array.isArray(n)?n.join(", "):String(n)})}function We(t,n){return t.type==="text"||t.type==="string-list"?!0:(Array.isArray(n)?n.join(", "):n==null?"":String(n)).length>38}function Ze(t){return[t.label,t.key,t.help,t.envVar,...t.enumValues??[]].filter(Boolean).join(" ").toLowerCase()}function et(t,n){const s={};for(const l of t)s[l.id]=l.fields.filter(r=>n.has(r.key)).length;return s}const D=t=>`cfg-section-${t}`,V={id:"appearance",label:"Appearance",description:"Theme and accent colour for this browser. Applies immediately — no save, no restart.",fields:[]},tt=["appearance theme themes colour color accent tint dark light font",...ie.map(t=>t.id)].join(" ");function q(t){return t.pendingValue===void 0?t.value:t.pendingValue}function re(t,n){return Object.prototype.hasOwnProperty.call(n,t.key)?n[t.key]:q(t)}function ae(t,n){return Array.isArray(t)&&Array.isArray(n)?t.length===n.length&&t.every((s,l)=>s===n[l]):t===n}function _(t){if(!t)return"paddock.config.yaml";const n=t.split("/");return n[n.length-1]||t}function rt(){const t=Re(),n=(t==null?void 0:t.openNav)??(()=>{});return e.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[e.jsxs("header",{className:"pt-safe flex items-center gap-2 border-b border-edge px-3 pb-2.5 sm:px-6 lg:py-4",children:[e.jsx("button",{type:"button",onClick:n,"aria-label":"Open menu",className:"btn-subtle -ml-1 shrink-0 px-2 py-1.5 lg:hidden",children:e.jsx($e,{width:20,height:20})}),e.jsx(Me,{width:18,height:18,className:"shrink-0 text-fg-subtle"}),e.jsx("h1",{className:"text-md font-semibold tracking-tight",children:"Config"})]}),e.jsx(Ue,{})]})}export{rt as InstanceConfigPage};
2
-
@@ -1,2 +0,0 @@
1
- import{U as a,D as n}from"./mermaid.core-BJ7aEinZ.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
2
-
@@ -1,2 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-BLwevzlY.js";import{_ as i}from"./mermaid.core-BJ7aEinZ.js";import"./chunk-FMBD7UC4-BNlt1t19.js";import"./chunk-ND2GUHAM-CIt5gAq8.js";import"./chunk-55IACEB6-D7HXvxGy.js";import"./chunk-2J33WTMH-Cm_E_LAD.js";import"./index-C_PXsGTD.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
2
-
@@ -1,2 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-BLwevzlY.js";import{_ as i}from"./mermaid.core-BJ7aEinZ.js";import"./chunk-FMBD7UC4-BNlt1t19.js";import"./chunk-ND2GUHAM-CIt5gAq8.js";import"./chunk-55IACEB6-D7HXvxGy.js";import"./chunk-2J33WTMH-Cm_E_LAD.js";import"./index-C_PXsGTD.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
2
-
@@ -1,44 +0,0 @@
1
- import{s as k,g as I,q as R,p as F,a as _,b as E,_ as l,L as D,z,H as y,F as C,I as G,l as P,a1 as W,e as B}from"./mermaid.core-BJ7aEinZ.js";import{p as H}from"./chunk-4BX2VUAB-CK6R2MCN.js";import{p as V}from"./wardley-L42UT6IY-Br823uUV.js";import"./index-C_PXsGTD.js";var m={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:m},x=structuredClone(w),j=G.radar,q=l(()=>y({...j,...C().radar}),"getConfig"),b=l(()=>x.axes,"getAxes"),N=l(()=>x.curves,"getCurves"),U=l(()=>x.options,"getOptions"),X=l(a=>{x.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Y=l(a=>{x.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Z(t.entries)}))},"setCurves"),Z=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var o;return((o=s.axis)==null?void 0:o.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=l(a=>{var e,r,s,o,i;const t=a.reduce((n,c)=>(n[c.name]=c,n),{});x.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??m.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??m.ticks,max:((s=t.max)==null?void 0:s.value)??m.max,min:((o=t.min)==null?void 0:o.value)??m.min,graticule:((i=t.graticule)==null?void 0:i.value)??m.graticule}},"setOptions"),K=l(()=>{z(),x=structuredClone(w)},"clear"),$={getAxes:b,getCurves:N,getOptions:U,setAxes:X,setCurves:Y,setOptions:J,getConfig:q,clear:K,setAccTitle:E,getAccTitle:_,setDiagramTitle:F,getDiagramTitle:R,getAccDescription:I,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),p=D(t),u=at(p,c),g=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(u,o,v,n.ticks,n.graticule),st(u,o,v,c),M(u,o,i,h,g,n.graticule,c),T(u,i,n.showLegend,c),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,p)=>{const u=2*p*Math.PI/o-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=A(g,r,s,c),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(u,i.curveTension)).attr("class",`radarCurve-${p}`):o==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},p={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
2
- .radarCurve-${r} {
3
- color: ${s};
4
- fill: ${s};
5
- fill-opacity: ${t.curveOpacity};
6
- stroke: ${s};
7
- stroke-width: ${t.curveStrokeWidth};
8
- }
9
- .radarLegendBox-${r} {
10
- fill: ${s};
11
- fill-opacity: ${t.curveOpacity};
12
- stroke: ${s};
13
- }
14
- `}return e},"genIndexStyles"),it=l(a=>{const t=W(),e=C(),r=y(t,e.themeVariables),s=y(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),lt=l(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=it(a);return`
15
- .radarTitle {
16
- font-size: ${t.fontSize};
17
- color: ${t.titleColor};
18
- dominant-baseline: hanging;
19
- text-anchor: middle;
20
- }
21
- .radarAxisLine {
22
- stroke: ${e.axisColor};
23
- stroke-width: ${e.axisStrokeWidth};
24
- }
25
- .radarAxisLabel {
26
- dominant-baseline: middle;
27
- text-anchor: middle;
28
- font-size: ${e.axisLabelFontSize}px;
29
- color: ${e.axisColor};
30
- }
31
- .radarGraticule {
32
- fill: ${e.graticuleColor};
33
- fill-opacity: ${e.graticuleOpacity};
34
- stroke: ${e.graticuleColor};
35
- stroke-width: ${e.graticuleStrokeWidth};
36
- }
37
- .radarLegendText {
38
- text-anchor: start;
39
- font-size: ${e.legendFontSize}px;
40
- dominant-baseline: hanging;
41
- }
42
- ${ot(t,e)}
43
- `},"styles"),gt={parser:tt,db:$,renderer:nt,styles:lt};export{gt as diagram};
44
-
@@ -1,11 +0,0 @@
1
- import{p as x,b as f,s as C,q as B,g as T,a as y,_ as s,H as u,l as k,L as V,e as _,F as N,z as S,I as D}from"./mermaid.core-BJ7aEinZ.js";import{p as I}from"./chunk-4BX2VUAB-CK6R2MCN.js";import{I as $}from"./chunk-QZHKN3VN-B1uwIQ9c.js";import{p as z}from"./wardley-L42UT6IY-Br823uUV.js";import"./index-C_PXsGTD.js";var d=new $(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),A=s(()=>{d.reset(),S()},"clear"),H=s(()=>d.records.stack[0],"getRoot"),L=s(()=>d.records.cnt,"getCount"),X=D.treeView,R=s(()=>u(X,N().treeView),"getConfig"),W=s((e,t)=>{for(;e<=d.records.stack[d.records.stack.length-1].level;)d.records.stack.pop();const a={id:d.records.cnt++,level:e,name:t,children:[]};d.records.stack[d.records.stack.length-1].children.push(a),d.records.stack.push(a)},"addNode"),E={clear:A,addNode:W,getRoot:H,getCount:L,getConfig:R,getAccTitle:y,getAccDescription:T,getDiagramTitle:B,setAccDescription:C,setAccTitle:f,setDiagramTitle:x},m=E,F=s(e=>{I(e,m),e.nodes.map(t=>m.addNode(t.indent?parseInt(t.indent):0,t.name))},"populate"),M={parse:s(async e=>{const t=await z("treeView",e);k.debug(t),F(t)},"parse")},Y=s((e,t,a,n,o)=>{const c=n.append("text").text(a.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:g,width:r}=c.node().getBBox(),l=g+o.paddingY*2,i=r+o.paddingX*2;c.attr("x",e+o.paddingX),c.attr("y",t+l/2),a.BBox={x:e,y:t,width:i,height:l}},"positionLabel"),b=s((e,t,a,n,o,c)=>e.append("line").attr("x1",t).attr("y1",a).attr("x2",n).attr("y2",o).attr("stroke-width",c).attr("class","treeView-node-line"),"positionLine"),q=s((e,t,a)=>{let n=0,o=0;const c=s((r,l,i,h)=>{const v=h*(i.rowIndent+i.paddingX);Y(v,n,l,r,i);const{height:p,width:w}=l.BBox;b(r,v-i.rowIndent,n+p/2,v,n+p/2,i.lineThickness),o=Math.max(o,v+w),n+=p},"drawNode"),g=s((r,l=0)=>{c(e,r,a,l),r.children.forEach(p=>{g(p,l+1)});const{x:i,y:h,height:v}=r.BBox;if(r.children.length){const{y:p,height:w}=r.children[r.children.length-1].BBox;b(e,i+a.paddingX,h+v,i+a.paddingX,p+w/2+a.lineThickness/2,a.lineThickness)}},"processNode");return g(t),{totalHeight:n,totalWidth:o}},"drawTree"),j=s((e,t,a,n)=>{k.debug(`Rendering treeView diagram
2
- `+e);const o=n.db,c=o.getRoot(),g=o.getConfig(),r=V(t),l=r.append("g");l.attr("class","tree-view");const{totalHeight:i,totalWidth:h}=q(l,c,g);r.attr("viewBox",`-${g.lineThickness/2} 0 ${h} ${i}`),_(r,i,h,g.useMaxWidth)},"draw"),G={draw:j},J=G,K={labelFontSize:"16px",labelColor:"black",lineColor:"black"},O=s(({treeView:e})=>{const{labelFontSize:t,labelColor:a,lineColor:n}=u(K,e);return`
3
- .treeView-node-label {
4
- font-size: ${t};
5
- fill: ${a};
6
- }
7
- .treeView-node-line {
8
- stroke: ${n};
9
- }
10
- `},"styles"),P=O,ae={db:m,renderer:J,parser:M,styles:P};export{ae as diagram};
11
-
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:var(--surface);--color-fg:var(--text);--color-fg-subtle:var(--text-subtle);--color-edge:var(--border);--color-accent:var(--accent-text);--font-display:var(--font-sans);--font-prose:var(--font-sans);--text-3xs:.625rem;--text-3xs--line-height:.875rem;--text-2xs:.6875rem;--text-2xs--line-height:1rem;--text-md:.9375rem;--text-md--line-height:1.5rem;--ease-out-quick:cubic-bezier(.16, 1, .3, 1);--ease-standard:cubic-bezier(.2, 0, 0, 1);--animate-scale-in:scale-in .16s var(--ease-out-quick);--animate-fade-in:fade-in .12s linear}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2")}@font-face{font-family:Saira;font-style:normal;font-weight:100 900;font-stretch:50% 125%;font-display:swap;src:url(/fonts/saira-latin.woff2)format("woff2")}@font-face{font-family:Martian Mono;font-style:normal;font-weight:100 800;font-stretch:75% 112.5%;font-display:swap;src:url(/fonts/martian-mono-latin.woff2)format("woff2")}*,:after,:before,::backdrop{border-color:var(--color-edge)}::file-selector-button{border-color:var(--color-edge)}::placeholder{color:var(--color-fg-subtle);opacity:1}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}html,body,#root{height:100%}html,body{overscroll-behavior:none;overflow:hidden}@media (max-width:640px){input,textarea{font-size:16px!important}}a,button,[role=button],input,textarea,select{-webkit-tap-highlight-color:transparent}body{background-color:var(--color-surface);color:var(--color-fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv05","ss01"}h1,h2,h3,h4{text-wrap:balance;font-family:var(--font-display)}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background-color:var(--scroll-thumb);border-radius:9999px}::-webkit-scrollbar-track{background:0 0}}@layer components{.status-pill{align-items:center;gap:var(--spacing);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);font-size:var(--text-2xs);line-height:var(--tw-leading,var(--text-2xs--line-height));--tw-leading:1;--tw-font-weight:var(--font-weight-medium);line-height:1;font-weight:var(--font-weight-medium);border-radius:3.40282e38px;display:inline-flex}.tag{border-radius:var(--radius-md);background-color:var(--surface-active);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);font-size:var(--text-2xs);line-height:var(--tw-leading,var(--text-2xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted);align-items:center;display:inline-flex}.btn-primary{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-standard);display:inline-flex}.btn-primary:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background-color:var(--accent-solid);color:var(--accent-fg);--tw-shadow:0 1px 1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 1px 3px -1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.btn-primary:hover{background-color:var(--accent-solid-hover)}}.btn-primary:active{scale:.98}.btn-ghost{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-standard);display:inline-flex}.btn-ghost:disabled{cursor:not-allowed;opacity:.5}.btn-ghost{background-color:var(--surface-active);color:var(--text)}@media (hover:hover){.btn-ghost:hover{background-color:var(--surface-selected)}}.btn-subtle{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-standard);display:inline-flex}.btn-subtle:disabled{cursor:not-allowed;opacity:.5}.btn-subtle{color:var(--text-muted)}@media (hover:hover){.btn-subtle:hover{background-color:var(--surface-hover);color:var(--text)}}.btn-danger{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-standard);display:inline-flex}.btn-danger:disabled{cursor:not-allowed;opacity:.5}.btn-danger{background-color:var(--danger-solid);color:var(--danger-fg);--tw-shadow:0 1px 1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 1px 3px -1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.btn-danger:hover{--tw-brightness:brightness(110%);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,)}}.btn-danger:active{scale:.98}.chat-row{container-type:inline-size}.chat-row-time{transition:opacity var(--duration-fast) var(--ease-standard)}.menu{z-index:50;min-width:calc(var(--spacing) * 40);animation:var(--animate-scale-in);border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);background-color:var(--surface-raised);padding-block:var(--spacing);--tw-shadow:0 8px 16px -4px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 24px 48px -12px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);position:absolute;overflow:hidden}.menu-item-danger{align-items:center;gap:calc(var(--spacing) * 2);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-muted);transition:background-color var(--duration-fast) var(--ease-standard);display:flex}@media (hover:hover){.menu-item-danger:hover{background-color:var(--surface-hover);color:var(--text)}}.menu-item-danger{color:var(--danger-text)}@media (hover:hover){.menu-item-danger:hover{background-color:var(--danger-soft);color:var(--danger-text)}}.card{border-radius:var(--radius-2xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);background-color:var(--surface-raised);padding:calc(var(--spacing) * 4);--tw-shadow:0 1px 1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 1px 3px -1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.input{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-strong);background-color:var(--surface-sunken);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text);--tw-outline-style:none;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);outline-style:none}.input:focus{border-color:var(--accent-text);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.input:focus{--tw-ring-color:color-mix(in oklab, var(--accent-text) 25%, transparent)}}.field-label{margin-bottom:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);color:var(--text-muted);text-transform:uppercase;display:block}.pt-safe{padding-top:max(env(safe-area-inset-top),.5rem)}.pb-safe{padding-bottom:max(env(safe-area-inset-bottom),.75rem)}.section-label{padding-inline:calc(var(--spacing) * 3);font-size:var(--text-2xs);line-height:var(--tw-leading,var(--text-2xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:var(--text-muted);text-transform:uppercase}.md{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin-block:calc(var(--spacing) * 2)}.md h1{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.md h2{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.md h3{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.md ul{margin-block:calc(var(--spacing) * 2);list-style-type:disc}:where(.md ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.md ul{padding-left:calc(var(--spacing) * 5)}.md ol{margin-block:calc(var(--spacing) * 2);list-style-type:decimal}:where(.md ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.md ol{padding-left:calc(var(--spacing) * 5)}.md li>ul,.md li>ol{margin-block:var(--spacing)}.md a{color:var(--accent-text);text-underline-offset:2px;text-decoration-line:underline}@media (hover:hover){.md a:hover{text-decoration-line:none}}.md blockquote{margin-block:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:2px;border-color:var(--border);padding-left:calc(var(--spacing) * 3);color:var(--text-muted)}.md code{background-color:var(--surface-active);padding-inline:var(--spacing);padding-block:calc(var(--spacing) * .5);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));border-radius:.25rem}.md pre{margin-block:calc(var(--spacing) * 3);border-radius:var(--radius-lg);background-color:var(--surface-sunken);padding:calc(var(--spacing) * 3);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);overflow-x:auto}.md pre code{background-color:#0000;padding:0}.md table{margin-block:calc(var(--spacing) * 3);border-collapse:collapse;width:100%;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.md th,.md td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);text-align:left}.md th{background-color:var(--surface-sunken);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.md hr{margin-block:calc(var(--spacing) * 3);border-color:var(--border)}.prose-doc .md{font-size:var(--text-md);line-height:var(--tw-leading,var(--text-md--line-height));--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7);color:var(--text-muted)}.prose-doc .md h1{margin-top:calc(var(--spacing) * 6);margin-bottom:calc(var(--spacing) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--border);padding-bottom:calc(var(--spacing) * 2);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text)}.prose-doc .md h2{margin-top:calc(var(--spacing) * 6);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text)}.prose-doc .md h3{margin-top:calc(var(--spacing) * 5);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text)}.prose-doc .md p,.prose-doc .md ul{margin-block:calc(var(--spacing) * 3)}:where(.prose-doc .md ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}.prose-doc .md ol{margin-block:calc(var(--spacing) * 3)}:where(.prose-doc .md ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}.prose-doc .md blockquote{margin-block:calc(var(--spacing) * 4);border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--accent-border);background-color:var(--accent-soft);padding-block:calc(var(--spacing) * 2);padding-right:calc(var(--spacing) * 3);padding-left:calc(var(--spacing) * 4);color:var(--text-muted)}.prose-doc .md pre{margin-block:calc(var(--spacing) * 4);border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);padding:calc(var(--spacing) * 4)}.prose-doc .md table{margin-block:calc(var(--spacing) * 4);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));overflow:hidden}.prose-doc .md th,.prose-doc .md td{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5)}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.inset-y-2{inset-block:calc(var(--spacing) * 2)}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.left-0{left:0}.left-2\.5{left:calc(var(--spacing) * 2.5)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-auto{margin-top:auto}.-mr-0\.5{margin-right:calc(var(--spacing) * -.5)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.-mb-px{margin-bottom:-1px}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.streaming-caret:after{content:"▍";margin-left:calc(var(--spacing) * .5);color:var(--accent-text);animation:1s step-end infinite caret-blink;display:inline-block}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-2\.5{margin-left:calc(var(--spacing) * -2.5)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.menu-item{align-items:center;gap:calc(var(--spacing) * 2);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-muted);transition:background-color var(--duration-fast) var(--ease-standard);display:flex}@media (hover:hover){.menu-item:hover{background-color:var(--surface-hover);color:var(--text)}}.btn{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-standard);display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.5}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-24{height:calc(var(--spacing) * 24)}.h-40{height:calc(var(--spacing) * 40)}.h-\[18px\]{height:18px}.h-\[52px\]{height:52px}.h-\[100dvh\]{height:100dvh}.h-\[600px\]{height:600px}.h-\[calc\(100\%\+6px\)\]{height:calc(100% + 6px)}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[35vh\]{max-height:35vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[480px\]{max-height:480px}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-\[5rem\]{min-height:5rem}.min-h-\[7rem\]{min-height:7rem}.min-h-\[40px\]{min-height:40px}.min-h-\[44px\]{min-height:44px}.min-h-\[360px\]{min-height:360px}.min-h-\[480px\]{min-height:480px}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/5{width:60%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[3px\]{width:3px}.w-\[18px\]{width:18px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[7rem\]{max-width:7rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[14ch\]{max-width:14ch}.max-w-\[14rem\]{max-width:14rem}.max-w-\[15rem\]{max-width:15rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[80\%\]{max-width:80%}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-\[92\%\]{max-width:92%}.max-w-\[95vw\]{max-width:95vw}.max-w-\[240px\]{max-width:240px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-\[1\.1rem\]{min-width:1.1rem}.min-w-\[54rem\]{min-width:54rem}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.spin-eco{will-change:transform;animation:1.2s steps(12,end) infinite spin-eco}.animate-bounce{animation:var(--animate-bounce)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-scale-in{animation:var(--animate-scale-in)}.animate-spin{animation:var(--animate-spin)}.subagent-reveal{animation:1.6s ease-in-out 2 subagent-reveal}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto\,1fr\]{grid-template-columns:auto,1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-px{gap:1px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:var(--spacing)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-accent\/15>:not(:last-child)){border-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){:where(.divide-accent\/15>:not(:last-child)){border-color:color-mix(in oklab,var(--accent-text) 15%,transparent)}}:where(.divide-edge-subtle>:not(:last-child)){border-color:var(--border-subtle)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[1px\]{border-radius:1px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent{border-color:var(--accent-text)}.border-accent-edge{border-color:var(--accent-border)}.border-accent\/20{border-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.border-accent\/20{border-color:color-mix(in oklab,var(--accent-text) 20%,transparent)}}.border-accent\/25{border-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.border-accent\/25{border-color:color-mix(in oklab,var(--accent-text) 25%,transparent)}}.border-accent\/30{border-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.border-accent\/30{border-color:color-mix(in oklab,var(--accent-text) 30%,transparent)}}.border-current{border-color:currentColor}.border-danger-edge{border-color:var(--danger-border)}.border-edge{border-color:var(--border)}.border-edge-strong{border-color:var(--border-strong)}.border-edge-subtle{border-color:var(--border-subtle)}.border-fg{border-color:var(--text)}.border-info-edge{border-color:var(--info-border)}.border-lineage-edge{border-color:var(--lineage-border)}.border-success-edge{border-color:var(--success-border)}.border-transparent{border-color:#0000}.border-warn-edge{border-color:var(--warn-border)}.border-t-accent{border-top-color:var(--accent-text)}.border-t-transparent{border-top-color:#0000}.html-preview{color-scheme:light;background-color:#fff}.bg-accent-fg{background-color:var(--accent-fg)}.bg-accent-soft{background-color:var(--accent-soft)}.bg-accent-solid{background-color:var(--accent-solid)}.bg-accent-solid-hover{background-color:var(--accent-solid-hover)}.bg-accent\/10{background-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--accent-text) 10%,transparent)}}.bg-accent\/15{background-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/15{background-color:color-mix(in oklab,var(--accent-text) 15%,transparent)}}.bg-black\/55{background-color:#0000008c}@supports (color:color-mix(in lab,red,red)){.bg-black\/55{background-color:color-mix(in oklab,var(--color-black) 55%,transparent)}}.bg-danger-soft{background-color:var(--danger-soft)}.bg-danger-solid{background-color:var(--danger-solid)}.bg-edge{background-color:var(--border)}.bg-edge-strong{background-color:var(--border-strong)}.bg-edge-subtle{background-color:var(--border-subtle)}.bg-fg{background-color:var(--text)}.bg-fg-muted{background-color:var(--text-muted)}.bg-fg-subtle{background-color:var(--text-subtle)}.bg-info-soft,.bg-info-soft\/95{background-color:var(--info-soft)}@supports (color:color-mix(in lab,red,red)){.bg-info-soft\/95{background-color:color-mix(in oklab,var(--info-soft) 95%,transparent)}}.bg-info-solid,.bg-info-solid\/10{background-color:var(--info-solid)}@supports (color:color-mix(in lab,red,red)){.bg-info-solid\/10{background-color:color-mix(in oklab,var(--info-solid) 10%,transparent)}}.bg-info-solid\/15{background-color:var(--info-solid)}@supports (color:color-mix(in lab,red,red)){.bg-info-solid\/15{background-color:color-mix(in oklab,var(--info-solid) 15%,transparent)}}.bg-lineage-soft{background-color:var(--lineage-soft)}.bg-lineage-solid{background-color:var(--lineage-solid)}.bg-overlay{background-color:var(--overlay)}.bg-overlay-strong{background-color:var(--overlay-strong)}.bg-success-soft{background-color:var(--success-soft)}.bg-success-solid{background-color:var(--success-solid)}.bg-surface{background-color:var(--surface)}.bg-surface-active{background-color:var(--surface-active)}.bg-surface-hover{background-color:var(--surface-hover)}.bg-surface-raised{background-color:var(--surface-raised)}.bg-surface-selected{background-color:var(--surface-selected)}.bg-surface-sunken{background-color:var(--surface-sunken)}.bg-surface\/80{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/80{background-color:color-mix(in oklab,var(--surface) 80%,transparent)}}.bg-surface\/95{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/95{background-color:color-mix(in oklab,var(--surface) 95%,transparent)}}.bg-transparent{background-color:#0000}.bg-warn-soft{background-color:var(--warn-soft)}.bg-warn-solid{background-color:var(--warn-solid)}.stroke-\[var\(--accent-solid\)\]{stroke:var(--accent-solid)}.stroke-\[var\(--warn-solid\)\]{stroke:var(--warn-solid)}.stroke-edge{stroke:var(--border)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block:1px}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-\[3\.75rem\]{padding-right:3.75rem}.pr-\[6\.75rem\]{padding-right:6.75rem}.pr-\[…\]{padding-right:…}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-7{padding-bottom:calc(var(--spacing) * 7)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-\[18px\]{padding-left:18px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xs{font-size:var(--text-2xs);line-height:var(--tw-leading,var(--text-2xs--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-3xs{font-size:var(--text-3xs);line-height:var(--tw-leading,var(--text-3xs--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-md{font-size:var(--text-md);line-height:var(--tw-leading,var(--text-md--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[Npx\]{color:Npx}.text-accent{color:var(--accent-text)}.text-accent-fg{color:var(--accent-fg)}.text-accent\/80{color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.text-accent\/80{color:color-mix(in oklab,var(--accent-text) 80%,transparent)}}.text-accent\/90{color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.text-accent\/90{color:color-mix(in oklab,var(--accent-text) 90%,transparent)}}.text-danger{color:var(--danger-text)}.text-danger-fg{color:var(--danger-fg)}.text-danger\/70{color:var(--danger-text)}@supports (color:color-mix(in lab,red,red)){.text-danger\/70{color:color-mix(in oklab,var(--danger-text) 70%,transparent)}}.text-fg{color:var(--text)}.text-fg-muted{color:var(--text-muted)}.text-fg-subtle{color:var(--text-subtle)}.text-info{color:var(--info-text)}.text-lineage{color:var(--lineage-text)}.text-success{color:var(--success-text)}.text-success-solid{color:var(--success-solid)}.text-surface{color:var(--surface)}.text-warn{color:var(--warn-text)}.text-warn-fg{color:var(--warn-fg)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular{font-variant-numeric:tabular-nums}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-\[var\(--accent-solid\)\]{accent-color:var(--accent-solid)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 12px 24px -6px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 40px 72px -16px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 4px 8px -2px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 12px 28px -8px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 2px 4px -1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 6px 16px -4px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 2px 6px -2px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 8px 16px -4px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 24px 48px -12px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 1px 3px -1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-accent\/20{--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.ring-accent\/20{--tw-ring-color:color-mix(in oklab, var(--accent-text) 20%, transparent)}}.ring-accent\/30{--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.ring-accent\/30{--tw-ring-color:color-mix(in oklab, var(--accent-text) 30%, transparent)}}.ring-edge{--tw-ring-color:var(--border)}.ring-edge-strong{--tw-ring-color:var(--border-strong)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\,box-shadow\,transform\]{transition-property:color,background-color,border-color,box-shadow,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\]{transition-property:color,background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\,box-shadow\,opacity\]{transition-property:filter,box-shadow,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,background-color\]{transition-property:width,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-base{transition-duration:var(--duration-base);transition-timing-function:var(--ease-standard)}.motion-fast{transition-duration:var(--duration-fast);transition-timing-function:var(--ease-standard)}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.group-focus-within\:pointer-events-auto:is(:where(.group):focus-within *){pointer-events:auto}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:hidden:is(:where(.group):hover *){display:none}.group-hover\:bg-fg-subtle:is(:where(.group):hover *){background-color:var(--text-subtle)}.group-hover\:text-fg-muted:is(:where(.group):hover *){color:var(--text-muted)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/chat\:opacity-100:is(:where(.group\/chat):hover *),.group-hover\/file\:opacity-100:is(:where(.group\/file):hover *),.group-hover\/pin\:opacity-100:is(:where(.group\/pin):hover *){opacity:1}.group-hover\/resizer\:w-0\.5:is(:where(.group\/resizer):hover *){width:calc(var(--spacing) * .5)}.group-hover\/resizer\:bg-accent-solid:is(:where(.group\/resizer):hover *){background-color:var(--accent-solid)}}.group-focus\/resizer\:w-0\.5:is(:where(.group\/resizer):focus *){width:calc(var(--spacing) * .5)}.group-focus\/resizer\:bg-accent-solid:is(:where(.group\/resizer):focus *){background-color:var(--accent-solid)}.group-focus-visible\:block:is(:where(.group):focus-visible *){display:block}.group-focus-visible\:hidden:is(:where(.group):focus-visible *){display:none}.peer-checked\:bg-accent-solid:is(:where(.peer):checked~*){background-color:var(--accent-solid)}.peer-focus-visible\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-focus-visible\:ring-accent\/50:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.peer-focus-visible\:ring-accent\/50:is(:where(.peer):focus-visible~*){--tw-ring-color:color-mix(in oklab, var(--accent-text) 50%, transparent)}}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\:left-0\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\:h-3\.5:after{content:var(--tw-content);height:calc(var(--spacing) * 3.5)}.after\:w-3\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 3.5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-surface-raised:after{content:var(--tw-content);background-color:var(--surface-raised)}.after\:shadow-2xs:after{content:var(--tw-content);--tw-shadow:0 1px 1px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-3\.5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 3.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:border-accent:focus-within{border-color:var(--accent-text)}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-accent\/20:focus-within{--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.focus-within\:ring-accent\/20:focus-within{--tw-ring-color:color-mix(in oklab, var(--accent-text) 20%, transparent)}}@media (hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-edge-strong:hover{border-color:var(--border-strong)}.hover\:bg-accent-soft:hover{background-color:var(--accent-soft)}.hover\:bg-accent-solid-hover:hover{background-color:var(--accent-solid-hover)}.hover\:bg-accent\/10:hover{background-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/10:hover{background-color:color-mix(in oklab,var(--accent-text) 10%,transparent)}}.hover\:bg-accent\/20:hover{background-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/20:hover{background-color:color-mix(in oklab,var(--accent-text) 20%,transparent)}}.hover\:bg-black\/75:hover{background-color:#000000bf}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/75:hover{background-color:color-mix(in oklab,var(--color-black) 75%,transparent)}}.hover\:bg-danger-soft:hover{background-color:var(--danger-soft)}.hover\:bg-fg-muted:hover{background-color:var(--text-muted)}.hover\:bg-surface-active:hover{background-color:var(--surface-active)}.hover\:bg-surface-hover:hover{background-color:var(--surface-hover)}.hover\:bg-surface-selected:hover{background-color:var(--surface-selected)}.hover\:text-accent:hover{color:var(--accent-text)}.hover\:text-accent-solid-hover:hover{color:var(--accent-solid-hover)}.hover\:text-danger:hover{color:var(--danger-text)}.hover\:text-fg:hover{color:var(--text)}.hover\:text-fg-muted:hover{color:var(--text-muted)}.hover\:text-warn:hover{color:var(--warn-text)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 2px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-direct))), 0 2px 6px -2px var(--tw-shadow-color,rgb(var(--shadow-color) / var(--shadow-ambient)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:ring-accent:hover{--tw-ring-color:var(--accent-text)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}.focus\:border-accent:focus{border-color:var(--accent-text)}.focus\:opacity-100:focus{opacity:1}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-accent\/20:focus{--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-accent\/20:focus{--tw-ring-color:color-mix(in oklab, var(--accent-text) 20%, transparent)}}.focus\:ring-accent\/25:focus{--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-accent\/25:focus{--tw-ring-color:color-mix(in oklab, var(--accent-text) 25%, transparent)}}.focus\:ring-accent\/30:focus{--tw-ring-color:var(--accent-text)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-accent\/30:focus{--tw-ring-color:color-mix(in oklab, var(--accent-text) 30%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:bg-black\/75:focus-visible{background-color:#000000bf}@supports (color:color-mix(in lab,red,red)){.focus-visible\:bg-black\/75:focus-visible{background-color:color-mix(in oklab,var(--color-black) 75%,transparent)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:focus-ring:focus-visible{outline-offset:2px;box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-accent);outline:2px solid #0000}.focus-visible\:ring-accent:focus-visible{--tw-ring-color:var(--accent-text)}.focus-visible\:ring-white\/70:focus-visible{--tw-ring-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-white\/70:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-\[invalid\=true\]\:border-danger[aria-invalid=true]{border-color:var(--danger-text)}.aria-\[invalid\=true\]\:focus\:ring-danger\/25[aria-invalid=true]:focus{--tw-ring-color:var(--danger-text)}@supports (color:color-mix(in lab,red,red)){.aria-\[invalid\=true\]\:focus\:ring-danger\/25[aria-invalid=true]:focus{--tw-ring-color:color-mix(in oklab, var(--danger-text) 25%, transparent)}}@media (min-width:40rem){.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-10{padding-block:calc(var(--spacing) * 10)}}@media (min-width:48rem){.md\:inline{display:inline}}@media (min-width:64rem){.lg\:relative{position:relative}.lg\:z-auto{z-index:auto}.lg\:-ml-2{margin-left:calc(var(--spacing) * -2)}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}.lg\:max-h-none{max-height:none}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:max-w-none{max-width:none}.lg\:flex-1{flex:1}.lg\:translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_15rem\]{grid-template-columns:minmax(0,1fr) 15rem}.lg\:flex-row{flex-direction:row}.lg\:flex-wrap{flex-wrap:wrap}.lg\:items-start{align-items:flex-start}.lg\:gap-3{gap:calc(var(--spacing) * 3)}.lg\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.lg\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.lg\:bg-surface-raised\/40{background-color:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){.lg\:bg-surface-raised\/40{background-color:color-mix(in oklab,var(--surface-raised) 40%,transparent)}}.lg\:bg-surface-raised\/50{background-color:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){.lg\:bg-surface-raised\/50{background-color:color-mix(in oklab,var(--surface-raised) 50%,transparent)}}.lg\:py-4{padding-block:calc(var(--spacing) * 4)}.lg\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.lg\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@media (hover:hover){.can-hover\:opacity-0{opacity:0}.can-hover\:group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}.can-hover\:group-hover\:block:is(:where(.group):hover *){display:block}.can-hover\:group-hover\:hidden:is(:where(.group):hover *){display:none}.can-hover\:group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.can-hover\:hover\:border-edge:hover{border-color:var(--border)}.can-hover\:hover\:bg-danger-soft:hover{background-color:var(--danger-soft)}.can-hover\:hover\:bg-surface-hover:hover{background-color:var(--surface-hover)}.can-hover\:hover\:text-danger:hover{color:var(--danger-text)}.can-hover\:hover\:text-fg:hover{color:var(--text)}.can-hover\:hover\:underline:hover{text-decoration-line:underline}}.\[\&\:\:-webkit-search-cancel-button\]\:appearance-none::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}}:root{color-scheme:light;--accent:194 96 60;--accent-600:168 78 47;--accent-700:138 63 38;--surface:oklch(96.45% .0035 88);--surface-raised:oklch(99.6% .0015 88);--surface-sunken:oklch(93.3% .006 88);--surface-hover:oklch(94% .006 88);--surface-active:oklch(90.8% .008 88);--surface-selected:oklch(91.8% .009 88);--overlay:oklch(0% 0 0/.42);--overlay-strong:oklch(0% 0 0/.82);--text:oklch(22.5% .014 88);--text-muted:oklch(41.5% .017 88);--text-subtle:oklch(49.2% .018 88);--text-on-solid:oklch(100% 0 0);--border-subtle:oklch(90.5% .008 88);--border:oklch(82% .012 88);--border-strong:oklch(60.8% .015 88);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent-700));--accent-fg:oklch(100% 0 0);--accent-text:rgb(var(--accent-700));--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){:root{--accent-soft:color-mix(in oklab, rgb(var(--accent)) 10%, var(--surface-raised))}}:root{--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){:root{--accent-border:color-mix(in oklab, rgb(var(--accent)) 40%, var(--surface))}}:root{--success-solid:oklch(53.5% .1252 158);--success-fg:oklch(100% 0 0);--success-text:oklch(47% .11 158);--success-soft:oklch(94.8% .045 158);--success-border:oklch(84% .075 158);--warn-solid:oklch(53.5% .1074 72);--warn-fg:oklch(100% 0 0);--warn-text:oklch(47% .0955 72);--warn-soft:oklch(94.8% .0401 72);--warn-border:oklch(84% .075 72);--danger-solid:oklch(53.5% .17 24);--danger-fg:oklch(100% 0 0);--danger-text:oklch(47% .15 24);--danger-soft:oklch(94.8% .0262 24);--danger-border:oklch(84% .075 24);--info-solid:oklch(53.5% .127 242);--info-fg:oklch(100% 0 0);--info-text:oklch(47% .1116 242);--info-soft:oklch(94.8% .0276 242);--info-border:oklch(84% .075 242);--lineage-solid:oklch(53.5% .17 295);--lineage-fg:oklch(100% 0 0);--lineage-text:oklch(47% .17 295);--lineage-soft:oklch(94.8% .028 295);--lineage-border:oklch(84% .075 295);--shadow-color:40 34 22;--shadow-ambient:.06;--shadow-direct:.08;--scroll-thumb:oklch(82% .012 88)}.dark{color-scheme:dark;--surface:oklch(18.7% .006 88);--surface-raised:oklch(23.2% .0075 88);--surface-sunken:oklch(14.8% .005 88);--surface-hover:oklch(24.5% .008 88);--surface-active:oklch(26.8% .009 88);--surface-selected:oklch(25.8% .01 88);--overlay:oklch(0% 0 0/.55);--overlay-strong:oklch(0% 0 0/.86);--text:oklch(93% .012 88);--text-muted:oklch(71.8% .015 88);--text-subtle:oklch(65.2% .016 88);--text-on-solid:oklch(100% 0 0);--border-subtle:oklch(28% .009 88);--border:oklch(33.5% .011 88);--border-strong:oklch(52.5% .014 88);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent-700));--accent-fg:oklch(100% 0 0);--accent-text:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){.dark{--accent-text:color-mix(in oklab, rgb(var(--accent)) 74%, white)}}.dark{--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){.dark{--accent-soft:color-mix(in oklab, rgb(var(--accent)) 16%, var(--surface))}}.dark{--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){.dark{--accent-border:color-mix(in oklab, rgb(var(--accent)) 45%, var(--surface))}}.dark{--success-solid:oklch(53.5% .1252 158);--success-fg:oklch(100% 0 0);--success-text:oklch(79% .1268 158);--success-soft:oklch(26% .05 158);--success-border:oklch(37% .07 158);--warn-solid:oklch(53.5% .1074 72);--warn-fg:oklch(100% 0 0);--warn-text:oklch(79% .13 72);--warn-soft:oklch(26% .05 72);--warn-border:oklch(37% .07 72);--danger-solid:oklch(53.5% .17 24);--danger-fg:oklch(100% 0 0);--danger-text:oklch(79% .1217 24);--danger-soft:oklch(26% .05 24);--danger-border:oklch(37% .07 24);--info-solid:oklch(53.5% .127 242);--info-fg:oklch(100% 0 0);--info-text:oklch(79% .1172 242);--info-soft:oklch(26% .05 242);--info-border:oklch(37% .07 242);--lineage-solid:oklch(53.5% .17 295);--lineage-fg:oklch(100% 0 0);--lineage-text:oklch(79% .1195 295);--lineage-soft:oklch(26% .05 295);--lineage-border:oklch(37% .07 295);--shadow-color:0 0 0;--shadow-ambient:.4;--shadow-direct:.5;--scroll-thumb:oklch(33.5% .011 88)}[data-theme=foundation]{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display:var(--font-sans);--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--font-prose:var(--font-sans)}[data-theme=foundation]:not(.dark){--accent:194 96 60;--accent-600:168 78 47;--accent-700:138 63 38;--surface:oklch(96.45% .0035 88);--surface-raised:oklch(99.6% .0015 88);--surface-sunken:oklch(93.3% .006 88);--surface-hover:oklch(94% .006 88);--surface-active:oklch(90.8% .008 88);--surface-selected:oklch(91.8% .009 88);--overlay:oklch(0% 0 0/.42);--overlay-strong:oklch(0% 0 0/.82);--text:oklch(22.5% .014 88);--text-muted:oklch(41.5% .017 88);--text-subtle:oklch(49.2% .018 88);--text-on-solid:oklch(100% 0 0);--border-subtle:oklch(90.5% .008 88);--border:oklch(82% .012 88);--border-strong:oklch(60.8% .015 88);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent-700));--accent-fg:oklch(100% 0 0);--accent-text:rgb(var(--accent-700));--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=foundation]:not(.dark){--accent-soft:color-mix(in oklab, rgb(var(--accent)) 10%, var(--surface-raised))}}[data-theme=foundation]:not(.dark){--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=foundation]:not(.dark){--accent-border:color-mix(in oklab, rgb(var(--accent)) 40%, var(--surface))}}[data-theme=foundation]:not(.dark){--success-solid:oklch(53.5% .1252 158);--success-fg:oklch(100% 0 0);--success-text:oklch(47% .11 158);--success-soft:oklch(94.8% .045 158);--success-border:oklch(84% .075 158);--warn-solid:oklch(53.5% .1074 72);--warn-fg:oklch(100% 0 0);--warn-text:oklch(47% .0955 72);--warn-soft:oklch(94.8% .0401 72);--warn-border:oklch(84% .075 72);--danger-solid:oklch(53.5% .17 24);--danger-fg:oklch(100% 0 0);--danger-text:oklch(47% .15 24);--danger-soft:oklch(94.8% .0262 24);--danger-border:oklch(84% .075 24);--info-solid:oklch(53.5% .127 242);--info-fg:oklch(100% 0 0);--info-text:oklch(47% .1116 242);--info-soft:oklch(94.8% .0276 242);--info-border:oklch(84% .075 242);--lineage-solid:oklch(53.5% .17 295);--lineage-fg:oklch(100% 0 0);--lineage-text:oklch(47% .17 295);--lineage-soft:oklch(94.8% .028 295);--lineage-border:oklch(84% .075 295);--shadow-color:40 34 22;--shadow-ambient:.06;--shadow-direct:.08;--scroll-thumb:oklch(82% .012 88)}[data-theme=foundation].dark{--accent:194 96 60;--accent-600:168 78 47;--accent-700:138 63 38;--surface:oklch(18.7% .006 88);--surface-raised:oklch(23.2% .0075 88);--surface-sunken:oklch(14.8% .005 88);--surface-hover:oklch(24.5% .008 88);--surface-active:oklch(26.8% .009 88);--surface-selected:oklch(25.8% .01 88);--overlay:oklch(0% 0 0/.55);--overlay-strong:oklch(0% 0 0/.86);--text:oklch(93% .012 88);--text-muted:oklch(71.8% .015 88);--text-subtle:oklch(65.2% .016 88);--text-on-solid:oklch(100% 0 0);--border-subtle:oklch(28% .009 88);--border:oklch(33.5% .011 88);--border-strong:oklch(52.5% .014 88);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent-700));--accent-fg:oklch(100% 0 0);--accent-text:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=foundation].dark{--accent-text:color-mix(in oklab, rgb(var(--accent)) 74%, white)}}[data-theme=foundation].dark{--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=foundation].dark{--accent-soft:color-mix(in oklab, rgb(var(--accent)) 16%, var(--surface))}}[data-theme=foundation].dark{--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=foundation].dark{--accent-border:color-mix(in oklab, rgb(var(--accent)) 45%, var(--surface))}}[data-theme=foundation].dark{--success-solid:oklch(53.5% .1252 158);--success-fg:oklch(100% 0 0);--success-text:oklch(79% .1268 158);--success-soft:oklch(26% .05 158);--success-border:oklch(37% .07 158);--warn-solid:oklch(53.5% .1074 72);--warn-fg:oklch(100% 0 0);--warn-text:oklch(79% .13 72);--warn-soft:oklch(26% .05 72);--warn-border:oklch(37% .07 72);--danger-solid:oklch(53.5% .17 24);--danger-fg:oklch(100% 0 0);--danger-text:oklch(79% .1217 24);--danger-soft:oklch(26% .05 24);--danger-border:oklch(37% .07 24);--info-solid:oklch(53.5% .127 242);--info-fg:oklch(100% 0 0);--info-text:oklch(79% .1172 242);--info-soft:oklch(26% .05 242);--info-border:oklch(37% .07 242);--lineage-solid:oklch(53.5% .17 295);--lineage-fg:oklch(100% 0 0);--lineage-text:oklch(79% .1195 295);--lineage-soft:oklch(26% .05 295);--lineage-border:oklch(37% .07 295);--shadow-color:0 0 0;--shadow-ambient:.4;--shadow-direct:.5;--scroll-thumb:oklch(33.5% .011 88)}@font-face{font-family:Alegreya;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/alegreya-latin.woff2)format("woff2")}@font-face{font-family:Alegreya;font-style:italic;font-weight:400 900;font-display:swap;src:url(/fonts/alegreya-latin-italic.woff2)format("woff2")}@font-face{font-family:Alegreya SC;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/alegreya-sc-latin-500.woff2)format("woff2")}@font-face{font-family:Alegreya SC;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/alegreya-sc-latin-700.woff2)format("woff2")}@font-face{font-family:Courier Prime;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/courier-prime-latin-400.woff2)format("woff2")}@font-face{font-family:Courier Prime;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/courier-prime-latin-700.woff2)format("woff2")}@font-face{font-family:Courier Prime;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/courier-prime-latin-italic.woff2)format("woff2")}[data-theme=parchment]{--font-sans:"Alegreya", ui-serif, Georgia, "Times New Roman", serif;--font-display:var(--font-sans);--font-prose:var(--font-sans);--font-mono:"Courier Prime", ui-monospace, SFMono-Regular, monospace;--text-3xs:.6875rem;--text-3xs--line-height:.9375rem;--text-2xs:.75rem;--text-2xs--line-height:1.0625rem;--text-xs:.8125rem;--text-xs--line-height:1.125rem;--text-sm:.9375rem;--text-sm--line-height:1.4375rem;--text-base--line-height:1.5625rem;--text-md:1.0625rem;--text-md--line-height:1.75rem;--radius-sm:.1875rem;--radius-md:.25rem;--radius-lg:.375rem;--radius-xl:.5rem;--radius-2xl:.625rem;--radius-3xl:.875rem;--parch-tick:20px;--parch-tick-v:10px;--parch-inset:5px;--parch-frame-image:linear-gradient(90deg, var(--parch-ink) 0 40%, transparent 100%), linear-gradient(180deg, var(--parch-ink) 0 40%, transparent 100%), linear-gradient(270deg, var(--parch-ink) 0 40%, transparent 100%), linear-gradient(180deg, var(--parch-ink) 0 40%, transparent 100%), linear-gradient(90deg, var(--parch-ink) 0 40%, transparent 100%), linear-gradient(0deg, var(--parch-ink) 0 40%, transparent 100%), linear-gradient(270deg, var(--parch-ink) 0 40%, transparent 100%), linear-gradient(0deg, var(--parch-ink) 0 40%, transparent 100%);--parch-frame-size:var(--parch-tick) 1px, 1px var(--parch-tick-v), var(--parch-tick) 1px, 1px var(--parch-tick-v), var(--parch-tick) 1px, 1px var(--parch-tick-v), var(--parch-tick) 1px, 1px var(--parch-tick-v);--parch-frame-pos:left var(--parch-inset) top var(--parch-inset), left var(--parch-inset) top var(--parch-inset), right var(--parch-inset) top var(--parch-inset), right var(--parch-inset) top var(--parch-inset), left var(--parch-inset) bottom var(--parch-inset), left var(--parch-inset) bottom var(--parch-inset), right var(--parch-inset) bottom var(--parch-inset), right var(--parch-inset) bottom var(--parch-inset);--parch-frame-repeat:no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;--parch-frame-blend:normal, normal, normal, normal, normal, normal, normal, normal;--parch-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='m' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='2' stitchTiles='stitch' seed='5'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='0.2349' intercept='0.8102'/%3E%3CfeFuncG type='linear' slope='0.2349' intercept='0.8102'/%3E%3CfeFuncB type='linear' slope='0.2349' intercept='0.8102'/%3E%3CfeFuncA type='linear' slope='0' intercept='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cfilter id='g' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.22 0.75' numOctaves='3' stitchTiles='stitch' seed='11'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='0.0959' intercept='0.9225'/%3E%3CfeFuncG type='linear' slope='0.0959' intercept='0.9225'/%3E%3CfeFuncB type='linear' slope='0.0959' intercept='0.9225'/%3E%3CfeFuncA type='linear' slope='0' intercept='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='320' filter='url(%23m)'/%3E%3Crect width='320' height='320' filter='url(%23g)' opacity='0.35'/%3E%3C/svg%3E");--parch-fibre:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='b' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.018' numOctaves='3' stitchTiles='stitch' seed='9'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='0.549' intercept='0.5586'/%3E%3CfeFuncG type='linear' slope='0.549' intercept='0.5586'/%3E%3CfeFuncB type='linear' slope='0.549' intercept='0.5586'/%3E%3CfeFuncA type='linear' slope='0' intercept='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.6' numOctaves='4' stitchTiles='stitch' seed='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='0.5051' intercept='0.5899'/%3E%3CfeFuncG type='linear' slope='0.5051' intercept='0.5899'/%3E%3CfeFuncB type='linear' slope='0.5051' intercept='0.5899'/%3E%3CfeFuncA type='linear' slope='0' intercept='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='320' filter='url(%23b)'/%3E%3Crect width='320' height='320' filter='url(%23f)' opacity='0.55'/%3E%3C/svg%3E")}[data-theme=parchment]:not(.dark){--accent:220 164 69;--accent-600:207 152 55;--accent-700:188 137 45;--surface:oklch(83.8% .048 80);--surface-raised:oklch(96.8% .03 88);--surface-sunken:oklch(91.2% .042 78);--surface-hover:oklch(93.2% .036 80);--surface-active:oklch(89.8% .042 76);--surface-selected:oklch(92.8% .036 78);--overlay:oklch(20% .05 40/.55);--overlay-strong:oklch(13% .035 40/.87);--text:oklch(30% .055 32);--text-muted:oklch(41.5% .05 30);--text-subtle:oklch(41.4% .042 34);--text-on-solid:oklch(97.5% .014 84);--border-subtle:oklch(80.8% .038 60);--border:oklch(68.8% .05 52);--border-strong:oklch(49% .055 45);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent));--accent-fg:oklch(25% .045 55);--accent-text:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment]:not(.dark){--accent-text:color-mix(in oklab, rgb(var(--accent)) 32%, oklch(20% .02 60))}}[data-theme=parchment]:not(.dark){--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment]:not(.dark){--accent-soft:color-mix(in oklab, rgb(var(--accent)) 16%, var(--surface-raised))}}[data-theme=parchment]:not(.dark){--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment]:not(.dark){--accent-border:color-mix(in oklab, rgb(var(--accent)) 55%, var(--surface))}}[data-theme=parchment]:not(.dark){--success-solid:oklch(47.5% .1 146);--success-fg:oklch(97.5% .014 84);--success-text:oklch(40% .095 146);--success-soft:oklch(93.2% .034 146);--success-border:oklch(83% .062 146);--warn-solid:oklch(54.5% .108 78);--warn-fg:oklch(97.5% .014 84);--warn-text:oklch(41.3% .084 78);--warn-soft:oklch(93.6% .045 82);--warn-border:oklch(82.8% .078 82);--danger-solid:oklch(50% .155 32);--danger-fg:oklch(97.5% .014 84);--danger-text:oklch(42.7% .15 32);--danger-soft:oklch(93% .032 32);--danger-border:oklch(82.8% .07 32);--info-solid:oklch(48% .095 245);--info-fg:oklch(97.5% .014 84);--info-text:oklch(40.8% .09 245);--info-soft:oklch(93.2% .03 245);--info-border:oklch(83% .055 245);--lineage-solid:oklch(48% .125 312);--lineage-fg:oklch(97.5% .014 84);--lineage-text:oklch(42.4% .12 312);--lineage-soft:oklch(93.2% .032 312);--lineage-border:oklch(83% .06 312);--shadow-color:76 50 28;--shadow-ambient:.16;--shadow-direct:.1;--scroll-thumb:oklch(70.2% .05 55);--parch-ink:oklch(44% .07 40);--parch-ink-soft:oklch(68.8% .05 52);--parch-texture-strength:.5;--parch-chrome:oklch(36% .088 8);--parch-chrome-raised:oklch(39% .088 8);--parch-chrome-sunken:oklch(32.5% .085 8);--parch-chrome-hover:oklch(40% .088 8);--parch-chrome-active:oklch(42.5% .088 8);--parch-chrome-text:oklch(95.8% .018 84);--parch-chrome-muted:oklch(80.8% .032 60);--parch-chrome-subtle:oklch(80.6% .036 55);--parch-chrome-edge:oklch(49% .078 10);--parch-chrome-edge-strong:oklch(66.5% .07 14);--parch-chrome-ink:oklch(62% .07 16);--parch-gilt:oklch(81.2% .11 82);--parch-gilt-lit:oklch(88.8% .09 88);--parch-gilt-deep:oklch(58% .1 74);--parch-gilt-mark:var(--parch-gilt-deep)}[data-theme=parchment].dark{--accent:229 172 76;--accent-600:215 159 66;--accent-700:197 144 56;--surface:oklch(23.5% .028 80);--surface-raised:oklch(32.5% .042 84);--surface-sunken:oklch(20% .024 78);--surface-hover:oklch(35.5% .042 84);--surface-active:oklch(38.5% .042 84);--surface-selected:oklch(37.8% .038 78);--overlay:oklch(8% .02 30/.66);--overlay-strong:oklch(5% .015 30/.9);--text:oklch(94% .03 84);--text-muted:oklch(78.2% .034 72);--text-subtle:oklch(77% .036 68);--text-on-solid:oklch(97.5% .014 84);--border-subtle:oklch(33% .026 78);--border:oklch(44% .034 78);--border-strong:oklch(63% .045 78);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent));--accent-fg:oklch(22% .04 55);--accent-text:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment].dark{--accent-text:color-mix(in oklab, rgb(var(--accent)) 85%, oklch(97% .03 80))}}[data-theme=parchment].dark{--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment].dark{--accent-soft:color-mix(in oklab, rgb(var(--accent)) 28%, var(--surface))}}[data-theme=parchment].dark{--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment].dark{--accent-border:color-mix(in oklab, rgb(var(--accent)) 54%, var(--surface))}}[data-theme=parchment].dark{--success-solid:oklch(50% .11 146);--success-fg:oklch(97.5% .014 84);--success-text:oklch(81.2% .115 146);--success-soft:oklch(31% .05 146);--success-border:oklch(41.5% .072 146);--warn-solid:oklch(64% .115 80);--warn-fg:oklch(15% .022 60);--warn-text:oklch(83% .125 82);--warn-soft:oklch(31% .05 82);--warn-border:oklch(41.5% .072 82);--danger-solid:oklch(54.5% .16 32);--danger-fg:oklch(97.5% .014 84);--danger-text:oklch(81% .105 32);--danger-soft:oklch(31% .05 32);--danger-border:oklch(41.5% .072 32);--info-solid:oklch(52% .1 245);--info-fg:oklch(97.5% .014 84);--info-text:oklch(81% .09 245);--info-soft:oklch(31% .048 245);--info-border:oklch(41.5% .068 245);--lineage-solid:oklch(52% .14 312);--lineage-fg:oklch(97.5% .014 84);--lineage-text:oklch(81% .115 312);--lineage-soft:oklch(31% .05 312);--lineage-border:oklch(41.5% .072 312);--shadow-color:0 0 0;--shadow-ambient:.5;--shadow-direct:.55;--scroll-thumb:oklch(44% .034 78);--parch-ink:oklch(64% .055 78);--parch-ink-soft:oklch(44% .034 78);--parch-texture-strength:.8;--parch-chrome:oklch(30.5% .078 10);--parch-chrome-raised:oklch(33.5% .078 10);--parch-chrome-sunken:oklch(27.2% .072 10);--parch-chrome-hover:oklch(34.5% .078 10);--parch-chrome-active:oklch(37.2% .078 10);--parch-chrome-text:oklch(94% .024 80);--parch-chrome-muted:oklch(79.8% .034 60);--parch-chrome-subtle:oklch(79.6% .036 55);--parch-chrome-edge:oklch(40% .06 12);--parch-chrome-edge-strong:oklch(63.2% .07 14);--parch-chrome-ink:oklch(55% .06 30);--parch-gilt:oklch(81% .11 82);--parch-gilt-lit:oklch(89.5% .088 88);--parch-gilt-deep:oklch(62% .1 72);--parch-gilt-mark:oklch(74% .11 78)}[data-theme=parchment] header.pt-safe{--surface:var(--parch-chrome);--surface-raised:var(--parch-chrome-raised);--surface-sunken:var(--parch-chrome-sunken);--surface-hover:var(--parch-chrome-hover);--surface-active:var(--parch-chrome-active);--surface-selected:var(--parch-chrome-active);--text:var(--parch-chrome-text);--text-muted:var(--parch-chrome-muted);--text-subtle:var(--parch-chrome-subtle);--border-subtle:var(--parch-chrome-edge);--border:var(--parch-chrome-edge);--border-strong:var(--parch-chrome-edge-strong);--parch-ink:var(--parch-chrome-ink);--accent-text:var(--parch-gilt);--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] header.pt-safe{--accent-soft:color-mix(in oklab, rgb(var(--accent)) 30%, var(--parch-chrome))}}[data-theme=parchment] header.pt-safe{--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] header.pt-safe{--accent-border:color-mix(in oklab, rgb(var(--accent)) 55%, var(--parch-chrome-edge))}}[data-theme=parchment] header.pt-safe{--scroll-thumb:var(--parch-chrome-edge-strong);--parch-gilt-mark:var(--parch-gilt);background-color:var(--parch-chrome);color:var(--parch-chrome-text);background-image:var(--parch-fibre);background-blend-mode:multiply;border-bottom:1px solid var(--parch-gilt-deep);box-shadow:inset 0 1px 0 var(--parch-chrome-edge-strong),0 3px 10px -3px rgb(var(--shadow-color) / .5)}[data-theme=parchment] aside{background-color:var(--surface-raised);background-image:var(--parch-frame-image),var(--parch-grain);background-size:var(--parch-frame-size),300px 300px;background-position:var(--parch-frame-pos),0 0;background-repeat:var(--parch-frame-repeat),repeat;background-blend-mode:var(--parch-frame-blend),multiply;border-right:1.5px solid var(--parch-ink)}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] aside{border-right:1.5px solid color-mix(in oklab,var(--parch-ink) 55%,var(--border))}}[data-theme=parchment] main{background-image:var(--parch-grain);background-blend-mode:multiply;background-color:var(--surface)}[data-theme=parchment] .card,[data-theme=parchment] .menu,[data-theme=parchment] .rounded-2xl.bg-surface-raised,[data-theme=parchment] .rounded-xl.bg-surface-raised,[data-theme=parchment] .rounded-2xl.border-edge,[data-theme=parchment] [role=dialog]{border-width:1.5px;border-color:var(--parch-ink)}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] .card,[data-theme=parchment] .menu,[data-theme=parchment] .rounded-2xl.bg-surface-raised,[data-theme=parchment] .rounded-xl.bg-surface-raised,[data-theme=parchment] .rounded-2xl.border-edge,[data-theme=parchment] [role=dialog]{border-color:color-mix(in oklab,var(--parch-ink) 55%,var(--border))}}[data-theme=parchment] .card,[data-theme=parchment] .menu,[data-theme=parchment] .rounded-2xl.bg-surface-raised,[data-theme=parchment] .rounded-xl.bg-surface-raised,[data-theme=parchment] .rounded-2xl.border-edge,[data-theme=parchment] [role=dialog]{background-image:var(--parch-frame-image),var(--parch-grain);background-size:var(--parch-frame-size),300px 300px;background-position:var(--parch-frame-pos),0 0;background-repeat:var(--parch-frame-repeat),repeat;background-blend-mode:var(--parch-frame-blend),multiply;box-shadow:0 1px 0 var(--parch-ink),0 3px 6px -2px rgb(var(--shadow-color) / .3),0 14px 26px -12px rgb(var(--shadow-color) / .34)}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] .card,[data-theme=parchment] .menu,[data-theme=parchment] .rounded-2xl.bg-surface-raised,[data-theme=parchment] .rounded-xl.bg-surface-raised,[data-theme=parchment] .rounded-2xl.border-edge,[data-theme=parchment] [role=dialog]{box-shadow:0 1px color-mix(in oklab,var(--parch-ink) 14%,transparent),0 3px 6px -2px rgb(var(--shadow-color) / .3),0 14px 26px -12px rgb(var(--shadow-color) / .34)}}[data-theme=parchment] .rounded-2xl.border-edge{background-color:var(--surface-raised)}[data-theme=parchment] .bg-surface-sunken{box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .22),inset 0 0 0 1px var(--parch-ink),inset 0 -1px #ffffff38}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] .bg-surface-sunken{box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .22),inset 0 0 0 1px color-mix(in oklab,var(--parch-ink) 26%,transparent),inset 0 -1px #ffffff38}}[data-theme=parchment] .btn-primary,[data-theme=parchment] .btn-ghost,[data-theme=parchment] .btn-danger{letter-spacing:.01em;border-radius:9999px;font-weight:600}[data-theme=parchment] .btn-ghost{box-shadow:inset 0 0 0 1.5px var(--parch-ink);background-color:#0000}[data-theme=parchment] .btn-ghost:hover{background-color:var(--surface-hover)}[data-theme=parchment] .btn-primary,[data-theme=parchment] .btn-danger{box-shadow:inset 0 0 0 3px var(--accent-solid),inset 0 0 0 4px var(--accent-fg),0 2px 5px -1px rgb(var(--shadow-color) / .45)}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] .btn-primary,[data-theme=parchment] .btn-danger{box-shadow:inset 0 0 0 3px var(--accent-solid),inset 0 0 0 4px color-mix(in oklab,var(--accent-fg) 42%,transparent),0 2px 5px -1px rgb(var(--shadow-color) / .45)}}[data-theme=parchment] .btn-danger{box-shadow:inset 0 0 0 3px var(--danger-solid),inset 0 0 0 4px var(--danger-fg),0 2px 5px -1px rgb(var(--shadow-color) / .45)}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] .btn-danger{box-shadow:inset 0 0 0 3px var(--danger-solid),inset 0 0 0 4px color-mix(in oklab,var(--danger-fg) 42%,transparent),0 2px 5px -1px rgb(var(--shadow-color) / .45)}}[data-theme=parchment] :is(input,textarea,select).rounded-lg{border-radius:var(--radius-md)}[data-theme=parchment] aside .bg-surface-selected{box-shadow:inset 0 1px 0 var(--parch-ink),inset 0 -1px 0 var(--parch-ink)}[data-theme=parchment] .border-b-2.border-accent{background-color:var(--surface-raised);border-color:var(--surface-raised);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:inset 1.5px 0 0 var(--border),inset -1.5px 0 0 var(--border),inset 0 1.5px 0 var(--border)}[data-theme=parchment] .rounded-full:is(.bg-accent-solid,.bg-danger-solid),[data-theme=parchment] .rounded-full:is(.bg-accent-soft,.bg-warn-soft){background-image:linear-gradient(180deg,var(--parch-gilt-lit) 0%,var(--parch-gilt) 52%,var(--parch-gilt-deep) 100%);color:#33160c;box-shadow:inset 0 0 0 1px var(--parch-gilt-deep),0 1px 2px #00000059;text-shadow:0 1px 0 var(--parch-gilt-lit)}@supports (color:color-mix(in lab,red,red)){[data-theme=parchment] .rounded-full:is(.bg-accent-solid,.bg-danger-solid),[data-theme=parchment] .rounded-full:is(.bg-accent-soft,.bg-warn-soft){text-shadow:0 1px 0 color-mix(in oklab,var(--parch-gilt-lit) 60%,transparent)}}[data-theme=parchment] svg.text-accent{color:var(--parch-gilt-mark)}[data-theme=parchment] main div.w-64.border-r{background-color:var(--surface);box-shadow:inset 9px 0 12px -9px rgb(var(--shadow-color) / .75),inset -9px 0 12px -9px rgb(var(--shadow-color) / .75),inset 0 8px 10px -9px rgb(var(--shadow-color) / .7)}[data-theme=parchment] :is(label,legend,h3,h4,div,span).uppercase,[data-theme=parchment] .field-label,[data-theme=parchment] .section-label{font-family:"Alegreya SC",var(--font-display);text-transform:none;letter-spacing:.015em;font-weight:500}[data-theme=parchment] :is(.text-2xs,.text-3xs).uppercase,[data-theme=parchment] .section-label{font-size:var(--text-xs)}[data-theme=parchment] p.leading-snug,[data-theme=parchment] p.text-fg-subtle,[data-theme=parchment] .prose-doc .md blockquote{font-style:italic}[data-theme=parchment] header.pt-safe :is(h1,h2){letter-spacing:.045em;font-weight:500}[data-theme=parchment]{font-variant-numeric:oldstyle-nums}[data-theme=parchment] .tabular{font-variant-numeric:tabular-nums lining-nums}[data-theme=parchment] :is(.font-mono,code,pre,input,textarea,select,.status-pill){font-variant-numeric:lining-nums}@font-face{font-family:Iosevka Terminal;font-style:normal;font-weight:100 500;font-display:swap;src:url(/fonts/iosevka-terminal-400.woff2)format("woff2")}@font-face{font-family:Iosevka Terminal;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/iosevka-terminal-700.woff2)format("woff2")}[data-theme=terminal]{--font-sans:"Iosevka Terminal", ui-monospace, SFMono-Regular, Menlo, monospace;--font-display:var(--font-sans);--font-mono:var(--font-sans);--font-prose:var(--font-sans);--radius-sm:0px;--radius-md:0px;--radius-lg:0px;--radius-xl:0px;--radius-2xl:0px;--radius-3xl:0px}[data-theme=terminal]:not(.dark){--accent:48 247 109;--accent-600:36 160 71;--accent-700:9 103 46;--surface:oklch(97.6% .005 105);--surface-raised:oklch(99.7% .002 105);--surface-sunken:oklch(91.8% .042 148);--surface-hover:oklch(93.8% .032 148);--surface-active:oklch(90% .048 148);--surface-selected:oklch(89.3% .058 148);--overlay:oklch(0% 0 0/.38);--overlay-strong:oklch(0% 0 0/.82);--text:oklch(23.5% .028 150);--text-muted:oklch(40.8% .032 150);--text-subtle:oklch(47.2% .034 150);--text-on-solid:oklch(99% .004 128);--border-subtle:oklch(88.2% .022 148);--border:oklch(78.2% .036 148);--border-strong:oklch(54.8% .058 150);--accent-color:rgb(var(--accent-600));--accent-solid:rgb(var(--accent-700));--accent-solid-hover:rgb(var(--accent-700))}@supports (color:color-mix(in lab,red,red)){[data-theme=terminal]:not(.dark){--accent-solid-hover:color-mix(in oklab, rgb(var(--accent-700)) 78%, black)}}[data-theme=terminal]:not(.dark){--accent-fg:oklch(99% .004 128);--accent-text:rgb(var(--accent-700));--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=terminal]:not(.dark){--accent-soft:color-mix(in oklab, rgb(var(--accent)) 24%, var(--surface-raised))}}[data-theme=terminal]:not(.dark){--accent-border:rgb(var(--accent-600))}@supports (color:color-mix(in lab,red,red)){[data-theme=terminal]:not(.dark){--accent-border:color-mix(in oklab, rgb(var(--accent-600)) 52%, var(--surface))}}[data-theme=terminal]:not(.dark){--success-solid:oklch(49% .128 148);--success-fg:oklch(99% .004 128);--success-text:oklch(43.5% .115 148);--success-soft:oklch(93.2% .048 148);--success-border:oklch(79% .085 148);--warn-solid:oklch(50% .102 78);--warn-fg:oklch(99% .004 128);--warn-text:oklch(45.5% .093 78);--warn-soft:oklch(93.8% .05 82);--warn-border:oklch(80% .09 80);--danger-solid:oklch(48.5% .175 27);--danger-fg:oklch(99% .004 128);--danger-text:oklch(45.5% .175 27);--danger-soft:oklch(93.6% .032 27);--danger-border:oklch(79% .09 27);--info-solid:oklch(48% .081 210);--info-fg:oklch(99% .004 128);--info-text:oklch(44.5% .075 210);--info-soft:oklch(93.4% .035 205);--info-border:oklch(79% .06 208);--lineage-solid:oklch(47.5% .175 330);--lineage-fg:oklch(99% .004 128);--lineage-text:oklch(45% .175 330);--lineage-soft:oklch(93.6% .032 330);--lineage-border:oklch(79% .075 330);--shadow-color:30 52 34;--shadow-ambient:.06;--shadow-direct:.07;--scroll-thumb:oklch(78.2% .036 148)}[data-theme=terminal].dark{--accent:48 247 109;--accent-600:36 160 71;--accent-700:9 103 46;--surface:oklch(15.8% .016 152);--surface-raised:oklch(19.6% .019 152);--surface-sunken:oklch(11.4% .013 152);--surface-hover:oklch(23.3% .024 152);--surface-active:oklch(27.2% .03 152);--surface-selected:oklch(26.2% .042 148);--overlay:oklch(0% 0 0/.66);--overlay-strong:oklch(0% 0 0/.9);--text:oklch(92.5% .042 150);--text-muted:oklch(77.5% .055 150);--text-subtle:oklch(69.2% .058 150);--text-on-solid:oklch(15% .02 150);--border-subtle:oklch(29.8% .032 152);--border:oklch(40.8% .055 152);--border-strong:oklch(60% .088 150);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent));--accent-solid-hover:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=terminal].dark{--accent-solid-hover:color-mix(in oklab, rgb(var(--accent)) 74%, white)}}[data-theme=terminal].dark{--accent-fg:oklch(15% .02 150);--accent-text:rgb(var(--accent));--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=terminal].dark{--accent-soft:color-mix(in oklab, rgb(var(--accent)) 15%, var(--surface))}}[data-theme=terminal].dark{--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=terminal].dark{--accent-border:color-mix(in oklab, rgb(var(--accent)) 45%, var(--surface))}}[data-theme=terminal].dark{--success-solid:oklch(80% .2 148);--success-fg:oklch(15% .02 150);--success-text:oklch(85.5% .19 148);--success-soft:oklch(24.8% .058 148);--success-border:oklch(40.5% .09 148);--warn-solid:oklch(84.5% .165 85);--warn-fg:oklch(15% .02 150);--warn-text:oklch(86.5% .145 85);--warn-soft:oklch(25.5% .05 85);--warn-border:oklch(42% .08 85);--danger-solid:oklch(70.5% .183 27);--danger-fg:oklch(15% .02 150);--danger-text:oklch(77.5% .13 27);--danger-soft:oklch(26.2% .072 27);--danger-border:oklch(42.5% .11 27);--info-solid:oklch(83% .125 200);--info-fg:oklch(15% .02 150);--info-text:oklch(86.5% .12 200);--info-soft:oklch(25.8% .043 200);--info-border:oklch(41.8% .07 200);--lineage-solid:oklch(75.5% .185 330);--lineage-fg:oklch(15% .02 150);--lineage-text:oklch(80.5% .17 330);--lineage-soft:oklch(26.8% .072 330);--lineage-border:oklch(43.2% .11 330);--shadow-color:48 247 109;--shadow-ambient:.14;--shadow-direct:.07;--scroll-thumb:oklch(40.8% .055 152)}[data-theme=terminal] ::selection{background:var(--accent-color);color:var(--accent-fg)}[data-theme=terminal] :is(input,textarea){caret-color:var(--accent-color);caret-shape:block}[data-theme=terminal] .border.bg-surface-raised,[data-theme=terminal] .border.bg-surface-sunken{--tick:7px;background-image:linear-gradient(to right,var(--border-strong) 0 var(--tick),transparent var(--tick)),linear-gradient(to bottom,var(--border-strong) 0 var(--tick),transparent var(--tick)),linear-gradient(to left,var(--border-strong) 0 var(--tick),transparent var(--tick)),linear-gradient(to bottom,var(--border-strong) 0 var(--tick),transparent var(--tick)),linear-gradient(to right,var(--border-strong) 0 var(--tick),transparent var(--tick)),linear-gradient(to top,var(--border-strong) 0 var(--tick),transparent var(--tick)),linear-gradient(to left,var(--border-strong) 0 var(--tick),transparent var(--tick)),linear-gradient(to top,var(--border-strong) 0 var(--tick),transparent var(--tick));background-repeat:no-repeat;background-size:var(--tick) 1px,1px var(--tick),var(--tick) 1px,1px var(--tick),var(--tick) 1px,1px var(--tick),var(--tick) 1px,1px var(--tick);background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%}[data-theme=terminal].dark .text-accent{text-shadow:0 0 7px var(--accent-color)}@supports (color:color-mix(in lab,red,red)){[data-theme=terminal].dark .text-accent{text-shadow:0 0 7px color-mix(in oklab,var(--accent-color) 38%,transparent)}}[data-theme=scifi]{--font-sans:"Saira", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display:var(--font-sans);--font-mono:"Martian Mono", ui-monospace, SFMono-Regular, monospace;--font-prose:var(--font-sans);--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-xl:0;--radius-2xl:0;--radius-3xl:0}[data-theme=scifi]:not(.dark){--accent:0 151 172;--accent-600:0 185 210;--accent-700:0 99 114;--surface:oklch(95.5% .012 232);--surface-raised:oklch(99.6% .002 235);--surface-sunken:oklch(91.8% .016 232);--surface-hover:oklch(93.4% .015 230);--surface-active:oklch(90.2% .018 228);--surface-selected:oklch(89.6% .03 216);--overlay:oklch(28% .03 240/.34);--overlay-strong:oklch(12% .02 240/.82);--text:oklch(20% .03 245);--text-muted:oklch(40% .03 242);--text-subtle:oklch(46.8% .03 240);--text-on-solid:oklch(17% .025 240);--border-subtle:oklch(84.5% .016 232);--border:oklch(71% .026 230);--border-strong:oklch(52% .03 230);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent-600))}@supports (color:color-mix(in lab,red,red)){[data-theme=scifi]:not(.dark){--accent-solid-hover:color-mix(in oklab, rgb(var(--accent-600)) 78%, white)}}[data-theme=scifi]:not(.dark){--accent-fg:oklch(17% .025 240);--accent-text:rgb(var(--accent-700));--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=scifi]:not(.dark){--accent-soft:color-mix(in oklab, rgb(var(--accent)) 14%, var(--surface-raised))}}[data-theme=scifi]:not(.dark){--accent-border:rgb(var(--accent-700))}@supports (color:color-mix(in lab,red,red)){[data-theme=scifi]:not(.dark){--accent-border:color-mix(in oklab, rgb(var(--accent-700)) 45%, var(--surface))}}[data-theme=scifi]:not(.dark){--success-solid:oklch(52.5% .1382 152);--success-fg:oklch(100% 0 0);--success-text:oklch(45.5% .1195 152);--success-soft:oklch(94.5% .045 152);--success-border:oklch(82% .085 152);--warn-solid:oklch(52.5% .1085 80);--warn-fg:oklch(100% 0 0);--warn-text:oklch(45.5% .0944 80);--warn-soft:oklch(94.5% .045 80);--warn-border:oklch(82% .085 80);--danger-solid:oklch(52.5% .17 27);--danger-fg:oklch(100% 0 0);--danger-text:oklch(45.5% .15 27);--danger-soft:oklch(94.5% .028 27);--danger-border:oklch(82% .085 27);--info-solid:oklch(52.5% .1072 232);--info-fg:oklch(100% 0 0);--info-text:oklch(45.5% .0925 232);--info-soft:oklch(94.5% .032 232);--info-border:oklch(82% .085 232);--lineage-solid:oklch(52.5% .17 295);--lineage-fg:oklch(100% 0 0);--lineage-text:oklch(45.5% .15 295);--lineage-soft:oklch(94.5% .029 295);--lineage-border:oklch(82% .085 295);--shadow-color:24 44 66;--shadow-ambient:.06;--shadow-direct:.07;--scroll-thumb:oklch(74% .024 230)}[data-theme=scifi].dark{--accent:0 213 242;--accent-600:0 185 210;--accent-700:0 99 114;--surface:oklch(15% .019 240);--surface-raised:oklch(19.6% .022 240);--surface-sunken:oklch(10.8% .016 240);--surface-hover:oklch(23.5% .026 236);--surface-active:oklch(27.2% .03 232);--surface-selected:oklch(26.2% .038 222);--overlay:oklch(5% .02 240/.72);--overlay-strong:oklch(3% .015 240/.9);--text:oklch(95.5% .012 220);--text-muted:oklch(81.5% .02 222);--text-subtle:oklch(71.5% .024 224);--text-on-solid:oklch(17% .025 240);--border-subtle:oklch(25.5% .028 232);--border:oklch(39.5% .045 218);--border-strong:oklch(61.5% .06 210);--accent-color:rgb(var(--accent));--accent-solid:rgb(var(--accent-600));--accent-solid-hover:rgb(var(--accent-600))}@supports (color:color-mix(in lab,red,red)){[data-theme=scifi].dark{--accent-solid-hover:color-mix(in oklab, rgb(var(--accent-600)) 78%, white)}}[data-theme=scifi].dark{--accent-fg:oklch(17% .025 240);--accent-text:rgb(var(--accent-600));--accent-soft:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=scifi].dark{--accent-soft:color-mix(in oklab, rgb(var(--accent)) 14%, var(--surface))}}[data-theme=scifi].dark{--accent-border:rgb(var(--accent))}@supports (color:color-mix(in lab,red,red)){[data-theme=scifi].dark{--accent-border:color-mix(in oklab, rgb(var(--accent)) 42%, var(--surface))}}[data-theme=scifi].dark{--success-solid:oklch(70% .1842 152);--success-fg:oklch(17% .025 240);--success-text:oklch(83% .15 152);--success-soft:oklch(23.5% .055 152);--success-border:oklch(40% .09 152);--warn-solid:oklch(79% .163 80);--warn-fg:oklch(17% .025 240);--warn-text:oklch(83% .15 80);--warn-soft:oklch(23.5% .048 80);--warn-border:oklch(40% .082 80);--danger-solid:oklch(64.5% .22 27);--danger-fg:oklch(17% .025 240);--danger-text:oklch(83% .0945 27);--danger-soft:oklch(23.5% .055 27);--danger-border:oklch(40% .09 27);--info-solid:oklch(70% .142 232);--info-fg:oklch(17% .025 240);--info-text:oklch(83% .103 232);--info-soft:oklch(23.5% .047 232);--info-border:oklch(40% .08 232);--lineage-solid:oklch(65.5% .207 295);--lineage-fg:oklch(17% .025 240);--lineage-text:oklch(83% .095 295);--lineage-soft:oklch(23.5% .055 295);--lineage-border:oklch(40% .09 295);--shadow-color:0 4 10;--shadow-ambient:.55;--shadow-direct:.7;--scroll-thumb:oklch(36% .04 220)}[data-theme=scifi] .field-label,[data-theme=scifi] .section-label{font-size:var(--text-3xs);letter-spacing:.2em;color:var(--text-subtle);font-weight:600;font-stretch:82%}[data-theme=scifi] .status-pill,[data-theme=scifi] .tag{letter-spacing:.11em;text-transform:uppercase;border-radius:0;font-stretch:87.5%}[data-theme=scifi] .tabular{font-family:var(--font-mono);letter-spacing:.01em;font-stretch:87.5%}[data-theme=scifi] .font-mono,[data-theme=scifi] code,[data-theme=scifi] pre,[data-theme=scifi] kbd,[data-theme=scifi] samp{font-stretch:87.5%}[data-theme=scifi] body{font-variant-numeric:tabular-nums}[data-theme=scifi] :is(h1,h2){letter-spacing:.005em;font-weight:500}[data-theme=scifi] .btn-primary{box-shadow:0 0 0 1px rgb(var(--accent) / .4),0 0 18px -6px rgb(var(--accent) / .65)}[data-theme=scifi] .btn-primary:hover{box-shadow:0 0 0 1px rgb(var(--accent) / .6),0 0 22px -4px rgb(var(--accent) / .85)}[data-theme=scifi] .focus-ring{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-accent),0 0 12px rgb(var(--accent) / .45)}[data-theme=scifi] .streaming-caret:after{text-shadow:0 0 8px rgb(var(--accent) / .7)}[data-theme=scifi]:not(.dark) .btn-primary,[data-theme=scifi]:not(.dark) .btn-primary:hover{box-shadow:0 0 0 1px rgb(var(--accent-700) / .55)}[data-theme=scifi]:not(.dark) .focus-ring{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-accent)}[data-theme=scifi]:not(.dark) .streaming-caret:after{text-shadow:none}:root{--duration-fast:.12s;--duration-base:.18s;--duration-slow:.3s}@media (hover:hover){@container not (min-width:226px){.chat-row--actions-6:hover .chat-row-time{opacity:0}}@container not (min-width:252px){.chat-row--actions-7:hover .chat-row-time{opacity:0}}@container not (min-width:278px){.chat-row--actions-8:hover .chat-row-time{opacity:0}}}.hljs{color:var(--text-muted)}.hljs-comment,.hljs-quote{color:var(--text-subtle);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-operator{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--accent-text)}.hljs-literal,.hljs-number,.hljs-symbol,.hljs-bullet{color:var(--warn-text)}.hljs-string,.hljs-regexp,.hljs-meta .hljs-string{color:var(--success-text)}.hljs-built_in,.hljs-type,.hljs-class .hljs-title{color:var(--info-text)}.hljs-title,.hljs-title.function_,.hljs-function .hljs-title,.hljs-section{color:var(--lineage-text)}.hljs-variable,.hljs-template-variable,.hljs-params{color:var(--text-muted)}.hljs-attr,.hljs-attribute,.hljs-property{color:var(--info-text)}.hljs-name,.hljs-tag{color:var(--danger-text)}.hljs-meta,.hljs-punctuation{color:var(--text-subtle)}.hljs-emphasis{font-style:italic}.hljs-strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.hljs-deletion{color:var(--danger-text)}.hljs-addition{color:var(--success-text)}@keyframes spin-eco{to{transform:rotate(1turn)}}@keyframes caret-blink{0%,49.9%{opacity:1}50%,to{opacity:0}}@keyframes subagent-reveal{0%,to{box-shadow:0 0 rgb(var(--accent) / 0);background-color:rgb(var(--accent) / .06)}20%,60%{box-shadow:0 0 0 3px rgb(var(--accent) / .35);background-color:rgb(var(--accent) / .16)}}@media (prefers-reduced-motion:reduce){.spin-eco,.streaming-caret:after,.animate-spin,.animate-ping,.animate-pulse,.animate-bounce,.animate-scale-in,.animate-fade-in{animation:none!important}.streaming-caret:after{opacity:1}*,:before,:after{transition-duration:.01ms!important}}[data-tab-hidden=true] .spin-eco,[data-tab-hidden=true] .streaming-caret:after{animation-play-state:paused}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes scale-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}