@ai-coders/installer 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +18 -0
  3. package/README.md +64 -0
  4. package/dist/callback-page.d.ts +11 -0
  5. package/dist/callback-page.js +230 -0
  6. package/dist/callback-page.js.map +1 -0
  7. package/dist/clerk-auth.d.ts +18 -0
  8. package/dist/clerk-auth.js +296 -0
  9. package/dist/clerk-auth.js.map +1 -0
  10. package/dist/cli-command.d.ts +10 -0
  11. package/dist/cli-command.js +17 -0
  12. package/dist/cli-command.js.map +1 -0
  13. package/dist/cli.d.ts +2 -0
  14. package/dist/cli.js +84 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/i18n.d.ts +52 -0
  17. package/dist/i18n.js +163 -0
  18. package/dist/i18n.js.map +1 -0
  19. package/dist/product-manifest.d.ts +43 -0
  20. package/dist/product-manifest.js +140 -0
  21. package/dist/product-manifest.js.map +1 -0
  22. package/dist/products/second-brain/apply.d.ts +86 -0
  23. package/dist/products/second-brain/apply.js +277 -0
  24. package/dist/products/second-brain/apply.js.map +1 -0
  25. package/dist/products/second-brain/bearer.d.ts +29 -0
  26. package/dist/products/second-brain/bearer.js +78 -0
  27. package/dist/products/second-brain/bearer.js.map +1 -0
  28. package/dist/products/second-brain/bootstrap.d.ts +33 -0
  29. package/dist/products/second-brain/bootstrap.js +39 -0
  30. package/dist/products/second-brain/bootstrap.js.map +1 -0
  31. package/dist/products/second-brain/envfile.d.ts +35 -0
  32. package/dist/products/second-brain/envfile.js +136 -0
  33. package/dist/products/second-brain/envfile.js.map +1 -0
  34. package/dist/products/second-brain/github.d.ts +77 -0
  35. package/dist/products/second-brain/github.js +195 -0
  36. package/dist/products/second-brain/github.js.map +1 -0
  37. package/dist/products/second-brain/hostinger.d.ts +140 -0
  38. package/dist/products/second-brain/hostinger.js +607 -0
  39. package/dist/products/second-brain/hostinger.js.map +1 -0
  40. package/dist/products/second-brain/i18n.d.ts +887 -0
  41. package/dist/products/second-brain/i18n.js +587 -0
  42. package/dist/products/second-brain/i18n.js.map +1 -0
  43. package/dist/products/second-brain/keys.d.ts +5 -0
  44. package/dist/products/second-brain/keys.js +16 -0
  45. package/dist/products/second-brain/keys.js.map +1 -0
  46. package/dist/products/second-brain/main.d.ts +3 -0
  47. package/dist/products/second-brain/main.js +78 -0
  48. package/dist/products/second-brain/main.js.map +1 -0
  49. package/dist/products/second-brain/ports.d.ts +34 -0
  50. package/dist/products/second-brain/ports.js +77 -0
  51. package/dist/products/second-brain/ports.js.map +1 -0
  52. package/dist/products/second-brain/recovery.d.ts +50 -0
  53. package/dist/products/second-brain/recovery.js +96 -0
  54. package/dist/products/second-brain/recovery.js.map +1 -0
  55. package/dist/products/second-brain/sealed-box.d.ts +1 -0
  56. package/dist/products/second-brain/sealed-box.js +11 -0
  57. package/dist/products/second-brain/sealed-box.js.map +1 -0
  58. package/dist/products/second-brain/server.d.ts +143 -0
  59. package/dist/products/second-brain/server.js +280 -0
  60. package/dist/products/second-brain/server.js.map +1 -0
  61. package/dist/products/second-brain/service.d.ts +26 -0
  62. package/dist/products/second-brain/service.js +806 -0
  63. package/dist/products/second-brain/service.js.map +1 -0
  64. package/dist/products/second-brain/ssh.d.ts +35 -0
  65. package/dist/products/second-brain/ssh.js +140 -0
  66. package/dist/products/second-brain/ssh.js.map +1 -0
  67. package/dist/products/second-brain/state.d.ts +27 -0
  68. package/dist/products/second-brain/state.js +60 -0
  69. package/dist/products/second-brain/state.js.map +1 -0
  70. package/dist/products/second-brain/ui/assets/index-BoXpakUt.css +2 -0
  71. package/dist/products/second-brain/ui/assets/index-MgfOpW_R.js +66 -0
  72. package/dist/products/second-brain/ui/index.html +15 -0
  73. package/dist/products/second-brain/verify.d.ts +23 -0
  74. package/dist/products/second-brain/verify.js +59 -0
  75. package/dist/products/second-brain/verify.js.map +1 -0
  76. package/dist/products/severino/apply.d.ts +87 -0
  77. package/dist/products/severino/apply.js +250 -0
  78. package/dist/products/severino/apply.js.map +1 -0
  79. package/dist/products/severino/domain.d.ts +6 -0
  80. package/dist/products/severino/domain.js +20 -0
  81. package/dist/products/severino/domain.js.map +1 -0
  82. package/dist/products/severino/envfile.d.ts +20 -0
  83. package/dist/products/severino/envfile.js +89 -0
  84. package/dist/products/severino/envfile.js.map +1 -0
  85. package/dist/products/severino/github.d.ts +77 -0
  86. package/dist/products/severino/github.js +195 -0
  87. package/dist/products/severino/github.js.map +1 -0
  88. package/dist/products/severino/hostinger.d.ts +140 -0
  89. package/dist/products/severino/hostinger.js +607 -0
  90. package/dist/products/severino/hostinger.js.map +1 -0
  91. package/dist/products/severino/i18n.d.ts +887 -0
  92. package/dist/products/severino/i18n.js +587 -0
  93. package/dist/products/severino/i18n.js.map +1 -0
  94. package/dist/products/severino/keys.d.ts +5 -0
  95. package/dist/products/severino/keys.js +16 -0
  96. package/dist/products/severino/keys.js.map +1 -0
  97. package/dist/products/severino/main.d.ts +3 -0
  98. package/dist/products/severino/main.js +78 -0
  99. package/dist/products/severino/main.js.map +1 -0
  100. package/dist/products/severino/recovery.d.ts +50 -0
  101. package/dist/products/severino/recovery.js +96 -0
  102. package/dist/products/severino/recovery.js.map +1 -0
  103. package/dist/products/severino/sealed-box.d.ts +1 -0
  104. package/dist/products/severino/sealed-box.js +11 -0
  105. package/dist/products/severino/sealed-box.js.map +1 -0
  106. package/dist/products/severino/server.d.ts +123 -0
  107. package/dist/products/severino/server.js +274 -0
  108. package/dist/products/severino/server.js.map +1 -0
  109. package/dist/products/severino/service.d.ts +28 -0
  110. package/dist/products/severino/service.js +752 -0
  111. package/dist/products/severino/service.js.map +1 -0
  112. package/dist/products/severino/slack-manifest.d.ts +3 -0
  113. package/dist/products/severino/slack-manifest.js +45 -0
  114. package/dist/products/severino/slack-manifest.js.map +1 -0
  115. package/dist/products/severino/ssh.d.ts +35 -0
  116. package/dist/products/severino/ssh.js +140 -0
  117. package/dist/products/severino/ssh.js.map +1 -0
  118. package/dist/products/severino/state.d.ts +26 -0
  119. package/dist/products/severino/state.js +61 -0
  120. package/dist/products/severino/state.js.map +1 -0
  121. package/dist/products/severino/ui/assets/index-7S8Hl4jq.js +96 -0
  122. package/dist/products/severino/ui/assets/index-D5kql1Bh.css +2 -0
  123. package/dist/products/severino/ui/index.html +15 -0
  124. package/dist/products/severino/verify.d.ts +22 -0
  125. package/dist/products/severino/verify.js +149 -0
  126. package/dist/products/severino/verify.js.map +1 -0
  127. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../packages/second-brain/src/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export declare function shellQuote(value: string): string;
