claudekit-cli 3.41.1-dev.7 → 3.41.2-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -47784,6 +47784,14 @@ async function isActionPathAllowed(dirPath, projectId) {
47784
47784
  return false;
47785
47785
  return resolve6(project.path) === dirPath;
47786
47786
  }
47787
+ if (projectId?.startsWith("discovered-")) {
47788
+ try {
47789
+ const encodedPath = projectId.slice("discovered-".length);
47790
+ const discoveredPath = Buffer.from(encodedPath, "base64url").toString("utf-8");
47791
+ if (resolve6(discoveredPath) === dirPath)
47792
+ return true;
47793
+ } catch {}
47794
+ }
47787
47795
  const registeredProjects = await ProjectsRegistryManager.listProjects();
47788
47796
  if (registeredProjects.some((project) => resolve6(project.path) === dirPath)) {
47789
47797
  return true;
@@ -57199,7 +57207,7 @@ var package_default;
57199
57207
  var init_package = __esm(() => {
57200
57208
  package_default = {
57201
57209
  name: "claudekit-cli",
57202
- version: "3.41.1-dev.7",
57210
+ version: "3.41.2-dev.1",
57203
57211
  description: "CLI tool for bootstrapping and updating ClaudeKit projects",
57204
57212
  type: "module",
57205
57213
  repository: {
@@ -81900,16 +81908,53 @@ class SyncEngine {
81900
81908
  }
81901
81909
  }
81902
81910
  }
81911
+ // src/shared/deletion-pattern-expander.ts
81912
+ var LEGACY_COMMAND_PREFIX_BY_KIT = {
81913
+ engineer: "ck",
81914
+ marketing: "mkt"
81915
+ };
81916
+ function getLegacyCommandPrefix(kitType) {
81917
+ if (!kitType)
81918
+ return null;
81919
+ return LEGACY_COMMAND_PREFIX_BY_KIT[kitType] ?? null;
81920
+ }
81921
+ function canExpandLegacyCommandPattern(pattern, prefix) {
81922
+ if (!pattern.startsWith("commands/"))
81923
+ return false;
81924
+ if (pattern.startsWith(`commands/${prefix}/`))
81925
+ return false;
81926
+ const allPrefixes = Object.values(LEGACY_COMMAND_PREFIX_BY_KIT);
81927
+ if (allPrefixes.some((candidate) => candidate && pattern.startsWith(`commands/${candidate}/`))) {
81928
+ return false;
81929
+ }
81930
+ return true;
81931
+ }
81932
+ function expandDeletionPatterns(patterns, kitType) {
81933
+ const prefix = getLegacyCommandPrefix(kitType);
81934
+ if (!prefix || patterns.length === 0) {
81935
+ return [...patterns];
81936
+ }
81937
+ const expanded = new Set;
81938
+ for (const pattern of patterns) {
81939
+ expanded.add(pattern);
81940
+ if (canExpandLegacyCommandPattern(pattern, prefix)) {
81941
+ expanded.add(`commands/${prefix}/${pattern.slice("commands/".length)}`);
81942
+ }
81943
+ }
81944
+ return [...expanded];
81945
+ }
81946
+
81903
81947
  // src/domains/sync/deletion-path-filter.ts
81904
81948
  init_path_resolver();
81905
81949
  var import_picomatch = __toESM(require_picomatch2(), 1);
81906
- function filterDeletionPaths(trackedFiles, deletions) {
81950
+ function filterDeletionPaths(trackedFiles, deletions, kitType) {
81907
81951
  if (!deletions || deletions.length === 0) {
81908
81952
  return trackedFiles;
81909
81953
  }
81954
+ const expandedDeletions = expandDeletionPatterns(deletions, kitType);
81910
81955
  const exactPaths = new Set;
81911
81956
  const globMatchers = [];
81912
- for (const pattern of deletions) {
81957
+ for (const pattern of expandedDeletions) {
81913
81958
  if (PathResolver.isGlobPattern(pattern)) {
81914
81959
  globMatchers.push(import_picomatch.default(pattern));
81915
81960
  } else {
@@ -91324,8 +91369,15 @@ function findFileInMetadata(metadata, path14) {
91324
91369
  }
91325
91370
  return null;
91326
91371
  }
91327
- function shouldDeletePath(path14, metadata) {
91328
- const tracked = findFileInMetadata(metadata, path14);
91372
+ function findFileInMetadataForKit(metadata, path14, kitType) {
91373
+ if (!metadata)
91374
+ return null;
91375
+ if (!kitType)
91376
+ return findFileInMetadata(metadata, path14);
91377
+ return metadata.kits?.[kitType]?.files?.find((file) => file.path === path14) ?? null;
91378
+ }
91379
+ function shouldDeletePath(path14, metadata, kitType) {
91380
+ const tracked = findFileInMetadataForKit(metadata, path14, kitType);
91329
91381
  if (!tracked)
91330
91382
  return true;
91331
91383
  return tracked.ownership !== "user";
@@ -91451,8 +91503,8 @@ async function updateMetadataAfterDeletion(claudeDir2, deletedPaths) {
91451
91503
  logger.debug("Failed to write updated metadata.json");
91452
91504
  }
91453
91505
  }
91454
- async function handleDeletions(sourceMetadata, claudeDir2) {
91455
- const deletionPatterns = sourceMetadata.deletions || [];
91506
+ async function handleDeletions(sourceMetadata, claudeDir2, kitType) {
91507
+ const deletionPatterns = expandDeletionPatterns(sourceMetadata.deletions || [], kitType);
91456
91508
  if (deletionPatterns.length === 0) {
91457
91509
  return { deletedPaths: [], preservedPaths: [], errors: [] };
91458
91510
  }
@@ -91468,7 +91520,7 @@ async function handleDeletions(sourceMetadata, claudeDir2) {
91468
91520
  result.errors.push(path14);
91469
91521
  continue;
91470
91522
  }
91471
- if (!shouldDeletePath(path14, userMetadata)) {
91523
+ if (!shouldDeletePath(path14, userMetadata, kitType)) {
91472
91524
  result.preservedPaths.push(path14);
91473
91525
  logger.verbose(`Preserved user file: ${path14}`);
91474
91526
  continue;
@@ -95241,7 +95293,7 @@ async function handleMerge(ctx) {
95241
95293
  }
95242
95294
  try {
95243
95295
  if (sourceMetadata?.deletions && sourceMetadata.deletions.length > 0) {
95244
- const deletionResult = await handleDeletions(sourceMetadata, ctx.claudeDir);
95296
+ const deletionResult = await handleDeletions(sourceMetadata, ctx.claudeDir, ctx.kitType);
95245
95297
  if (deletionResult.deletedPaths.length > 0) {
95246
95298
  logger.info(`Removed ${deletionResult.deletedPaths.length} deprecated file(s)`);
95247
95299
  for (const path15 of deletionResult.deletedPaths) {
@@ -97663,7 +97715,7 @@ async function executeSyncMerge(ctx) {
97663
97715
  } catch (error) {
97664
97716
  logger.debug(`Failed to load source metadata for deletion filtering: ${error}`);
97665
97717
  }
97666
- const filteredTrackedFiles = filterDeletionPaths(trackedFiles, deletions);
97718
+ const filteredTrackedFiles = filterDeletionPaths(trackedFiles, deletions, ctx.kitType);
97667
97719
  if (deletions.length > 0) {
97668
97720
  const filtered = trackedFiles.length - filteredTrackedFiles.length;
97669
97721
  logger.debug(`Filtered ${filtered} files matching ${deletions.length} deletion patterns`);
@@ -98967,7 +99019,7 @@ async function processMetadataDeletions(skillSourcePath, installGlobally) {
98967
99019
  if (!existsSync56(claudeDir2))
98968
99020
  return;
98969
99021
  try {
98970
- const result = await handleDeletions(sourceMetadata, claudeDir2);
99022
+ const result = await handleDeletions(sourceMetadata, claudeDir2, inferKitTypeFromSourceMetadata(sourceMetadata));
98971
99023
  if (result.deletedPaths.length > 0) {
98972
99024
  logger.verbose(`[migrate] Cleaned up ${result.deletedPaths.length} deprecated path(s): ${result.deletedPaths.join(", ")}`);
98973
99025
  }
@@ -98975,6 +99027,13 @@ async function processMetadataDeletions(skillSourcePath, installGlobally) {
98975
99027
  logger.warning(`[migrate] Deletion cleanup failed: ${error}`);
98976
99028
  }
98977
99029
  }
99030
+ function inferKitTypeFromSourceMetadata(sourceMetadata) {
99031
+ if (sourceMetadata.name?.includes("marketing"))
99032
+ return "marketing";
99033
+ if (sourceMetadata.name?.includes("engineer"))
99034
+ return "engineer";
99035
+ return;
99036
+ }
98978
99037
  async function migrateCommand(options2) {
98979
99038
  console.log();
98980
99039
  oe(import_picocolors28.default.bgMagenta(import_picocolors28.default.black(" ck migrate ")));
@@ -244,7 +244,7 @@ Please change the parent <Route path="${v}"> to <Route path="${v==="/"?"*":`${v}
244
244
  `)}),d.jsx("div",{ref:j})]})]})]}),d.jsx("div",{className:"px-6 py-4 border-t border-dash-border flex justify-end",children:d.jsx("button",{type:"button",onClick:C,disabled:c==="running",className:`px-4 py-2 rounded text-sm font-medium transition-colors ${c==="running"?"bg-dash-bg text-dash-text-muted cursor-not-allowed":"bg-dash-accent text-white hover:bg-dash-accent-hover"}`,children:l("closeModal")})})]})}):null},My=({target:t,kitName:e,currentVersion:n,latestVersion:r,onVersionSelect:i})=>{const{t:s}=he(),[o,a]=m.useState([]),[l,c]=m.useState(!1),[h,u]=m.useState(r);m.useEffect(()=>{(async()=>{c(!0);try{const g=new URLSearchParams({target:t});e&&g.set("kit",e);const x=await(await fetch(`/api/system/versions?${g}`)).json();x.versions&&a(x.versions)}catch(g){console.error("Failed to fetch versions:",g)}finally{c(!1)}})()},[t,e]);const f=p=>{u(p),i(p)};return l?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),s("loadingVersions")]}):d.jsx("select",{value:h,onChange:p=>f(p.target.value),className:`text-xs text-amber-500 hover:text-amber-600 font-medium transition-colors
245
245
  bg-transparent border border-amber-500/30 rounded px-2 py-1
246
246
  focus:outline-none focus:ring-2 focus:ring-amber-500/50
247
- cursor-pointer appearance-none`,title:s("selectVersion"),children:o.map(p=>{const g=p.version===r,b=p.version===n,x=`v${p.version.replace(/^v/,"")}${g?` (${s("latestVersion")})`:""}${p.isPrerelease?` [${s("prereleaseLabel")}]`:""}${b?` - ${s("currentVersionLabel")}`:""}`;return d.jsx("option",{value:p.version,disabled:b,children:x},p.version)})})},lP=({version:t,installedAt:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=async()=>{const j=C=>{s||c(C)},S=C=>{s||u(C)};j("checking"),s&&s("checking",null);try{const y=await(await fetch(`/api/system/check-updates?target=cli&channel=${n}`)).json();y.updateAvailable?(j("update-available"),S(y.latest),s&&s("update-available",y.latest)):(j("up-to-date"),s&&s("up-to-date",null))}catch{j("idle"),s&&s("idle",null)}},k=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"dash-panel p-5 transition-colors hover:border-dash-accent/30",children:d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsx("h3",{className:"text-base font-semibold text-dash-text",children:a("cliCard")}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",t.replace(/^v/,"")]}),e&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e).toLocaleDateString()})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",t.replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(cP,{status:x,currentVersion:t,latestVersion:w,onCheck:v,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]})}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"cli",targetVersion:g??w??void 0,onComplete:k})]})},cP=({status:t,currentVersion:e,latestVersion:n,onCheck:r,onUpdate:i,onVersionSelect:s,disabled:o})=>{const{t:a}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),a("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:a("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"cli",currentVersion:e,latestVersion:n,onVersionSelect:l=>{s(l),i()}})}):d.jsx("button",{type:"button",onClick:r,disabled:o,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:a("checkForUpdates")})},dP=({configPath:t,nodeVersion:e,bunVersion:n,os:r})=>{const{t:i}=he();return d.jsxs("div",{className:"dash-panel p-5",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text mb-3",children:i("environment")}),d.jsxs("div",{className:"grid grid-cols-1 gap-2 text-sm md:grid-cols-2",children:[d.jsx(Ea,{label:i("claudeConfigPath"),value:t,mono:!0}),d.jsx(Ea,{label:i("osVersion"),value:r}),d.jsx(Ea,{label:i("nodeVersion"),value:e,mono:!0}),n&&d.jsx(Ea,{label:i("bunVersion"),value:n,mono:!0})]})]})},Ea=({label:t,value:e,mono:n})=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 p-2.5",children:[d.jsx("p",{className:"text-dash-text-muted text-[11px] uppercase tracking-wide mb-1",children:t}),d.jsx("p",{className:`text-dash-text-secondary break-all ${n?"mono text-xs":"text-sm"}`,children:e})]}),hP={ok:"bg-emerald-500/10 text-emerald-500 border-emerald-500/20",skip:"bg-slate-500/10 text-slate-300 border-slate-500/20",warn:"bg-amber-500/10 text-amber-400 border-amber-500/20",block:"bg-orange-500/10 text-orange-400 border-orange-500/20",error:"bg-red-500/10 text-red-400 border-red-500/20",crash:"bg-red-500/10 text-red-400 border-red-500/20"};function Nm(t,e){if(!t)return e;try{return new Intl.DateTimeFormat(void 0,{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(t))}catch{return t}}const uP=()=>{const{t}=he(),[e,n]=m.useState([]),[r,i]=m.useState("global"),[s,o]=m.useState(null),[a,l]=m.useState(!0),[c,h]=m.useState(null),u=m.useRef(0),f=m.useRef(null),p=m.useCallback(async v=>{u.current+=1;const k=u.current;f.current?.abort();const j=new AbortController;f.current=j,l(!0),h(null);try{const S=await B2(v==="global"?{scope:"global",limit:40,signal:j.signal}:{scope:"project",projectId:v,limit:40,signal:j.signal});if(k!==u.current)return;o(S)}catch(S){if(j.signal.aborted||k!==u.current)return;o(null),h(S instanceof Error?S.message:t("hookDiagnosticsLoadFailed"))}finally{k===u.current&&(l(!1),f.current=null)}},[t]);m.useEffect(()=>{let v=!1;return _h().then(k=>{v||n(k.map(j=>({id:j.id,name:j.name})))}).catch(()=>{v||n([])}),()=>{v=!0}},[]),m.useEffect(()=>{p(r)},[p,r]),m.useEffect(()=>()=>{f.current?.abort()},[]);const g=s?.summary,b=g?.statusCounts??{},x=s?.entries??[],w=m.useMemo(()=>[{label:t("hookDiagnosticsEntries"),value:String(g?.total??0)},{label:t("hookDiagnosticsCrashes"),value:String(b.crash??0)},{label:t("hookDiagnosticsWarnings"),value:String(b.warn??0)},{label:t("hookDiagnosticsBlocks"),value:String(b.block??0)}],[g?.total,b.block,b.crash,b.warn,t]);return d.jsxs("section",{className:"dash-panel p-4 space-y-4",children:[d.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[d.jsxs("div",{className:"space-y-1 min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("hookDiagnosticsTitle")}),d.jsx("p",{className:"text-xs text-dash-text-secondary",children:t("hookDiagnosticsDesc")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted break-all",children:s?.path??t("hookDiagnosticsPathPending")})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsxs("select",{value:r,onChange:v=>i(v.target.value),className:"rounded-lg border border-dash-border bg-dash-bg px-3 py-2 text-xs text-dash-text",children:[d.jsx("option",{value:"global",children:t("hookDiagnosticsScopeGlobal")}),e.map(v=>d.jsx("option",{value:v.id,children:v.name},v.id))]}),d.jsx("button",{type:"button",onClick:()=>void p(r),className:"rounded-lg border border-dash-border bg-dash-surface px-3 py-2 text-xs font-semibold text-dash-text-secondary hover:bg-dash-surface-hover",children:t("refresh")})]})]}),d.jsx("div",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4",children:w.map(v=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/60 px-3 py-2",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:v.label}),d.jsx("p",{className:"mono mt-1 text-lg font-semibold text-dash-text",children:v.value})]},v.label))}),g?.lastEventAt&&d.jsxs("p",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsLastEvent"),":"," ",Nm(g.lastEventAt,t("hookDiagnosticsUnknown"))]}),g&&(g.parseErrors>0||g.truncated)&&d.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-200",children:[g.parseErrors>0&&d.jsx("p",{children:t("hookDiagnosticsParseErrorsNotice").replace("{count}",String(g.parseErrors))}),g.truncated&&d.jsx("p",{children:t("hookDiagnosticsTruncatedNotice")})]}),a&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsLoading")}),c&&d.jsx("p",{className:"text-sm text-red-400",children:c}),!a&&!c&&s&&!s.exists&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsMissing")}),!a&&!c&&s?.exists&&d.jsx("div",{className:"space-y-2",children:x.length===0?d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsEmpty")}):x.map((v,k)=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-3",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx("span",{className:"mono text-[11px] text-dash-text-muted",children:Nm(v.ts,t("hookDiagnosticsUnknown"))}),d.jsx("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase ${hP[v.status]??"bg-dash-surface text-dash-text border-dash-border"}`,children:v.status}),d.jsx("span",{className:"text-sm font-medium text-dash-text",children:v.hook}),v.event&&d.jsx("span",{className:"text-xs text-dash-text-muted",children:v.event}),v.tool&&d.jsxs("span",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsToolLabel"),": ",v.tool]})]}),(v.note||v.target||v.error)&&d.jsxs("div",{className:"mt-2 space-y-1 text-xs text-dash-text-secondary",children:[v.note&&d.jsx("p",{children:v.note}),v.target&&d.jsxs("p",{className:"mono",children:[t("hookDiagnosticsTargetLabel"),": ",v.target]}),v.error&&d.jsx("p",{className:"text-red-400",children:v.error})]})]},`${v.ts}-${v.hook}-${k}`))})]})};function fP(t){let e=0,n=0,r=0;for(const i of t)i.ownership==="ck"?e++:i.ownership==="user"?n++:i.ownership==="ck-modified"&&r++;return{ck:e,user:n,modified:r}}function pP(t){const e={skills:0,commands:0,rules:0,hooks:0,settings:0,other:0};for(const n of t){const r=n.path;r.startsWith("skills/")?e.skills++:r.startsWith("commands/")?e.commands++:r.startsWith("rules/")?e.rules++:r.startsWith("hooks/")||r==="hooks.json"?e.hooks++:r.startsWith("settings/")||r==="settings.json"?e.settings++:e.other++}return e}const mP=({kitName:t,kit:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=e.files??[],k=fP(v),j=pP(v),S=async()=>{const y=A=>{s||c(A)},N=A=>{s||u(A)};y("checking"),s&&s("checking",null);try{const T=await(await fetch(`/api/system/check-updates?target=kit&kit=${t}&channel=${n}`)).json();T.updateAvailable?(y("update-available"),N(T.latest),s&&s("update-available",T.latest)):(y("up-to-date"),s&&s("up-to-date",null))}catch{y("idle"),s&&s("idle",null)}},C=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"dash-panel p-5 space-y-4 transition-colors hover:border-dash-accent/30",children:[d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsxs("h3",{className:"text-base font-semibold text-dash-text capitalize",children:[t," Kit"]}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",(e.version??"?").replace(/^v/,"")]}),e.installedAt&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e.installedAt).toLocaleDateString()}),d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("components"),": ",v.length]})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",(e.version??"?").replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(gP,{status:x,currentVersion:e.version??"0.0.0",latestVersion:w,kitName:t,onCheck:S,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]}),v.length>0&&d.jsx("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2 xl:grid-cols-3",children:Object.entries(j).filter(([,y])=>y>0).map(([y,N])=>d.jsxs("div",{className:"flex items-center justify-between px-2.5 py-2 bg-dash-bg/70 border border-dash-border rounded-lg text-xs",children:[d.jsx("span",{className:"text-dash-text-secondary capitalize",children:y}),d.jsx("span",{className:"font-bold mono text-dash-text",children:N})]},y))}),v.length>0&&d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-muted",children:[d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-500 shrink-0"}),k.ck," ",a("ownershipCk")]}),k.user>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-500 shrink-0"}),k.user," ",a("ownershipUser")]}),k.modified>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-amber-500 shrink-0"}),k.modified," ",a("ownershipModified")]})]}),v.length===0&&d.jsx("p",{className:"text-xs text-dash-text-muted",children:a("noTrackedFiles")})]}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"kit",kitName:t,targetVersion:g??w??void 0,onComplete:C})]})},gP=({status:t,currentVersion:e,latestVersion:n,kitName:r,onCheck:i,onUpdate:s,onVersionSelect:o,disabled:a})=>{const{t:l}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),l("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:l("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"kit",kitName:r,currentVersion:e,latestVersion:n,onVersionSelect:c=>{o(c),s()}})}):d.jsx("button",{type:"button",onClick:i,disabled:a,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:l("checkForUpdates")})},Dm="claudekit-update-channel",Am="claudekit-system-filter",bP=t=>/-(alpha|beta|rc|dev|next)/.test(t),xP=t=>t==="all"||t==="updates"||t==="up-to-date"||t==="cli"||t==="kits"?t:"all",Mm=t=>t==="update-available"?0:t==="checking"?1:t==="idle"?2:3,yP=({metadata:t})=>{const{t:e}=he(),[n,r]=m.useState(null),[i,s]=m.useState([]),[o,a]=m.useState(!1),[l,c]=m.useState(!1),[h,u]=m.useState(!1),[f,p]=m.useState("stable"),[g,b]=m.useState(()=>xP(localStorage.getItem(Am))),x=m.useRef(!1),w=m.useRef(0),v=m.useMemo(()=>!t.kits||typeof t.kits!="object"?[]:Object.entries(t.kits),[t.kits]),k=v.length>0,j=t.name,S=t.version,C=t.installedAt,y=v.length>0||j;m.useEffect(()=>{if(!n)return;const U=[];if(U.push({id:"cli",type:"cli",status:"idle",currentVersion:n.cliVersion,latestVersion:null}),k&&v.length>0)for(const[ve,ee]of v){const Ae=ee;U.push({id:ve,type:"kit",status:"idle",currentVersion:Ae.version??"?",latestVersion:null})}else j&&U.push({id:j,type:"kit",status:"idle",currentVersion:S??"?",latestVersion:null});s(U)},[n,k,v,j,S]),m.useEffect(()=>{fetch("/api/system/info").then(U=>U.json()).then(r).catch(()=>r(null))},[]),m.useEffect(()=>{const U=localStorage.getItem(Dm);U==="stable"||U==="beta"?p(U):n?.cliVersion&&p(bP(n.cliVersion)?"beta":"stable")},[n?.cliVersion]);const N=U=>{p(U),localStorage.setItem(Dm,U)};m.useEffect(()=>{localStorage.setItem(Am,g)},[g]);const A=(U,ve,ee)=>{s(Ae=>Ae.map(pe=>pe.id===U?{...pe,status:ve,latestVersion:ee}:pe))},T=m.useCallback(async()=>{if(i.length===0)return;const U=w.current+1;w.current=U,a(!0),s(ve=>ve.map(ee=>ee.status==="checking"&&ee.latestVersion===null?ee:{...ee,status:"checking",latestVersion:null}));try{const ve=i.map(async Ae=>{try{const pe=Ae.type==="cli"?`target=cli&channel=${f}`:`target=kit&kit=${Ae.id}&channel=${f}`,$=await(await fetch(`/api/system/check-updates?${pe}`)).json();return{id:Ae.id,status:$.updateAvailable?"update-available":"up-to-date",latestVersion:$.latest}}catch{return{id:Ae.id,status:"idle",latestVersion:null}}}),ee=await Promise.all(ve);if(w.current!==U)return;s(Ae=>Ae.map(pe=>{const _e=ee.find($=>$.id===pe.id);return _e?{...pe,status:_e.status,latestVersion:_e.latestVersion}:pe}))}finally{w.current===U&&a(!1)}},[f,i]),P=U=>{b(U),(U==="updates"||U==="up-to-date")&&!o&&!l&&i.length>0&&i.every(ee=>ee.status==="idle")&&(x.current=!0,T())},R=()=>{u(!0)},z=()=>{window.location.reload()},I=i.filter(U=>U.status==="update-available").length,F=i.filter(U=>U.status==="up-to-date").length,G=i.filter(U=>U.status==="up-to-date"||U.status==="update-available").length,ae=i.some(U=>U.status==="checking"),X=k&&v.length>0?v.length:j?1:0,Q=i.find(U=>U.id==="cli")?.status??"idle",le=m.useMemo(()=>k&&v.length>0?v.map(([U,ve])=>({id:U,kitName:U,kit:ve})):j?[{id:j,kitName:j,kit:{version:S,installedAt:C}}]:[],[k,v,j,S,C]),fe=m.useMemo(()=>{const ve=[...le.map(ee=>({...ee,status:i.find(Ae=>Ae.id===ee.id)?.status??"idle"}))].sort((ee,Ae)=>{const pe=Mm(ee.status)-Mm(Ae.status);return pe!==0?pe:ee.kitName.localeCompare(Ae.kitName)});return g==="updates"?ve.filter(ee=>ee.status==="update-available"):g==="up-to-date"?ve.filter(ee=>ee.status==="up-to-date"):g==="cli"?[]:ve},[le,i,g]),W=g==="all"||g==="cli"||g==="updates"&&Q==="update-available"||g==="up-to-date"&&Q==="up-to-date",se=(W?1:0)+fe.length;m.useEffect(()=>{if(!(!(g==="updates"||g==="up-to-date")||x.current)&&!(o||l||i.length===0)){if(!i.every(ve=>ve.status==="idle")){x.current=!0;return}x.current=!0,T()}},[T,o,l,i,g]);const ue=m.useMemo(()=>se!==0?"":(g==="updates"||g==="up-to-date")&&ae?e("checkingAll"):(g==="updates"||g==="up-to-date")&&G===0?e("runCheckAllForFilter"):g==="updates"&&G>0&&I===0?e("noUpdatesFound"):g==="up-to-date"&&G>0&&F===0?e("noUpToDateYet"):e("noComponentsMatchFilter"),[se,g,ae,G,I,F,e]),xe=!y&&g!=="cli",Pe=e("componentFilterUpdatesCount").replace("{count}",I.toString()),Qe=e("componentFilterUpToDateCount").replace("{count}",F.toString());return d.jsxs("div",{className:"relative",children:[d.jsxs("div",{className:"pointer-events-none absolute inset-0 -z-10 overflow-hidden",children:[d.jsx("div",{className:"absolute -top-20 -right-8 h-56 w-56 rounded-full bg-dash-accent/10 blur-3xl"}),d.jsx("div",{className:"absolute -bottom-24 -left-10 h-64 w-64 rounded-full bg-dash-accent/5 blur-3xl"})]}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("section",{className:"dash-panel dash-sticky-glass p-4 md:p-5 sticky top-0 z-10",children:d.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[d.jsxs("div",{className:"space-y-1",children:[d.jsx("p",{className:"mono text-[10px] uppercase tracking-[0.16em] text-dash-text-muted",children:e("systemControlTower")}),d.jsx("h2",{className:"text-xl md:text-2xl font-semibold text-dash-text",children:e("systemOverviewTitle")}),d.jsx("p",{className:"text-sm text-dash-text-secondary max-w-2xl",children:e("systemOverviewDesc")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx(oP,{value:f,onChange:N,disabled:o||l}),i.length>0&&d.jsx(sP,{components:i,isChecking:o,isUpdating:l,onCheckAll:T,onUpdateAll:R})]})]})}),d.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-5",children:[d.jsx(Xi,{label:e("components"),value:i.length.toString()}),d.jsx(Xi,{label:e("kitsLabel"),value:X.toString()}),d.jsx(Xi,{label:e("updateAvailable"),value:I.toString(),tone:"accent"}),d.jsx(Xi,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Xi,{label:e("checkedComponents"),value:G.toString()})]}),d.jsxs("section",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_320px]",children:[d.jsxs("div",{className:"space-y-3 min-w-0",children:[d.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-1",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("installedComponentsHeading")}),d.jsxs("fieldset",{className:"flex items-center gap-2",children:[d.jsx("legend",{className:"sr-only",children:e("installedComponentsHeading")}),d.jsx(Zi,{label:e("componentFilterAll"),value:g,activeValue:"all",onClick:()=>P("all")}),d.jsx(Zi,{label:Pe,value:g,activeValue:"updates",onClick:()=>P("updates")}),d.jsx(Zi,{label:Qe,value:g,activeValue:"up-to-date",onClick:()=>P("up-to-date")}),d.jsx(Zi,{label:e("componentFilterCli"),value:g,activeValue:"cli",onClick:()=>P("cli")}),d.jsx(Zi,{label:e("componentFilterKits"),value:g,activeValue:"kits",onClick:()=>P("kits")})]})]}),W&&d.jsx(lP,{version:n?.cliVersion??"...",installedAt:void 0,externalStatus:i.find(U=>U.id==="cli")?.status,externalLatestVersion:i.find(U=>U.id==="cli")?.latestVersion??null,onStatusChange:(U,ve)=>A("cli",U,ve),disabled:o||l,channel:f}),fe.map(U=>{const ve=i.find(ee=>ee.id===U.id);return d.jsx(mP,{kitName:U.kitName,kit:U.kit,externalStatus:ve?.status,externalLatestVersion:ve?.latestVersion??null,onStatusChange:(ee,Ae)=>A(U.id,ee,Ae),disabled:o||l,channel:f},U.id)}),xe&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:e("noKitInstalled")})}),!xe&&se===0&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:ue})})]}),d.jsxs("aside",{className:"space-y-3 xl:sticky xl:top-20 self-start",children:[d.jsxs("div",{className:"dash-panel p-4 space-y-3",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("updateReadiness")}),d.jsxs("div",{className:"space-y-2",children:[d.jsx(Ra,{label:e("updateAvailable"),value:I.toString(),tone:I>0?"accent":"default"}),d.jsx(Ra,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Ra,{label:e("checkedComponents"),value:G.toString()}),d.jsx(Ra,{label:e("activeChannel"),value:e(f==="beta"?"channelBeta":"channelStable")})]})]}),n&&d.jsx(dP,{configPath:n.configPath,nodeVersion:n.nodeVersion,bunVersion:n.bunVersion,os:n.os}),d.jsx(uP,{})]})]})]}),d.jsx(Ou,{isOpen:h,onClose:()=>u(!1),target:"cli",mode:"batch",components:i.filter(U=>U.status==="update-available").map(U=>({id:U.id,name:U.id==="cli"?"CLI":`${U.id} Kit`})),onComplete:z})]})},Xi=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text";return d.jsxs("div",{className:"dash-panel p-3",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:t}),d.jsx("p",{className:`mt-1 mono text-xl font-semibold ${r}`,children:e})]})},Ra=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text-secondary";return d.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-2",children:[d.jsx("span",{className:"text-xs text-dash-text-muted",children:t}),d.jsx("span",{className:`mono text-xs font-semibold ${r}`,children:e})]})},Zi=({label:t,value:e,activeValue:n,onClick:r})=>{const i=e===n;return d.jsx("button",{type:"button",onClick:r,"aria-pressed":i,className:`dash-focus-ring px-2.5 py-1.5 rounded-lg text-[11px] font-semibold border transition-colors ${i?"border-dash-accent/30 bg-dash-accent-subtle text-dash-accent":"border-dash-border bg-dash-surface text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t})},Xc="~/.claude/settings.json",La="{}",vP=()=>{const{t}=he(),[e,n]=m.useState(!0),[r,i]=m.useState(Xc),[s,o]=m.useState(La),[a,l]=m.useState(La),[c,h]=m.useState(0),[u,f]=m.useState(!1),[p,g]=m.useState(!1),[b,x]=m.useState("idle"),[w,v]=m.useState(null),[k,j]=m.useState(null);m.useEffect(()=>{let A=!1;return(async()=>{n(!0),g(!1);try{const P=await I2();if(A)return;const R=JSON.stringify(P.settings??{},null,2);i(P.path||Xc),f(!!P.exists),o(R),l(R),v(null)}catch{if(A)return;g(!0),f(!1),i(Xc),o(La),l(La)}finally{A||n(!1)}})(),()=>{A=!0}},[]);const S=A=>{l(A),j(null);try{JSON.parse(A),v(null)}catch(T){v(T instanceof Error?T.message:"Invalid JSON")}},C=()=>{l(s),v(null),j(null),x("idle")},y=async()=>{if(!(e||w)){x("saving"),j(null);try{const A=JSON.parse(a),T=JSON.stringify(A,null,2),P=await $2(A);o(T),l(T),f(!0),x("saved"),j(P.backupPath?`${t("settingsBackupSaved")}: ${P.backupPath}`:t("saved")),setTimeout(()=>x("idle"),2e3)}catch(A){x("error"),j(A instanceof Error?A.message:t("saveFailed")),setTimeout(()=>x("idle"),3e3)}}},N=a!==s;return d.jsxs("section",{className:"h-full min-h-0 flex flex-col rounded-xl border border-dash-border bg-dash-surface p-3 shadow-sm",children:[d.jsxs("div",{className:"mb-2 flex items-end justify-between gap-3 px-1",children:[d.jsxs("div",{className:"min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("settingsJsonHeading")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted truncate",children:r})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{type:"button",onClick:C,disabled:e||!N||b==="saving",className:"px-3 py-1.5 rounded-lg bg-dash-surface text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border disabled:opacity-50 disabled:cursor-not-allowed",children:t("discard")}),d.jsx("button",{type:"button",onClick:y,disabled:e||b==="saving"||!!w||!N,className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase disabled:opacity-50 disabled:cursor-not-allowed ${b==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":b==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:t(b==="saving"?"saving":b==="saved"?"saved":b==="error"?"saveFailed":"saveChanges")})]})]}),d.jsx("div",{className:"flex-1 min-h-0",children:d.jsx(ju,{width:100,isLoading:e,jsonText:a,cursorLine:c,syntaxError:w,onChange:S,onCursorLineChange:h})}),k&&d.jsx("p",{className:`mt-2 px-1 text-xs ${b==="error"?"text-red-500":"text-dash-text-muted"}`,children:k}),!e&&!p&&!u&&d.jsx("p",{className:"mt-2 px-1 text-xs text-dash-text-muted",children:t("settingsJsonMissing")}),!e&&p&&d.jsx("p",{className:"mt-2 px-1 text-xs text-red-500",children:t("settingsJsonLoadFailed")})]})},wP=(t,e)=>{const[n,r]=m.useState(null);return m.useEffect(()=>{const i=t.split(`
247
+ cursor-pointer appearance-none`,title:s("selectVersion"),children:o.map(p=>{const g=p.version===r,b=p.version===n,x=`v${p.version.replace(/^v/,"")}${g?` (${s("latestVersion")})`:""}${p.isPrerelease?` [${s("prereleaseLabel")}]`:""}${b?` - ${s("currentVersionLabel")}`:""}`;return d.jsx("option",{value:p.version,disabled:b,children:x},p.version)})})},lP=({version:t,installedAt:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=async()=>{const j=C=>{s||c(C)},S=C=>{s||u(C)};j("checking"),s&&s("checking",null);try{const y=await(await fetch(`/api/system/check-updates?target=cli&channel=${n}`)).json();y.updateAvailable?(j("update-available"),S(y.latest),s&&s("update-available",y.latest)):(j("up-to-date"),s&&s("up-to-date",null))}catch{j("idle"),s&&s("idle",null)}},k=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"dash-panel p-5 transition-colors hover:border-dash-accent/30",children:d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsx("h3",{className:"text-base font-semibold text-dash-text",children:a("cliCard")}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",t.replace(/^v/,"")]}),e&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e).toLocaleDateString()})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",t.replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(cP,{status:x,currentVersion:t,latestVersion:w,onCheck:v,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]})}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"cli",targetVersion:g??w??void 0,onComplete:k})]})},cP=({status:t,currentVersion:e,latestVersion:n,onCheck:r,onUpdate:i,onVersionSelect:s,disabled:o})=>{const{t:a}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),a("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:a("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"cli",currentVersion:e,latestVersion:n,onVersionSelect:l=>{s(l),i()}})}):d.jsx("button",{type:"button",onClick:r,disabled:o,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:a("checkForUpdates")})},dP=({configPath:t,nodeVersion:e,bunVersion:n,os:r})=>{const{t:i}=he();return d.jsxs("div",{className:"dash-panel p-5",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text mb-3",children:i("environment")}),d.jsxs("div",{className:"grid grid-cols-1 gap-2 text-sm md:grid-cols-2",children:[d.jsx(Ea,{label:i("claudeConfigPath"),value:t,mono:!0}),d.jsx(Ea,{label:i("osVersion"),value:r}),d.jsx(Ea,{label:i("nodeVersion"),value:e,mono:!0}),n&&d.jsx(Ea,{label:i("bunVersion"),value:n,mono:!0})]})]})},Ea=({label:t,value:e,mono:n})=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 p-2.5",children:[d.jsx("p",{className:"text-dash-text-muted text-[11px] uppercase tracking-wide mb-1",children:t}),d.jsx("p",{className:`text-dash-text-secondary break-all ${n?"mono text-xs":"text-sm"}`,children:e})]}),hP={ok:"bg-emerald-500/10 text-emerald-500 border-emerald-500/20",skip:"bg-slate-500/10 text-slate-300 border-slate-500/20",warn:"bg-amber-500/10 text-amber-400 border-amber-500/20",block:"bg-orange-500/10 text-orange-400 border-orange-500/20",error:"bg-red-500/10 text-red-400 border-red-500/20",crash:"bg-red-500/10 text-red-400 border-red-500/20"};function Nm(t,e){if(!t)return e;try{return new Intl.DateTimeFormat(void 0,{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(t))}catch{return t}}const uP=()=>{const{t}=he(),[e,n]=m.useState([]),[r,i]=m.useState("global"),[s,o]=m.useState(null),[a,l]=m.useState(!0),[c,h]=m.useState(null),u=m.useRef(0),f=m.useRef(null),p=m.useCallback(async v=>{u.current+=1;const k=u.current;f.current?.abort();const j=new AbortController;f.current=j,l(!0),h(null);try{const S=await B2(v==="global"?{scope:"global",limit:40,signal:j.signal}:{scope:"project",projectId:v,limit:40,signal:j.signal});if(k!==u.current)return;o(S)}catch(S){if(j.signal.aborted||k!==u.current)return;o(null),h(S instanceof Error?S.message:t("hookDiagnosticsLoadFailed"))}finally{k===u.current&&(l(!1),f.current=null)}},[t]);m.useEffect(()=>{let v=!1;return _h().then(k=>{v||n(k.map(j=>({id:j.id,name:j.name})))}).catch(()=>{v||n([])}),()=>{v=!0}},[]),m.useEffect(()=>{p(r)},[p,r]),m.useEffect(()=>()=>{f.current?.abort()},[]);const g=s?.summary,b=g?.statusCounts??{},x=s?.entries??[],w=m.useMemo(()=>[{label:t("hookDiagnosticsEntries"),value:String(g?.total??0)},{label:t("hookDiagnosticsCrashes"),value:String(b.crash??0)},{label:t("hookDiagnosticsWarnings"),value:String(b.warn??0)},{label:t("hookDiagnosticsBlocks"),value:String(b.block??0)}],[g?.total,b.block,b.crash,b.warn,t]);return d.jsxs("section",{className:"dash-panel p-4 space-y-4",children:[d.jsxs("div",{className:"flex flex-col gap-3",children:[d.jsxs("div",{className:"space-y-1 min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("hookDiagnosticsTitle")}),d.jsx("p",{className:"text-xs text-dash-text-secondary",children:t("hookDiagnosticsDesc")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted break-all",children:s?.path??t("hookDiagnosticsPathPending")})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsxs("select",{value:r,onChange:v=>i(v.target.value),className:"rounded-lg border border-dash-border bg-dash-bg px-3 py-2 text-xs text-dash-text",children:[d.jsx("option",{value:"global",children:t("hookDiagnosticsScopeGlobal")}),e.map(v=>d.jsx("option",{value:v.id,children:v.name},v.id))]}),d.jsx("button",{type:"button",onClick:()=>void p(r),className:"rounded-lg border border-dash-border bg-dash-surface px-3 py-2 text-xs font-semibold text-dash-text-secondary hover:bg-dash-surface-hover",children:t("refresh")})]})]}),d.jsx("div",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4",children:w.map(v=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/60 px-3 py-2",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:v.label}),d.jsx("p",{className:"mono mt-1 text-lg font-semibold text-dash-text",children:v.value})]},v.label))}),g?.lastEventAt&&d.jsxs("p",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsLastEvent"),":"," ",Nm(g.lastEventAt,t("hookDiagnosticsUnknown"))]}),g&&(g.parseErrors>0||g.truncated)&&d.jsxs("div",{className:"rounded-lg border border-amber-300 dark:border-amber-500/30 bg-amber-100 dark:bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-200",children:[g.parseErrors>0&&d.jsx("p",{children:t("hookDiagnosticsParseErrorsNotice").replace("{count}",String(g.parseErrors))}),g.truncated&&d.jsx("p",{children:t("hookDiagnosticsTruncatedNotice")})]}),a&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsLoading")}),c&&d.jsx("p",{className:"text-sm text-red-400",children:c}),!a&&!c&&s&&!s.exists&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsMissing")}),!a&&!c&&s?.exists&&d.jsx("div",{className:"space-y-2",children:x.length===0?d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsEmpty")}):x.map((v,k)=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-3",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx("span",{className:"mono text-[11px] text-dash-text-muted",children:Nm(v.ts,t("hookDiagnosticsUnknown"))}),d.jsx("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase ${hP[v.status]??"bg-dash-surface text-dash-text border-dash-border"}`,children:v.status}),d.jsx("span",{className:"text-sm font-medium text-dash-text",children:v.hook}),v.event&&d.jsx("span",{className:"text-xs text-dash-text-muted",children:v.event}),v.tool&&d.jsxs("span",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsToolLabel"),": ",v.tool]})]}),(v.note||v.target||v.error)&&d.jsxs("div",{className:"mt-2 space-y-1 text-xs text-dash-text-secondary",children:[v.note&&d.jsx("p",{children:v.note}),v.target&&d.jsxs("p",{className:"mono",children:[t("hookDiagnosticsTargetLabel"),": ",v.target]}),v.error&&d.jsx("p",{className:"text-red-400",children:v.error})]})]},`${v.ts}-${v.hook}-${k}`))})]})};function fP(t){let e=0,n=0,r=0;for(const i of t)i.ownership==="ck"?e++:i.ownership==="user"?n++:i.ownership==="ck-modified"&&r++;return{ck:e,user:n,modified:r}}function pP(t){const e={skills:0,commands:0,rules:0,hooks:0,settings:0,other:0};for(const n of t){const r=n.path;r.startsWith("skills/")?e.skills++:r.startsWith("commands/")?e.commands++:r.startsWith("rules/")?e.rules++:r.startsWith("hooks/")||r==="hooks.json"?e.hooks++:r.startsWith("settings/")||r==="settings.json"?e.settings++:e.other++}return e}const mP=({kitName:t,kit:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=e.files??[],k=fP(v),j=pP(v),S=async()=>{const y=A=>{s||c(A)},N=A=>{s||u(A)};y("checking"),s&&s("checking",null);try{const T=await(await fetch(`/api/system/check-updates?target=kit&kit=${t}&channel=${n}`)).json();T.updateAvailable?(y("update-available"),N(T.latest),s&&s("update-available",T.latest)):(y("up-to-date"),s&&s("up-to-date",null))}catch{y("idle"),s&&s("idle",null)}},C=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"dash-panel p-5 space-y-4 transition-colors hover:border-dash-accent/30",children:[d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsxs("h3",{className:"text-base font-semibold text-dash-text capitalize",children:[t," Kit"]}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",(e.version??"?").replace(/^v/,"")]}),e.installedAt&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e.installedAt).toLocaleDateString()}),d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("components"),": ",v.length]})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",(e.version??"?").replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(gP,{status:x,currentVersion:e.version??"0.0.0",latestVersion:w,kitName:t,onCheck:S,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]}),v.length>0&&d.jsx("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2 xl:grid-cols-3",children:Object.entries(j).filter(([,y])=>y>0).map(([y,N])=>d.jsxs("div",{className:"flex items-center justify-between px-2.5 py-2 bg-dash-bg/70 border border-dash-border rounded-lg text-xs",children:[d.jsx("span",{className:"text-dash-text-secondary capitalize",children:y}),d.jsx("span",{className:"font-bold mono text-dash-text",children:N})]},y))}),v.length>0&&d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-muted",children:[d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-500 shrink-0"}),k.ck," ",a("ownershipCk")]}),k.user>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-500 shrink-0"}),k.user," ",a("ownershipUser")]}),k.modified>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-amber-500 shrink-0"}),k.modified," ",a("ownershipModified")]})]}),v.length===0&&d.jsx("p",{className:"text-xs text-dash-text-muted",children:a("noTrackedFiles")})]}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"kit",kitName:t,targetVersion:g??w??void 0,onComplete:C})]})},gP=({status:t,currentVersion:e,latestVersion:n,kitName:r,onCheck:i,onUpdate:s,onVersionSelect:o,disabled:a})=>{const{t:l}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),l("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:l("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"kit",kitName:r,currentVersion:e,latestVersion:n,onVersionSelect:c=>{o(c),s()}})}):d.jsx("button",{type:"button",onClick:i,disabled:a,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:l("checkForUpdates")})},Dm="claudekit-update-channel",Am="claudekit-system-filter",bP=t=>/-(alpha|beta|rc|dev|next)/.test(t),xP=t=>t==="all"||t==="updates"||t==="up-to-date"||t==="cli"||t==="kits"?t:"all",Mm=t=>t==="update-available"?0:t==="checking"?1:t==="idle"?2:3,yP=({metadata:t})=>{const{t:e}=he(),[n,r]=m.useState(null),[i,s]=m.useState([]),[o,a]=m.useState(!1),[l,c]=m.useState(!1),[h,u]=m.useState(!1),[f,p]=m.useState("stable"),[g,b]=m.useState(()=>xP(localStorage.getItem(Am))),x=m.useRef(!1),w=m.useRef(0),v=m.useMemo(()=>!t.kits||typeof t.kits!="object"?[]:Object.entries(t.kits),[t.kits]),k=v.length>0,j=t.name,S=t.version,C=t.installedAt,y=v.length>0||j;m.useEffect(()=>{if(!n)return;const U=[];if(U.push({id:"cli",type:"cli",status:"idle",currentVersion:n.cliVersion,latestVersion:null}),k&&v.length>0)for(const[ve,ee]of v){const Ae=ee;U.push({id:ve,type:"kit",status:"idle",currentVersion:Ae.version??"?",latestVersion:null})}else j&&U.push({id:j,type:"kit",status:"idle",currentVersion:S??"?",latestVersion:null});s(U)},[n,k,v,j,S]),m.useEffect(()=>{fetch("/api/system/info").then(U=>U.json()).then(r).catch(()=>r(null))},[]),m.useEffect(()=>{const U=localStorage.getItem(Dm);U==="stable"||U==="beta"?p(U):n?.cliVersion&&p(bP(n.cliVersion)?"beta":"stable")},[n?.cliVersion]);const N=U=>{p(U),localStorage.setItem(Dm,U)};m.useEffect(()=>{localStorage.setItem(Am,g)},[g]);const A=(U,ve,ee)=>{s(Ae=>Ae.map(pe=>pe.id===U?{...pe,status:ve,latestVersion:ee}:pe))},T=m.useCallback(async()=>{if(i.length===0)return;const U=w.current+1;w.current=U,a(!0),s(ve=>ve.map(ee=>ee.status==="checking"&&ee.latestVersion===null?ee:{...ee,status:"checking",latestVersion:null}));try{const ve=i.map(async Ae=>{try{const pe=Ae.type==="cli"?`target=cli&channel=${f}`:`target=kit&kit=${Ae.id}&channel=${f}`,$=await(await fetch(`/api/system/check-updates?${pe}`)).json();return{id:Ae.id,status:$.updateAvailable?"update-available":"up-to-date",latestVersion:$.latest}}catch{return{id:Ae.id,status:"idle",latestVersion:null}}}),ee=await Promise.all(ve);if(w.current!==U)return;s(Ae=>Ae.map(pe=>{const _e=ee.find($=>$.id===pe.id);return _e?{...pe,status:_e.status,latestVersion:_e.latestVersion}:pe}))}finally{w.current===U&&a(!1)}},[f,i]),P=U=>{b(U),(U==="updates"||U==="up-to-date")&&!o&&!l&&i.length>0&&i.every(ee=>ee.status==="idle")&&(x.current=!0,T())},R=()=>{u(!0)},z=()=>{window.location.reload()},I=i.filter(U=>U.status==="update-available").length,F=i.filter(U=>U.status==="up-to-date").length,G=i.filter(U=>U.status==="up-to-date"||U.status==="update-available").length,ae=i.some(U=>U.status==="checking"),X=k&&v.length>0?v.length:j?1:0,Q=i.find(U=>U.id==="cli")?.status??"idle",le=m.useMemo(()=>k&&v.length>0?v.map(([U,ve])=>({id:U,kitName:U,kit:ve})):j?[{id:j,kitName:j,kit:{version:S,installedAt:C}}]:[],[k,v,j,S,C]),fe=m.useMemo(()=>{const ve=[...le.map(ee=>({...ee,status:i.find(Ae=>Ae.id===ee.id)?.status??"idle"}))].sort((ee,Ae)=>{const pe=Mm(ee.status)-Mm(Ae.status);return pe!==0?pe:ee.kitName.localeCompare(Ae.kitName)});return g==="updates"?ve.filter(ee=>ee.status==="update-available"):g==="up-to-date"?ve.filter(ee=>ee.status==="up-to-date"):g==="cli"?[]:ve},[le,i,g]),W=g==="all"||g==="cli"||g==="updates"&&Q==="update-available"||g==="up-to-date"&&Q==="up-to-date",se=(W?1:0)+fe.length;m.useEffect(()=>{if(!(!(g==="updates"||g==="up-to-date")||x.current)&&!(o||l||i.length===0)){if(!i.every(ve=>ve.status==="idle")){x.current=!0;return}x.current=!0,T()}},[T,o,l,i,g]);const ue=m.useMemo(()=>se!==0?"":(g==="updates"||g==="up-to-date")&&ae?e("checkingAll"):(g==="updates"||g==="up-to-date")&&G===0?e("runCheckAllForFilter"):g==="updates"&&G>0&&I===0?e("noUpdatesFound"):g==="up-to-date"&&G>0&&F===0?e("noUpToDateYet"):e("noComponentsMatchFilter"),[se,g,ae,G,I,F,e]),xe=!y&&g!=="cli",Pe=e("componentFilterUpdatesCount").replace("{count}",I.toString()),Qe=e("componentFilterUpToDateCount").replace("{count}",F.toString());return d.jsxs("div",{className:"relative",children:[d.jsxs("div",{className:"pointer-events-none absolute inset-0 -z-10 overflow-hidden",children:[d.jsx("div",{className:"absolute -top-20 -right-8 h-56 w-56 rounded-full bg-dash-accent/10 blur-3xl"}),d.jsx("div",{className:"absolute -bottom-24 -left-10 h-64 w-64 rounded-full bg-dash-accent/5 blur-3xl"})]}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("section",{className:"dash-panel dash-sticky-glass p-4 md:p-5 sticky top-0 z-10",children:d.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[d.jsxs("div",{className:"space-y-1",children:[d.jsx("p",{className:"mono text-[10px] uppercase tracking-[0.16em] text-dash-text-muted",children:e("systemControlTower")}),d.jsx("h2",{className:"text-xl md:text-2xl font-semibold text-dash-text",children:e("systemOverviewTitle")}),d.jsx("p",{className:"text-sm text-dash-text-secondary max-w-2xl",children:e("systemOverviewDesc")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx(oP,{value:f,onChange:N,disabled:o||l}),i.length>0&&d.jsx(sP,{components:i,isChecking:o,isUpdating:l,onCheckAll:T,onUpdateAll:R})]})]})}),d.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-5",children:[d.jsx(Xi,{label:e("components"),value:i.length.toString()}),d.jsx(Xi,{label:e("kitsLabel"),value:X.toString()}),d.jsx(Xi,{label:e("updateAvailable"),value:I.toString(),tone:"accent"}),d.jsx(Xi,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Xi,{label:e("checkedComponents"),value:G.toString()})]}),d.jsxs("section",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_320px]",children:[d.jsxs("div",{className:"space-y-3 min-w-0",children:[d.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-1",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("installedComponentsHeading")}),d.jsxs("fieldset",{className:"flex items-center gap-2",children:[d.jsx("legend",{className:"sr-only",children:e("installedComponentsHeading")}),d.jsx(Zi,{label:e("componentFilterAll"),value:g,activeValue:"all",onClick:()=>P("all")}),d.jsx(Zi,{label:Pe,value:g,activeValue:"updates",onClick:()=>P("updates")}),d.jsx(Zi,{label:Qe,value:g,activeValue:"up-to-date",onClick:()=>P("up-to-date")}),d.jsx(Zi,{label:e("componentFilterCli"),value:g,activeValue:"cli",onClick:()=>P("cli")}),d.jsx(Zi,{label:e("componentFilterKits"),value:g,activeValue:"kits",onClick:()=>P("kits")})]})]}),W&&d.jsx(lP,{version:n?.cliVersion??"...",installedAt:void 0,externalStatus:i.find(U=>U.id==="cli")?.status,externalLatestVersion:i.find(U=>U.id==="cli")?.latestVersion??null,onStatusChange:(U,ve)=>A("cli",U,ve),disabled:o||l,channel:f}),fe.map(U=>{const ve=i.find(ee=>ee.id===U.id);return d.jsx(mP,{kitName:U.kitName,kit:U.kit,externalStatus:ve?.status,externalLatestVersion:ve?.latestVersion??null,onStatusChange:(ee,Ae)=>A(U.id,ee,Ae),disabled:o||l,channel:f},U.id)}),xe&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:e("noKitInstalled")})}),!xe&&se===0&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:ue})})]}),d.jsxs("aside",{className:"space-y-3 xl:sticky xl:top-20 self-start",children:[d.jsxs("div",{className:"dash-panel p-4 space-y-3",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("updateReadiness")}),d.jsxs("div",{className:"space-y-2",children:[d.jsx(Ra,{label:e("updateAvailable"),value:I.toString(),tone:I>0?"accent":"default"}),d.jsx(Ra,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Ra,{label:e("checkedComponents"),value:G.toString()}),d.jsx(Ra,{label:e("activeChannel"),value:e(f==="beta"?"channelBeta":"channelStable")})]})]}),n&&d.jsx(dP,{configPath:n.configPath,nodeVersion:n.nodeVersion,bunVersion:n.bunVersion,os:n.os}),d.jsx(uP,{})]})]})]}),d.jsx(Ou,{isOpen:h,onClose:()=>u(!1),target:"cli",mode:"batch",components:i.filter(U=>U.status==="update-available").map(U=>({id:U.id,name:U.id==="cli"?"CLI":`${U.id} Kit`})),onComplete:z})]})},Xi=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text";return d.jsxs("div",{className:"dash-panel p-3",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:t}),d.jsx("p",{className:`mt-1 mono text-xl font-semibold ${r}`,children:e})]})},Ra=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text-secondary";return d.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-2",children:[d.jsx("span",{className:"text-xs text-dash-text-muted",children:t}),d.jsx("span",{className:`mono text-xs font-semibold ${r}`,children:e})]})},Zi=({label:t,value:e,activeValue:n,onClick:r})=>{const i=e===n;return d.jsx("button",{type:"button",onClick:r,"aria-pressed":i,className:`dash-focus-ring px-2.5 py-1.5 rounded-lg text-[11px] font-semibold border transition-colors ${i?"border-dash-accent/30 bg-dash-accent-subtle text-dash-accent":"border-dash-border bg-dash-surface text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t})},Xc="~/.claude/settings.json",La="{}",vP=()=>{const{t}=he(),[e,n]=m.useState(!0),[r,i]=m.useState(Xc),[s,o]=m.useState(La),[a,l]=m.useState(La),[c,h]=m.useState(0),[u,f]=m.useState(!1),[p,g]=m.useState(!1),[b,x]=m.useState("idle"),[w,v]=m.useState(null),[k,j]=m.useState(null);m.useEffect(()=>{let A=!1;return(async()=>{n(!0),g(!1);try{const P=await I2();if(A)return;const R=JSON.stringify(P.settings??{},null,2);i(P.path||Xc),f(!!P.exists),o(R),l(R),v(null)}catch{if(A)return;g(!0),f(!1),i(Xc),o(La),l(La)}finally{A||n(!1)}})(),()=>{A=!0}},[]);const S=A=>{l(A),j(null);try{JSON.parse(A),v(null)}catch(T){v(T instanceof Error?T.message:"Invalid JSON")}},C=()=>{l(s),v(null),j(null),x("idle")},y=async()=>{if(!(e||w)){x("saving"),j(null);try{const A=JSON.parse(a),T=JSON.stringify(A,null,2),P=await $2(A);o(T),l(T),f(!0),x("saved"),j(P.backupPath?`${t("settingsBackupSaved")}: ${P.backupPath}`:t("saved")),setTimeout(()=>x("idle"),2e3)}catch(A){x("error"),j(A instanceof Error?A.message:t("saveFailed")),setTimeout(()=>x("idle"),3e3)}}},N=a!==s;return d.jsxs("section",{className:"h-full min-h-0 flex flex-col rounded-xl border border-dash-border bg-dash-surface p-3 shadow-sm",children:[d.jsxs("div",{className:"mb-2 flex items-end justify-between gap-3 px-1",children:[d.jsxs("div",{className:"min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("settingsJsonHeading")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted truncate",children:r})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{type:"button",onClick:C,disabled:e||!N||b==="saving",className:"px-3 py-1.5 rounded-lg bg-dash-surface text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border disabled:opacity-50 disabled:cursor-not-allowed",children:t("discard")}),d.jsx("button",{type:"button",onClick:y,disabled:e||b==="saving"||!!w||!N,className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase disabled:opacity-50 disabled:cursor-not-allowed ${b==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":b==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:t(b==="saving"?"saving":b==="saved"?"saved":b==="error"?"saveFailed":"saveChanges")})]})]}),d.jsx("div",{className:"flex-1 min-h-0",children:d.jsx(ju,{width:100,isLoading:e,jsonText:a,cursorLine:c,syntaxError:w,onChange:S,onCursorLineChange:h})}),k&&d.jsx("p",{className:`mt-2 px-1 text-xs ${b==="error"?"text-red-500":"text-dash-text-muted"}`,children:k}),!e&&!p&&!u&&d.jsx("p",{className:"mt-2 px-1 text-xs text-dash-text-muted",children:t("settingsJsonMissing")}),!e&&p&&d.jsx("p",{className:"mt-2 px-1 text-xs text-red-500",children:t("settingsJsonLoadFailed")})]})},wP=(t,e)=>{const[n,r]=m.useState(null);return m.useEffect(()=>{const i=t.split(`
248
248
  `),s=[];let o=null;for(let a=0;a<=Math.min(e,i.length-1);a++){const l=i[a].trim(),c=l.match(/"([^"]+)"\s*:\s*{/);if(c){s.push(c[1]),a===e&&(o=s.join("."));continue}if(l==="}"||l==="},"){s.pop();continue}const h=l.match(/"([^"]+)"\s*:/);if(h){const u=h[1];if(a===e){o=s.length>0?`${s.join(".")}.${u}`:u;break}}}r(o)},[t,e]),n};function Ty(t){const{scope:e,fetchConfig:n,fetchSchema:r,saveConfig:i,onReset:s}=t,[o,a]=m.useState("{}"),[l,c]=m.useState(0),[h,u]=m.useState(null),[f,p]=m.useState(null),[g,b]=m.useState({}),[x,w]=m.useState({}),[v,k]=m.useState({}),[j,S]=m.useState(!0),[C,y]=m.useState("idle"),[N,A]=m.useState(!1),[T,P]=m.useState(null),[R,z]=m.useState(null),I=wP(o,l),F=eS(R,I),G=m.useMemo(()=>Z2(F,f),[F,f]);m.useEffect(()=>{(async()=>{try{const[se,ue]=await Promise.all([n(),r()]),xe=se.local??se.config;b(xe),w(se.global??{}),k(se.sources),p(ue),a(JSON.stringify(xe,null,2))}catch(se){console.error("Failed to load config data:",se)}finally{S(!1)}})()},[n,r]),m.useEffect(()=>{try{JSON.parse(o),u(null)}catch(W){u(W instanceof Error?W.message:"Invalid JSON")}},[o]),m.useEffect(()=>{if(T==="json")try{const W=JSON.parse(o);b(W)}catch{}},[o,T]);const ae=m.useCallback(W=>{z(null),P("json"),a(W)},[]),X=m.useCallback(()=>{z(null)},[]),Q=m.useCallback((W,se)=>{z(W),P("form"),b(ue=>{const xe=Q2(ue,W,se);return a(JSON.stringify(xe,null,2)),xe}),k(ue=>({...ue,[W]:e}))},[e]),le=m.useCallback(async()=>{if(!h){y("saving");try{const W=JSON.parse(o),ue=await i(W)??W;b(ue),a(JSON.stringify(ue,null,2)),y("saved"),setTimeout(()=>y("idle"),2e3)}catch{y("error"),setTimeout(()=>y("idle"),3e3)}}},[o,h,i]),fe=m.useCallback(async()=>{if(A(!1),s){S(!0);try{const W=await s(),se=W.local??W.config;b(se),k(W.sources),a(JSON.stringify(se,null,2))}catch(W){console.error("Failed to reset:",W)}finally{S(!1)}}else{const W={};b(W),a(JSON.stringify(W,null,2))}},[s]);return{jsonText:o,config:g,globalConfig:x,sources:v,schema:f,isLoading:j,saveStatus:C,syntaxError:h,cursorLine:l,showResetConfirm:N,activeFieldPath:F,fieldDoc:G,handleJsonChange:ae,handleJsonEditorFocus:X,handleFormChange:Q,handleSave:le,handleReset:fe,setCursorLine:c,setFocusedFieldPath:z,setShowResetConfirm:A}}function Oh({storageKey:t,defaultSizes:e,minSizes:n}){const[r,i]=m.useState(()=>{if(typeof window>"u")return e;const c=localStorage.getItem(t);if(c)try{const h=JSON.parse(c);if(Array.isArray(h)&&h.length===e.length){const u=h.reduce((f,p)=>f+p,0);if(Math.abs(u-100)<1)return h}}catch{}return e}),[s,o]=m.useState(!1);m.useEffect(()=>{localStorage.setItem(t,JSON.stringify(r))},[r,t]);const a=m.useCallback((c,h)=>{h.preventDefault(),o(!0);const u=h.target.parentElement;if(!u)return;const p=u.getBoundingClientRect().width,g=h.clientX,b=[...r],x=v=>{const j=(v.clientX-g)/p*100,S=[...b],C=c,y=c+1;let N=b[C]+j,A=b[y]-j;N<n[C]&&(N=n[C],A=b[C]+b[y]-N),A<n[y]&&(A=n[y],N=b[C]+b[y]-A),S[C]=N,S[y]=A,i(S)},w=()=>{o(!1),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",w),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",x),document.addEventListener("mouseup",w),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[r,n]),l=m.useCallback(()=>{i(e)},[e]);return{sizes:r,isDragging:s,startDrag:a,reset:l}}const zo="/api";async function Tm(t){const e=`${zo}/ck-config`,n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch ck-config: ${n.status}`);return n.json()}async function Em(t,e){const n=new URLSearchParams({scope:t});e&&n.set("projectId",e);const r=await fetch(`${zo}/ck-config?${n}`);if(!r.ok)throw new Error(`Failed to fetch ck-config: ${r.status}`);return r.json()}async function Ey(t){const e=await fetch(`${zo}/ck-config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!e.ok){const n=await e.json().catch(()=>({error:"Unknown error"}));throw new Error(n.error||`Failed to save ck-config: ${e.status}`)}return e.json()}async function Ry(){const t=await fetch(`${zo}/ck-config/schema`);if(!t.ok)throw new Error(`Failed to fetch schema: ${t.status}`);return t.json()}async function SP(t,e,n,r){const i=await fetch(`${zo}/ck-config/field`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:n,projectId:r,fieldPath:t,value:e})});if(!i.ok){const s=await i.json().catch(()=>({error:"Unknown error"}));throw new Error(s.error||`Failed to update field: ${i.status}`)}}const kP=.58,es=280,Ph=240,CP=80;function jP(t,e,n){return Math.min(Math.max(t,e),n)}function OP(t,e){if(typeof window>"u")return e;const n=localStorage.getItem(t);if(!n)return e;const r=Number.parseFloat(n);if(Number.isNaN(r))return e;if(r>0&&r<1)return r;if(r>=1){const i=Math.max(window.innerHeight-220,r+Ph);return Math.min(.75,Math.max(.35,r/i))}return e}function PP(t,e,n,r){const[i,s]=m.useState(()=>typeof window>"u"?e:OP(t,e)),[o,a]=m.useState(!1),l=m.useCallback(c=>{c.preventDefault(),a(!0);const h=c.target.closest("[data-vresize-container]");if(!h)return;const u=p=>{const g=h.getBoundingClientRect(),b=g.height||1,x=(p.clientY-g.top)/b,w=n/b,v=Math.max(w,1-r/b);s(Math.max(w,Math.min(v,x)))},f=()=>{a(!1),document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",f),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",u),document.addEventListener("mouseup",f),document.body.style.cursor="row-resize",document.body.style.userSelect="none"},[r,n]);return m.useEffect(()=>{localStorage.setItem(t,String(i))},[t,i]),{topRatio:i,isDragging:o,startDrag:l}}function NP(){const[t,e]=m.useState(null),[n,r]=m.useState(0),i=m.useCallback(s=>{e(s)},[]);return m.useEffect(()=>{if(!t)return;const s=()=>{r(t.getBoundingClientRect().height)};if(s(),typeof ResizeObserver>"u")return;const o=new ResizeObserver(()=>{s()});return o.observe(t),()=>o.disconnect()},[t]),{ref:i,height:n}}const DP=()=>{const{t}=he(),e=Tn(),[n,r]=m.useState("config"),[i,s]=m.useState({}),[o,a]=m.useState(es),[l,c]=m.useState(!1),{sizes:h,isDragging:u,startDrag:f}=Oh({storageKey:"claudekit-global-config-panels",defaultSizes:[35,40,25],minSizes:[20,25,15]}),{sizes:p,isDragging:g,startDrag:b}=Oh({storageKey:"claudekit-global-system-panels",defaultSizes:[70,30],minSizes:[45,20]}),x=PP("claudekit-form-taxonomy-px",kP,es,Ph),{ref:w,height:v}=NP(),k=m.useCallback(async()=>{const[I,F]=await Promise.all([Tm(),V2()]);return s(F),I},[]),j=m.useCallback(async I=>(await Ey({scope:"global",config:I})).config,[]),S=m.useCallback(async()=>await Tm(),[]),C=Ty({scope:"global",fetchConfig:k,fetchSchema:Ry,saveConfig:j,onReset:S}),y=m.useMemo(()=>[{id:"general",title:t("sectionGeneral"),fields:[{path:"codingLevel",label:t("fieldCodingLevel"),description:t("fieldCodingLevelDesc")},{path:"statusline",label:t("fieldStatusline"),description:t("fieldStatuslineDesc")},{path:"statuslineColors",label:t("fieldStatuslineColors"),description:t("fieldStatuslineColorsDesc")},{path:"statuslineQuota",label:t("fieldStatuslineQuota"),description:t("fieldStatuslineQuotaDesc")},{path:"locale.thinkingLanguage",label:t("fieldThinkingLanguage"),description:t("fieldThinkingLanguageDesc")},{path:"locale.responseLanguage",label:t("fieldResponseLanguage"),description:t("fieldResponseLanguageDesc")}]},{id:"paths",title:t("sectionPaths"),fields:[{path:"paths.docs",label:t("fieldDocsPath"),description:t("fieldDocsPathDesc")},{path:"paths.plans",label:t("fieldPlansPath"),description:t("fieldPlansPathDesc")}]},{id:"privacy",title:t("sectionPrivacy"),defaultCollapsed:!0,fields:[{path:"privacyBlock",label:t("fieldPrivacyBlock"),description:t("fieldPrivacyBlockDesc")},{path:"trust.enabled",label:t("fieldTrustEnabled"),description:t("fieldTrustEnabledDesc")},{path:"trust.passphrase",label:t("fieldTrustPassphrase"),description:t("fieldTrustPassphraseDesc")}]},{id:"project",title:t("sectionProject"),defaultCollapsed:!0,fields:[{path:"project.type",label:t("fieldProjectType"),description:t("fieldProjectTypeDesc")},{path:"project.packageManager",label:t("fieldPackageManager"),description:t("fieldPackageManagerDesc")},{path:"project.framework",label:t("fieldFramework"),description:t("fieldFrameworkDesc")}]},{id:"integrations",title:t("sectionIntegrations"),defaultCollapsed:!0,fields:[{path:"gemini.model",label:t("fieldGeminiModel"),description:t("fieldGeminiModelDesc"),editable:!0,enumLabels:{"gemini-2.5-flash":t("geminiModel25Flash"),"gemini-2.5-pro":t("geminiModel25Pro"),"gemini-3-flash-preview":t("geminiModel3FlashPreview"),"gemini-3-pro-preview":t("geminiModel3ProPreview")}},{path:"skills.research.useGemini",label:t("fieldResearchUseGemini"),description:t("fieldResearchUseGeminiDesc")}]},{id:"hooks",title:t("sectionHooks"),defaultCollapsed:!0,fields:[{path:"hooks.session-init",label:t("fieldHookSessionInit"),description:t("fieldHookSessionInitDesc")},{path:"hooks.subagent-init",label:t("fieldHookSubagentInit"),description:t("fieldHookSubagentInitDesc")},{path:"hooks.descriptive-name",label:t("fieldHookDescriptiveName"),description:t("fieldHookDescriptiveNameDesc")},{path:"hooks.dev-rules-reminder",label:t("fieldHookDevRulesReminder"),description:t("fieldHookDevRulesReminderDesc")},{path:"hooks.usage-context-awareness",label:t("fieldHookUsageContextAwareness"),description:t("fieldHookUsageContextAwarenessDesc")},{path:"hooks.context-tracking",label:t("fieldHookContextTracking"),description:t("fieldHookContextTrackingDesc")},{path:"hooks.scout-block",label:t("fieldHookScoutBlock"),description:t("fieldHookScoutBlockDesc")},{path:"hooks.privacy-block",label:t("fieldHookPrivacyBlock"),description:t("fieldHookPrivacyBlockDesc")},{path:"hooks.post-edit-simplify-reminder",label:t("fieldHookPostEditSimplify"),description:t("fieldHookPostEditSimplifyDesc")}]},{id:"updatePipeline",title:t("sectionUpdatePipeline"),defaultCollapsed:!0,fields:[{path:"updatePipeline.autoInitAfterUpdate",label:t("fieldAutoInitAfterUpdate"),description:t("fieldAutoInitAfterUpdateDesc")},{path:"updatePipeline.autoMigrateAfterUpdate",label:t("fieldAutoMigrateAfterUpdate"),description:t("fieldAutoMigrateAfterUpdateDesc")},{path:"updatePipeline.migrateProviders",label:t("fieldMigrateProviders"),description:t("fieldMigrateProvidersDesc")}]},{id:"advanced",title:t("sectionAdvanced"),defaultCollapsed:!0,fields:[{path:"docs.maxLoc",label:t("fieldDocsMaxLoc"),description:t("fieldDocsMaxLocDesc")},{path:"plan.namingFormat",label:t("fieldPlanNamingFormat"),description:t("fieldPlanNamingFormatDesc")},{path:"plan.dateFormat",label:t("fieldPlanDateFormat"),description:t("fieldPlanDateFormatDesc")},{path:"plan.validation.mode",label:t("fieldPlanValidationMode"),description:t("fieldPlanValidationModeDesc")},{path:"plan.validation.minQuestions",label:t("fieldPlanMinQuestions"),description:t("fieldPlanMinQuestionsDesc")},{path:"plan.validation.maxQuestions",label:t("fieldPlanMaxQuestions"),description:t("fieldPlanMaxQuestionsDesc")},{path:"assertions",label:t("fieldAssertions"),description:t("fieldAssertionsDesc")}]}],[t]),N=m.useMemo(()=>{if(v<=0)return null;const I=Math.max(es,v-Ph);return jP(x.topRatio*v,es,I)},[x.topRatio,v]),A=m.useMemo(()=>l||N===null?null:Math.min(N,o),[o,l,N]),T=m.useMemo(()=>{if(!l||v<=0)return null;const I=Math.max(es,v-CP);return Math.min(o,I)},[o,l,v]),P=l?T:A,R=!C.isLoading&&!l&&A!==null,z=C.showResetConfirm?d.jsxs("div",{className:"flex items-center gap-2 bg-red-500/10 border border-red-500/30 rounded-lg px-2 py-1 animate-in fade-in duration-200",children:[d.jsx("span",{className:"text-xs text-red-500 font-medium",children:t("confirmReset")}),d.jsx("button",{type:"button",onClick:C.handleReset,className:"px-2 py-0.5 rounded bg-red-500 text-white text-xs font-bold hover:bg-red-600 transition-colors",children:t("confirm")}),d.jsx("button",{type:"button",onClick:()=>C.setShowResetConfirm(!1),className:"px-2 py-0.5 rounded bg-dash-surface text-dash-text-secondary text-xs font-bold hover:bg-dash-surface-hover transition-colors border border-dash-border",children:t("cancel")})]}):d.jsxs(d.Fragment,{children:[d.jsx("button",{type:"button",onClick:()=>C.setShowResetConfirm(!0),className:"px-3 py-1.5 rounded-lg bg-dash-surface text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border",children:t("resetToDefault")}),d.jsx("button",{type:"button",onClick:C.handleSave,disabled:!!C.syntaxError||C.saveStatus==="saving",className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase ${C.syntaxError?"bg-dash-surface text-dash-text-muted cursor-not-allowed border border-dash-border":C.saveStatus==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":C.saveStatus==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:C.saveStatus==="saving"?t("saving"):C.saveStatus==="saved"?t("saved"):C.saveStatus==="error"?t("saveFailed"):t("saveChanges")})]});return d.jsxs("div",{className:"animate-in fade-in duration-300 w-full h-full flex flex-col transition-colors",children:[d.jsx(A0,{title:t("globalConfig"),filePath:"~/.claude/.ck.json",onBack:()=>e(-1),onSave:C.handleSave,onReset:C.handleReset,saveStatus:C.saveStatus,syntaxError:C.syntaxError,showResetConfirm:C.showResetConfirm,setShowResetConfirm:C.setShowResetConfirm,showActions:!1,showFilePath:!1}),d.jsxs("div",{className:"mb-3 shrink-0 flex items-center justify-between gap-3",children:[d.jsxs("div",{role:"tablist","aria-label":t("globalConfig"),className:"inline-flex items-center rounded-xl border border-dash-border bg-dash-surface p-1 shadow-sm",children:[d.jsx("button",{role:"tab","aria-selected":n==="config",onClick:()=>r("config"),className:`dash-focus-ring px-4 py-2 rounded-lg text-sm font-semibold transition-colors ${n==="config"?"bg-dash-accent-subtle text-dash-accent":"text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t("configTab")}),d.jsx("button",{role:"tab","aria-selected":n==="metadata",onClick:()=>r("metadata"),className:`dash-focus-ring px-4 py-2 rounded-lg text-sm font-semibold transition-colors ${n==="metadata"?"bg-dash-accent-subtle text-dash-accent":"text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t("systemTab")})]}),d.jsx("p",{className:"hidden lg:block text-xs text-dash-text-muted",children:t("configWorkspaceHint")})]}),d.jsxs("div",{className:"flex-1 flex min-h-0",children:[n==="config"&&d.jsxs(d.Fragment,{children:[d.jsxs("div",{ref:w,"data-vresize-container":!0,style:{width:`${h[0]}%`},className:"flex flex-col min-w-0 min-h-0 h-full",children:[d.jsx("div",{style:P!==null?{height:`${P}px`}:void 0,className:`min-h-0 ${P!==null?"shrink-0":"flex-1"}`,children:d.jsx(R0,{width:100,isLoading:C.isLoading,schema:C.schema,config:C.config,sources:C.sources,sections:y,onChange:C.handleFormChange,onFieldFocus:C.setFocusedFieldPath,onNaturalHeightChange:a})}),!C.isLoading&&d.jsxs(d.Fragment,{children:[l&&P!==null&&d.jsx("div",{className:"flex-1"}),R&&d.jsx(rr,{direction:"vertical",isDragging:x.isDragging,onMouseDown:x.startDrag}),d.jsx("div",{className:l?"shrink-0":"flex-1 min-h-0 overflow-hidden",children:d.jsx(iP,{config:C.config,onChange:C.handleFormChange,isCollapsed:l,onCollapsedChange:c})})]})]}),d.jsx(rr,{direction:"horizontal",isDragging:u,onMouseDown:I=>f(0,I)}),d.jsx(ju,{width:h[1],isLoading:C.isLoading,jsonText:C.jsonText,cursorLine:C.cursorLine,syntaxError:C.syntaxError,onChange:C.handleJsonChange,onEditorFocus:C.handleJsonEditorFocus,onCursorLineChange:C.setCursorLine,headerPath:"~/.claude/.ck.json",headerActions:z}),d.jsx(rr,{direction:"horizontal",isDragging:u,onMouseDown:I=>f(1,I)}),d.jsx(Dy,{width:h[2],fieldDoc:C.fieldDoc,activeFieldPath:C.activeFieldPath})]}),n==="metadata"&&d.jsxs("div",{className:"flex-1 min-h-0 flex",children:[d.jsx("div",{style:{width:`${p[0]}%`},className:"min-w-0 h-full overflow-auto pr-1",children:C.isLoading?d.jsx("div",{className:"dash-panel h-full flex items-center justify-center",children:d.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:t("loading")})}):d.jsx(yP,{metadata:i})}),d.jsx(rr,{direction:"horizontal",isDragging:g,onMouseDown:I=>b(0,I)}),d.jsx("div",{style:{width:`${p[1]}%`},className:"min-w-0 h-full overflow-hidden",children:d.jsx(vP,{})})]})]})]})};function AP({phase:t}){const e=t.status==="completed"?"border-green-500":t.status==="in-progress"?"border-blue-500":"border-amber-400";return d.jsx("div",{className:`rounded border-l-4 ${e} bg-white dark:bg-gray-800 p-3 shadow-sm`,children:d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"text-xs font-mono text-gray-400 dark:text-gray-500",children:t.phaseId}),d.jsx("span",{className:"text-sm font-medium text-gray-800 dark:text-gray-100",children:t.name})]})})}function Zc({title:t,phases:e,borderColor:n}){return d.jsxs("div",{className:"flex flex-1 flex-col gap-3 min-w-0","aria-label":`${t} phases`,children:[d.jsxs("div",{className:`rounded-t border-t-2 ${n} bg-gray-50 dark:bg-gray-900 px-3 py-2`,children:[d.jsx("span",{className:"text-sm font-semibold text-gray-700 dark:text-gray-200",children:t}),d.jsx("span",{className:"ml-2 text-xs text-gray-400",children:e.length})]}),d.jsx("div",{className:"flex flex-col gap-2 px-1",children:e.map((r,i)=>d.jsx(AP,{phase:r},`${r.phaseId}-${i}`))})]})}function MP({completed:t,total:e}){const{t:n}=he(),r=e===0?0:Math.round(t/e*100);return d.jsxs("div",{className:"flex flex-col gap-1",children:[d.jsxs("div",{className:"flex justify-between text-xs text-gray-500 dark:text-gray-400",children:[d.jsx("span",{children:n("kanbanProgress")}),d.jsxs("span",{children:[t,"/",e," ",n("kanbanPhases")," — ",r,"% ",n("kanbanComplete")]})]}),d.jsx("div",{className:"h-2 w-full rounded bg-gray-200 dark:bg-gray-700",children:d.jsx("div",{className:"h-2 rounded bg-green-500 transition-all",style:{width:`${r}%`}})})]})}function TP(){const{t}=he(),[e]=x2(),n=e.get("file")??"",[r,i]=m.useState([]),[s,o]=m.useState(!1),[a,l]=m.useState(null);if(m.useEffect(()=>{n&&(o(!0),l(null),i([]),fetch(`/api/plan/parse?file=${encodeURIComponent(n)}`).then(p=>{if(!p.ok){const g={400:"kanbanError400",403:"kanbanError403",404:"kanbanError404"};throw new Error(g[p.status]??`error:HTTP:${p.status}`)}return p.json()}).then(p=>i(p.phases)).catch(p=>l(p instanceof Error?p.message:String(p))).finally(()=>o(!1)))},[n]),!n)return d.jsx("div",{className:"flex h-full items-center justify-center text-gray-400 dark:text-gray-500",children:t("kanbanNoFile")});let c=[],h=[],u=[],f=null;try{c=r.filter(p=>p.status==="pending"),h=r.filter(p=>p.status==="in-progress"),u=r.filter(p=>p.status==="completed")}catch(p){f=p instanceof Error?p.message:String(p)}return f?d.jsx("div",{className:"flex h-full items-center justify-center text-red-500 dark:text-red-400",children:t("kanbanLoadError")}):d.jsxs("div",{className:"flex h-full flex-col gap-4 p-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("h1",{className:"text-xl font-bold text-gray-900 dark:text-white",children:t("kanbanTitle")}),d.jsx("span",{className:"text-xs text-gray-400 dark:text-gray-500 truncate max-w-xs",title:n,children:n.replaceAll("\\","/")})]}),r.length>0&&d.jsx(MP,{completed:u.length,total:r.length}),s&&d.jsx("div",{className:"flex flex-1 items-center justify-center text-gray-400",children:t("loading")}),a&&d.jsxs("div",{className:"rounded border border-red-300 bg-red-50 dark:bg-red-900/20 p-4 text-red-600 dark:text-red-400",children:[t("error"),":"," ",a in{kanbanError400:"",kanbanError403:"",kanbanError404:""}?t(a):a]}),!s&&!a&&r.length===0&&d.jsx("div",{className:"flex flex-1 items-center justify-center text-gray-400 dark:text-gray-500",children:t("kanbanNoPhases")}),!s&&!a&&r.length>0&&d.jsxs("section",{"aria-label":t("kanbanTitle"),className:"flex flex-1 flex-col gap-4 overflow-auto md:flex-row",children:[d.jsx(Zc,{title:t("kanbanStatus_pending"),phases:c,borderColor:"border-amber-400"}),d.jsx(Zc,{title:t("kanbanStatus_in-progress"),phases:h,borderColor:"border-blue-500"}),d.jsx(Zc,{title:t("kanbanStatus_completed"),phases:u,borderColor:"border-green-500"})]})]})}const Rm=[{key:"agent",labelKey:"migrateTypeAgents",badgeClass:"border-dash-accent/30 text-dash-accent"},{key:"command",labelKey:"migrateTypeCommands",badgeClass:"border-yellow-500/30 text-yellow-400"},{key:"skill",labelKey:"migrateTypeSkills",badgeClass:"border-purple-500/30 text-purple-400"},{key:"config",labelKey:"migrateTypeConfig",badgeClass:"border-teal-500/30 text-teal-400"},{key:"rules",labelKey:"migrateTypeRules",badgeClass:"border-rose-500/30 text-rose-400"},{key:"hooks",labelKey:"migrateTypeHooks",badgeClass:"border-cyan-500/30 text-cyan-400"}],EP=new Set([8203,8204,8205,8288,65279,8232,8233,8234,8235,8236,8237,8238,8294,8295,8296,8297]);function RP(t){return t===9||t===10||t===13?!0:t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159||EP.has(t)}function Pr(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(RP(r)||(e+=n))}return e}function Lm(t){if(!t)return"-";const e=t.replace(/\\/g,"/"),n=e.match(/.*\/(\.[^/]+\/)/);if(n?.[1]){const i=(n.index??0)+n[0].length-n[1].length;return e.slice(i)}const r=e.split("/");return r.length>3?`.../${r.slice(-3).join("/")}`:e}function oi(t){return t.success?t.skipped?"skipped":"installed":"failed"}function LP(t){const e={installed:0,skipped:0,failed:0};for(const n of t){const r=oi(n);r==="installed"?e.installed+=1:r==="skipped"?e.skipped+=1:e.failed+=1}return e}function Ly(t){switch(t){case"agent":case"command":case"skill":case"config":case"rules":case"hooks":case"unknown":return t;default:return"unknown"}}function IP(t,e){switch(t){case"failed":return{label:e("migrateStatusFailed"),className:"border-red-500/30 bg-red-500/10 text-red-400"};case"skipped":return{label:e("migrateStatusSkipped"),className:"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"};default:return{label:e("migrateStatusInstalled"),className:"border-green-500/30 bg-green-500/10 text-green-400"}}}function $P(t){const e=new Map;for(const n of t){const r=Ly(n.portableType),i=e.get(r)||[];i.push(n),e.set(r,i)}return e}function BP(t){return[Ly(t.portableType),t.provider,t.providerDisplayName,t.itemName,t.path,t.success,t.skipped,t.overwritten,t.error,t.skipReason].map(n=>n===void 0?"":String(n)).join("|")}function FP(t){if(t.length===0)return!0;const e=t[0].provider;return t.every(n=>n.provider===e)}const mi=({label:t,count:e,className:n})=>e<=0?null:d.jsxs("span",{className:`inline-flex items-center gap-1 rounded-md border px-2.5 py-1 text-xs ${n}`,children:[d.jsx("span",{className:"font-semibold",children:e}),d.jsx("span",{children:t})]}),Im=({labelKey:t,badgeClass:e,items:n,isExpanded:r,onToggle:i,singleProvider:s})=>{const{t:o}=he(),a=n.filter(f=>oi(f)==="installed").length,l=n.filter(f=>oi(f)==="skipped").length,c=n.filter(f=>oi(f)==="failed").length,h=s?"md:grid-cols-[minmax(0,1.5fr)_minmax(0,1.35fr)_auto_minmax(0,1fr)]":"md:grid-cols-[minmax(0,1.2fr)_minmax(0,0.8fr)_minmax(0,1.2fr)_auto_minmax(0,1fr)]",u=new Map;return d.jsxs("div",{className:"rounded-xl border border-dash-border bg-dash-surface overflow-hidden",children:[d.jsxs("button",{type:"button",onClick:i,className:"w-full flex flex-wrap items-center gap-2 px-4 py-3 text-left hover:bg-dash-surface-hover transition-colors",children:[d.jsx("svg",{className:`w-3.5 h-3.5 text-dash-text-muted transition-transform ${r?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:d.jsx("path",{d:"M9 5l7 7-7 7"})}),d.jsx("p",{className:"text-sm font-semibold text-dash-text",children:o(t)}),d.jsx("span",{className:`inline-flex items-center rounded-full border px-2 py-0.5 text-[11px] font-semibold ${e}`,children:n.length}),d.jsx("span",{className:"hidden sm:block flex-1"}),d.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 text-[11px]",children:[d.jsx(mi,{label:o("migrateStatusInstalled"),count:a,className:"border-green-500/30 bg-green-500/10 text-green-400"}),d.jsx(mi,{label:o("migrateStatusSkipped"),count:l,className:"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"}),d.jsx(mi,{label:o("migrateStatusFailed"),count:c,className:"border-red-500/30 bg-red-500/10 text-red-400"})]})]}),r&&d.jsxs("div",{className:"border-t border-dash-border/80",children:[d.jsxs("div",{className:`hidden md:grid ${h} items-center gap-3 px-4 py-2 border-b border-dash-border/70 text-[10px] font-semibold uppercase tracking-wide text-dash-text-muted`,children:[d.jsx("p",{children:o("migrateItem")}),!s&&d.jsx("p",{children:o("migrateProvider")}),d.jsx("p",{children:o("migratePath")}),d.jsx("p",{children:o("migrateStatus")}),d.jsx("p",{children:o("migrateError")})]}),d.jsx("div",{className:"divide-y divide-dash-border/70",children:n.map(f=>{const p=BP(f),g=u.get(p)??0;u.set(p,g+1);const b=g===0?p:`${p}#${g}`,x=oi(f),w=IP(x,o),v=Pr(f.itemName||Lm(f.path)),k=Pr(f.providerDisplayName||f.provider||""),j=Pr(f.path||""),S=Pr(Lm(f.path)),C=Pr(f.error||f.skipReason||"");return d.jsxs("div",{className:`grid gap-1.5 ${h} items-start px-4 py-2.5 hover:bg-dash-bg/60 transition-colors`,children:[d.jsxs("div",{className:"min-w-0",children:[d.jsx("p",{className:"text-xs font-semibold text-dash-text truncate",title:v,children:v}),d.jsxs("div",{className:"mt-0.5 space-y-0.5 md:hidden",children:[!s&&d.jsx("p",{className:"text-[11px] text-dash-text-secondary truncate",children:k}),d.jsx("p",{className:"font-mono text-[11px] text-dash-text-muted truncate",title:j,children:S}),C&&d.jsx("p",{className:"text-[11px] text-red-400/80 line-clamp-2",title:C,children:C})]})]}),!s&&d.jsx("p",{className:"hidden md:block text-[11px] text-dash-text-secondary truncate",children:k}),d.jsx("p",{className:"hidden md:block font-mono text-[11px] text-dash-text-muted truncate",title:j,children:S}),d.jsx("span",{className:`inline-flex w-fit items-center rounded-full border px-2 py-0.5 text-[11px] font-medium ${w.className}`,children:w.label}),d.jsx("p",{className:`hidden md:block text-[11px] truncate ${C?"text-red-400/80":"text-dash-text-muted"}`,title:C,children:C||"-"})]},b)})})]})]})},zP=({results:t,onReset:e})=>{const{t:n}=he(),[r,i]=m.useState(""),s=m.useDeferredValue(r),[o,a]=m.useState("all"),[l,c]=m.useState(()=>new Set(Rm.map(j=>j.key))),h=m.useMemo(()=>{const j=s.trim().toLowerCase();return t.results.filter(S=>{if(o!=="all"&&oi(S)!==o)return!1;if(!j)return!0;const C=(S.itemName||"").toLowerCase(),y=(S.path||"").toLowerCase(),N=(S.providerDisplayName||S.provider||"").toLowerCase();return C.includes(j)||y.includes(j)||N.includes(j)})},[t.results,s,o]),u=m.useMemo(()=>FP(h),[h]),f=m.useMemo(()=>{if(!u||h.length===0)return"";const j=Array.from(new Set(h.map(S=>S.providerDisplayName?.trim()||"").filter(S=>S.length>0)));return j.length===1?j[0]:h[0]?.provider||""},[h,u]),p=m.useMemo(()=>$P(h),[h]),g=m.useMemo(()=>LP(t.results),[t.results]),b=m.useMemo(()=>[...p.keys()],[p]),x=g.installed+g.skipped+g.failed,w=b.length>0&&b.every(j=>l.has(j)),v=j=>{c(S=>{const C=new Set(S);return C.has(j)?C.delete(j):C.add(j),C})},k=()=>{if(w){c(new Set);return}c(new Set(b))};return d.jsxs("div",{className:"dash-panel p-4 md:p-5 space-y-4",children:[d.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-start md:justify-between",children:[d.jsxs("div",{children:[d.jsxs("h2",{className:"text-base font-semibold text-dash-text",children:[n("migrateSummaryTitle"),u&&f&&d.jsxs("span",{className:"text-dash-text-muted font-normal",children:[" ","· ",Pr(f)]})]}),d.jsxs("p",{className:"text-xs text-dash-text-muted mt-1",children:[x," ",n("migrateSummarySubtitle")]})]}),d.jsx("button",{type:"button",onClick:e,className:"dash-focus-ring px-4 py-2 text-sm font-semibold rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:n("migrateSummaryNewMigration")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[d.jsx(mi,{label:n("migrateStatusInstalled"),count:g.installed,className:"border-green-500/30 bg-green-500/10 text-green-400"}),d.jsx(mi,{label:n("migrateStatusSkipped"),count:g.skipped,className:"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"}),d.jsx(mi,{label:n("migrateStatusFailed"),count:g.failed,className:"border-red-500/30 bg-red-500/10 text-red-400"})]}),t.warnings.length>0&&d.jsx("div",{className:"space-y-2",children:t.warnings.map((j,S)=>d.jsx("div",{className:"px-3 py-2 border border-yellow-500/30 bg-yellow-500/10 rounded-md text-xs text-yellow-400",children:Pr(j)},S))}),d.jsxs("div",{className:"flex flex-col gap-2",children:[d.jsxs("div",{className:"relative",children:[d.jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 stroke-dash-text-muted",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[d.jsx("circle",{cx:"11",cy:"11",r:"8"}),d.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),d.jsx("input",{type:"text",value:r,onChange:j=>i(j.target.value),placeholder:n("migrateSummarySearchPlaceholder"),className:"dash-focus-ring w-full pl-9 pr-3 py-2 bg-dash-bg border border-dash-border rounded-lg text-dash-text text-sm focus:border-dash-accent transition-colors"})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[["all","installed","skipped","failed"].map(j=>{const S=j==="all"?"migrateSummaryFilterAll":j==="installed"?"migrateStatusInstalled":j==="skipped"?"migrateStatusSkipped":"migrateStatusFailed";return d.jsx("button",{type:"button",onClick:()=>a(j),className:`dash-focus-ring px-3 py-1 text-xs font-medium rounded-full border transition-colors ${o===j?"bg-dash-accent/10 border-dash-accent text-dash-accent":"border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover hover:text-dash-text"}`,children:n(S)},j)}),d.jsx("button",{type:"button",onClick:k,className:"dash-focus-ring ml-1 px-3 py-1 text-xs font-medium rounded-md border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:n(w?"migrateSummaryCollapseAll":"migrateSummaryExpandAll")})]})]}),h.length===0?d.jsx("div",{className:"text-center py-8 text-sm text-dash-text-muted",children:n("migrateSummaryNoResults")}):d.jsxs("div",{className:"space-y-2.5",children:[Rm.map(j=>{const S=p.get(j.key);return!S||S.length===0?null:d.jsx(Im,{labelKey:j.labelKey,badgeClass:j.badgeClass,items:S,isExpanded:l.has(j.key),onToggle:()=>v(j.key),singleProvider:u},j.key)}),(()=>{const j=p.get("unknown");return!j||j.length===0?null:d.jsx(Im,{labelKey:"migrateTypeUnknown",badgeClass:"border-dash-border text-dash-text-muted",items:j,isExpanded:l.has("unknown"),onToggle:()=>v("unknown"),singleProvider:u})})()]})]})},VP=500;function HP(t){return t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159}function _P(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(HP(r)||(e+=n))}return e}const WP=({diff:t,className:e=""})=>{const n=t.split(`
249
249
  `),r=n.slice(0,VP),i=n.length-r.length;return d.jsxs("pre",{className:`text-xs font-mono overflow-x-auto p-3 rounded bg-dash-bg border border-dash-border ${e}`,children:[r.map((s,o)=>{const a=_P(s);let l="text-dash-text";return a.startsWith("+")?l="text-green-400 bg-green-500/10":a.startsWith("-")?l="text-red-400 bg-red-500/10":a.startsWith("@@")&&(l="text-blue-400"),d.jsx("div",{className:l,children:a},`${o}:${a.slice(0,24)}`)}),i>0&&d.jsxs("div",{className:"text-dash-text-muted",children:["... truncated ",i," additional line(s)"]})]})};function UP(t){return t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159}function ts(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(UP(r)||(e+=n))}return e}const KP=({action:t,resolution:e,onResolve:n})=>{const{t:r}=he(),[i,s]=m.useState(!1),o=t.ownedSections&&t.ownedSections.length>0;return d.jsxs("div",{className:"border border-dash-border rounded-lg p-4 mb-3 bg-dash-surface",children:[d.jsxs("div",{className:"flex justify-between items-start gap-4",children:[d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"font-mono text-sm text-dash-text truncate",children:[ts(t.provider),"/",ts(t.type),"/",ts(t.item)]}),d.jsx("p",{className:"text-xs text-dash-text-muted mt-1",children:ts(t.reason)}),t.targetPath&&d.jsx("p",{className:"text-xs text-dash-text-secondary mt-1 font-mono truncate",children:ts(t.targetPath)})]}),d.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[d.jsx("button",{type:"button",onClick:()=>n({type:"overwrite"}),className:`dash-focus-ring px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${e?.type==="overwrite"?"bg-dash-accent text-white":"bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover"}`,children:r("migrateConflictUseCK")}),d.jsx("button",{type:"button",onClick:()=>n({type:"keep"}),className:`dash-focus-ring px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${e?.type==="keep"?"bg-dash-accent text-white":"bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover"}`,children:r("migrateConflictKeepMine")}),o&&d.jsx("button",{type:"button",onClick:()=>n({type:"smart-merge"}),className:`dash-focus-ring px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${e?.type==="smart-merge"?"bg-dash-accent text-white":"bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover"}`,children:r("migrateConflictSmartMerge")}),t.diff&&d.jsx("button",{type:"button",onClick:()=>s(!i),className:"dash-focus-ring px-3 py-1.5 text-xs font-medium rounded-md border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:r(i?"migrateConflictHideDiff":"migrateConflictShowDiff")})]})]}),i&&t.diff&&d.jsx(WP,{diff:t.diff,className:"mt-3"}),e&&d.jsxs("div",{className:"mt-2 text-xs text-green-400 flex items-center gap-1.5",children:[d.jsx("svg",{className:"w-3.5 h-3.5",fill:"currentColor",viewBox:"0 0 20 20",children:d.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})}),d.jsxs("span",{children:[r("migrateConflictResolved"),": ",GP(e.type,r)]})]})]})};function GP(t,e){switch(t){case"overwrite":return e("migrateConflictUseCK");case"keep":return e("migrateConflictKeepMine");case"smart-merge":return e("migrateConflictSmartMerge");case"resolved":return e("migrateConflictManual");default:return String(t)}}const qP=[{key:"install",labelKey:"migrateActionInstall",activeClass:"border-green-400 text-green-400",badgeClass:"bg-green-500/10 border-green-500/30 text-green-400"},{key:"update",labelKey:"migrateActionUpdate",activeClass:"border-yellow-400 text-yellow-400",badgeClass:"bg-yellow-500/10 border-yellow-500/30 text-yellow-400"},{key:"conflict",labelKey:"migrateActionConflict",activeClass:"border-red-400 text-red-400",badgeClass:"bg-red-500/10 border-red-500/30 text-red-400"},{key:"delete",labelKey:"migrateActionDelete",activeClass:"border-dash-text-secondary text-dash-text-secondary",badgeClass:"bg-dash-bg border-dash-border text-dash-text-secondary"},{key:"skip",labelKey:"migrateActionSkip",activeClass:"border-dash-text-muted text-dash-text-muted",badgeClass:"bg-dash-bg border-dash-border text-dash-text-muted"}],$m=["agent","command","skill","config","rules","hooks"],YP={agent:"migrateTypeAgents",command:"migrateTypeCommands",skill:"migrateTypeSkills",config:"migrateTypeConfig",rules:"migrateTypeRules",hooks:"migrateTypeHooks"},JP={agent:"border-dash-accent/30 text-dash-accent",command:"border-yellow-500/30 text-yellow-400",skill:"border-purple-500/30 text-purple-400",config:"border-teal-500/30 text-teal-400",rules:"border-rose-500/30 text-rose-400",hooks:"border-cyan-500/30 text-cyan-400"},Jr=200;function QP(t){return t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159}function Ia(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(QP(r)||(e+=n))}return e}function XP(t){const e={install:[],update:[],skip:[],conflict:[],delete:[]};for(const n of t)e[n.action].push(n);return e}function ZP(t){const e=new Map;for(const n of t){const r=e.get(n.type)||[];r.push(n),e.set(n.type,r)}return e}const e6=({plan:t,resolutions:e,onResolve:n,actionKey:r})=>{const{t:i}=he(),s=m.useMemo(()=>XP(t.actions),[t.actions]),o=m.useMemo(()=>qP.filter(f=>s[f.key].length>0),[s]),[a,l]=m.useState(()=>s.conflict.length>0?"conflict":s.install.length>0?"install":o[0]?.key??"install");m.useEffect(()=>{s[a]?.length===0&&o.length>0&&l(o[0].key)},[s,a,o]);const c=m.useMemo(()=>s[a]??[],[s,a]),h=m.useMemo(()=>ZP(c),[c]),u=f=>{for(const p of s.conflict)n(p,{type:f})};return d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"flex flex-wrap gap-2 text-xs",children:[t.summary.install>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-green-500/10 border border-green-500/30 text-green-400",children:[t.summary.install," ",i("migrateActionInstall")]}),t.summary.update>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-yellow-500/10 border border-yellow-500/30 text-yellow-400",children:[t.summary.update," ",i("migrateActionUpdate")]}),t.summary.skip>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-dash-bg border border-dash-border text-dash-text-muted",children:[t.summary.skip," ",i("migrateActionSkip")]}),t.summary.conflict>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-red-500/10 border border-red-500/30 text-red-400",children:[t.summary.conflict," ",i("migrateActionConflict")]}),t.summary.delete>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary",children:[t.summary.delete," ",i("migrateActionDelete")]})]}),o.length>1&&d.jsx("div",{className:"flex gap-1 border-b border-dash-border",children:o.map(f=>{const p=a===f.key;return d.jsxs("button",{type:"button",onClick:()=>l(f.key),className:`px-3 py-2 text-xs font-medium border-b-2 transition-colors ${p?f.activeClass:"border-transparent text-dash-text-muted hover:text-dash-text-secondary"}`,children:[i(f.labelKey)," ",d.jsx("span",{className:`ml-1 px-1.5 py-0.5 rounded text-[10px] border ${f.badgeClass}`,children:s[f.key].length})]},f.key)})}),a==="conflict"&&s.conflict.length>0&&d.jsxs("div",{className:"flex items-center justify-between gap-3",children:[d.jsxs("h3",{className:"text-sm font-semibold text-red-400",children:[i("migrateConflictSectionTitle")," (",s.conflict.length,")"]}),d.jsxs("div",{className:"flex gap-2",children:[d.jsx("button",{type:"button",onClick:()=>u("overwrite"),className:"dash-focus-ring px-3 py-1 text-xs font-medium rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:i("migrateConflictOverwriteAll")}),d.jsx("button",{type:"button",onClick:()=>u("keep"),className:"dash-focus-ring px-3 py-1 text-xs font-medium rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:i("migrateConflictKeepAll")})]})]}),a==="conflict"?$m.map(f=>{const p=h.get(f);return!p||p.length===0?null:d.jsxs(Bm,{type:f,count:p.length,children:[p.slice(0,Jr).map(g=>d.jsx(KP,{action:g,resolution:e.get(r(g))||null,onResolve:b=>n(g,b)},r(g))),p.length>Jr&&d.jsxs("div",{className:"text-xs text-dash-text-muted",children:["... ",p.length-Jr," more"]})]},`${a}:${f}`)}):$m.map(f=>{const p=h.get(f);return!p||p.length===0?null:d.jsxs(Bm,{type:f,count:p.length,defaultExpanded:a!=="skip",children:[p.slice(0,Jr).map(g=>d.jsx(t6,{action:g},`${g.provider}:${g.type}:${g.item}:${g.global}:${g.action}`)),p.length>Jr&&d.jsxs("div",{className:"text-xs text-dash-text-muted",children:["... ",p.length-Jr," more"]})]},`${a}:${f}`)})]})},Bm=({type:t,count:e,defaultExpanded:n=!0,children:r})=>{const{t:i}=he(),[s,o]=m.useState(n),a=JP[t],l=i(YP[t]);return d.jsxs("div",{className:"border border-dash-border rounded-lg bg-dash-surface",children:[d.jsxs("button",{type:"button","aria-expanded":s,onClick:()=>o(!s),className:"w-full px-4 py-2.5 flex items-center justify-between text-left hover:bg-dash-surface-hover transition-colors",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("h4",{className:"text-sm font-semibold text-dash-text",children:l}),d.jsx("span",{className:`px-2 py-0.5 text-xs rounded-md border ${a}`,children:e})]}),d.jsx("svg",{"aria-hidden":"true",className:`w-4 h-4 text-dash-text-muted transition-transform ${s?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),s&&d.jsx("div",{className:"px-4 pt-1 pb-4 space-y-2",children:r})]})},t6=({action:t})=>d.jsxs("div",{className:"px-3 py-2 bg-dash-bg rounded-md border border-dash-border",children:[d.jsxs("div",{className:"font-mono text-xs text-dash-text",children:[Ia(t.provider),"/",Ia(t.item)]}),d.jsx("div",{className:"text-xs text-dash-text-muted mt-1",children:Ia(t.reason)}),t.targetPath&&d.jsx("div",{className:"text-xs text-dash-text-secondary mt-0.5 font-mono truncate",children:Ia(t.targetPath)})]});var n6=function(e){return typeof window<"u"?matchMedia&&matchMedia("(prefers-color-scheme: ".concat(e,")")):{matches:!1}},ed,r6=m.createContext({appearance:"light",setAppearance:function(){},isDarkMode:!1,themeMode:"light",setThemeMode:function(){},browserPrefers:(ed=n6("dark"))!==null&&ed!==void 0&&ed.matches?"dark":"light"}),i6=function(){return m.useContext(r6)};const Iy=(t,e)=>{if(e)return"row";switch(t){case"horizontal":return"row";case"horizontal-reverse":return"row-reverse";case"vertical":default:return"column";case"vertical-reverse":return"column-reverse"}},s6=t=>{if(t)return["space-between","space-around","space-evenly"].includes(t)},o6=(t,e)=>Iy(t,e)==="row",Qr=t=>typeof t=="number"?`${t}px`:t,a6=({visible:t,flex:e,gap:n,direction:r,horizontal:i,align:s,justify:o,distribution:a,height:l,width:c,padding:h,paddingInline:u,paddingBlock:f,prefixCls:p,as:g="div",className:b,style:x,children:w,wrap:v,ref:k,...j})=>{const S=o||a,y=o6(r,i)&&!c&&s6(S)?"100%":Qr(c),N={...e!==void 0?{"--lobe-flex":String(e)}:{},...r||i?{"--lobe-flex-direction":Iy(r,i)}:{},...v!==void 0?{"--lobe-flex-wrap":v}:{},...S!==void 0?{"--lobe-flex-justify":S}:{},...s!==void 0?{"--lobe-flex-align":s}:{},...y!==void 0?{"--lobe-flex-width":y}:{},...l!==void 0?{"--lobe-flex-height":Qr(l)}:{},...h!==void 0?{"--lobe-flex-padding":Qr(h)}:{},...u!==void 0?{"--lobe-flex-padding-inline":Qr(u)}:{},...f!==void 0?{"--lobe-flex-padding-block":Qr(f)}:{},...n!==void 0?{"--lobe-flex-gap":Qr(n)}:{},...x},A="lobe-flex",T=[A,t===!1?`${A}--hidden`:void 0,p?`${p}-flex`:void 0,b].filter(Boolean).join(" ");return d.jsx(g,{ref:k,...j,className:T,style:N,children:w})};var $y=m.memo(a6);const l6=({children:t,ref:e,...n})=>d.jsx($y,{...n,align:"center",justify:"center",ref:e,children:t});var c6=l6;const d6=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function h6(t){return Array.from(t.match(d6)??[])}function u6(t){return h6(t).map(n=>n.toLowerCase()).join("-")}function f6(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return m.useMemo(()=>r=>{e.forEach(i=>i(r))},e)}const ic=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ai(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function Pu(t){return"nodeType"in t}function kt(t){var e,n;return t?Ai(t)?t:Pu(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function Nu(t){const{Document:e}=kt(t);return t instanceof e}function Vo(t){return Ai(t)?!1:t instanceof kt(t).HTMLElement}function By(t){return t instanceof kt(t).SVGElement}function Mi(t){return t?Ai(t)?t.document:Pu(t)?Nu(t)?t:Vo(t)||By(t)?t.ownerDocument:document:document:document}const ln=ic?m.useLayoutEffect:m.useEffect;function sc(t){const e=m.useRef(t);return ln(()=>{e.current=t}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return e.current==null?void 0:e.current(...r)},[])}function p6(){const t=m.useRef(null),e=m.useCallback((r,i)=>{t.current=setInterval(r,i)},[]),n=m.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function _s(t,e){e===void 0&&(e=[t]);const n=m.useRef(t);return ln(()=>{n.current!==t&&(n.current=t)},e),n}function Ho(t,e){const n=m.useRef();return m.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function Dl(t){const e=sc(t),n=m.useRef(null),r=m.useCallback(i=>{i!==n.current&&e?.(i,n.current),n.current=i},[]);return[n,r]}function Al(t){const e=m.useRef();return m.useEffect(()=>{e.current=t},[t]),e.current}let td={};function _o(t,e){return m.useMemo(()=>{if(e)return e;const n=td[t]==null?0:td[t]+1;return td[t]=n,t+"-"+n},[t,e])}function Fy(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((s,o)=>{const a=Object.entries(o);for(const[l,c]of a){const h=s[l];h!=null&&(s[l]=h+t*c)}return s},{...e})}}const gi=Fy(1),Ws=Fy(-1);function m6(t){return"clientX"in t&&"clientY"in t}function oc(t){if(!t)return!1;const{KeyboardEvent:e}=kt(t.target);return e&&t instanceof e}function g6(t){if(!t)return!1;const{TouchEvent:e}=kt(t.target);return e&&t instanceof e}function Ml(t){if(g6(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return m6(t)?{x:t.clientX,y:t.clientY}:null}const pr=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[pr.Translate.toString(t),pr.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),Fm="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function b6(t){return t.matches(Fm)?t:t.querySelector(Fm)}const x6={display:"none"};function y6(t){let{id:e,value:n}=t;return Le.createElement("div",{id:e,style:x6},n)}function v6(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const i={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Le.createElement("div",{id:e,style:i,role:"status","aria-live":r,"aria-atomic":!0},n)}function w6(){const[t,e]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const zy=m.createContext(null);function S6(t){const e=m.useContext(zy);m.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of <DndContext>");return e(t)},[t,e])}function k6(){const[t]=m.useState(()=>new Set),e=m.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[m.useCallback(r=>{let{type:i,event:s}=r;t.forEach(o=>{var a;return(a=o[i])==null?void 0:a.call(o,s)})},[t]),e]}const C6={draggable:`
250
250
  To pick up a draggable item, press the space bar.
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Fira Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.dash-panel{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-surface);--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dash-sticky-glass{background-color:var(--dash-surface)}@supports ((backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px))){.dash-sticky-glass{background-color:color-mix(in srgb,var(--dash-surface) 90%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}}.dash-panel-muted{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-bg)}.dash-focus-ring:focus{outline:2px solid transparent;outline-offset:2px}.dash-focus-ring:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--dash-accent);--tw-ring-offset-width: 2px;--tw-ring-offset-color: var(--dash-bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-24{bottom:-6rem}.-bottom-28{bottom:-7rem}.-left-10{left:-2.5rem}.-right-8{right:-2rem}.-top-20{top:-5rem}.-top-24{top:-6rem}.left-0{left:0}.left-14{left:3.5rem}.left-2\.5{left:.625rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-72{height:18rem}.h-8{height:2rem}.h-\[18px\]{height:18px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0px}.max-h-64{max-height:16rem}.max-h-\[2000px\]{max-height:2000px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.max-h-none{max-height:none}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[200px\]{min-height:200px}.min-h-\[44px\]{min-height:44px}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[18px\]{width:18px}.w-\[480px\]{width:480px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-20{max-width:5rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[180px\]{max-width:180px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance: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-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_120px_200px_100px\]{grid-template-columns:1fr 120px 200px 100px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-dash-border>:not([hidden])~:not([hidden]){border-color:var(--dash-border)}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[\#313244\]{--tw-border-opacity: 1;border-color:rgb(49 50 68 / var(--tw-border-opacity, 1))}.border-\[var\(--dash-accent\)\]{border-color:var(--dash-accent)}.border-\[var\(--dash-border\)\]{border-color:var(--dash-border)}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/30{border-color:#f59e0b4d}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-cyan-500\/30{border-color:#06b6d44d}.border-dash-accent{border-color:var(--dash-accent)}.border-dash-border{border-color:var(--dash-border)}.border-dash-text-muted{border-color:var(--dash-text-muted)}.border-dash-text-secondary{border-color:var(--dash-text-secondary)}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity, 1))}.border-green-400\/20{border-color:#4ade8033}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/30{border-color:#22c55e4d}.border-green-500\/35{border-color:#22c55e59}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-500\/20{border-color:#f9731633}.border-orange-500\/30{border-color:#f973164d}.border-orange-500\/40{border-color:#f9731666}.border-purple-500\/30{border-color:#a855f74d}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-400\/20{border-color:#f8717133}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-rose-500\/30{border-color:#f43f5e4d}.border-slate-500\/20{border-color:#64748b33}.border-teal-500\/30{border-color:#14b8a64d}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-yellow-500\/25{border-color:#eab30840}.border-yellow-500\/30{border-color:#eab3084d}.border-t-transparent{border-top-color:transparent}.bg-\[\#1e1e2e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 46 / var(--tw-bg-opacity, 1))}.bg-\[\#a6e3a1\]{--tw-bg-opacity: 1;background-color:rgb(166 227 161 / var(--tw-bg-opacity, 1))}.bg-\[\#f38ba8\]{--tw-bg-opacity: 1;background-color:rgb(243 139 168 / var(--tw-bg-opacity, 1))}.bg-\[\#f9e2af\]{--tw-bg-opacity: 1;background-color:rgb(249 226 175 / var(--tw-bg-opacity, 1))}.bg-\[var\(--dash-accent\)\]{background-color:var(--dash-accent)}.bg-\[var\(--dash-bg\)\]{background-color:var(--dash-bg)}.bg-\[var\(--dash-border\)\]{background-color:var(--dash-border)}.bg-\[var\(--dash-surface\)\]{background-color:var(--dash-surface)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-black\/50{background-color:#00000080}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/5{background-color:#3b82f60d}.bg-dash-accent{background-color:var(--dash-accent)}.bg-dash-accent-subtle{background-color:var(--dash-accent-subtle)}.bg-dash-bg{background-color:var(--dash-bg)}.bg-dash-border{background-color:var(--dash-border)}.bg-dash-surface{background-color:var(--dash-surface)}.bg-dash-surface-hover{background-color:var(--dash-surface-hover)}.bg-dash-text{background-color:var(--dash-text)}.bg-dash-text-muted{background-color:var(--dash-text-muted)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-400\/10{background-color:#4ade801a}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-500\/5{background-color:#f973160d}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-400\/10{background-color:#f871711a}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-slate-500\/10{background-color:#64748b1a}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/70{background-color:#ffffffb3}.bg-yellow-500\/10{background-color:#eab3081a}.stroke-current{stroke:currentColor}.stroke-dash-text-muted{stroke:var(--dash-text-muted)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,Menlo,monospace}.font-sans{font-family:Fira Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#6c7086\]{--tw-text-opacity: 1;color:rgb(108 112 134 / var(--tw-text-opacity, 1))}.text-\[var\(--dash-accent\)\]{color:var(--dash-accent)}.text-\[var\(--dash-text\)\]{color:var(--dash-text)}.text-\[var\(--dash-text-muted\)\]{color:var(--dash-text-muted)}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-dash-accent{color:var(--dash-accent)}.text-dash-bg{color:var(--dash-bg)}.text-dash-text{color:var(--dash-text)}.text-dash-text-muted{color:var(--dash-text-muted)}.text-dash-text-secondary{color:var(--dash-text-secondary)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/80{color:#f87171cc}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder-dash-text-muted::placeholder{color:var(--dash-text-muted)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_var\(--dash-accent-glow\)\]{--tw-shadow: 0 0 8px var(--dash-accent-glow);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-green-500\/20{--tw-shadow-color: rgb(34 197 94 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.blur-3xl{--tw-blur: blur(64px);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)}.invert{--tw-invert: invert(100%);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)}.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-md{--tw-backdrop-blur: blur(12px);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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}html,body,#root{height:100%}body{background-image:radial-gradient(circle at 92% -6%,color-mix(in srgb,var(--dash-accent) 16%,transparent),transparent 38%),radial-gradient(circle at -12% 102%,color-mix(in srgb,var(--dash-accent) 12%,transparent),transparent 42%);background-attachment:fixed}*{scrollbar-width:thin;scrollbar-color:var(--dash-border) transparent}::-moz-selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}::selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--dash-border);border-radius:3px}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:slide-in .2s ease-out}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder\:text-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder\:text-dash-text-muted::placeholder{color:var(--dash-text-muted)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-dash-accent:hover{border-color:var(--dash-accent)}.hover\:border-dash-border:hover{border-color:var(--dash-border)}.hover\:border-dash-text-muted:hover{border-color:var(--dash-text-muted)}.hover\:border-yellow-500\/40:hover{border-color:#eab30866}.hover\:bg-\[var\(--dash-surface-hover\)\]:hover{background-color:var(--dash-surface-hover)}.hover\:bg-dash-accent-glow:hover{background-color:var(--dash-accent-glow)}.hover\:bg-dash-accent-hover:hover{background-color:var(--dash-accent-hover)}.hover\:bg-dash-bg:hover{background-color:var(--dash-bg)}.hover\:bg-dash-surface-hover:hover{background-color:var(--dash-surface-hover)}.hover\:bg-orange-500\/10:hover{background-color:#f973161a}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:text-amber-600:hover{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.hover\:text-dash-accent:hover{color:var(--dash-accent)}.hover\:text-dash-accent-hover:hover{color:var(--dash-accent-hover)}.hover\:text-dash-text:hover{color:var(--dash-text)}.hover\:text-dash-text-secondary:hover{color:var(--dash-text-secondary)}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-dash-accent:focus{border-color:var(--dash-accent)}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-amber-500\/50:focus{--tw-ring-color: rgb(245 158 11 / .5)}.focus\:ring-dash-accent:focus{--tw-ring-color: var(--dash-accent)}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:-translate-x-0\.5{--tw-translate-x: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-dash-text-muted{background-color:var(--dash-text-muted)}.group:hover .group-hover\:text-dash-text-secondary{color:var(--dash-text-secondary)}.group:hover .group-hover\:opacity-100{opacity:1}@media (prefers-reduced-motion: reduce){.motion-reduce\:animate-none{animation:none}}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-orange-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(154 52 18 / var(--tw-border-opacity, 1))}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-gray-400\/10:is(.dark *){background-color:#9ca3af1a}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(67 20 7 / var(--tw-bg-opacity, 1))}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:block{display:block}.sm\:w-\[460px\]{width:460px}.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))}}@media (min-width: 768px){.md\:col-span-4{grid-column:span 4 / span 4}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)_minmax\(0\,1\.2fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.2fr) auto minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1\.35fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1.35fr) auto minmax(0,1fr)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1\.25fr\)_140px_minmax\(0\,220px\)_auto\]{grid-template-columns:minmax(0,1.25fr) 140px minmax(0,220px) auto}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-center{align-items:center}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}.lg\:gap-1{gap:.25rem}.lg\:gap-4{gap:1rem}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-20{top:5rem}.xl\:top-\[84px\]{top:84px}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1\.55fr\)_minmax\(0\,340px\)\]{grid-template-columns:minmax(0,1.55fr) minmax(0,340px)}.xl\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}.xl\:flex-row{flex-direction:row}.xl\:items-end{align-items:flex-end}.xl\:justify-between{justify-content:space-between}}.\[\&_\.cm-content\]\:text-xs .cm-content{font-size:.75rem;line-height:1rem}.\[\&_\.cm-content\]\:leading-4 .cm-content{line-height:1rem}.\[\&_\.cm-editor\]\:h-full .cm-editor{height:100%}.\[\&_\.cm-editor\]\:outline-none .cm-editor,.\[\&_\.cm-focused\]\:outline-none .cm-focused{outline:2px solid transparent;outline-offset:2px}.\[\&_\.cm-gutters\]\:text-xs .cm-gutters{font-size:.75rem;line-height:1rem}.\[\&_\.cm-gutters\]\:leading-4 .cm-gutters{line-height:1rem}
@@ -71,9 +71,9 @@
71
71
  background: var(--dash-text-muted);
72
72
  }
73
73
  </style>
74
- <script type="module" crossorigin src="/assets/index-BrmN0FyA.js"></script>
74
+ <script type="module" crossorigin src="/assets/index-BLo8rjEQ.js"></script>
75
75
  <link rel="modulepreload" crossorigin href="/assets/vendor-DNUgy55u.js">
76
- <link rel="stylesheet" crossorigin href="/assets/index-QUag--Eo.css">
76
+ <link rel="stylesheet" crossorigin href="/assets/index-C0MkXKn3.css">
77
77
  </head>
78
78
  <body class="bg-dash-bg text-dash-text">
79
79
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudekit-cli",
3
- "version": "3.41.1-dev.7",
3
+ "version": "3.41.2-dev.1",
4
4
  "description": "CLI tool for bootstrapping and updating ClaudeKit projects",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Fira Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.dash-panel{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-surface);--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dash-sticky-glass{background-color:var(--dash-surface)}@supports ((backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px))){.dash-sticky-glass{background-color:color-mix(in srgb,var(--dash-surface) 90%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}}.dash-panel-muted{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-bg)}.dash-focus-ring:focus{outline:2px solid transparent;outline-offset:2px}.dash-focus-ring:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--dash-accent);--tw-ring-offset-width: 2px;--tw-ring-offset-color: var(--dash-bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-24{bottom:-6rem}.-bottom-28{bottom:-7rem}.-left-10{left:-2.5rem}.-right-8{right:-2rem}.-top-20{top:-5rem}.-top-24{top:-6rem}.left-0{left:0}.left-14{left:3.5rem}.left-2\.5{left:.625rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-72{height:18rem}.h-8{height:2rem}.h-\[18px\]{height:18px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0px}.max-h-64{max-height:16rem}.max-h-\[2000px\]{max-height:2000px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.max-h-none{max-height:none}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[200px\]{min-height:200px}.min-h-\[44px\]{min-height:44px}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[18px\]{width:18px}.w-\[480px\]{width:480px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-20{max-width:5rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[180px\]{max-width:180px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance: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-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_120px_200px_100px\]{grid-template-columns:1fr 120px 200px 100px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-dash-border>:not([hidden])~:not([hidden]){border-color:var(--dash-border)}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[\#313244\]{--tw-border-opacity: 1;border-color:rgb(49 50 68 / var(--tw-border-opacity, 1))}.border-\[var\(--dash-accent\)\]{border-color:var(--dash-accent)}.border-\[var\(--dash-border\)\]{border-color:var(--dash-border)}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/30{border-color:#f59e0b4d}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-cyan-500\/30{border-color:#06b6d44d}.border-dash-accent{border-color:var(--dash-accent)}.border-dash-border{border-color:var(--dash-border)}.border-dash-text-muted{border-color:var(--dash-text-muted)}.border-dash-text-secondary{border-color:var(--dash-text-secondary)}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity, 1))}.border-green-400\/20{border-color:#4ade8033}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/30{border-color:#22c55e4d}.border-green-500\/35{border-color:#22c55e59}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-500\/20{border-color:#f9731633}.border-orange-500\/30{border-color:#f973164d}.border-orange-500\/40{border-color:#f9731666}.border-purple-500\/30{border-color:#a855f74d}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-400\/20{border-color:#f8717133}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-rose-500\/30{border-color:#f43f5e4d}.border-slate-500\/20{border-color:#64748b33}.border-teal-500\/30{border-color:#14b8a64d}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-yellow-500\/25{border-color:#eab30840}.border-yellow-500\/30{border-color:#eab3084d}.border-t-transparent{border-top-color:transparent}.bg-\[\#1e1e2e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 46 / var(--tw-bg-opacity, 1))}.bg-\[\#a6e3a1\]{--tw-bg-opacity: 1;background-color:rgb(166 227 161 / var(--tw-bg-opacity, 1))}.bg-\[\#f38ba8\]{--tw-bg-opacity: 1;background-color:rgb(243 139 168 / var(--tw-bg-opacity, 1))}.bg-\[\#f9e2af\]{--tw-bg-opacity: 1;background-color:rgb(249 226 175 / var(--tw-bg-opacity, 1))}.bg-\[var\(--dash-accent\)\]{background-color:var(--dash-accent)}.bg-\[var\(--dash-bg\)\]{background-color:var(--dash-bg)}.bg-\[var\(--dash-border\)\]{background-color:var(--dash-border)}.bg-\[var\(--dash-surface\)\]{background-color:var(--dash-surface)}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-black\/50{background-color:#00000080}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/5{background-color:#3b82f60d}.bg-dash-accent{background-color:var(--dash-accent)}.bg-dash-accent-subtle{background-color:var(--dash-accent-subtle)}.bg-dash-bg{background-color:var(--dash-bg)}.bg-dash-border{background-color:var(--dash-border)}.bg-dash-surface{background-color:var(--dash-surface)}.bg-dash-surface-hover{background-color:var(--dash-surface-hover)}.bg-dash-text{background-color:var(--dash-text)}.bg-dash-text-muted{background-color:var(--dash-text-muted)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-400\/10{background-color:#4ade801a}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-500\/5{background-color:#f973160d}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-400\/10{background-color:#f871711a}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-slate-500\/10{background-color:#64748b1a}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/70{background-color:#ffffffb3}.bg-yellow-500\/10{background-color:#eab3081a}.stroke-current{stroke:currentColor}.stroke-dash-text-muted{stroke:var(--dash-text-muted)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,Menlo,monospace}.font-sans{font-family:Fira Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#6c7086\]{--tw-text-opacity: 1;color:rgb(108 112 134 / var(--tw-text-opacity, 1))}.text-\[var\(--dash-accent\)\]{color:var(--dash-accent)}.text-\[var\(--dash-text\)\]{color:var(--dash-text)}.text-\[var\(--dash-text-muted\)\]{color:var(--dash-text-muted)}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-dash-accent{color:var(--dash-accent)}.text-dash-bg{color:var(--dash-bg)}.text-dash-text{color:var(--dash-text)}.text-dash-text-muted{color:var(--dash-text-muted)}.text-dash-text-secondary{color:var(--dash-text-secondary)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/80{color:#f87171cc}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder-dash-text-muted::placeholder{color:var(--dash-text-muted)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_var\(--dash-accent-glow\)\]{--tw-shadow: 0 0 8px var(--dash-accent-glow);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-green-500\/20{--tw-shadow-color: rgb(34 197 94 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.blur-3xl{--tw-blur: blur(64px);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)}.invert{--tw-invert: invert(100%);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)}.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-md{--tw-backdrop-blur: blur(12px);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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}html,body,#root{height:100%}body{background-image:radial-gradient(circle at 92% -6%,color-mix(in srgb,var(--dash-accent) 16%,transparent),transparent 38%),radial-gradient(circle at -12% 102%,color-mix(in srgb,var(--dash-accent) 12%,transparent),transparent 42%);background-attachment:fixed}*{scrollbar-width:thin;scrollbar-color:var(--dash-border) transparent}::-moz-selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}::selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--dash-border);border-radius:3px}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:slide-in .2s ease-out}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder\:text-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder\:text-dash-text-muted::placeholder{color:var(--dash-text-muted)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-dash-accent:hover{border-color:var(--dash-accent)}.hover\:border-dash-border:hover{border-color:var(--dash-border)}.hover\:border-dash-text-muted:hover{border-color:var(--dash-text-muted)}.hover\:border-yellow-500\/40:hover{border-color:#eab30866}.hover\:bg-\[var\(--dash-surface-hover\)\]:hover{background-color:var(--dash-surface-hover)}.hover\:bg-dash-accent-glow:hover{background-color:var(--dash-accent-glow)}.hover\:bg-dash-accent-hover:hover{background-color:var(--dash-accent-hover)}.hover\:bg-dash-bg:hover{background-color:var(--dash-bg)}.hover\:bg-dash-surface-hover:hover{background-color:var(--dash-surface-hover)}.hover\:bg-orange-500\/10:hover{background-color:#f973161a}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:text-amber-600:hover{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.hover\:text-dash-accent:hover{color:var(--dash-accent)}.hover\:text-dash-accent-hover:hover{color:var(--dash-accent-hover)}.hover\:text-dash-text:hover{color:var(--dash-text)}.hover\:text-dash-text-secondary:hover{color:var(--dash-text-secondary)}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-dash-accent:focus{border-color:var(--dash-accent)}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-amber-500\/50:focus{--tw-ring-color: rgb(245 158 11 / .5)}.focus\:ring-dash-accent:focus{--tw-ring-color: var(--dash-accent)}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:-translate-x-0\.5{--tw-translate-x: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-dash-text-muted{background-color:var(--dash-text-muted)}.group:hover .group-hover\:text-dash-text-secondary{color:var(--dash-text-secondary)}.group:hover .group-hover\:opacity-100{opacity:1}@media (prefers-reduced-motion: reduce){.motion-reduce\:animate-none{animation:none}}.dark\:border-orange-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(154 52 18 / var(--tw-border-opacity, 1))}.dark\:bg-gray-400\/10:is(.dark *){background-color:#9ca3af1a}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(67 20 7 / var(--tw-bg-opacity, 1))}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:block{display:block}.sm\:w-\[460px\]{width:460px}.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))}}@media (min-width: 768px){.md\:col-span-4{grid-column:span 4 / span 4}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)_minmax\(0\,1\.2fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.2fr) auto minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1\.35fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1.35fr) auto minmax(0,1fr)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1\.25fr\)_140px_minmax\(0\,220px\)_auto\]{grid-template-columns:minmax(0,1.25fr) 140px minmax(0,220px) auto}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-center{align-items:center}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}.lg\:gap-1{gap:.25rem}.lg\:gap-4{gap:1rem}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-20{top:5rem}.xl\:top-\[84px\]{top:84px}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1\.55fr\)_minmax\(0\,340px\)\]{grid-template-columns:minmax(0,1.55fr) minmax(0,340px)}.xl\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}.xl\:flex-row{flex-direction:row}.xl\:items-end{align-items:flex-end}.xl\:justify-between{justify-content:space-between}}.\[\&_\.cm-content\]\:text-xs .cm-content{font-size:.75rem;line-height:1rem}.\[\&_\.cm-content\]\:leading-4 .cm-content{line-height:1rem}.\[\&_\.cm-editor\]\:h-full .cm-editor{height:100%}.\[\&_\.cm-editor\]\:outline-none .cm-editor,.\[\&_\.cm-focused\]\:outline-none .cm-focused{outline:2px solid transparent;outline-offset:2px}.\[\&_\.cm-gutters\]\:text-xs .cm-gutters{font-size:.75rem;line-height:1rem}.\[\&_\.cm-gutters\]\:leading-4 .cm-gutters{line-height:1rem}