2
+ export declare function buildAuthorizedKeysCommand(publicKey: string): string;
3
+ export type SshCredentials = {
4
+ readonly host: string;
5
+ readonly port: number;
6
+ readonly username: string;
7
+ readonly auth: {
8
+ readonly kind: "password";
9
+ readonly password: string;
10
+ } | {
11
+ readonly kind: "key";
12
+ readonly privateKey: string;
13
+ };
14
+ };
15
+ export interface SshCommandResult {
16
+ readonly code: number;
17
+ readonly stdout: string;
18
+ readonly stderr: string;
19
+ }
20
+ export declare class SshSession {
21
+ private readonly client;
22
+ private constructor();
23
+ static connect(credentials: SshCredentials): Promise<SshSession>;
24
+ /**
25
+ * Runs one remote command. `input` is written to the command's standard
26
+ * input and the stream is then closed, which is how a secret reaches the
27
+ * remote process without ever appearing in the command line. Commands that
28
+ * pass no input keep the stream untouched, as before.
29
+ */
30
+ exec(command: string, input?: string): Promise<SshCommandResult>;
31
+ private sftp;
32
+ readFileIfExists(path: string): Promise<string | null>;
33
+ writeFile(path: string, content: string | Buffer, mode?: number): Promise<void>;
34
+ close(): void;
35
+ }
@@ -0,0 +1,140 @@
1
+ /**
2
+ * SSH access for the installer. The pure helpers (quoting, authorized_keys
3
+ * command) are unit-tested; SshSession is a thin ssh2 wrapper verified only
4
+ * end-to-end against a real VPS.
5
+ */
6
+ import ssh2 from "ssh2";
7
+ export function shellQuote(value) {
8
+ if (value.includes("\0") || value.includes("\n") || value.includes("\r")) {
9
+ throw new Error("The value must not contain line breaks.");
10
+ }
11
+ return `'${value.replaceAll("'", `'\\''`)}'`;
12
+ }
13
+ export function buildAuthorizedKeysCommand(publicKey) {
14
+ const key = shellQuote(publicKey.trim());
15
+ return [
16
+ "mkdir -p ~/.ssh",
17
+ "chmod 700 ~/.ssh",
18
+ "touch ~/.ssh/authorized_keys",
19
+ `grep -qxF ${key} ~/.ssh/authorized_keys || printf '%s\\n' ${key} >> ~/.ssh/authorized_keys`,
20
+ "chmod 600 ~/.ssh/authorized_keys",
21
+ ].join(" && ");
22
+ }
23
+ export class SshSession {
24
+ client;
25
+ constructor(client) {
26
+ this.client = client;
27
+ }
28
+ static connect(credentials) {
29
+ const client = new ssh2.Client();
30
+ return new Promise((resolve, reject) => {
31
+ client.on("ready", () => resolve(new SshSession(client)));
32
+ client.on("error", (error) => {
33
+ const message = String(error.message ?? error);
34
+ if (/authentication/i.test(message)) {
35
+ reject(new Error("The server refused the credentials."));
36
+ }
37
+ else if (/ECONNREFUSED|EHOSTUNREACH|ENOTFOUND|ETIMEDOUT|timed? ?out/i.test(message)) {
38
+ reject(new Error("The server could not be reached."));
39
+ }
40
+ else {
41
+ reject(new Error(`SSH connection failed: ${message}`));
42
+ }
43
+ });
44
+ client.connect({
45
+ host: credentials.host,
46
+ port: credentials.port,
47
+ username: credentials.username,
48
+ readyTimeout: 15_000,
49
+ keepaliveInterval: 10_000,
50
+ ...(credentials.auth.kind === "password"
51
+ ? { password: credentials.auth.password }
52
+ : { privateKey: credentials.auth.privateKey }),
53
+ });
54
+ });
55
+ }
56
+ /**
57
+ * Runs one remote command. `input` is written to the command's standard
58
+ * input and the stream is then closed, which is how a secret reaches the
59
+ * remote process without ever appearing in the command line. Commands that
60
+ * pass no input keep the stream untouched, as before.
61
+ */
62
+ exec(command, input) {
63
+ return new Promise((resolve, reject) => {
64
+ this.client.exec(command, (error, stream) => {
65
+ if (error) {
66
+ reject(error);
67
+ return;
68
+ }
69
+ let stdout = "";
70
+ let stderr = "";
71
+ stream.on("data", (chunk) => {
72
+ stdout += chunk.toString("utf8");
73
+ });
74
+ stream.stderr.on("data", (chunk) => {
75
+ stderr += chunk.toString("utf8");
76
+ });
77
+ stream.on("close", (code) => {
78
+ resolve({ code: code ?? 1, stdout, stderr });
79
+ });
80
+ if (input !== undefined)
81
+ stream.end(input);
82
+ });
83
+ });
84
+ }
85
+ sftp() {
86
+ return new Promise((resolve, reject) => {
87
+ this.client.sftp((error, sftp) => {
88
+ if (error)
89
+ reject(error);
90
+ else
91
+ resolve(sftp);
92
+ });
93
+ });
94
+ }
95
+ async readFileIfExists(path) {
96
+ const sftp = await this.sftp();
97
+ return new Promise((resolve, reject) => {
98
+ sftp.readFile(path, (error, contents) => {
99
+ if (error) {
100
+ // Only a genuine "no such file" may report absence. Any other
101
+ // failure must surface: treating it as absence would make the
102
+ // installer regenerate the database password over a live volume.
103
+ const code = error.code;
104
+ const message = String(error.message ?? error);
105
+ if (code === 2 || /no such file/i.test(message))
106
+ resolve(null);
107
+ else
108
+ reject(error instanceof Error ? error : new Error(message));
109
+ }
110
+ else {
111
+ resolve(contents.toString("utf8"));
112
+ }
113
+ });
114
+ });
115
+ }
116
+ async writeFile(path, content, mode = 0o600) {
117
+ const sftp = await this.sftp();
118
+ const data = typeof content === "string" ? Buffer.from(content, "utf8") : content;
119
+ await new Promise((resolve, reject) => {
120
+ sftp.writeFile(path, data, { mode }, (error) => {
121
+ if (error)
122
+ reject(error);
123
+ else
124
+ resolve();
125
+ });
126
+ });
127
+ await new Promise((resolve, reject) => {
128
+ sftp.chmod(path, mode, (error) => {
129
+ if (error)
130
+ reject(error);
131
+ else
132
+ resolve();
133
+ });
134
+ });
135
+ }
136
+ close() {
137
+ this.client.end();
138
+ }
139
+ }
140
+ //# sourceMappingURL=ssh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../packages/second-brain/src/ssh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { InstallerLanguage } from "./i18n.js";
2
+ export declare const stateFileName = ".installer-state.json";
3
+ export interface InstallerState {
4
+ readonly version: 1;
5
+ readonly language: InstallerLanguage;
6
+ readonly repository?: {
7
+ readonly owner: string;
8
+ readonly repo: string;
9
+ };
10
+ readonly githubToken?: string;
11
+ readonly vps: {
12
+ readonly host: string;
13
+ readonly port: number;
14
+ readonly username: string;
15
+ };
16
+ readonly deployKey: {
17
+ readonly publicKey: string;
18
+ readonly privateKey: string;
19
+ };
20
+ readonly domain: string;
21
+ readonly ownerEmail?: string;
22
+ readonly installedAt: string;
23
+ readonly updatedAt: string;
24
+ }
25
+ export declare function loadState(path: string): Promise<InstallerState | null>;
26
+ export declare function saveState(path: string, state: InstallerState): Promise<void>;
27
+ export declare function deleteState(path: string): Promise<void>;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Installer state persisted at the repo root (gitignored). Holds the GitHub
3
+ * token and the deploy private key, so the file is written with mode 0600.
4
+ * Never stores the owner password, the OpenRouter key, or the VPS root
5
+ * password.
6
+ */
7
+ import { chmod, readFile, rm, writeFile } from "node:fs/promises";
8
+ export const stateFileName = ".installer-state.json";
9
+ export async function loadState(path) {
10
+ let raw;
11
+ try {
12
+ raw = await readFile(path, "utf8");
13
+ }
14
+ catch {
15
+ return null;
16
+ }
17
+ try {
18
+ const parsed = JSON.parse(raw);
19
+ if (parsed.version !== 1)
20
+ return null;
21
+ return parsed;
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ export async function saveState(path, state) {
28
+ // Runtime objects can carry properties that TypeScript does not know about.
29
+ // Encode the persistence contract explicitly so an accidental object spread
30
+ // can never write transient API tokens, passwords, or confirmation handles.
31
+ const persisted = {
32
+ version: 1,
33
+ language: state.language,
34
+ ...(state.repository === undefined ? {} : { repository: state.repository }),
35
+ ...(state.githubToken === undefined ? {} : { githubToken: state.githubToken }),
36
+ vps: {
37
+ host: state.vps.host,
38
+ port: state.vps.port,
39
+ username: state.vps.username,
40
+ },
41
+ deployKey: {
42
+ publicKey: state.deployKey.publicKey,
43
+ privateKey: state.deployKey.privateKey,
44
+ },
45
+ domain: state.domain,
46
+ ...(state.ownerEmail === undefined ? {} : { ownerEmail: state.ownerEmail }),
47
+ installedAt: state.installedAt,
48
+ updatedAt: state.updatedAt,
49
+ };
50
+ await writeFile(path, `${JSON.stringify(persisted, null, 2)}\n`, {
51
+ mode: 0o600,
52
+ });
53
+ // The mode option only applies when the file is created; re-saving over an
54
+ // existing file needs an explicit chmod.
55
+ await chmod(path, 0o600);
56
+ }
57
+ export async function deleteState(path) {
58
+ await rm(path, { force: true });
59
+ }
60
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../packages/second-brain/src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlE,MAAM,CAAC,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAsBrD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;QACxD,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,MAAwB,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAY,EACZ,KAAqB;IAErB,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,SAAS,GAAmB;QAChC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9E,GAAG,EAAE;YACH,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACpB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACpB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ;SAC7B;QACD,SAAS,EAAE;YACT,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS;YACpC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU;SACvC;QACD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;IACF,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QAC/D,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,2EAA2E;IAC3E,yCAAyC;IACzC,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-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-content:"";--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-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:Geist, Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--default-mono-font-family:ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.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}.inset-0{inset:0}.top-1\/2{top:50%}.top-3\.5{top:calc(var(--spacing) * 3.5)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.left-1\/2{left:50%}.z-10{z-index:10}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-2{grid-row-start:2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.-mt-2{margin-top:calc(var(--spacing) * -2)}.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-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mr-1{margin-right:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.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)}.ml-2{margin-left:calc(var(--spacing) * 2)}.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}.aspect-square{aspect-ratio:1}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-\[74px\]{width:74px;height:74px}.h-2{height:calc(var(--spacing) * 2)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-auto{height:auto}.h-full{height:100%}.min-h-56{min-height:calc(var(--spacing) * 56)}.w-\[178px\]{width:178px}.w-\[min\(calc\(100\%-2rem\)\,31rem\)\]{width:min(100% - 2rem,31rem)}.w-fit{width:fit-content}.w-full{width:100%}.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-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-\[42rem\]{min-width:42rem}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.list-decimal{list-style-type:decimal}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-columns:auto minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_7\.25rem\]{grid-template-columns:minmax(0,1fr) 7.25rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.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}.justify-items-center{justify-items:center}.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-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}: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)))}.gap-x-2\.5{column-gap:calc(var(--spacing) * 2.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.rounded-full{border-radius:2147483647px}.rounded-md{border-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-border,.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/70{border-color:color-mix(in oklab, var(--border) 70%, transparent)}}.border-destructive,.border-destructive\/25{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/25{border-color:color-mix(in oklab, var(--destructive) 25%, transparent)}}.border-destructive\/35{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/35{border-color:color-mix(in oklab, var(--destructive) 35%, transparent)}}.border-destructive\/45{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/45{border-color:color-mix(in oklab, var(--destructive) 45%, transparent)}}.border-info\/40{border-color:var(--info)}@supports (color:color-mix(in lab, red, red)){.border-info\/40{border-color:color-mix(in oklab, var(--info) 40%, transparent)}}.border-info\/45{border-color:var(--info)}@supports (color:color-mix(in lab, red, red)){.border-info\/45{border-color:color-mix(in oklab, var(--info) 45%, transparent)}}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-ring{border-color:var(--ring)}.border-success{border-color:var(--success)}.border-success-border{border-color:var(--success-border)}.border-warning\/45{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/45{border-color:color-mix(in oklab, var(--warning) 45%, transparent)}}.border-l-ring{border-left-color:var(--ring)}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-card,.bg-card\/95{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/95{background-color:color-mix(in oklab, var(--card) 95%, transparent)}}.bg-current{background-color:currentColor}.bg-destructive,.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/5{background-color:color-mix(in oklab, var(--destructive) 5%, transparent)}}.bg-info\/5{background-color:var(--info)}@supports (color:color-mix(in lab, red, red)){.bg-info\/5{background-color:color-mix(in oklab, var(--info) 5%, transparent)}}.bg-muted-foreground{background-color:var(--muted-foreground)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary,.bg-secondary\/50{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/50{background-color:color-mix(in oklab, var(--secondary) 50%, transparent)}}.bg-secondary\/60{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/60{background-color:color-mix(in oklab, var(--secondary) 60%, transparent)}}.bg-secondary\/70{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/70{background-color:color-mix(in oklab, var(--secondary) 70%, transparent)}}.bg-success,.bg-success\/5{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/5{background-color:color-mix(in oklab, var(--success) 5%, transparent)}}.bg-transparent{background-color:#0000}.bg-warning\/5{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/5{background-color:color-mix(in oklab, var(--warning) 5%, transparent)}}.fill-primary{fill:var(--primary)}.stroke-primary{stroke:var(--primary)}.p-0{padding:0}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.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)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.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)}.pt-0{padding-top:0}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-0{padding-bottom:0}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:ui-monospace,Cascadia Code,JetBrains Mono,Consolas,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--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-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.66rem\]{font-size:.66rem}.text-\[0\.68rem\]{font-size:.68rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[0\.74rem\]{font-size:.74rem}.text-\[0\.76rem\]{font-size:.76rem}.text-\[0\.82rem\]{font-size:.82rem}.text-\[0\.84rem\]{font-size:.84rem}.text-\[0\.86rem\]{font-size:.86rem}.text-\[0\.92rem\]{font-size:.92rem}.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-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.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}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground,.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-foreground\/90{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/90{color:color-mix(in oklab, var(--foreground) 90%, transparent)}}.text-info{color:var(--info)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:var(--primary)}.accent-white{accent-color:var(--color-white)}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);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 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)}.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-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.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-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-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))}.duration-500{--tw-duration:.5s;transition-duration:.5s}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.not-last\:after\:absolute:not(:last-child):after{content:var(--tw-content);position:absolute}.not-last\:after\:top-3\.5:not(:last-child):after{content:var(--tw-content);top:calc(var(--spacing) * 3.5)}.not-last\:after\:right-\[calc\(-50\%\+1rem\)\]:not(:last-child):after{content:var(--tw-content);right:calc(1rem - 50%)}.not-last\:after\:left-\[calc\(50\%\+1rem\)\]:not(:last-child):after{content:var(--tw-content);left:calc(50% + 1rem)}.not-last\:after\:h-px:not(:last-child):after{content:var(--tw-content);height:1px}.not-last\:after\:bg-border:not(:last-child):after{content:var(--tw-content);background-color:var(--border)}.not-last\:after\:bg-success-border:not(:last-child):after{content:var(--tw-content);background-color:var(--success-border)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.read-only\:opacity-70:read-only{opacity:.7}@media (hover:hover){.hover\:border-muted-foreground:hover,.hover\:border-muted-foreground\/60:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/60:hover{border-color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.hover\:border-ring:hover{border-color:var(--ring)}.hover\:bg-card:hover{background-color:var(--card)}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:brightness-105:hover{--tw-brightness:brightness(105%);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-visible\:border-primary:focus-visible{border-color:var(--primary)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-white\/10:focus-visible{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-white\/10:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media (width>=40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-\[215px\]{width:215px}.sm\:w-auto{width:auto}.sm\:min-w-60{min-width:calc(var(--spacing) * 60)}.sm\:basis-auto{flex-basis:auto}.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\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.sm\:grid-cols-\[minmax\(0\,1fr\)_8\.5rem\]{grid-template-columns:minmax(0,1fr) 8.5rem}.sm\:grid-cols-\[minmax\(10rem\,0\.7fr\)_minmax\(0\,1\.3fr\)\]{grid-template-columns:minmax(10rem,.7fr) minmax(0,1.3fr)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:calc(var(--spacing) * 5)}.sm\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.sm\:self-auto{align-self:auto}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.sm\:py-7{padding-block:calc(var(--spacing) * 7)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-\[0\.82rem\]{font-size:.82rem}.sm\:text-\[0\.95rem\]{font-size:.95rem}}@media (width>=64rem){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:grid-cols-\[1\.55fr_1fr\]{grid-template-columns:1.55fr 1fr}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\>button\]\:w-full>button{width:100%}@media (width>=40rem){.sm\:\[\&\>button\]\:w-auto>button{width:auto}}.\[\&\>svg\]\:mt-0\.5>svg{margin-top:calc(var(--spacing) * .5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-info>svg{color:var(--info)}.\[\&\>svg\]\:text-success>svg{color:var(--success)}.\[\&\>svg\]\:text-warning>svg{color:var(--warning)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.125rem;--background:#070707;--foreground:#fafafa;--card:#0c0c0c;--card-foreground:#fafafa;--popover:#111;--popover-foreground:#fafafa;--primary:#fff;--primary-foreground:#070707;--secondary:#111;--secondary-foreground:#fafafa;--muted:#111;--muted-foreground:#a1a1aa;--accent:#18181b;--accent-foreground:#fafafa;--destructive:#fb7185;--destructive-foreground:#1c0605;--border:#292929;--input:#292929;--ring:#52525b;--success:#6ee7b7;--success-border:#2f6f5b;--info:#93c5fd;--warning:#fbbf24}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:radial-gradient(circle at 50% -12%, #ffffff24, transparent 36rem), var(--background);width:100%;min-height:100%}html:before{content:"";pointer-events:none;opacity:.16;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:44px 44px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 72%);mask-image:linear-gradient(#000,#0000 72%)}body{color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:0 0;width:100%;min-width:0;min-height:100vh;margin:0;font-family:Geist,Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden}#root{z-index:1;width:100%;min-width:0;position:relative}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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-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-content{syntax:"*";inherits:false;initial-value:""}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}