limn-review 0.1.144 → 0.1.145

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/ai/budget.js CHANGED
@@ -45,7 +45,7 @@
45
45
  //
46
46
  // One budget per ACCOUNT (= per machine), never per workspace.
47
47
  import { and, eq, gte, inArray } from 'drizzle-orm';
48
- import { AI_BUDGET_DAY_MS, AI_BUDGET_WEEK_MS, aiUsageView, budgetWindowStart, decideAiBudget, liveFiveHourReset, liveWeekReset, resolveAiBudgetSettings, rollingSpend, } from '../shared/index.js';
48
+ import { AI_BUDGET_DAY_MS, AI_BUDGET_WEEK_MS, aiProviderWorthShowing, aiUsageView, budgetWindowStart, decideAiBudget, liveFiveHourReset, liveWeekReset, resolveAiBudgetSettings, rollingSpend, } from '../shared/index.js';
49
49
  import { db, schema } from '../db/client.js';
50
50
  import { LOCAL_ACCOUNT_ID } from '../auth/account.js';
51
51
  import { getActiveProvider, getProvider } from './provider.js';
@@ -321,6 +321,31 @@ export async function aiBudgetSnapshot(accountId, opts = {}) {
321
321
  }),
322
322
  };
323
323
  }
324
+ /** Every provider id the budget knows, the default first. */
325
+ const PROVIDER_IDS = ['claude', 'codex'];
326
+ /**
327
+ * The OTHER providers' figures for the header's popover (every provider but the default): each one
328
+ * that holds a credential, or that Limn ran on in its current week (`aiProviderWorthShowing`), with
329
+ * its own decision and usage view — its own windows, its own ledger rows. Never throws: a provider
330
+ * whose read fails is left out.
331
+ */
332
+ export async function aiBudgetOthers(accountId, opts = {}) {
333
+ const defaultId = getActiveProvider().id;
334
+ const out = [];
335
+ for (const id of PROVIDER_IDS) {
336
+ if (id === defaultId)
337
+ continue;
338
+ try {
339
+ const snap = await aiBudgetSnapshot(accountId, { ...opts, provider: id });
340
+ if (aiProviderWorthShowing(snap.usage))
341
+ out.push({ provider: id, status: snap.status, usage: snap.usage });
342
+ }
343
+ catch {
344
+ /* left out */
345
+ }
346
+ }
347
+ return out;
348
+ }
324
349
  /** The budget's status for an account. Never throws: a failed read is "off" (never blocks). */
325
350
  export async function aiBudgetStatus(accountId, opts = {}) {
326
351
  try {
@@ -1,7 +1,7 @@
1
1
  import { aiBudgetSettingsView, validateAiBudgetBody, } from '../../shared/index.js';
2
2
  import { config } from '../../config.js';
3
3
  import { accountIdOf } from '../plugins/auth.js';
4
- import { aiBudgetSnapshot, installAiBudgetObserver, writeAiBudgetSettings } from '../../ai/budget.js';
4
+ import { aiBudgetOthers, aiBudgetSnapshot, installAiBudgetObserver, writeAiBudgetSettings } from '../../ai/budget.js';
5
5
  // THE CLAUDE SPEND BUDGET (ai/budget.ts; types in packages/shared ai-budget.ts).
6
6
  //
7
7
  // GET /api/ai/budget[?provider=claude|codex] → AiBudgetResponse (the named provider's, else the
@@ -10,7 +10,9 @@ import { aiBudgetSnapshot, installAiBudgetObserver, writeAiBudgetSettings } from
10
10
  // (`status`) and the header's usage view (`usage`). Serves the CACHED usage
11
11
  // reading and, on the login route, starts the usage probe IN THE BACKGROUND
12
12
  // (at most every 5 minutes, 20s timeout, no model call) — it never waits.
13
- // The header polls it every ~2 minutes while the tab is visible.
13
+ // The header polls it every ~2 minutes while the tab is visible. The plain
14
+ // read (no `?provider=`) adds `others`: every OTHER provider that holds a
15
+ // credential or that Limn ran on this week, each with its own status + usage.
14
16
  // PUT /api/ai/budget AiBudgetBody (any subset; validated) → AiBudgetResponse.
15
17
  //
16
18
  // Registered only when `config.aiEnabled`. Registering it also installs the message observer every
@@ -20,12 +22,19 @@ export async function aiBudgetRoutes(app) {
20
22
  return;
21
23
  installAiBudgetObserver();
22
24
  const respond = async (accountId, provider) => {
23
- const { settings, isDefault, status, usage } = await aiBudgetSnapshot(accountId, {
24
- probe: 'always',
25
- ...(provider ? { provider } : {}),
26
- });
25
+ const [{ settings, isDefault, status, usage }, others] = await Promise.all([
26
+ aiBudgetSnapshot(accountId, { probe: 'always', ...(provider ? { provider } : {}) }),
27
+ // The header's popover shows EVERY provider in use: the others ride the plain read only.
28
+ provider ? Promise.resolve(null) : aiBudgetOthers(accountId, { probe: 'always' }),
29
+ ]);
27
30
  // A subscription carries no US$ on the wire: the API key's weekly figure is sent only on that route.
28
- return { settings: aiBudgetSettingsView(settings, status.route), isDefault, status, usage };
31
+ return {
32
+ settings: aiBudgetSettingsView(settings, status.route),
33
+ isDefault,
34
+ status,
35
+ usage,
36
+ ...(others ? { others } : {}),
37
+ };
29
38
  };
30
39
  // `?provider=claude|codex`: that provider's reading (the per-run picker's over-budget confirm, for a
31
40
  // run on the provider that is NOT the default). Absent or anything else ⇒ the default provider's.
@@ -182,6 +182,20 @@ export function resolveAiSubscription(reported, picked) {
182
182
  export function aiBudgetSettingsView(settings, route) {
183
183
  return { ...settings, weeklyUsd: route === 'api_key' ? settings.weeklyUsd : null };
184
184
  }
185
+ /** Whether a non-default provider belongs in the header's popover: signed in, or Limn used it this week. Pure. */
186
+ export function aiProviderWorthShowing(usage) {
187
+ return usage.route !== 'none' || usage.limn.runs > 0;
188
+ }
189
+ /**
190
+ * The scale a Limn share's bar is drawn against, in % of the allowance: the reader's limit while the
191
+ * budget is on, else AI_BUDGET_SHARE_MAX (50%) — the most Limn can be given, so the bar still says how
192
+ * far along it is with no limit set. `limitSet` says which. Pure.
193
+ */
194
+ export function limnShareScale(status, which) {
195
+ const sub = status.enabled && status.mode === 'subscription' ? status.subscription : null;
196
+ const set = sub == null ? null : which === 'week' ? sub.sharePct : sub.fiveHourSharePct;
197
+ return set != null && set > 0 ? { maxPct: set, limitSet: true } : { maxPct: AI_BUDGET_SHARE_MAX, limitSet: false };
198
+ }
185
199
  /**
186
200
  * A run's cost as a share of the week, for a subscription: "0.3% of your week", "<0.1% of your week".
187
201
  * Null when there is nothing honest to say (no rate, no cost). Pure.
@@ -494,6 +508,8 @@ export function aiUsageView(input) {
494
508
  const login = route === 'login';
495
509
  const weekReset = login ? liveWeekReset(reading, nowMs) : null;
496
510
  const weekFromMs = weekReset != null ? weekReset - AI_BUDGET_WEEK_MS : nowMs - AI_BUDGET_WEEK_MS;
511
+ const fiveReset = login ? liveFiveHourReset(reading, nowMs) : null;
512
+ const fiveFromMs = fiveReset != null ? fiveReset - AI_BUDGET_FIVE_HOUR_MS : nowMs - AI_BUDGET_FIVE_HOUR_MS;
497
513
  const inWeek = ledger.filter((r) => (weekReset != null ? r.atMs >= weekFromMs : r.atMs > weekFromMs) && r.atMs <= nowMs);
498
514
  const sumTokens = (pick) => {
499
515
  const xs = inWeek.map(pick).filter((n) => typeof n === 'number' && Number.isFinite(n));
@@ -541,8 +557,7 @@ export function aiUsageView(input) {
541
557
  };
542
558
  if (kind != null) {
543
559
  const est = SUBSCRIPTION_ESTIMATES[kind];
544
- const fiveReset = liveFiveHourReset(reading, nowMs);
545
- const fiveUsd = fiveReset != null ? spend(fiveReset - AI_BUDGET_FIVE_HOUR_MS, true) : spend(nowMs - AI_BUDGET_FIVE_HOUR_MS, false);
560
+ const fiveUsd = spend(fiveFromMs, fiveReset != null);
546
561
  weekSharePct = round2((inWeek.reduce((s, r) => s + r.usd, 0) / est.week) * 100);
547
562
  fiveHourSharePct = round2((fiveUsd / est.fiveHour) * 100);
548
563
  weekPctPerUsd = 100 / est.week;
@@ -555,6 +570,10 @@ export function aiUsageView(input) {
555
570
  limn: {
556
571
  weekFrom: new Date(weekFromMs).toISOString(),
557
572
  window: weekReset != null ? 'reset' : 'rolling',
573
+ weekResetsAt: isoOf(weekReset),
574
+ fiveHourFrom: new Date(fiveFromMs).toISOString(),
575
+ fiveHourWindow: fiveReset != null ? 'reset' : 'rolling',
576
+ fiveHourResetsAt: isoOf(fiveReset),
558
577
  runs: inWeek.length,
559
578
  inputTokens: sumTokens((r) => r.inputTokens),
560
579
  outputTokens: sumTokens((r) => r.outputTokens),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "limn-review",
3
- "version": "0.1.144",
3
+ "version": "0.1.145",
4
4
  "description": "Dashboard for tracking your team's GitHub PR activity across repos. Runs on your machine with your gh login.",
5
5
  "type": "module",
6
6
  "author": "Alex Wakeman",
@@ -1,3 +1,3 @@
1
- import{d as Re,r as p,j as e}from"./tanstack-BnbsafB1.js";import{aC as J,aB as He,ck as fe,cr as qe,c1 as ze,ci as Ve,c3 as Ce,av as Je,cj as $,A as ye,aA as Ae,M as q,p as Ge,a6 as se,b4 as Fe,U as Ie,e as z,ay as Se,h as Te,a as Xe,cW as Qe,bx as Ze,aD as et,cO as tt,cP as st,R as rt,x as at,L as nt,bh as it,ch as lt,cg as dt,c0 as ct,aZ as ot,by as ut,ag as xt,aY as ht,aO as mt,bI as Ee,bi as gt,bY as _e,bZ as pt,ca as bt,cp as ft,co as yt,cH as jt,cI as kt,az as Nt,aw as vt,b$ as wt,b_ as Pt,cb as Rt,ax as Ct,bm as At,bv as re,O as Ft,E as It,K as St,bE as Me,cz as Tt,D as Et}from"./index-CFlzr-u4.js";import{r as _t,t as Mt,S as Bt,C as Lt,T as Ut,F as $t,f as Dt,M as Ot}from"./ClaudeReviewTab-ITKwJAxq.js";import"./markdown-CcoLFczy.js";import"./highlight-DIEV0qGG.js";import"./vis-C3BCkP5U.js";const Yt="whitespace-nowrap rounded border border-blue-400 px-2.5 py-1 text-xs text-blue-600 hover:bg-blue-50 disabled:opacity-50 dark:border-blue-600 dark:text-blue-400 dark:hover:bg-blue-900/30",X="whitespace-nowrap rounded border border-gray-300 px-2.5 py-1 text-xs hover:border-gray-400 disabled:opacity-50 dark:border-gray-700 dark:hover:border-gray-500",je="inline-flex items-center rounded bg-gray-500/10 px-1.5 py-px font-mono text-[11px] text-gray-700 dark:text-gray-200";function Kt(t){return t instanceof Te||t instanceof Error?t.message:"Something went wrong"}function Be({plan:t}){return e.jsx("ul",{className:"list-disc space-y-0.5 pl-5 text-[13px] text-gray-800 dark:text-gray-100",children:t.summary.map((s,r)=>e.jsx("li",{children:s},r))})}function ke(t,s){var r;return((r=t==null?void 0:t.find(n=>n.ref===s))==null?void 0:r.title)??null}function Wt({plan:t,items:s}){return e.jsxs("div",{className:"mt-2 space-y-3 text-xs text-gray-700 dark:text-gray-200",children:[t.steps.length>0&&e.jsx("ol",{className:"list-decimal space-y-2 pl-5",children:t.steps.map((r,n)=>e.jsxs("li",{children:[e.jsx("div",{className:"font-medium text-gray-800 dark:text-gray-100",children:r.title}),r.files.length>0&&e.jsx("div",{className:"mt-0.5 font-mono text-[11px] text-gray-600 dark:text-gray-300",children:r.files.join(", ")}),e.jsx("p",{className:"mt-0.5 whitespace-pre-wrap",children:r.change}),r.refs.length>0&&e.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:r.refs.map(a=>e.jsx("span",{className:je,children:a},a))})]},n))}),t.notAddressed.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"mb-1 font-semibold text-gray-600 dark:text-gray-300",children:"Will not fix"}),e.jsx("ul",{className:"space-y-1",children:t.notAddressed.map(r=>e.jsxs("li",{children:[e.jsx("span",{className:je,children:r.ref})," ",ke(s,r.ref)&&e.jsxs("span",{className:"font-medium",children:[ke(s,r.ref),": "]}),r.reason]},r.ref))})]}),t.notCovered.length>0&&e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-gray-600 dark:text-gray-300",children:"Not in the plan: "}),t.notCovered.join(", ")]})]})}function Ht({pr:t,fix:s,liveStatus:r,passRunning:n,auth:a}){var N,y;const l=s.plan,d=J(s.plan??s),h=He((s.plan??s).provider,(s.plan??s).model),j=fe(h,"plan"),f=fe(h,"fix"),i=Se(j),k=qe(t.id),g=ze(t.id),w=Ve(t.id),I=Ce(t.id),S=Re({mutationKey:Je(t.id)})>0,D=$(x=>x.noteAiFixRun),[T,E]=p.useState(""),[A,_]=p.useState(!1);if(!l)return null;const P=l.plan,R=l.status==="plan_ready"&&!n,C=T.trim(),v=C.length>ye,c=()=>{!R||S||C===""||v||k.mutate({fixId:s.id,text:C},{onSuccess:()=>E("")})},m=()=>{D({prId:t.id,repoFullName:t.repoFullName,prNumber:t.number,prTitle:t.title}),g.mutate(s.id)},o=k.error??g.error??w.error;return e.jsxs("div",{className:"mt-3 rounded border border-gray-200 p-3 dark:border-gray-800",children:[e.jsxs("div",{className:"mb-1 flex items-center gap-1 text-xs font-semibold text-gray-700 dark:text-gray-200",children:["Plan",P&&l.revision>1&&e.jsxs("span",{className:"font-normal text-gray-500 dark:text-gray-400",children:["· version ",l.revision]}),l.model&&e.jsxs("span",{className:"font-normal text-gray-500 dark:text-gray-400",children:["· ",Ae(l.provider,l.model,l.effort)]}),e.jsxs(q,{title:"Plan first",children:[e.jsxs("p",{children:[i," reads the code and writes a plan. It changes nothing."]}),e.jsxs("p",{children:["Tell ",i," what to change and it rewrites the plan, taking the whole conversation into account. Each message runs ",i," again."]}),e.jsxs("p",{children:["When you approve, ",i," builds the fix from this plan. You still review the diff and press Push."]})]})]}),P?e.jsxs(e.Fragment,{children:[e.jsx(Be,{plan:P}),e.jsxs("button",{type:"button",className:"mt-2 inline-flex items-center gap-1 text-xs text-gray-600 hover:text-gray-800 dark:text-gray-300 dark:hover:text-gray-100","aria-expanded":A,onClick:()=>_(x=>!x),children:[e.jsx(Ge,{dir:A?"down":"right"}),"Details"]}),A&&e.jsx(Wt,{plan:P,items:s.reviewItems})]}):!n&&e.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-300",children:"No plan yet."}),s.error&&e.jsx("p",{className:"mt-2 rounded border border-amber-200 bg-amber-50 p-2 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-200",children:s.error}),l.transcript.length>0&&e.jsx("ul",{className:"mt-3 space-y-1.5 border-t border-gray-200 pt-2 text-xs dark:border-gray-800",children:l.transcript.map((x,B)=>e.jsxs("li",{className:"whitespace-pre-wrap text-gray-700 dark:text-gray-200",children:[e.jsxs("span",{className:"font-semibold",children:[x.role==="reader"?"You":d,": "]}),x.text]},B))}),n&&e.jsxs("div",{className:"mt-3",children:[e.jsx(se,{active:!0,label:P?"Updating the plan":"Making the plan",value:Fe(r),timeConstantSec:30}),e.jsxs("div",{className:"mt-1 flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400",children:[Ie[((N=r==null?void 0:r.progress)==null?void 0:N.phase)??""]??"Working…",e.jsx("button",{type:"button",className:X,onClick:()=>I.mutate(),children:"Cancel"})]}),((y=r==null?void 0:r.progress)==null?void 0:y.recentActivity)&&r.progress.recentActivity.length>0&&e.jsx("pre",{className:"mt-1 max-h-32 overflow-auto rounded bg-gray-50 p-2 text-[11px] leading-relaxed text-gray-500 dark:bg-gray-900 dark:text-gray-400",children:r.progress.recentActivity.slice(-8).join(`
1
+ import{d as Re,r as p,j as e}from"./tanstack-BnbsafB1.js";import{aC as J,aB as He,ck as fe,cr as qe,c1 as ze,ci as Ve,c3 as Ce,av as Je,cj as $,A as ye,aA as Ae,M as q,p as Ge,a6 as se,b4 as Fe,U as Ie,e as z,ay as Se,h as Te,a as Xe,cW as Qe,bx as Ze,aD as et,cO as tt,cP as st,R as rt,x as at,L as nt,bh as it,ch as lt,cg as dt,c0 as ct,aZ as ot,by as ut,ag as xt,aY as ht,aO as mt,bI as Ee,bi as gt,bY as _e,bZ as pt,ca as bt,cp as ft,co as yt,cH as jt,cI as kt,az as Nt,aw as vt,b$ as wt,b_ as Pt,cb as Rt,ax as Ct,bm as At,bv as re,O as Ft,E as It,K as St,bE as Me,cz as Tt,D as Et}from"./index-DbYNXOny.js";import{r as _t,t as Mt,S as Bt,C as Lt,T as Ut,F as $t,f as Dt,M as Ot}from"./ClaudeReviewTab-Pq-RnFxz.js";import"./markdown-CcoLFczy.js";import"./highlight-DIEV0qGG.js";import"./vis-C3BCkP5U.js";const Yt="whitespace-nowrap rounded border border-blue-400 px-2.5 py-1 text-xs text-blue-600 hover:bg-blue-50 disabled:opacity-50 dark:border-blue-600 dark:text-blue-400 dark:hover:bg-blue-900/30",X="whitespace-nowrap rounded border border-gray-300 px-2.5 py-1 text-xs hover:border-gray-400 disabled:opacity-50 dark:border-gray-700 dark:hover:border-gray-500",je="inline-flex items-center rounded bg-gray-500/10 px-1.5 py-px font-mono text-[11px] text-gray-700 dark:text-gray-200";function Kt(t){return t instanceof Te||t instanceof Error?t.message:"Something went wrong"}function Be({plan:t}){return e.jsx("ul",{className:"list-disc space-y-0.5 pl-5 text-[13px] text-gray-800 dark:text-gray-100",children:t.summary.map((s,r)=>e.jsx("li",{children:s},r))})}function ke(t,s){var r;return((r=t==null?void 0:t.find(n=>n.ref===s))==null?void 0:r.title)??null}function Wt({plan:t,items:s}){return e.jsxs("div",{className:"mt-2 space-y-3 text-xs text-gray-700 dark:text-gray-200",children:[t.steps.length>0&&e.jsx("ol",{className:"list-decimal space-y-2 pl-5",children:t.steps.map((r,n)=>e.jsxs("li",{children:[e.jsx("div",{className:"font-medium text-gray-800 dark:text-gray-100",children:r.title}),r.files.length>0&&e.jsx("div",{className:"mt-0.5 font-mono text-[11px] text-gray-600 dark:text-gray-300",children:r.files.join(", ")}),e.jsx("p",{className:"mt-0.5 whitespace-pre-wrap",children:r.change}),r.refs.length>0&&e.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:r.refs.map(a=>e.jsx("span",{className:je,children:a},a))})]},n))}),t.notAddressed.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"mb-1 font-semibold text-gray-600 dark:text-gray-300",children:"Will not fix"}),e.jsx("ul",{className:"space-y-1",children:t.notAddressed.map(r=>e.jsxs("li",{children:[e.jsx("span",{className:je,children:r.ref})," ",ke(s,r.ref)&&e.jsxs("span",{className:"font-medium",children:[ke(s,r.ref),": "]}),r.reason]},r.ref))})]}),t.notCovered.length>0&&e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-gray-600 dark:text-gray-300",children:"Not in the plan: "}),t.notCovered.join(", ")]})]})}function Ht({pr:t,fix:s,liveStatus:r,passRunning:n,auth:a}){var N,y;const l=s.plan,d=J(s.plan??s),h=He((s.plan??s).provider,(s.plan??s).model),j=fe(h,"plan"),f=fe(h,"fix"),i=Se(j),k=qe(t.id),g=ze(t.id),w=Ve(t.id),I=Ce(t.id),S=Re({mutationKey:Je(t.id)})>0,D=$(x=>x.noteAiFixRun),[T,E]=p.useState(""),[A,_]=p.useState(!1);if(!l)return null;const P=l.plan,R=l.status==="plan_ready"&&!n,C=T.trim(),v=C.length>ye,c=()=>{!R||S||C===""||v||k.mutate({fixId:s.id,text:C},{onSuccess:()=>E("")})},m=()=>{D({prId:t.id,repoFullName:t.repoFullName,prNumber:t.number,prTitle:t.title}),g.mutate(s.id)},o=k.error??g.error??w.error;return e.jsxs("div",{className:"mt-3 rounded border border-gray-200 p-3 dark:border-gray-800",children:[e.jsxs("div",{className:"mb-1 flex items-center gap-1 text-xs font-semibold text-gray-700 dark:text-gray-200",children:["Plan",P&&l.revision>1&&e.jsxs("span",{className:"font-normal text-gray-500 dark:text-gray-400",children:["· version ",l.revision]}),l.model&&e.jsxs("span",{className:"font-normal text-gray-500 dark:text-gray-400",children:["· ",Ae(l.provider,l.model,l.effort)]}),e.jsxs(q,{title:"Plan first",children:[e.jsxs("p",{children:[i," reads the code and writes a plan. It changes nothing."]}),e.jsxs("p",{children:["Tell ",i," what to change and it rewrites the plan, taking the whole conversation into account. Each message runs ",i," again."]}),e.jsxs("p",{children:["When you approve, ",i," builds the fix from this plan. You still review the diff and press Push."]})]})]}),P?e.jsxs(e.Fragment,{children:[e.jsx(Be,{plan:P}),e.jsxs("button",{type:"button",className:"mt-2 inline-flex items-center gap-1 text-xs text-gray-600 hover:text-gray-800 dark:text-gray-300 dark:hover:text-gray-100","aria-expanded":A,onClick:()=>_(x=>!x),children:[e.jsx(Ge,{dir:A?"down":"right"}),"Details"]}),A&&e.jsx(Wt,{plan:P,items:s.reviewItems})]}):!n&&e.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-300",children:"No plan yet."}),s.error&&e.jsx("p",{className:"mt-2 rounded border border-amber-200 bg-amber-50 p-2 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-200",children:s.error}),l.transcript.length>0&&e.jsx("ul",{className:"mt-3 space-y-1.5 border-t border-gray-200 pt-2 text-xs dark:border-gray-800",children:l.transcript.map((x,B)=>e.jsxs("li",{className:"whitespace-pre-wrap text-gray-700 dark:text-gray-200",children:[e.jsxs("span",{className:"font-semibold",children:[x.role==="reader"?"You":d,": "]}),x.text]},B))}),n&&e.jsxs("div",{className:"mt-3",children:[e.jsx(se,{active:!0,label:P?"Updating the plan":"Making the plan",value:Fe(r),timeConstantSec:30}),e.jsxs("div",{className:"mt-1 flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400",children:[Ie[((N=r==null?void 0:r.progress)==null?void 0:N.phase)??""]??"Working…",e.jsx("button",{type:"button",className:X,onClick:()=>I.mutate(),children:"Cancel"})]}),((y=r==null?void 0:r.progress)==null?void 0:y.recentActivity)&&r.progress.recentActivity.length>0&&e.jsx("pre",{className:"mt-1 max-h-32 overflow-auto rounded bg-gray-50 p-2 text-[11px] leading-relaxed text-gray-500 dark:bg-gray-900 dark:text-gray-400",children:r.progress.recentActivity.slice(-8).join(`
2
2
  `)})]}),R&&P&&e.jsxs("div",{className:"mt-3",children:[e.jsxs(z,{kind:"plan",auth:a,meter:!1,followUp:!0,provider:j,children:[e.jsx("textarea",{"aria-label":"Change the plan",className:"w-full rounded border border-gray-300 bg-transparent px-2 py-1 text-xs dark:border-gray-700",rows:2,placeholder:`Tell ${i} what to change in the plan`,value:T,disabled:S,onChange:x=>E(x.target.value),onKeyDown:x=>{x.key==="Enter"&&(x.metaKey||x.ctrlKey)&&(x.preventDefault(),c())}}),v&&e.jsxs("p",{className:"text-[12px] text-red-600 dark:text-red-400",children:["Keep it under ",ye.toLocaleString("en-US")," characters."]}),e.jsx("div",{className:"mt-2",children:e.jsx("button",{type:"button","data-ai-run":!0,className:X,disabled:S||C===""||v,onClick:c,children:"Update plan"})})]}),e.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[e.jsx(z,{kind:"fix",auth:a,followUp:!0,provider:f,children:e.jsx("button",{type:"button","data-ai-run":!0,className:Yt,disabled:S,onClick:m,children:"Approve and build"})}),e.jsx("button",{type:"button",className:X,disabled:S,onClick:()=>w.mutate(s.id),children:"Discard plan"})]})]}),o!=null&&e.jsx("p",{className:"mt-1 text-[12px] text-red-600 dark:text-red-400",children:Kt(o)})]})}function Le({fix:t}){var r;const s=((r=t.plan)==null?void 0:r.status)==="approved"?t.plan.plan:null;return s?e.jsxs("div",{className:"mb-2 rounded border border-gray-200 p-2 dark:border-gray-800",children:[e.jsx("div",{className:"mb-1 text-xs font-semibold text-gray-600 dark:text-gray-300",children:"Built from your plan"}),e.jsx(Be,{plan:s})]}):null}function qt(t,s,r){var n;return t??((s==null?void 0:s.status)==="succeeded"?s.id:((n=r.find(a=>a.status==="succeeded"))==null?void 0:n.id)??null)}function zt(t,s,r){return s==null||r==null||s===r.id?null:t!=null?"Uses the review you picked, not the latest.":r.status==="failed"?"Uses the last review that finished. The latest one failed.":r.status==="running"||r.status==="queued"?"Uses the last review that finished. A newer one is running.":"Uses the last review that finished."}const Ne="inline-flex max-w-full items-center gap-1 rounded px-1.5 py-0.5 text-[11px] font-medium bg-gray-500/10 text-gray-700 dark:text-gray-200",W="mb-1 mt-3 flex items-center gap-1 text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400";function Vt(t){return t.kind==="finding"&&t.findingId!=null?`claude-finding-${t.findingId}`:null}function Jt(t){const s=$(r=>r.openClaudeReview);return r=>{s({id:t.id,number:t.number,title:t.title,repoFullName:t.repoFullName,authorLogin:null,authorDisplayName:null,authorAvatarUrl:null});const n=Date.now()+3e3,a=()=>{const l=document.getElementById(r);if(l){l.scrollIntoView({behavior:"smooth",block:"center"});return}Date.now()<n&&requestAnimationFrame(a)};requestAnimationFrame(a)}}function H({refId:t,item:s,onJump:r}){const n=s?`${Xe[s.kind]} ${t}`:t,a=e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"shrink-0",children:n}),s&&e.jsxs("span",{className:"min-w-0 truncate font-normal",children:["· ",s.title]})]}),l=s?Vt(s):null;return l?e.jsx("button",{type:"button",onClick:()=>r(l),"aria-label":`${n}: ${(s==null?void 0:s.title)??""}. Show in AI Review`,className:`${Ne} max-w-[22rem] hover:bg-gray-500/20`,children:a}):e.jsx("span",{className:`${Ne} max-w-[22rem]`,children:a})}function Gt(t){var s;switch(t.seed){case"review":{const r=((s=t.reviewItems)==null?void 0:s.length)??0;return`Fix from the AI review${r>0?` (${r} item${r===1?"":"s"})`:""}.`}case"plain":return"Fix from your instruction.";case"comments":return"Fix from picked comments (no longer offered).";case"ci_analysis":return"Fix from the CI analysis (no longer offered).";default:return""}}function Xt({pr:t,fix:s}){const r=J(s),n=Jt(t),a=s.changeReport,l=new Map((s.reviewItems??[]).map(i=>[i.ref,i])),d=(s.reviewItems??[]).filter(i=>!i.included);if(!a&&d.length===0)return null;const h=new Set((a==null?void 0:a.changes.map(i=>i.path))??[]),j=s.filesChanged.filter(i=>!h.has(i)),f=l.size>0;return e.jsxs("div",{className:"mt-2 text-xs",children:[a&&(a.changes.length>0||j.length>0)&&e.jsxs("section",{children:[e.jsxs("div",{className:W,children:["Changes",e.jsxs(q,{title:"Changes",children:[e.jsxs("p",{children:["What ",r," says it changed in each file, and why."]}),f&&e.jsx("p",{children:"Each tag is a review item the change answers. A finding tag opens it in the AI Review tab."}),e.jsx("p",{children:"The diff below is what actually changed."})]})]}),e.jsxs("ul",{className:"space-y-2",children:[a.changes.map(i=>e.jsxs("li",{children:[e.jsx("div",{className:"break-all font-mono text-gray-800 dark:text-gray-100",children:i.path}),i.summary&&e.jsx("p",{className:"mt-0.5 text-gray-700 dark:text-gray-300",children:i.summary}),i.refs.length>0&&e.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:i.refs.map(k=>e.jsx(H,{refId:k,item:l.get(k),onJump:n},k))})]},i.path)),j.map(i=>e.jsxs("li",{children:[e.jsx("div",{className:"break-all font-mono text-gray-800 dark:text-gray-100",children:i}),e.jsx("p",{className:"mt-0.5 text-gray-500 dark:text-gray-400",children:"No summary reported."})]},i))]})]}),a&&a.unaddressed.length>0&&e.jsxs("section",{children:[e.jsx("div",{className:W,children:"Not addressed"}),e.jsx("ul",{className:"space-y-1.5",children:a.unaddressed.map(i=>e.jsxs("li",{children:[e.jsx(H,{refId:i.ref,item:l.get(i.ref),onJump:n}),e.jsx("p",{className:"mt-0.5 text-gray-700 dark:text-gray-300",children:i.reason})]},i.ref))})]}),a&&a.notReported.length>0&&e.jsxs("section",{children:[e.jsx("div",{className:W,children:"No report"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:a.notReported.map(i=>e.jsx(H,{refId:i,item:l.get(i),onJump:n},i))})]}),d.length>0&&e.jsxs("section",{children:[e.jsxs("div",{className:W,children:["Left out",e.jsx(q,{title:"Left out",children:e.jsxs("p",{children:["These review items did not fit in what ",r," was sent, so it never saw them."]})})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:d.map(i=>e.jsx(H,{refId:i.ref,item:i,onJump:n},i.ref))})]})]})}const Qt=["findings","earlier_findings","judged_threads","untouched_threads","ci_failures","sonar","style_bots","story"],Zt={findings:"Claude’s findings",earlier_findings:"Earlier findings still open",judged_threads:"Threads Claude says need a fix",untouched_threads:"Unanswered threads",ci_failures:"CI failures",sonar:"SonarCloud issues",style_bots:"Style bot comments",story:"Ticket gaps"};function ve(t,s="Claude"){return t==="findings"?`${s}’s findings`:t==="judged_threads"?`Threads ${s} says need a fix`:Zt[t]}function V(t,s){return s[t.key]??t.defaultIncluded}function es(t,s){return t.items.filter(r=>V(r,s)).map(r=>r.key)}function Ue(t,s){const r=new Set;let n=0;for(const a of t.items)if(V(a,s)){if(n>0&&n+a.chars>t.budgetChars){r.add(a.key);continue}n+=a.chars}return r}const ts={blocker:"Blocker",warning:"Warning",nit:"Nit",question:"Question",praise:"Praise"},we={blocker:"bg-red-500/10 text-red-700 dark:text-red-300",warning:"bg-amber-500/10 text-amber-700 dark:text-amber-300",nit:"bg-gray-500/10 text-gray-600 dark:text-gray-300"},$e="whitespace-nowrap rounded bg-amber-500/10 px-1 py-px text-[11px] text-amber-700 dark:text-amber-300",Q=new Set;function ss(t,s){return t?s!=null?`${t}:${s}`:t:null}function rs({item:t,picked:s,cut:r,disabled:n,onToggle:a}){return e.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1.5 pt-0.5",children:[e.jsx("input",{type:"checkbox",checked:s,disabled:n,onChange:l=>a(l.target.checked),"aria-label":`Include in the fix: ${t.label}`}),s&&r&&e.jsx("span",{className:$e,children:"Won’t fit"})]})}function as({item:t,picked:s,cut:r,disabled:n,onToggle:a}){const l=ss(t.path,t.line);return e.jsx("li",{children:e.jsxs("label",{className:`flex cursor-pointer items-start gap-2 rounded border px-2 py-1.5 text-xs ${s?"border-blue-300 bg-blue-50/50 dark:border-blue-800 dark:bg-blue-950/20":"border-gray-200 dark:border-gray-800"}`,children:[e.jsx("input",{type:"checkbox",className:"mt-0.5",checked:s,disabled:n,onChange:d=>a(d.target.checked)}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsxs("span",{className:"flex flex-wrap items-center gap-1.5",children:[t.severity&&we[t.severity]&&e.jsx("span",{className:`rounded px-1 py-px text-[11px] font-medium ${we[t.severity]}`,children:ts[t.severity]}),e.jsx("span",{className:"break-words text-gray-800 dark:text-gray-100",children:t.label}),s&&r&&e.jsx("span",{className:$e,children:"Won’t fit"})]}),(l||t.detail)&&e.jsxs("span",{className:"mt-0.5 block break-words text-[11px] text-gray-500 dark:text-gray-400",children:[l&&e.jsx("span",{className:"font-mono",children:l}),l&&t.detail?" · ":"",t.detail]})]})]})})}function ns({preview:t,overrides:s,onChange:r,disabled:n,pr:a,review:l}){const d=Ue(t,s),h=new Map;for(const c of t.items){const m=h.get(c.section)??[];m.push(c),h.set(c.section,m)}const j=(c,m)=>{const o={...s};for(const N of c)o[N]=m;r(o)},f=l!=null&&l.id===t.sourceReviewId?l:null,i=_t(l),k=Mt(l),g=p.useMemo(()=>f!=null?Qe(f):null,[f]),w=p.useMemo(()=>new Map(((g==null?void 0:g.findings)??[]).map(c=>[c.id,c])),[g]),I=p.useMemo(()=>{var c;return new Map((((c=g==null?void 0:g.followUp)==null?void 0:c.items)??[]).map(m=>[m.priorFindingId,m]))},[g]),S=p.useMemo(()=>g!=null?Ze(g):new Map,[g]),D=p.useMemo(()=>g!=null?et(g):new Set,[g]),T=p.useMemo(()=>{var m;const c=new Set;for(const o of t.items)((m=o.card)==null?void 0:m.kind)==="story"&&c.add(o.card.ticketReviewId);return[...c].sort((o,N)=>o-N)},[t.items]),E=tt(a.id,T.length>0),A=p.useMemo(()=>{var m;const c=new Map;for(const o of((m=E.data)==null?void 0:m.tickets)??[])o.review!=null&&c.set(o.review.id,o.review);return c},[E.data]),_=p.useMemo(()=>E.data==null?[]:T.filter(c=>!A.has(c)),[E.data,T,A]),P=st(_),R=p.useMemo(()=>{const c=new Map(A);for(const m of P)c.set(m.id,m);return c},[A,P]);if(t.items.length===0)return e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"The review found nothing to fix."});const C=(f==null?void 0:f.headSha)??a.headSha,v=c=>{var B,L;const m=V(c,s),o=d.has(c.key),N=u=>j([c.key],u),y=e.jsx(rs,{item:c,picked:m,cut:o,disabled:n,onToggle:N}),x=c.card;switch(x==null?void 0:x.kind){case"finding":{const u=w.get(x.findingId);if(u==null)break;return e.jsx($t,{authorName:Dt(l,u),prId:a.id,finding:u,editable:!1,prUrl:a.githubUrl,repoFullName:a.repoFullName,headSha:C,posting:!1,postError:null,inChangeset:u.fileInDiff,priorStatus:S.get(u.id),alreadyPosted:D.has(u.id),actions:!1,selection:y,docReferences:(f==null?void 0:f.docReferences)??null},c.key)}case"earlier_finding":{const u=I.get(x.priorFindingId);if(u==null)break;return e.jsx(nt,{item:u,muted:!1,findingsById:w,headMoved:((B=g==null?void 0:g.followUp)==null?void 0:B.headMoved)??!1,changedPaths:Q,actions:!1,selection:y,by:i},c.key)}case"thread":return e.jsx(Ut,{t:x.assessment,muted:!1,actions:!1,selection:y,notCheckedNote:x.inReview?void 0:`${k} didn’t check this one.`,by:k},c.key);case"ci":return e.jsx(Lt,{f:x.item,suggestion:x.item.suggestion,changedPaths:Q,selection:y},c.key);case"sonar":return e.jsx(Bt,{issue:x.issue,selection:y},c.key);case"story":{const u=R.get(x.ticketReviewId),b=u==null?void 0:u.items.find(M=>M.id===x.itemId);if(u==null||b==null)break;const Y={review:u,viewedPrId:a.id,changedPaths:Q,actions:!1,selection:y};if(b.status==="missing")return e.jsx(rt,{item:b,...Y},c.key);const O=(L=u.assessment)==null?void 0:L.criteria.find(M=>M.ref===b.ref);if(O==null||O.status==="met")break;return e.jsx(at,{c:O,item:b,...Y},c.key)}}return e.jsx(as,{item:c,picked:m,cut:o,disabled:n,onToggle:N},c.key)};return e.jsxs("div",{className:"space-y-3",children:[Qt.filter(c=>h.has(c)).map(c=>{const m=h.get(c),o=m.filter(y=>V(y,s)).length,N=o===m.length;return e.jsxs("section",{"aria-label":ve(c,i),children:[e.jsxs("div",{className:"mb-1 flex items-center gap-2",children:[e.jsx("h4",{className:"text-xs font-semibold text-gray-700 dark:text-gray-200",children:ve(c,i)}),e.jsxs("span",{className:"text-[11px] text-gray-500 dark:text-gray-400",children:[o," of ",m.length]}),e.jsx("button",{type:"button",className:"ml-auto text-[11px] text-blue-600 hover:underline disabled:opacity-50 dark:text-blue-400",disabled:n,onClick:()=>j(m.map(y=>y.key),!N),children:N?"Untick all":"Tick all"})]}),e.jsx("ul",{className:"space-y-1.5",children:m.map(v)})]},c)}),d.size>0&&e.jsxs("p",{className:"text-xs text-amber-700 dark:text-amber-300",children:[d.size," ticked ",d.size===1?"item does":"items do"," not fit in one fix and will be left out. Untick something to make room."]})]})}const is="whitespace-nowrap rounded border border-blue-400 px-2.5 py-1 text-xs text-blue-600 hover:bg-blue-50 disabled:opacity-50 dark:border-blue-600 dark:text-blue-400 dark:hover:bg-blue-900/30",Pe="whitespace-nowrap rounded border border-gray-300 px-2.5 py-1 text-xs hover:border-gray-400 dark:border-gray-700 dark:hover:border-gray-500";function De(t){return{prId:t.id,repoId:t.repoId,repoFullName:t.repoFullName,prNumber:t.number,prTitle:t.title,githubUrl:t.githubUrl}}function ls(t){const s=it({mergeable:t.mergeable,mergeStateStatus:t.mergeStateStatus,isDraft:t.isDraft,inMergeQueue:t.inMergeQueue===!0}).verdict;return lt({state:t.state,verdict:s,viewerCanPush:t.viewerCanPush})}function ds({pr:t}){const s=dt(t.id),r=ct(),n=ot(s),a=t.baseRefName??"the base branch";p.useEffect(()=>{ut(t.id)},[t.id]);const l=De(t),d=(s==null?void 0:s.phase)==="succeeded"?s.resolution:null;return e.jsxs("div",{className:"mb-3 rounded border border-gray-200 p-3 dark:border-gray-800",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium text-gray-800 dark:text-gray-100",children:[e.jsx(xt,{size:13,className:"text-ai-signal"}),"This branch conflicts with ",a]}),e.jsxs("p",{className:"mt-1 text-[12px] text-gray-600 dark:text-gray-300",children:[r," reads the code and picks a result for each conflict. You check its choices in the resolver before anything is pushed."]}),n&&s!=null?e.jsxs("div",{className:"mt-2",children:[e.jsx(se,{active:!0,label:`Resolving conflicts with ${r}`,timeConstantSec:60}),e.jsxs("div",{className:"mt-1 flex items-center gap-2 text-xs text-gray-600 dark:text-gray-300",children:[ht(s.phase,r),e.jsx("button",{type:"button",className:Pe,onClick:()=>mt(t.id),children:"Cancel"})]})]}):e.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[e.jsx(z,{kind:"resolve",children:e.jsx("button",{type:"button",className:is,onClick:()=>Ee(l,{providerName:r}),children:d!=null?"Run again":`Resolve merge conflicts with ${r}`})}),d!=null&&e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:Pe,onClick:()=>gt(l),children:"Open the resolver"}),e.jsxs("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:[J(d)," decided ",d.choices.length," of ",d.decidableTotal," change",d.decidableTotal===1?"":"s","."]})]}),(s==null?void 0:s.phase)==="failed"&&s.error!=null&&e.jsx("span",{className:"text-xs text-red-600 dark:text-red-400",children:s.error}),(s==null?void 0:s.phase)==="cancelled"&&e.jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Cancelled."})]})]})}const ee="whitespace-nowrap rounded border border-blue-400 px-2.5 py-1 text-xs text-blue-600 hover:bg-blue-50 disabled:opacity-50 dark:border-blue-600 dark:text-blue-400 dark:hover:bg-blue-900/30";function te(t){return t instanceof Te||t instanceof Error?t.message:"Something went wrong"}const Z="whitespace-nowrap rounded border border-gray-300 px-2.5 py-1 text-xs hover:border-gray-400 disabled:opacity-50 dark:border-gray-700 dark:hover:border-gray-500";function cs({children:t,info:s}){return e.jsxs("div",{className:"flex items-center gap-1 px-4 pb-1 pt-3 text-xs font-semibold uppercase tracking-wide text-gray-400",children:[t,s]})}function Ns({pr:t}){const s=_e().enabled,r=$(d=>d.aiFixTabFocus),n=$(d=>d.consumeAiFixTabFocus),[a,l]=p.useState(null);return p.useEffect(()=>{r&&r.prId===t.id&&(r.reviewId!=null&&l(r.reviewId),n())},[r,t.id,n]),s?e.jsx("div",{className:"pb-6",children:e.jsx(os,{pr:t,handoffReviewId:a})}):e.jsx(e.Fragment,{})}function os({pr:t,handoffReviewId:s}){var de,ce,oe,ue,xe,he,me,ge,pe,be;const{data:r,isLoading:n}=pt(t.id,!0),{data:a,isLoading:l}=bt(t.id),d=(a==null?void 0:a.review)??null,h=qt(s,d,(a==null?void 0:a.history)??[]),j=zt(s,h,d),f=$(F=>F.setPrDetailTab),i=ft("fix",Et),k=Se(i.chosen.provider),g=yt().data,w=jt(t.id),I=kt(t.id),S=Ce(t.id),D=_e(),T=Nt(g,i.chosen.provider,"plan"),[E,A]=p.useState(!1),_=E&&T,P=$(F=>F.noteAiFixRun),R=Re({mutationKey:vt(t.id)})>0,C=((de=r==null?void 0:r.fix)==null?void 0:de.status)??null,v=C==="planned",c=v&&((oe=(ce=r==null?void 0:r.fix)==null?void 0:ce.plan)==null?void 0:oe.status)==="planning",m=C==="running"||C==="queued"||R||c,{status:o}=wt(t.id,m),N=(o==null?void 0:o.status)??C??"idle",y=N==="running"||N==="queued",x=y&&!v,B=v&&(c||y),L=v&&(((xe=(ue=r==null?void 0:r.fix)==null?void 0:ue.plan)==null?void 0:xe.status)==="planning"||((me=(he=r==null?void 0:r.fix)==null?void 0:he.plan)==null?void 0:me.status)==="plan_ready"),u=(r==null?void 0:r.fix)??null,b=Pt(t.id,h,(r==null?void 0:r.enabled)!==!1),Y=Rt(h!=null&&(d==null?void 0:d.id)!==h?h:null),O=h!=null&&(d==null?void 0:d.id)===h?d:Y.data??null,[M,ae]=p.useState({});p.useEffect(()=>ae({}),[h]);const[Ye,K]=p.useState(!1),ne=!L&&(Ye||!u||u.status!=="succeeded"),G=ls(t),[ie,Ke]=p.useState(!1),U=b.data?es(b.data,M):[],le=b.data?Ue(b.data,M).size:0,We=()=>{if(h==null||!b.data||U.length===0)return;const F={model:i.chosen.model,provider:i.chosen.provider,seed:"review",sourceReviewId:h,include:U};_?I.mutate(F,{onSuccess:()=>K(!1)}):(P({prId:t.id,repoFullName:t.repoFullName,prNumber:t.number,prTitle:t.title}),w.mutate(F,{onSuccess:()=>K(!1)})),ie&&G&&Ee(De(t),{model:Ct(i.chosen.model),providerName:D.providerName})};return e.jsxs("div",{children:[e.jsx(cs,{info:e.jsxs(q,{title:"AI Fix",children:[e.jsxs("p",{children:[k," reads the PR's code and edits files in a private copy. It has no shell, so it installs, builds and tests nothing."]}),e.jsx("p",{children:"A fix starts from an AI review. Pick what it should work on: the review's findings, earlier findings still open, threads the review says need a fix, unanswered threads, CI failures and ticket gaps are ticked; style bot comments are not."}),e.jsxs("p",{children:["Tick Plan first to read ",k,"'s plan, steer it and approve it before anything changes."]}),e.jsxs("p",{children:[k," reports what it changed in each file and what it left alone, and why."]}),e.jsx("p",{children:"Nothing is pushed until you press Push. An automatic fix on your own PR is pushed for you only when Push automatically is on in Settings."})]}),children:"AI Fix"}),e.jsxs("div",{className:"px-4",children:[G&&e.jsx(ds,{pr:t}),(r==null?void 0:r.enabled)===!1?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"The agentic fixer is turned off."}):e.jsxs(e.Fragment,{children:[!x&&!L&&h==null&&!l&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-300",children:(d==null?void 0:d.status)==="running"||(d==null?void 0:d.status)==="queued"?"A fix starts from an AI review. One is running.":"A fix starts from a finished AI review."}),e.jsx("button",{type:"button",className:ee,onClick:()=>f(t.id,"claude_review"),children:"Open AI Review"})]}),!x&&!L&&h!=null&&!ne&&e.jsx("button",{type:"button",className:Z,onClick:()=>K(!0),children:"New fix"}),!x&&h!=null&&ne&&e.jsxs("div",{children:[j&&e.jsx("p",{className:"mb-2 text-xs text-gray-500 dark:text-gray-400",children:j}),b.isLoading&&e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"Loading…"}),b.isError&&e.jsx("p",{className:"text-xs text-red-600 dark:text-red-400",children:te(b.error)}),b.data&&e.jsx(ns,{preview:b.data,overrides:M,onChange:ae,disabled:R,pr:t,review:O}),b.data&&b.data.items.length>0&&G&&e.jsxs("label",{className:"mt-3 flex cursor-pointer items-start gap-2 text-xs text-gray-800 dark:text-gray-100",children:[e.jsx("input",{type:"checkbox",className:"mt-0.5",checked:ie,disabled:R,onChange:F=>Ke(F.target.checked)}),e.jsxs("span",{children:["Also resolve merge conflicts with ",t.baseRefName??"the base branch",e.jsx("span",{className:"block text-[12px] text-gray-600 dark:text-gray-300",children:"You check the merge in the resolver. It lands as its own commit, apart from the fix."})]})]}),b.data&&b.data.items.length>0&&e.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[e.jsx(Ot,{state:i,onPick:i.pick,disabled:R}),T&&e.jsxs("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs text-gray-800 dark:text-gray-100",children:[e.jsx("input",{type:"checkbox",checked:_,disabled:R,onChange:F=>A(F.target.checked)}),"Plan first"]}),e.jsx(z,{kind:"fix",auth:r==null?void 0:r.auth,anyProvider:!0,provider:i.chosen.provider,children:e.jsx("button",{type:"button",className:ee,disabled:R||U.length===0,onClick:We,children:_?"Make a plan":"Start fix"})}),e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:U.length===0?"Nothing ticked.":`${U.length-le} item${U.length-le===1?"":"s"}`}),(u==null?void 0:u.status)==="succeeded"&&e.jsx("button",{type:"button",className:Z,onClick:()=>K(!1),children:"Close"})]})]}),x&&e.jsx("button",{type:"button",className:Z,onClick:()=>S.mutate(),children:"Cancel"}),(w.isError||I.isError)&&e.jsx("p",{className:"mt-1 text-[11px] text-red-600 dark:text-red-400",children:te(w.error??I.error)}),u&&v&&e.jsx(Ht,{pr:t,fix:u,liveStatus:o,passRunning:B,auth:r==null?void 0:r.auth}),x&&e.jsxs("div",{className:"mt-3",children:[u&&e.jsx(Le,{fix:u}),e.jsx(se,{active:!0,label:"Running AI fix",value:Fe(o),timeConstantSec:40}),e.jsxs("div",{className:"mt-1 flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400",children:[(u==null?void 0:u.trigger)==="auto"&&e.jsx(Oe,{}),Ie[((ge=o==null?void 0:o.progress)==null?void 0:ge.phase)??""]??"Working…"]}),((pe=o==null?void 0:o.progress)==null?void 0:pe.recentActivity)&&o.progress.recentActivity.length>0&&e.jsx("pre",{className:"mt-1 max-h-32 overflow-auto rounded bg-gray-50 p-2 text-[11px] leading-relaxed text-gray-500 dark:text-gray-400 dark:bg-gray-900",children:o.progress.recentActivity.slice(-8).join(`
3
3
  `)})]}),!x&&u&&!v&&e.jsx(xs,{pr:t,fix:u,headInfo:(r==null?void 0:r.headInfo)??null,viewerCanPush:(r==null?void 0:r.viewerCanPush)??!1}),n&&!u&&e.jsx("p",{className:"mt-3 text-xs text-gray-500 dark:text-gray-400",children:"Loading…"})]}),e.jsx(ms,{history:(r==null?void 0:r.history)??[],currentFixId:((be=r==null?void 0:r.fix)==null?void 0:be.id)??null})]})]})}function Oe(){return e.jsx("span",{className:"inline-flex items-center rounded bg-gray-500/10 px-1.5 py-px text-[11px] font-medium text-gray-600 dark:text-gray-300",children:"Auto fix"})}function us(t){return Ae(t.provider,t.model,t.effort)}function xs({pr:t,fix:s,headInfo:r,viewerCanPush:n}){var d,h;const a=p.useMemo(()=>At(s.patch),[s.patch]);if(s.status==="failed"&&((d=s.plan)==null?void 0:d.status)==="failed")return e.jsxs("div",{className:"mt-3 rounded border border-red-200 bg-red-50 p-2 text-xs text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-300",children:[J(s.plan??s)," could not make a plan: ",s.error??"unknown error"]});if(s.status==="cancelled"&&((h=s.plan)==null?void 0:h.status)==="discarded")return e.jsx("p",{className:"mt-3 text-xs text-gray-500 dark:text-gray-400",children:"The plan was discarded."});if(s.status==="failed")return e.jsxs("div",{className:"mt-3 rounded border border-red-200 bg-red-50 p-2 text-xs text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-300",children:["The fix run failed: ",s.error??"unknown error"]});if(s.status==="cancelled")return e.jsx("p",{className:"mt-3 text-xs text-gray-500 dark:text-gray-400",children:"The fix run was cancelled."});if(s.status!=="succeeded")return e.jsx(e.Fragment,{});const l=!s.patch||s.filesChanged.length===0;return e.jsxs("div",{className:"mt-3 border-t border-gray-200 pt-3 dark:border-gray-800",children:[e.jsxs("p",{className:"mb-1 text-xs text-gray-500 dark:text-gray-400",children:[s.trigger==="auto"&&e.jsxs(e.Fragment,{children:[e.jsx(Oe,{})," "]}),Gt(s)," · ",us(s),s.finishedAt&&e.jsxs(e.Fragment,{children:[" · ",re(s.finishedAt)]})]}),s.pushedAt==null&&s.error&&e.jsx("p",{className:"mb-2 rounded border border-amber-200 bg-amber-50 p-2 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-200",children:s.error}),e.jsx(Le,{fix:s}),s.summary&&e.jsx("div",{className:"prose prose-sm max-w-none dark:prose-invert",children:e.jsx(Ft,{children:s.summary})}),e.jsx(Xt,{pr:t,fix:s}),l?e.jsx("p",{className:"mt-2 text-xs text-gray-500 dark:text-gray-400",children:"No files changed."}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-1 mt-2 flex items-center justify-between gap-3 text-xs text-gray-500 dark:text-gray-400",children:[e.jsxs("span",{children:[s.filesChanged.length," file",s.filesChanged.length===1?"":"s"," changed · Not built or tested here."]}),e.jsx(It,{})]}),e.jsx("div",{className:"overflow-hidden rounded border border-gray-200 text-gray-800 dark:border-gray-800 dark:text-gray-200",children:e.jsx(St,{files:a})}),e.jsx(gs,{pr:t,fix:s,headInfo:r,viewerCanPush:n})]})]})}function hs({fix:t}){return e.jsxs("div",{className:"mb-2 rounded border border-green-200 bg-green-50 p-2 text-xs text-green-700 dark:border-green-800 dark:bg-green-950/30 dark:text-green-300",children:[e.jsxs("div",{children:["Pushed to ",e.jsx("span",{className:"font-mono",children:t.pushedBranch}),t.pushedPrUrl&&e.jsxs(e.Fragment,{children:[" · ",e.jsxs("a",{href:Me(t.pushedPrUrl),target:"_blank",rel:"noreferrer",className:"underline",children:["PR #",t.pushedPrNumber]})]}),t.pushedAt&&e.jsxs(e.Fragment,{children:[" · ",re(t.pushedAt)]})]}),t.commitMessage&&e.jsx("div",{className:"mt-1 font-mono text-[11px] text-green-800 dark:text-green-300",children:t.commitMessage})]})}function ms({history:t,currentFixId:s}){const r=t.filter(n=>n.pushedAt!=null&&n.id!==s);return r.length===0?null:e.jsxs("div",{className:"mt-4 border-t border-gray-200 pt-3 dark:border-gray-800",children:[e.jsx("div",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-gray-400",children:"Earlier fixes pushed"}),e.jsx("ul",{className:"space-y-2",children:r.map(n=>e.jsxs("li",{className:"text-xs",children:[e.jsx("div",{className:"font-mono text-gray-700 dark:text-gray-200",children:n.commitMessage??"(no commit message)"}),e.jsxs("div",{className:"mt-0.5 text-[11px] text-gray-400",children:[n.pushedBranch&&e.jsx("span",{className:"font-mono",children:n.pushedBranch}),n.pushedPrUrl&&e.jsxs(e.Fragment,{children:[" · ",e.jsxs("a",{href:Me(n.pushedPrUrl),target:"_blank",rel:"noreferrer",className:"underline",children:["PR #",n.pushedPrNumber]})]}),n.pushedAt&&e.jsxs(e.Fragment,{children:[" · ",re(n.pushedAt)]})]})]},n.id))})]})}function gs({pr:t,fix:s,headInfo:r,viewerCanPush:n}){const a=Tt(t.id),l=(r==null?void 0:r.canPushSameBranch)??!1,[d,h]=p.useState(l?"existing":"new"),[j,f]=p.useState((r==null?void 0:r.suggestedBranch)??""),i=p.useRef(!1);if(p.useEffect(()=>{!i.current&&(r!=null&&r.suggestedBranch)&&(f(r.suggestedBranch),i.current=!0,r.canPushSameBranch||h("new"))},[r]),s.pushedAt!=null)return e.jsx(hs,{fix:s});if(!n)return e.jsx("p",{className:"mt-2 text-xs text-gray-500 dark:text-gray-400",children:"You need write access to push this fix."});const k=d==="new"&&j.trim().length===0,g=a.isPending,w=()=>{a.mutate({fixId:s.id,body:{target:d,branch:d==="new"?j.trim():void 0}})};return e.jsxs("div",{className:"mt-3 rounded border border-gray-200 p-2 dark:border-gray-800",children:[s.commitMessage&&e.jsx("div",{className:"mb-2 rounded bg-gray-50 px-2 py-1 font-mono text-xs text-gray-700 dark:bg-gray-900 dark:text-gray-200",title:"Commit message",children:s.commitMessage}),e.jsxs("label",{className:`flex items-center gap-2 text-xs ${l?"":"opacity-40"}`,title:l?void 0:"The PR head is a fork you cannot push to — use a new branch",children:[e.jsx("input",{type:"radio",checked:d==="existing",disabled:!l||g,onChange:()=>h("existing")}),"Push to the PR branch",(r==null?void 0:r.headRef)&&e.jsxs("span",{className:"font-mono text-gray-400",children:["(",r.headRef,")"]})]}),e.jsxs("label",{className:"mt-1 flex items-center gap-2 text-xs",children:[e.jsx("input",{type:"radio",checked:d==="new",disabled:g,onChange:()=>h("new")}),"New branch + open a PR"]}),d==="new"&&e.jsx("input",{type:"text",className:"mt-1 w-full rounded border border-gray-300 bg-transparent px-2 py-1 font-mono text-xs dark:border-gray-700",value:j,disabled:g,onChange:I=>f(I.target.value),placeholder:"branch-name"}),e.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:e.jsx("button",{type:"button",className:ee,disabled:g||k,onClick:w,children:g?"Pushing…":d==="new"?"Push + open PR":"Push"})}),a.isError&&e.jsx("div",{className:"mt-2 text-[11px] text-red-500",children:te(a.error)})]})}export{Ns as AiFixTab};
@@ -1,4 +1,4 @@
1
- import{j as e,r as g,d as St,k as Ts}from"./tanstack-BnbsafB1.js";import{bv as Jt,aL as Qe,aG as Xe,aH as Je,T as Zt,aA as es,c as Ce,aC as Oe,ay as De,bB as ts,c0 as nt,bo as Ls,bR as Fs,bQ as Ms,aa as J,p as be,M as ae,a0 as ce,bb as Bs,bE as re,aE as ss,aX as Hs,aW as Os,m as Ds,aj as Pt,l as Us,bP as Gs,ak as Ws,B as Vs,I as Ie,a4 as K,_ as te,bS as zs,w as qs,cB as Ks,h as Ys,g as ns,e as le,W as Qs,cf as Xs,bO as Js,bN as Zs,a2 as rt,bY as ue,c6 as rs,cG as en,c8 as tn,c9 as sn,c7 as nn,aU as _e,aV as rn,aR as an,a6 as at,aS as ln,j as on,aT as dn,a3 as X,O as de,aQ as cn,ab as Ue,f as as,C as un,n as Re,at as lt,cx as xn,cA as hn,ct as mn,ae as it,cy as pn,cn as gn,X as bn,bt as Y,bu as Ge,u as yn,bH as fn,ao as Et,bn as kn,cO as ot,cK as jn,cM as vn,cN as Nn,cL as wn,bT as Cn,a_ as Rn,bd as ls,bM as is,N as $n,am as In,al as Sn,y as Pn,bs as En,ah as os,bV as _n,an as An,ap as Tn,cJ as ds,t as Ln,bq as cs,bU as Fn,bL as Mn,aP as Bn,bW as Hn,cT as On,s as Dn,bc as Un,cq as Gn,ai as Wn,x as Vn,Q as zn,S as qn,G as Kn,Z as Yn,a$ as Qn,bJ as Xn,bg as Jn,ca as Zn,cD as er,cl as tr,cd as sr,c4 as nr,cR as rr,cQ as ar,cu as lr,cs as ir,b2 as or,ce as dr,cF as us,cb as cr,aB as xs,d as ur,aF as _t,ba as xr,bl as hr,i as $e,a5 as hs,au as mr,aI as At,P as ms,b7 as pr,cW as gr,bf as br,bp as yr,bG as fr,bx as kr,aD as jr,b6 as vr,bF as Nr,c5 as wr,bj as Cr,bA as Rr,J as $r,r as Ir,o as Sr,bK as Pr,H as Er,q as _r,a7 as Ar,b1 as Tr,a1 as Ze,ad as Lr,k as Fr,b3 as Mr,$ as Tt,b as qe,br as Lt,bw as Br,aJ as Ft,F as Hr,af as Or,bz as Dr,cc as Ur,bC as Gr,a9 as Wr,bD as Vr,cv as zr,ac as qr,Y as Kr,bX as Yr,cC as Qr,cS as Xr,cE as Jr,aK as Zr,cV as ea,bk as ta,ar as sa,aq as na,as as ra,cm as aa,b9 as Mt,b8 as la,be as ia,cX as ps,aN as oa,cj as da,V as ca,z as ua}from"./index-CFlzr-u4.js";const xa="https://sonarcloud.io",ha={blocker:"Blocker",critical:"Critical",major:"Major",minor:"Minor",info:"Info"},ma={new_coverage:"Coverage on new code",coverage:"Coverage",new_line_coverage:"Line coverage on new code",line_coverage:"Line coverage",new_branch_coverage:"Branch coverage on new code",branch_coverage:"Branch coverage",new_uncovered_lines:"Uncovered new lines",uncovered_lines:"Uncovered lines",new_lines_to_cover:"New lines to cover",new_duplicated_lines_density:"Duplicated lines on new code",duplicated_lines_density:"Duplicated lines",new_duplicated_lines:"Duplicated new lines",duplicated_lines:"Duplicated lines",new_lines:"New lines",new_reliability_rating:"Reliability rating on new code",new_security_rating:"Security rating on new code",new_maintainability_rating:"Maintainability rating on new code",new_security_review_rating:"Security review rating on new code",new_security_hotspots_reviewed:"Security hotspots reviewed",new_violations:"Issues on new code",new_bugs:"Bugs on new code",new_vulnerabilities:"Vulnerabilities on new code",new_code_smells:"Code smells on new code"};function dt(t){return ma[t]??t.replace(/^new_/,"").replace(/_/g," ").replace(/^./,s=>s.toUpperCase())}const gs=t=>/_rating$/.test(t),pa=t=>/(coverage|density|hotspots_reviewed)$/.test(t);function et(t,s){const n=Number(s);return Number.isFinite(n)?gs(t)?"ABCDE"[Math.round(n)-1]??s:pa(t)?`${Math.round(n*10)/10}%`:String(n):s}function ga(t){const s=dt(t.metric),n=t.actual!=null?et(t.metric,t.actual):null,a=t.threshold!=null?et(t.metric,t.threshold):null,o=n!=null?`${s} is ${n}.`:`${s} fails.`;if(a==null)return o;const l=gs(t.metric)?`${a} or better`:t.comparator==="LT"?`at least ${a}`:t.comparator==="GT"?`at most ${a}`:a;return`${o} The quality gate needs ${l}.`}function ba(t){return((t==null?void 0:t.conditions)??[]).filter(s=>s.status==="ERROR"||s.status==="WARN")}const bs=t=>/coverage|uncovered_lines|lines_to_cover/.test(t),ya=t=>/duplicat/.test(t);function fa(t){return bs(t)||ya(t)}function ka(t,s){return ba(t).filter(n=>fa(n.metric)).map(n=>{const a=bs(n.metric),o=n.files??[],l=o.length>0?`
1
+ import{j as e,r as g,d as St,k as Ts}from"./tanstack-BnbsafB1.js";import{bv as Jt,aL as Qe,aG as Xe,aH as Je,T as Zt,aA as es,c as Ce,aC as Oe,ay as De,bB as ts,c0 as nt,bo as Ls,bR as Fs,bQ as Ms,aa as J,p as be,M as ae,a0 as ce,bb as Bs,bE as re,aE as ss,aX as Hs,aW as Os,m as Ds,aj as Pt,l as Us,bP as Gs,ak as Ws,B as Vs,I as Ie,a4 as K,_ as te,bS as zs,w as qs,cB as Ks,h as Ys,g as ns,e as le,W as Qs,cf as Xs,bO as Js,bN as Zs,a2 as rt,bY as ue,c6 as rs,cG as en,c8 as tn,c9 as sn,c7 as nn,aU as _e,aV as rn,aR as an,a6 as at,aS as ln,j as on,aT as dn,a3 as X,O as de,aQ as cn,ab as Ue,f as as,C as un,n as Re,at as lt,cx as xn,cA as hn,ct as mn,ae as it,cy as pn,cn as gn,X as bn,bt as Y,bu as Ge,u as yn,bH as fn,ao as Et,bn as kn,cO as ot,cK as jn,cM as vn,cN as Nn,cL as wn,bT as Cn,a_ as Rn,bd as ls,bM as is,N as $n,am as In,al as Sn,y as Pn,bs as En,ah as os,bV as _n,an as An,ap as Tn,cJ as ds,t as Ln,bq as cs,bU as Fn,bL as Mn,aP as Bn,bW as Hn,cT as On,s as Dn,bc as Un,cq as Gn,ai as Wn,x as Vn,Q as zn,S as qn,G as Kn,Z as Yn,a$ as Qn,bJ as Xn,bg as Jn,ca as Zn,cD as er,cl as tr,cd as sr,c4 as nr,cR as rr,cQ as ar,cu as lr,cs as ir,b2 as or,ce as dr,cF as us,cb as cr,aB as xs,d as ur,aF as _t,ba as xr,bl as hr,i as $e,a5 as hs,au as mr,aI as At,P as ms,b7 as pr,cW as gr,bf as br,bp as yr,bG as fr,bx as kr,aD as jr,b6 as vr,bF as Nr,c5 as wr,bj as Cr,bA as Rr,J as $r,r as Ir,o as Sr,bK as Pr,H as Er,q as _r,a7 as Ar,b1 as Tr,a1 as Ze,ad as Lr,k as Fr,b3 as Mr,$ as Tt,b as qe,br as Lt,bw as Br,aJ as Ft,F as Hr,af as Or,bz as Dr,cc as Ur,bC as Gr,a9 as Wr,bD as Vr,cv as zr,ac as qr,Y as Kr,bX as Yr,cC as Qr,cS as Xr,cE as Jr,aK as Zr,cV as ea,bk as ta,ar as sa,aq as na,as as ra,cm as aa,b9 as Mt,b8 as la,be as ia,cX as ps,aN as oa,cj as da,V as ca,z as ua}from"./index-DbYNXOny.js";const xa="https://sonarcloud.io",ha={blocker:"Blocker",critical:"Critical",major:"Major",minor:"Minor",info:"Info"},ma={new_coverage:"Coverage on new code",coverage:"Coverage",new_line_coverage:"Line coverage on new code",line_coverage:"Line coverage",new_branch_coverage:"Branch coverage on new code",branch_coverage:"Branch coverage",new_uncovered_lines:"Uncovered new lines",uncovered_lines:"Uncovered lines",new_lines_to_cover:"New lines to cover",new_duplicated_lines_density:"Duplicated lines on new code",duplicated_lines_density:"Duplicated lines",new_duplicated_lines:"Duplicated new lines",duplicated_lines:"Duplicated lines",new_lines:"New lines",new_reliability_rating:"Reliability rating on new code",new_security_rating:"Security rating on new code",new_maintainability_rating:"Maintainability rating on new code",new_security_review_rating:"Security review rating on new code",new_security_hotspots_reviewed:"Security hotspots reviewed",new_violations:"Issues on new code",new_bugs:"Bugs on new code",new_vulnerabilities:"Vulnerabilities on new code",new_code_smells:"Code smells on new code"};function dt(t){return ma[t]??t.replace(/^new_/,"").replace(/_/g," ").replace(/^./,s=>s.toUpperCase())}const gs=t=>/_rating$/.test(t),pa=t=>/(coverage|density|hotspots_reviewed)$/.test(t);function et(t,s){const n=Number(s);return Number.isFinite(n)?gs(t)?"ABCDE"[Math.round(n)-1]??s:pa(t)?`${Math.round(n*10)/10}%`:String(n):s}function ga(t){const s=dt(t.metric),n=t.actual!=null?et(t.metric,t.actual):null,a=t.threshold!=null?et(t.metric,t.threshold):null,o=n!=null?`${s} is ${n}.`:`${s} fails.`;if(a==null)return o;const l=gs(t.metric)?`${a} or better`:t.comparator==="LT"?`at least ${a}`:t.comparator==="GT"?`at most ${a}`:a;return`${o} The quality gate needs ${l}.`}function ba(t){return((t==null?void 0:t.conditions)??[]).filter(s=>s.status==="ERROR"||s.status==="WARN")}const bs=t=>/coverage|uncovered_lines|lines_to_cover/.test(t),ya=t=>/duplicat/.test(t);function fa(t){return bs(t)||ya(t)}function ka(t,s){return ba(t).filter(n=>fa(n.metric)).map(n=>{const a=bs(n.metric),o=n.files??[],l=o.length>0?`
2
2
 
3
3
  Files with the most ${a?"uncovered":"duplicated"} new lines:
4
4
  ${o.map(r=>`- ${r.path}: ${r.lines} ${r.lines===1?"line":"lines"}`).join(`
@@ -1 +1 @@
1
- import{r as v,j as s}from"./tanstack-BnbsafB1.js";import{cw as g,cC as w,c2 as j,M as k,aM as N,cU as b,bv as y,at as f,a8 as C,v as T,b0 as p,b5 as $}from"./index-CFlzr-u4.js";import"./markdown-CcoLFczy.js";import"./highlight-DIEV0qGG.js";import"./vis-C3BCkP5U.js";function h(e){return e==null?"—":$(e)}function B(e){const t=[];for(const r of e){const o=y(r.at),a=t[t.length-1];if(a&&a.label===o){a.to=r.at,a.count+=1,r.kind==="review"?a.reviews+=1:a.comments+=1;continue}t.push({from:r.at,to:r.at,label:o,count:1,reviews:r.kind==="review"?1:0,comments:r.kind==="review"?0:1})}return t}function I(e){const t=[];return e.reviews>0&&t.push(`${e.reviews} review${e.reviews===1?"":"s"}`),e.comments>0&&t.push(`${e.comments} comment${e.comments===1?"":"s"}`),t.join(", ")}const P=40;function u({label:e,value:t,tone:r}){return s.jsxs("div",{children:[s.jsx("div",{className:"text-[11px] font-semibold text-gray-500 dark:text-gray-400",children:e}),s.jsx("div",{className:`text-sm font-semibold ${r==="warn"?"text-red-600 dark:text-red-400":"text-gray-800 dark:text-gray-100"}`,children:t})]})}function R({bot:e,color:t}){const r=N(e.kind),o=e.ttfrAnomaly,a=e.typicalTtfrHours==null,c=e.typicalFollowups!=null&&e.followupCount>=e.typicalFollowups+2,d=B(e.touches),i=d.slice(0,P),l=e.touches.length-i.reduce((n,x)=>n+x.count,0),m=a?"building baseline":o?`slower than typical — usually ${h(e.typicalTtfrHours)}`:`within typical (${h(e.typicalTtfrHours)})`;return s.jsxs("div",{className:"space-y-2 rounded-lg border border-gray-200 p-3 dark:border-gray-800",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs("span",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-800 dark:text-gray-100",children:[s.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-full",style:{background:t},"aria-hidden":!0}),e.label]}),s.jsx("span",{className:"rounded px-1.5 py-0.5 text-[11px] font-medium",style:{...b(r.color),background:`${r.color}1a`},children:r.label}),e.firstTouchAt&&s.jsxs("span",{className:"text-[11px] text-gray-500 dark:text-gray-400",children:["first touch ",y(e.firstTouchAt)]}),o&&s.jsxs("span",{className:"rounded bg-red-500/10 px-1.5 py-0.5 text-[11px] font-semibold text-red-600 dark:text-red-400",children:[s.jsx(f,{size:11,className:"inline-block align-[-0.1em]"})," slower than usual"]})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[s.jsx(u,{label:"Time to first review",value:h(e.ttfrHours),tone:o?"warn":"default"}),s.jsx(u,{label:"Follow-ups",value:String(e.followupCount),tone:c?"warn":"default"}),s.jsx(u,{label:"Comments",value:String(e.commentCount)}),s.jsx(u,{label:"Touches",value:String(e.touchCount)})]}),s.jsxs("div",{className:"text-[11px] text-gray-500 dark:text-gray-400",children:[s.jsxs("span",{className:o?"font-medium text-red-600 dark:text-red-400":"",children:[!a&&o&&s.jsx(f,{size:11,className:"mr-1 inline-block align-[-0.1em]"}),m]}),e.ttfrBasis&&!a&&s.jsxs("span",{children:[" · from ",e.ttfrBasis==="ready"?"ready-for-review":"opened"]}),e.typicalFollowups!=null&&s.jsxs("span",{children:[" · ",e.followupCount," follow-up",e.followupCount===1?"":"s"," vs ",e.typicalFollowups," typical",c?" (more than usual)":""]}),!a&&s.jsxs("span",{children:[" · baseline: ",e.baselinePrs," PRs"]})]}),d.length>0&&s.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[i.map((n,x)=>s.jsxs("span",{className:"inline-flex items-center gap-1 rounded bg-gray-500/10 px-1.5 py-0.5 text-[11px] text-gray-600 dark:text-gray-300",title:`${n.count>1?`${I(n)} · `:""}${n.from===n.to?p(n.from):`${p(n.from)} – ${p(n.to)}`}`,children:[n.reviews>0&&s.jsx(C,{size:11}),n.comments>0&&s.jsx(T,{size:11}),n.count>1&&s.jsxs("span",{className:"font-medium",children:["×",n.count]}),n.label]},x)),l>0&&s.jsxs("span",{className:"text-[11px] text-gray-500 dark:text-gray-400",children:["+",l," more touches"]})]})]})}function M({pr:e}){const{data:t,isLoading:r,isError:o}=g(e.id,!0),{data:a}=w(),c=v.useMemo(()=>{var l;return((l=(a??[]).find(m=>m.id===e.repoId))==null?void 0:l.workspaceId)??null},[a,e.repoId]),d=j(c),i=(t==null?void 0:t.bots)??[];return s.jsxs("div",{className:"space-y-3 p-4",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs(k,{title:"Bot activity",children:[s.jsx("p",{children:"How each review bot behaved on this pull request, compared with its own usual over the last 84 days. No AI is involved."}),s.jsx("p",{children:"A touch is one review or one comment, so a review submitted with three inline comments counts as four."})]}),s.jsx("span",{className:"text-[12px] text-gray-500 dark:text-gray-400",children:"Each bot against its own usual"})]}),r?s.jsx("div",{className:"h-24 animate-pulse rounded-lg border border-gray-200 bg-gray-50 dark:border-gray-800 dark:bg-gray-900/40"}):o?s.jsx("div",{className:"text-sm text-red-500",children:"Couldn’t load bot behaviour for this PR."}):i.length===0?s.jsx("div",{className:"rounded-lg border border-dashed border-gray-300 p-6 text-center text-sm text-gray-500 dark:border-gray-700 dark:text-gray-400",children:"No automated-reviewer activity on this PR."}):i.map(l=>s.jsx(R,{bot:l,color:d({login:l.login,kind:l.kind})},l.key))]})}export{M as PrBotBehaviourTab};
1
+ import{r as v,j as s}from"./tanstack-BnbsafB1.js";import{cw as g,cC as w,c2 as j,M as k,aM as N,cU as b,bv as y,at as f,a8 as C,v as T,b0 as p,b5 as $}from"./index-DbYNXOny.js";import"./markdown-CcoLFczy.js";import"./highlight-DIEV0qGG.js";import"./vis-C3BCkP5U.js";function h(e){return e==null?"—":$(e)}function B(e){const t=[];for(const r of e){const o=y(r.at),a=t[t.length-1];if(a&&a.label===o){a.to=r.at,a.count+=1,r.kind==="review"?a.reviews+=1:a.comments+=1;continue}t.push({from:r.at,to:r.at,label:o,count:1,reviews:r.kind==="review"?1:0,comments:r.kind==="review"?0:1})}return t}function I(e){const t=[];return e.reviews>0&&t.push(`${e.reviews} review${e.reviews===1?"":"s"}`),e.comments>0&&t.push(`${e.comments} comment${e.comments===1?"":"s"}`),t.join(", ")}const P=40;function u({label:e,value:t,tone:r}){return s.jsxs("div",{children:[s.jsx("div",{className:"text-[11px] font-semibold text-gray-500 dark:text-gray-400",children:e}),s.jsx("div",{className:`text-sm font-semibold ${r==="warn"?"text-red-600 dark:text-red-400":"text-gray-800 dark:text-gray-100"}`,children:t})]})}function R({bot:e,color:t}){const r=N(e.kind),o=e.ttfrAnomaly,a=e.typicalTtfrHours==null,c=e.typicalFollowups!=null&&e.followupCount>=e.typicalFollowups+2,d=B(e.touches),i=d.slice(0,P),l=e.touches.length-i.reduce((n,x)=>n+x.count,0),m=a?"building baseline":o?`slower than typical — usually ${h(e.typicalTtfrHours)}`:`within typical (${h(e.typicalTtfrHours)})`;return s.jsxs("div",{className:"space-y-2 rounded-lg border border-gray-200 p-3 dark:border-gray-800",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs("span",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-800 dark:text-gray-100",children:[s.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-full",style:{background:t},"aria-hidden":!0}),e.label]}),s.jsx("span",{className:"rounded px-1.5 py-0.5 text-[11px] font-medium",style:{...b(r.color),background:`${r.color}1a`},children:r.label}),e.firstTouchAt&&s.jsxs("span",{className:"text-[11px] text-gray-500 dark:text-gray-400",children:["first touch ",y(e.firstTouchAt)]}),o&&s.jsxs("span",{className:"rounded bg-red-500/10 px-1.5 py-0.5 text-[11px] font-semibold text-red-600 dark:text-red-400",children:[s.jsx(f,{size:11,className:"inline-block align-[-0.1em]"})," slower than usual"]})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[s.jsx(u,{label:"Time to first review",value:h(e.ttfrHours),tone:o?"warn":"default"}),s.jsx(u,{label:"Follow-ups",value:String(e.followupCount),tone:c?"warn":"default"}),s.jsx(u,{label:"Comments",value:String(e.commentCount)}),s.jsx(u,{label:"Touches",value:String(e.touchCount)})]}),s.jsxs("div",{className:"text-[11px] text-gray-500 dark:text-gray-400",children:[s.jsxs("span",{className:o?"font-medium text-red-600 dark:text-red-400":"",children:[!a&&o&&s.jsx(f,{size:11,className:"mr-1 inline-block align-[-0.1em]"}),m]}),e.ttfrBasis&&!a&&s.jsxs("span",{children:[" · from ",e.ttfrBasis==="ready"?"ready-for-review":"opened"]}),e.typicalFollowups!=null&&s.jsxs("span",{children:[" · ",e.followupCount," follow-up",e.followupCount===1?"":"s"," vs ",e.typicalFollowups," typical",c?" (more than usual)":""]}),!a&&s.jsxs("span",{children:[" · baseline: ",e.baselinePrs," PRs"]})]}),d.length>0&&s.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[i.map((n,x)=>s.jsxs("span",{className:"inline-flex items-center gap-1 rounded bg-gray-500/10 px-1.5 py-0.5 text-[11px] text-gray-600 dark:text-gray-300",title:`${n.count>1?`${I(n)} · `:""}${n.from===n.to?p(n.from):`${p(n.from)} – ${p(n.to)}`}`,children:[n.reviews>0&&s.jsx(C,{size:11}),n.comments>0&&s.jsx(T,{size:11}),n.count>1&&s.jsxs("span",{className:"font-medium",children:["×",n.count]}),n.label]},x)),l>0&&s.jsxs("span",{className:"text-[11px] text-gray-500 dark:text-gray-400",children:["+",l," more touches"]})]})]})}function M({pr:e}){const{data:t,isLoading:r,isError:o}=g(e.id,!0),{data:a}=w(),c=v.useMemo(()=>{var l;return((l=(a??[]).find(m=>m.id===e.repoId))==null?void 0:l.workspaceId)??null},[a,e.repoId]),d=j(c),i=(t==null?void 0:t.bots)??[];return s.jsxs("div",{className:"space-y-3 p-4",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs(k,{title:"Bot activity",children:[s.jsx("p",{children:"How each review bot behaved on this pull request, compared with its own usual over the last 84 days. No AI is involved."}),s.jsx("p",{children:"A touch is one review or one comment, so a review submitted with three inline comments counts as four."})]}),s.jsx("span",{className:"text-[12px] text-gray-500 dark:text-gray-400",children:"Each bot against its own usual"})]}),r?s.jsx("div",{className:"h-24 animate-pulse rounded-lg border border-gray-200 bg-gray-50 dark:border-gray-800 dark:bg-gray-900/40"}):o?s.jsx("div",{className:"text-sm text-red-500",children:"Couldn’t load bot behaviour for this PR."}):i.length===0?s.jsx("div",{className:"rounded-lg border border-dashed border-gray-300 p-6 text-center text-sm text-gray-500 dark:border-gray-700 dark:text-gray-400",children:"No automated-reviewer activity on this PR."}):i.map(l=>s.jsx(R,{bot:l,color:d({login:l.login,kind:l.kind})},l.key))]})}export{M as PrBotBehaviourTab};
@@ -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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,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}}.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}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-x-1{left:.25rem;right:.25rem}.inset-y-0{top:0;bottom:0}.-left-1{left:-.25rem}.-right-0\.5{right:-.125rem}.-right-1\.5{right:-.375rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-\[3px\]{top:-3px}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-2{left:.5rem}.right-0{right:0}.right-0\.5{right:.125rem}.right-2{right:.5rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-6{top:1.5rem}.top-\[15px\]{top:15px}.top-\[var\(--diff-sticky-top\,0px\)\]{top:var(--diff-sticky-top,0px)}.top-full{top:100%}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[55\]{z-index:55}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[80\]{z-index:80}.col-span-2{grid-column:span 2 / span 2}.col-span-full{grid-column:1 / -1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-mx-px{margin-left:-1px;margin-right:-1px}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-mb-px{margin-bottom:-1px}.-ml-1{margin-left:-.25rem}.-mr-1{margin-right:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-2\.5{margin-left:.625rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.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}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-row{display:table-row}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-44{height:11rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1\.375em\]{height:1.375em}.h-\[120px\]{height:120px}.h-\[132px\]{height:132px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[3px\]{height:3px}.h-\[46px\]{height:46px}.h-\[85vh\]{height:85vh}.h-full{height:100%}.h-px{height:1px}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-44{max-height:11rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[32rem\]{max-height:32rem}.max-h-\[4\.6rem\]{max-height:4.6rem}.max-h-\[40rem\]{max-height:40rem}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[88vh\]{max-height:88vh}.max-h-\[calc\(100vh-4rem\)\]{max-height:calc(100vh - 4rem)}.min-h-0{min-height:0px}.min-h-\[1\.75rem\]{min-height:1.75rem}.min-h-\[18px\]{min-height:18px}.min-h-\[2\.75em\]{min-height:2.75em}.min-h-\[26px\]{min-height:26px}.min-h-\[28rem\]{min-height:28rem}.min-h-\[32rem\]{min-height:32rem}.min-h-\[42px\]{min-height:42px}.min-h-screen{min-height:100vh}.\!w-8{width:2rem!important}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-2\/5{width:40%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[18px\]{width:18px}.w-\[22rem\]{width:22rem}.w-\[24rem\]{width:24rem}.w-\[26rem\]{width:26rem}.w-\[28rem\]{width:28rem}.w-\[34rem\]{width:34rem}.w-\[36rem\]{width:36rem}.w-\[44rem\]{width:44rem}.w-\[46rem\]{width:46rem}.w-\[60rem\]{width:60rem}.w-\[min\(var\(--tray-w\)\,92vw\)\]{width:min(var(--tray-w),92vw)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-28{min-width:7rem}.min-w-4{min-width:1rem}.min-w-\[1\.35rem\]{min-width:1.35rem}.min-w-\[1080px\]{min-width:1080px}.min-w-\[12rem\]{min-width:12rem}.min-w-\[14rem\]{min-width:14rem}.min-w-\[1560px\]{min-width:1560px}.min-w-\[26rem\]{min-width:26rem}.min-w-\[32rem\]{min-width:32rem}.min-w-\[380px\]{min-width:380px}.min-w-\[4\.75rem\]{min-width:4.75rem}.min-w-\[420px\]{min-width:420px}.min-w-\[440px\]{min-width:440px}.min-w-\[46rem\]{min-width:46rem}.min-w-\[480px\]{min-width:480px}.min-w-\[520px\]{min-width:520px}.min-w-\[560px\]{min-width:560px}.min-w-\[720px\]{min-width:720px}.min-w-\[760px\]{min-width:760px}.min-w-\[852px\]{min-width:852px}.min-w-\[940px\]{min-width:940px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-56{max-width:14rem}.max-w-5xl{max-width:64rem}.max-w-\[100rem\]{max-width:100rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[14rem\]{max-width:14rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[18rem\]{max-width:18rem}.max-w-\[220px\]{max-width:220px}.max-w-\[22rem\]{max-width:22rem}.max-w-\[280px\]{max-width:280px}.max-w-\[46rem\]{max-width:46rem}.max-w-\[60\%\]{max-width:60%}.max-w-\[8rem\]{max-width:8rem}.max-w-\[90vw\]{max-width:90vw}.max-w-\[92vw\]{max-width:92vw}.max-w-\[94vw\]{max-width:94vw}.max-w-\[95vw\]{max-width:95vw}.max-w-\[96vw\]{max-width:96vw}.max-w-\[9rem\]{max-width:9rem}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(20rem\,90vw\)\]{max-width:min(20rem,90vw)}.max-w-\[min\(28rem\,92vw\)\]{max-width:min(28rem,92vw)}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.flex-1{flex:1 1 0%}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-40{flex-basis:10rem}.basis-\[16rem\]{flex-basis:16rem}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -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-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-y-full{--tw-translate-y: -100%;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-y-\[-1px\]{--tw-translate-y: -1px;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-y-\[2px\]{--tw-translate-y: 2px;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-y-px{--tw-translate-y: 1px;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-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.scroll-mt-4{scroll-margin-top:1rem}.scroll-mt-\[var\(--diff-sticky-top\,0px\)\]{scroll-margin-top:var(--diff-sticky-top,0px)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[3\.25rem_1fr_3\.5rem\]{grid-template-columns:3.25rem 1fr 3.5rem}.grid-cols-\[7\.5rem_1fr_3rem\]{grid-template-columns:7.5rem 1fr 3rem}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.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-5{gap:1.25rem}.gap-\[0\.35em\]{gap:.35em}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.gap-y-5{row-gap:1.25rem}.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))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * 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-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(243 244 246 / var(--tw-divide-opacity, 1))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.divide-gray-200\/70>:not([hidden])~:not([hidden]){border-color:#e5e7ebb3}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.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-\[1px\]{border-radius:1px}.rounded-\[2px\]{border-radius:2px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.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-l-\[3px\]{border-left-width:3px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[1\.5px\]{border-top-width:1.5px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-\[rgb\(var\(--mr-conflict\)\)\]{border-color:rgb(var(--mr-conflict))}.border-ai-border{--tw-border-opacity: 1;border-color:rgb(var(--ai-border) / var(--tw-border-opacity, 1))}.border-ai-hairline{--tw-border-opacity: 1;border-color:rgb(var(--ai-hairline) / var(--tw-border-opacity, 1))}.border-ai-signal-fill{--tw-border-opacity: 1;border-color:rgb(var(--ai-signal-fill) / var(--tw-border-opacity, 1))}.border-ai-signal-fill\/60{border-color:rgb(var(--ai-signal-fill) / .6)}.border-ai-signal-fill\/70{border-color:rgb(var(--ai-signal-fill) / .7)}.border-ai-signal\/50{border-color:rgb(var(--ai-signal) / .5)}.border-ai-signal\/60{border-color:rgb(var(--ai-signal) / .6)}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-300\/50{border-color:#fcd34d80}.border-amber-300\/60{border-color:#fcd34d99}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-amber-400\/50{border-color:#fbbf2480}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-amber-500\/30{border-color:#f59e0b4d}.border-amber-500\/40{border-color:#f59e0b66}.border-amber-500\/60{border-color:#f59e0b99}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity, 1))}.border-emerald-500\/40{border-color:#10b98166}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-gray-900{--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.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\/40{border-color:#22c55e66}.border-green-600{--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.border-indigo-400{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.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-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-500\/30{border-color:#ef44444d}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity, 1))}.border-sky-400{--tw-border-opacity: 1;border-color:rgb(56 189 248 / var(--tw-border-opacity, 1))}.border-sky-500{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity, 1))}.border-sky-600{--tw-border-opacity: 1;border-color:rgb(2 132 199 / var(--tw-border-opacity, 1))}.border-teal-400{--tw-border-opacity: 1;border-color:rgb(45 212 191 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-violet-300{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.border-violet-400{--tw-border-opacity: 1;border-color:rgb(167 139 250 / var(--tw-border-opacity, 1))}.border-violet-500{--tw-border-opacity: 1;border-color:rgb(139 92 246 / var(--tw-border-opacity, 1))}.border-yellow-300{--tw-border-opacity: 1;border-color:rgb(253 224 71 / var(--tw-border-opacity, 1))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-b-white{--tw-border-opacity: 1;border-bottom-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-l-ai-border{--tw-border-opacity: 1;border-left-color:rgb(var(--ai-border) / var(--tw-border-opacity, 1))}.border-l-amber-400{--tw-border-opacity: 1;border-left-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-l-gray-400{--tw-border-opacity: 1;border-left-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-l-green-500{--tw-border-opacity: 1;border-left-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-l-red-400{--tw-border-opacity: 1;border-left-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-l-red-500{--tw-border-opacity: 1;border-left-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-l-sky-400{--tw-border-opacity: 1;border-left-color:rgb(56 189 248 / var(--tw-border-opacity, 1))}.border-t-blue-500{--tw-border-opacity: 1;border-top-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#8957e5\]\/15{background-color:#8957e526}.bg-\[rgb\(var\(--mr-conflict\)\)\]{background-color:rgb(var(--mr-conflict))}.bg-ai-border{--tw-bg-opacity: 1;background-color:rgb(var(--ai-border) / var(--tw-bg-opacity, 1))}.bg-ai-signal{--tw-bg-opacity: 1;background-color:rgb(var(--ai-signal) / var(--tw-bg-opacity, 1))}.bg-ai-signal-fill{--tw-bg-opacity: 1;background-color:rgb(var(--ai-signal-fill) / var(--tw-bg-opacity, 1))}.bg-ai-signal-fill\/10{background-color:rgb(var(--ai-signal-fill) / .1)}.bg-ai-signal-fill\/15{background-color:rgb(var(--ai-signal-fill) / .15)}.bg-ai-signal\/10{background-color:rgb(var(--ai-signal) / .1)}.bg-ai-signal\/15{background-color:rgb(var(--ai-signal) / .15)}.bg-ai-surface{--tw-bg-opacity: 1;background-color:rgb(var(--ai-surface) / var(--tw-bg-opacity, 1))}.bg-ai-surface-2{--tw-bg-opacity: 1;background-color:rgb(var(--ai-surface-2) / var(--tw-bg-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-100\/70{background-color:#fef3c7b3}.bg-amber-300\/40{background-color:#fcd34d66}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-400\/10{background-color:#fbbf241a}.bg-amber-400\/30{background-color:#fbbf244d}.bg-amber-400\/5{background-color:#fbbf240d}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-amber-50\/60{background-color:#fffbeb99}.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\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/50{background-color:#eff6ff80}.bg-blue-50\/60{background-color:#eff6ff99}.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-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.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-emerald-500\/25{background-color:#10b98140}.bg-emerald-700{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / 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-50\/50{background-color:#f9fafb80}.bg-gray-50\/60{background-color:#f9fafb99}.bg-gray-50\/70{background-color:#f9fafbb3}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-gray-500\/15{background-color:#6b728026}.bg-gray-500\/5{background-color:#6b72800d}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-gray-950{--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.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-green-500\/15{background-color:#22c55e26}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-500\/15{background-color:#f9731626}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.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-red-500\/15{background-color:#ef444426}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-rose-500\/15{background-color:#f43f5e26}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-sky-400\/70{background-color:#38bdf8b3}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-50\/40{background-color:#f0f9ff66}.bg-sky-50\/60{background-color:#f0f9ff99}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-sky-500\/15{background-color:#0ea5e926}.bg-sky-500\/20{background-color:#0ea5e933}.bg-sky-500\/5{background-color:#0ea5e90d}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity, 1))}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-50\/60{background-color:#f5f3ff99}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-violet-500\/15{background-color:#8b5cf626}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/95{background-color:#fffffff2}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-400\/20{background-color:#facc1533}.bg-yellow-50\/40{background-color:#fefce866}.bg-yellow-500\/10{background-color:#eab3081a}.fill-\[\#C13A20\]{fill:#c13a20}.fill-ai-signal-fill{fill:rgb(var(--ai-signal-fill) / 1)}.fill-amber-400{fill:#fbbf24}.fill-amber-400\/20{fill:#fbbf2433}.fill-amber-500{fill:#f59e0b}.fill-emerald-500{fill:#10b981}.fill-emerald-500\/15{fill:#10b98126}.fill-gray-300{fill:#d1d5db}.fill-gray-500{fill:#6b7280}.fill-gray-800{fill:#1f2937}.fill-indigo-500{fill:#6366f1}.fill-none{fill:none}.fill-rose-500{fill:#f43f5e}.fill-rose-500\/10{fill:#f43f5e1a}.fill-sky-100{fill:#e0f2fe}.fill-sky-600{fill:#0284c7}.fill-teal-600{fill:#0d9488}.fill-white{fill:#fff}.stroke-ai-signal-fill{stroke:rgb(var(--ai-signal-fill) / 1)}.stroke-gray-200{stroke:#e5e7eb}.stroke-gray-300{stroke:#d1d5db}.stroke-gray-400{stroke:#9ca3af}.stroke-gray-500{stroke:#6b7280}.stroke-gray-800{stroke:#1f2937}.stroke-gray-900{stroke:#111827}.stroke-sky-600{stroke:#0284c7}.stroke-white{stroke:#fff}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.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-6{padding:1.5rem}.p-px{padding:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.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-\[7px\]{padding-left:7px;padding-right:7px}.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-10{padding-top:2.5rem;padding-bottom:2.5rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-\[3px\]{padding-top:3px;padding-bottom:3px}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.py-px{padding-top:1px;padding-bottom:1px}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pl-\[18px\]{padding-left:18px}.pl-\[19px\]{padding-left:19px}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-28{padding-right:7rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-3\.5{padding-top:.875rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-super{vertical-align:super}.align-\[-0\.05em\]{vertical-align:-.05em}.align-\[-0\.15em\]{vertical-align:-.15em}.align-\[-0\.1em\]{vertical-align:-.1em}.align-\[-2px\]{vertical-align:-2px}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.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-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}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-\[1\.45\]{line-height:1.45}.leading-\[13px\]{line-height:13px}.leading-\[16px\]{line-height:16px}.leading-\[18px\]{line-height:18px}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0em}.tracking-wide{letter-spacing:.025em}.text-\[\#8957e5\]{--tw-text-opacity: 1;color:rgb(137 87 229 / var(--tw-text-opacity, 1))}.text-\[\#C13A20\]{--tw-text-opacity: 1;color:rgb(193 58 32 / var(--tw-text-opacity, 1))}.text-ai-ink{--tw-text-opacity: 1;color:rgb(var(--ai-ink) / var(--tw-text-opacity, 1))}.text-ai-muted{--tw-text-opacity: 1;color:rgb(var(--ai-muted) / var(--tw-text-opacity, 1))}.text-ai-signal{--tw-text-opacity: 1;color:rgb(var(--ai-signal) / var(--tw-text-opacity, 1))}.text-ai-signal-fill{--tw-text-opacity: 1;color:rgb(var(--ai-signal-fill) / var(--tw-text-opacity, 1))}.text-ai-signal\/70{color:rgb(var(--ai-signal) / .7)}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-600\/80{color:#d97706cc}.text-amber-600\/90{color:#d97706e6}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-700\/80{color:#b45309cc}.text-amber-700\/90{color:#b45309e6}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / 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-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.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-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-400\/10{color:#9ca3af1a}.text-gray-400\/80{color:#9ca3afcc}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / 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-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-700\/70{color:#15803db3}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / 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-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-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-sky-800{--tw-text-opacity: 1;color:rgb(7 89 133 / var(--tw-text-opacity, 1))}.text-teal-600{--tw-text-opacity: 1;color:rgb(13 148 136 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-500{--tw-text-opacity: 1;color:rgb(139 92 246 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-violet-700\/70{color:#6d28d9b3}.text-violet-700\/90{color:#6d28d9e6}.text-violet-900{--tw-text-opacity: 1;color:rgb(76 29 149 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-sky-700\/40{text-decoration-color:#0369a166}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.accent-ai-signal{accent-color:rgb(var(--ai-signal) / 1)}.accent-green-600{accent-color:#16a34a}.accent-sky-500{accent-color:#0ea5e9}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.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)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--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(3px + 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)}.ring-1{--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)}.ring-2{--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)}.ring-amber-400\/70{--tw-ring-color: rgb(251 191 36 / .7)}.ring-black\/10{--tw-ring-color: rgb(0 0 0 / .1)}.ring-black\/15{--tw-ring-color: rgb(0 0 0 / .15)}.ring-gray-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1))}.ring-sky-400\/60{--tw-ring-color: rgb(56 189 248 / .6)}.ring-sky-400\/70{--tw-ring-color: rgb(56 189 248 / .7)}.ring-sky-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity, 1))}.ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1))}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-white{--tw-ring-offset-color: #fff}.blur{--tw-blur: blur(8px);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)}.grayscale{--tw-grayscale: grayscale(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{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.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-\[width\]{transition-property:width;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}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[color-scheme\:light\]{color-scheme:light}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[scrollbar-width\:thin\]{scrollbar-width:thin}@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-display:swap;src:url(/app/assets/archivo-latin-600-BN-JkNrl.woff2) format("woff2")}:root{color-scheme:light dark;--ai-surface: 250 250 248;--ai-surface-2: 244 244 239;--ai-border: 226 226 220;--ai-hairline: 237 237 232;--ai-ink: 22 22 26;--ai-muted: 90 90 94;--ai-signal: 181 54 33;--ai-signal-fill: 226 73 44}.dark{--ai-surface: 22 22 26;--ai-surface-2: 28 28 33;--ai-border: 58 58 62;--ai-hairline: 42 42 46;--ai-ink: 220 220 214;--ai-muted: 154 154 148;--ai-signal: 242 107 78;--ai-signal-fill: 242 107 78}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior:none}body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.brand-title{font-family:Archivo,ui-sans-serif,system-ui,sans-serif;font-weight:600;font-size:1.3125rem;line-height:1;letter-spacing:-.02em;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.focus-indicator{display:inline-flex;align-items:center;gap:7px;padding:2px 10px;border-radius:9999px;letter-spacing:.5px;text-transform:uppercase;color:#0284c7;background:#38bdf81f;border:1px solid rgba(56,189,248,.4);white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font:inherit;font-size:11px;font-weight:600;transition:box-shadow .15s ease}.focus-indicator:hover{box-shadow:0 0 0 3px #38bdf899}.dark .focus-indicator{color:#7dd3fc}.focus-indicator-dot{width:7px;height:7px;border-radius:9999px;background:#38bdf8}.focus-indicator-close{display:inline-flex;align-items:center;justify-content:center;margin-left:1px;margin-right:-4px;width:16px;height:16px;border-radius:9999px;font-size:10px;line-height:1;color:inherit;opacity:0;transition:background .15s ease,opacity .15s ease}.focus-indicator:hover .focus-indicator-close{opacity:.95;background:#38bdf840;animation:focus-close-wobble 1s ease-out}@keyframes focus-close-wobble{0%{transform:rotate(0)}12%{transform:rotate(-14deg)}28%{transform:rotate(11deg)}44%{transform:rotate(-8deg)}60%{transform:rotate(5deg)}76%{transform:rotate(-2deg)}to{transform:rotate(0)}}@media(prefers-reduced-motion:reduce){.focus-indicator:hover .focus-indicator-close{animation:none}}.filters-disabled{opacity:.45;pointer-events:none}.md-body{font-size:13px;line-height:1.5;word-break:break-word}.md-body>*:first-child{margin-top:0}.md-body>*:last-child{margin-bottom:0}.md-body p{margin:.5em 0}.md-body h1,.md-body h2,.md-body h3{font-weight:600;margin:.6em 0 .3em}.md-body ul,.md-body ol{margin:.5em 0;padding-left:1.4em}.md-body ul{list-style:disc}.md-body ol{list-style:decimal}.md-body li{margin:.15em 0}.md-body a{color:#3b82f6;text-decoration:underline}.md-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:#7f7f7f2e;padding:.1em .3em;border-radius:4px}.md-body pre{margin:.5em 0;padding:.7em;border-radius:6px;overflow-x:auto;background:#0d1117}.md-body pre code{background:transparent;padding:0}.md-body blockquote{border-left:3px solid rgba(127,127,127,.4);padding-left:.8em;margin:.5em 0;color:#9ca3af}.md-body table{border-collapse:collapse;margin:.5em 0}.md-body th,.md-body td{border:1px solid rgba(127,127,127,.3);padding:.3em .6em}.md-table-scroll{max-height:70vh;overflow:auto;margin:.5em 0;border:1px solid rgba(127,127,127,.3);border-radius:.375rem}.md-table-scroll:focus-visible{outline:2px solid #0ea5e9;outline-offset:2px}.md-table-scroll table{margin:0;border-collapse:separate;border-spacing:0;width:-moz-max-content;width:max-content;min-width:100%}.md-table-scroll th,.md-table-scroll td{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.md-table-scroll th:is(.dark *),.md-table-scroll td:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.md-table-scroll th,.md-table-scroll td{border:0;border-right:1px solid rgba(127,127,127,.3);border-bottom:1px solid rgba(127,127,127,.3);min-width:7rem;max-width:26rem;vertical-align:top;word-break:normal;overflow-wrap:anywhere}.md-table-scroll th{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.md-table-scroll th:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.md-table-scroll th{position:sticky;top:0;z-index:2;text-align:left}.md-table-scroll th:first-child,.md-table-scroll td:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 #7f7f7f73}.md-table-scroll td:first-child{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.md-table-scroll td:first-child:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.md-table-scroll td:first-child{font-weight:500}.md-table-scroll th:first-child,.md-table-scroll td:first-child{min-width:6rem;max-width:11rem}.md-table-scroll th:first-child{z-index:3}.md-table-scroll tr>:last-child{border-right:0}.md-table-scroll tbody tr:last-child>*{border-bottom:0}.md-body img{display:inline-block;vertical-align:middle;max-width:min(100%,var(--md-img-w, 100%));max-height:min(24rem,var(--md-img-h, 24rem));width:auto;height:auto}.pr-summary-collapsed .pr-summary-tall-img{display:none}.md-body input[type=checkbox]{margin-right:.4em}.dark .vis-timeline{border-color:#1f2937}.dark .vis-panel .vis-content,.dark .vis-panel .vis-background,.dark .vis-labelset .vis-label,.dark .vis-foreground .vis-group{border-color:#1f2937;color:#e5e7eb}.dark .vis-time-axis .vis-text{color:#9ca3af}.dark .vis-time-axis .vis-grid.vis-minor{border-color:#1f2937}.dark .vis-time-axis .vis-grid.vis-major{border-color:#374151}.dark .vis-labelset .vis-label{color:#d1d5db}.dark .vis-current-time{background-color:#ef4444}.vis-labelset .vis-label.vis-nested-group{padding-left:.625rem;font-size:11px;opacity:.85}.vis-labelset .vis-label.tl-user-row .vis-inner{width:100%;max-width:264px}.tl-user{display:flex;align-items:flex-start;gap:5px;min-width:0;width:100%}.tl-user-main{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;gap:1px}.tl-user-name-line{display:flex;align-items:center;gap:5px;min-width:0}.tl-collapse-caret{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:-1px;padding:0;border:0;border-radius:3px;background:transparent;color:#9ca3af;font-size:13px;line-height:1;cursor:pointer}.tl-collapse-caret:hover{background:#7878782e;color:#374151}.dark .tl-collapse-caret:hover{color:#e5e7eb}.tl-focus-active .tl-collapse-caret{display:none}.tl-user-avatar{flex:none;width:18px;height:18px;border-radius:9999px;-o-object-fit:cover;object-fit:cover;background:#e5e7eb}.dark .tl-user-avatar{background:#374151}.tl-user-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#6b7280}.tl-user-name{font-size:12.5px;font-weight:600;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-user-name-link{color:inherit;text-decoration:none;cursor:pointer}.tl-user-name-link:hover{text-decoration:underline}.tl-merger{flex:none;display:inline-flex;align-items:center}.tl-modal-header{display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.dark .tl-modal-header{border-color:#374151;background:#11182799}.tl-modal-header:active{cursor:grabbing}.tl-grip{flex:none;color:#9ca3af}.tl-modal-title{font-size:11px;color:#9ca3af;margin-right:auto}.tl-modal-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:12px;line-height:1;color:#9ca3af;cursor:pointer}.tl-modal-close:hover{background:#94a3b833;color:#374151}.dark .tl-modal-close:hover{color:#e5e7eb}.vis-labelset .vis-label.tl-user-row,.vis-foreground .vis-group.tl-user-row{transition:max-height .22s ease,opacity .22s ease}@media(prefers-reduced-motion:reduce){.vis-labelset .vis-label.tl-user-row,.vis-foreground .vis-group.tl-user-row{transition:none}}.tl-repo-tint-0{--tl-tint: 59 130 246}.tl-repo-tint-1{--tl-tint: 139 92 246}.vis-labelset .vis-label.tl-user-row[class*=tl-repo-tint-],.vis-foreground .vis-group.tl-user-row[class*=tl-repo-tint-],.vis-labelset .vis-label.tl-repo-header[class*=tl-repo-tint-],.vis-foreground .vis-group.tl-repo-header[class*=tl-repo-tint-]{background-color:rgb(var(--tl-tint) / .1)}.dark .vis-labelset .vis-label.tl-user-row[class*=tl-repo-tint-],.dark .vis-foreground .vis-group.tl-user-row[class*=tl-repo-tint-],.dark .vis-labelset .vis-label.tl-repo-header[class*=tl-repo-tint-],.dark .vis-foreground .vis-group.tl-repo-header[class*=tl-repo-tint-]{background-color:rgb(var(--tl-tint) / .13)}.tl-repo-sticky{position:absolute;z-index:15;pointer-events:none;box-sizing:border-box;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.3;color:#111827;background-color:#fff;border-bottom:1px solid #e5e7eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark .tl-repo-sticky{color:#f3f4f6;background-color:#030712;border-bottom-color:#1f2937}.tl-repo-sticky[class*=tl-repo-tint-]{background-image:linear-gradient(rgb(var(--tl-tint) / .1),rgb(var(--tl-tint) / .1))}.dark .tl-repo-sticky[class*=tl-repo-tint-]{background-image:linear-gradient(rgb(var(--tl-tint) / .13),rgb(var(--tl-tint) / .13))}.vis-labelset .vis-label.tl-user-row:nth-child(2n),.vis-foreground .vis-group.tl-user-row:nth-child(2n){background-image:linear-gradient(#0f172a0d,#0f172a0d)}.dark .vis-labelset .vis-label.tl-user-row:nth-child(2n),.dark .vis-foreground .vis-group.tl-user-row:nth-child(2n){background-image:linear-gradient(#ffffff0d,#ffffff0d)}.vis-labelset .vis-label.tl-user-row,.vis-foreground .vis-group.tl-user-row{box-shadow:inset 0 -2px #0f172a33}.dark .vis-labelset .vis-label.tl-user-row,.dark .vis-foreground .vis-group.tl-user-row{box-shadow:inset 0 -2px #ffffff29}.vis-item.vis-range.pr-bar{border-radius:6px;border-width:1px;color:#fff;font-size:11px;cursor:pointer;z-index:2;min-width:4px}.vis-item.pr-emph{font-size:11px}.vis-item.pr-muted{opacity:.85}.vis-item.pr-muted .pr-title{max-width:16ch}.pr-ci{display:inline-block;width:7px;height:7px;border-radius:50%}.pr-ci-lead{flex-shrink:0;box-shadow:0 0 0 1px #ffffff8c}.vis-item.pr-bar.pr-open{background-color:#1d4ed8;border-color:#3b82f6}.vis-item.pr-bar.pr-merged{background-color:#15803d;border-color:#22c55e}.vis-item.pr-bar.pr-closed{background-color:#4b5563;border-color:#9ca3af}.vis-item.pr-bar.pr-stalled{background-color:#c2410c;border-color:#f97316}.vis-item.pr-bar.pr-changes-requested{border-color:#ef4444;border-width:2px}.vis-item.pr-bar.pr-approved{border-color:#22c55e;border-width:2px}.vis-item.pr-bar.pr-commented{border-color:#9ca3af;border-width:2px}.vis-item.pr-draft{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.12),rgba(255,255,255,.12) 4px,transparent 4px,transparent 8px)}.vis-item.vis-selected.pr-bar{overflow:visible;z-index:5;box-shadow:0 0 0 3px #38bdf8e6}.vis-item.pr-bar.pr-focus-hidden{display:none}.vis-item.pr-bar.pr-cross-linked,.vis-item.ev-cross-linked .ev-marker-inner,.vis-item.ev-cross-linked .ev-cluster-inner{box-shadow:0 0 0 3px #38bdf8e6}.vis-item.pr-bar.pr-cross-linked{overflow:visible;z-index:5}.vis-item.ev-cross-linked .ev-marker-inner,.vis-item.ev-cross-linked .ev-cluster-inner{position:relative;z-index:5}.vis-item.ev-cross-linked .ev-marker-inner{border-radius:9999px}.vis-item.ev-exit-glow .ev-marker-inner,.vis-item.ev-exit-glow .ev-cluster-inner{position:relative;z-index:5;box-shadow:0 0 0 3px #38bdf8e6}.vis-item.ev-exit-glow .ev-marker-inner{border-radius:9999px}.vis-item.ev-selected:not(.ev-cross-linked) .ev-marker-inner,.vis-item.ev-selected:not(.ev-cross-linked) .ev-cluster-inner{position:relative;z-index:5;box-shadow:0 0 0 3px #38bdf8e6}.vis-item.ev-selected:not(.ev-cross-linked) .ev-marker-inner{border-radius:9999px}.pr-bar-inner{display:flex;align-items:center;gap:4px;padding:0 2px}.pr-num{font-weight:700;opacity:.85}.pr-avatar{border-radius:9999px;flex-shrink:0;vertical-align:middle}.pr-author{font-size:10px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:12ch}.vis-item.pr-muted .pr-author{max-width:9ch}.pr-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:22ch}.pr-draft-tag{font-size:9px;text-transform:uppercase;background:#00000040;border-radius:3px;padding:0 3px}.vis-timeline div.vis-tooltip{white-space:normal;max-width:22rem;padding:7px 9px;font-family:inherit;font-size:11px;line-height:1.35;color:#e5e7eb;background-color:#111827;border:1px solid #374151;border-radius:7px;box-shadow:0 6px 20px #00000059;z-index:60}.vis-timeline.vis-timeline{overflow:visible}.pr-tt-title{font-weight:600;font-size:12px;color:#f9fafb}.pr-tt-meta{margin-top:1px;font-size:10px;color:#9ca3af}.pr-tt-section{margin-top:5px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af}.pr-tt-row{display:flex;align-items:center;gap:6px;margin-top:3px}.pr-tt-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.pr-tt-warn{color:#fdba74}.pr-tt-warn-icon{font-weight:700}.pr-tt-quiet{color:#cbd5e1}.vis-item.ev-marker,.vis-item.ev-cluster{background:transparent;border:none;box-shadow:none;pointer-events:none}.vis-item.ev-marker .vis-dot,.vis-item.ev-cluster .vis-dot{display:none}.vis-item.ev-marker .vis-item-content,.vis-item.ev-cluster .vis-item-content{transform:translate(-50%);padding:0}.ev-marker-inner{display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;pointer-events:auto}.ev-marker-inner svg{display:block}.ev-cluster-inner{display:flex;align-items:center;justify-content:center;gap:2px;min-width:18px;height:16px;padding:0 4px;border-radius:9px;background:#475569;color:#fff;font-size:10px;font-weight:700;line-height:1;cursor:pointer;border:1px solid rgba(255,255,255,.25);position:relative;pointer-events:auto}.vis-item.ev-cluster.vis-selected,.vis-item.ev-marker.vis-selected{background:transparent;box-shadow:none}.vis-item.vis-background.cross-sep{border-top:1px solid rgba(99,102,241,.38);background:#6366f10f;pointer-events:none}.dark .vis-item.vis-background.cross-sep{border-top-color:#818cf86b;background:#818cf817}.vis-item.ev-own .ev-marker-inner:after,.vis-item.ev-own .ev-cluster-inner:after{content:"";position:absolute;bottom:100%;left:50%;width:0;height:14px;border-left:1.5px solid rgba(203,213,225,.85);transform:translate(-50%);pointer-events:none}.vis-item.ev-own .ev-marker-inner.ev-round:after{bottom:calc(100% - 3px);height:17px}.tl-cross-connectors{position:absolute;pointer-events:none;overflow:hidden;z-index:5}.tl-cross-connectors path{stroke:#cbd5e1d9;stroke-width:1.5;fill:none}.dark .tl-cross-connectors path{stroke:#94a3b8b3}.vis-item.ev-cross .ev-marker-inner{border-radius:9999px;background:#6366f11a}.vis-item.ev-cross:not(.ev-selected):not(.ev-cross-linked):not(.ev-exit-glow) .ev-marker-inner{box-shadow:inset 0 0 0 1px #6366f16b}.vis-item.ev-cross:not(.ev-selected):not(.ev-cross-linked):not(.ev-exit-glow) .ev-cluster-inner{box-shadow:0 0 0 2px #6366f140}.dark .vis-item.ev-cross .ev-marker-inner{background:#818cf829}.dark .vis-item.ev-cross:not(.ev-selected):not(.ev-cross-linked):not(.ev-exit-glow) .ev-marker-inner{box-shadow:inset 0 0 0 1px #818cf885}.dark .vis-item.ev-cross:not(.ev-selected):not(.ev-cross-linked):not(.ev-exit-glow) .ev-cluster-inner{box-shadow:0 0 0 2px #818cf852}.vis-item.vis-point .vis-dot{border-width:5px}.ev-pr_opened .vis-dot{border-color:#3b82f6}.ev-pr_merged .vis-dot{border-color:#8957e5}.ev-pr_closed .vis-dot{border-color:#9ca3af}.ev-review_submitted .vis-dot{border-color:#22c55e}.ev-review_comment .vis-dot{border-color:#f59e0b}.ev-pr_comment .vis-dot{border-color:#a78bfa}.ev-commit_pushed .vis-dot{border-color:#6b7280;border-width:4px}.ev-diamond .vis-dot{border-radius:0;transform:rotate(45deg)}.ev-square .vis-dot{border-radius:2px}.comment-new{border-left:3px solid #38bdf8;margin-left:-2px;border-radius:1px;background:#38bdf80d}@keyframes activity-flash{0%{background:#38bdf847}to{background:#38bdf800}}.activity-flash{animation:activity-flash 1.8s ease-out forwards}@keyframes digest-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.digest-fade-in{animation:digest-fade-in .35s ease-out}@media(prefers-reduced-motion:reduce){.digest-fade-in{animation:none}}.digest-skeleton-line{position:relative;overflow:hidden;border-radius:4px;background:rgb(var(--ai-signal-fill) / .05)}.digest-skeleton-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,rgb(var(--ai-signal-fill) / 0),rgb(var(--ai-signal-fill) / .12),rgb(var(--ai-signal-fill) / 0));animation:digest-shimmer 2.4s ease-in-out infinite}@keyframes digest-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.digest-skeleton-line:after{animation:none}}.my-turn-ring{box-shadow:0 0 0 3px #3b82f6e6}.vis-item.pr-myturn{overflow:visible;box-shadow:0 0 0 3px #3b82f6e6}.tab-scrollbar{scrollbar-width:thin;scrollbar-color:rgb(203 213 225) transparent}.dark .tab-scrollbar{scrollbar-color:rgb(71 85 105) transparent}.tab-scrollbar::-webkit-scrollbar{height:6px}.tab-scrollbar::-webkit-scrollbar-track{background:transparent}.tab-scrollbar::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:9999px}.tab-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#94a3b8}.dark .tab-scrollbar::-webkit-scrollbar-thumb{background-color:#475569}.dark .tab-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#64748b}@media print{@page{margin:1.6cm}html,body,#root{height:auto!important;background:#fff!important}#root *{overflow:visible!important}body *{visibility:hidden}[data-print-report],[data-print-report] *{visibility:visible}[data-print-report]{position:absolute;left:0;top:0;width:100%}[data-print-report] *{color:#111!important;background:transparent!important;border-color:#d1d5db!important;box-shadow:none!important;text-shadow:none!important}[data-print-report] button,[data-print-report] select{display:none!important}[data-print-report] table{min-width:0!important;width:100%!important;font-size:10px}[data-print-report] table th,[data-print-report] table td{page-break-inside:avoid}}[style*=--ink-light]{color:var(--ink-light)}.dark [style*=--ink-light]{color:var(--ink-dark)}:root{--mr-change: 29 78 216;--mr-conflict: 180 35 24;--mr-applied: 22 101 52;--mr-ignored: 90 90 94}.dark{--mr-change: 147 197 253;--mr-conflict: 255 138 115;--mr-applied: 134 239 172;--mr-ignored: 154 154 148}.mr-wash-change{background:rgb(var(--mr-change) / .12)}.mr-wash-conflict{background:rgb(var(--mr-conflict) / .14)}.mr-wash-applied{background:rgb(var(--mr-applied) / .12)}.mr-wash-ignored{background:rgb(var(--mr-ignored) / .1)}.mr-ink-change{color:rgb(var(--mr-change))}.mr-ink-conflict{color:rgb(var(--mr-conflict))}.mr-ink-applied{color:rgb(var(--mr-applied))}.mr-ink-ignored{color:rgb(var(--mr-ignored))}.mr-rule-change{border-left-color:rgb(var(--mr-change))}.mr-rule-conflict{border-left-color:rgb(var(--mr-conflict))}.mr-rule-applied{border-left-color:rgb(var(--mr-applied))}.mr-rule-ignored{border-left-color:rgb(var(--mr-ignored))}.mr-filler{background-image:repeating-linear-gradient(45deg,rgb(var(--mr-ignored) / .14) 0 1px,transparent 1px 7px)}.mr-ribbons{position:absolute;left:0;right:0;width:100%;overflow:hidden;pointer-events:none}.mr-fill-applied{fill:rgb(var(--mr-applied) / .22)}.code-hl{--code-hl-keyword: #b31d28;--code-hl-string: #0a3069;--code-hl-comment: #5b6570;--code-hl-number: #0550ae;--code-hl-title: #6639ba;--code-hl-type: #8a3800;--code-hl-meta: #0f5323}.dark .code-hl{--code-hl-keyword: #ff9a94;--code-hl-string: #a5d6ff;--code-hl-comment: #9aa4b0;--code-hl-number: #79c0ff;--code-hl-title: #d2a8ff;--code-hl-type: #ffa657;--code-hl-meta: #7ee787}.code-hl .hljs-keyword,.code-hl .hljs-selector-tag,.code-hl .hljs-literal,.code-hl .hljs-doctag,.code-hl .hljs-operator{color:var(--code-hl-keyword)}.code-hl .hljs-string,.code-hl .hljs-regexp,.code-hl .hljs-template-tag,.code-hl .hljs-selector-attr,.code-hl .hljs-selector-pseudo,.code-hl .hljs-addition{color:var(--code-hl-string)}.code-hl .hljs-comment,.code-hl .hljs-quote,.code-hl .hljs-deletion{color:var(--code-hl-comment)}.code-hl .hljs-number,.code-hl .hljs-variable,.code-hl .hljs-template-variable,.code-hl .hljs-attr,.code-hl .hljs-attribute,.code-hl .hljs-symbol,.code-hl .hljs-bullet{color:var(--code-hl-number)}.code-hl .hljs-title,.code-hl .hljs-title.class_,.code-hl .hljs-title.function_,.code-hl .hljs-section,.code-hl .hljs-name,.code-hl .hljs-selector-id,.code-hl .hljs-selector-class{color:var(--code-hl-title)}.code-hl .hljs-type,.code-hl .hljs-built_in,.code-hl .hljs-class .hljs-title,.code-hl .hljs-params{color:var(--code-hl-type)}.code-hl .hljs-meta,.code-hl .hljs-meta .hljs-keyword,.code-hl .hljs-meta .hljs-string,.code-hl .hljs-tag,.code-hl .hljs-link{color:var(--code-hl-meta)}.code-hl .hljs-subst,.code-hl .hljs-emphasis,.code-hl .hljs-strong{color:inherit}.code-hl .hljs-code,.code-hl .hljs-formula{color:var(--code-hl-comment)}.code-hl .hljs-addition,.code-hl .hljs-deletion{background:transparent}.code-hl .hljs,.code-hl code.hljs{background:transparent;padding:0}.budget-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:14px;background:transparent;cursor:pointer}.budget-range:focus{outline:none}.budget-range:focus-visible{outline:2px solid #0ea5e9;outline-offset:2px;border-radius:4px}.budget-range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:#6b7280}.budget-range::-moz-range-track{height:4px;border-radius:2px;background:#6b7280}.budget-range::-webkit-slider-thumb{-webkit-appearance:none;box-sizing:border-box;width:14px;height:14px;margin-top:-5px;border-radius:9999px;background:#0284c7;border:2px solid #ffffff}.budget-range::-moz-range-thumb{box-sizing:border-box;width:14px;height:14px;border-radius:9999px;background:#0284c7;border:2px solid #ffffff}.dark .budget-range::-webkit-slider-thumb{border-color:#111827}.dark .budget-range::-moz-range-thumb{border-color:#111827}.sg-progress{background:#94a3b840}.sg-progress-share{background:#0284c7;transition:width .4s ease-out}.sg-progress-busy{width:35%;background:linear-gradient(90deg,#0284c700,#0284c7 40%,#0369a1 60%,#0284c700);animation:sg-progress-slide 1.2s ease-in-out infinite}.dark .sg-progress-share{background:#38bdf8}.dark .sg-progress-busy{background:linear-gradient(90deg,#38bdf800,#38bdf8 40%,#7dd3fc 60%,#38bdf800)}@keyframes sg-progress-slide{0%{transform:translate(-100%)}to{transform:translate(290%)}}@media(prefers-reduced-motion:reduce){.sg-progress-busy,.dark .sg-progress-busy{width:100%;animation:none;background:#0284c799}.sg-progress-share{transition:none}}::highlight(doc-quote){background-color:#fde68a;color:#111827}.dark ::highlight(doc-quote){background-color:#92400e;color:#fef3c7}.doc-quote-swatch{background-color:#fde68a}.dark .doc-quote-swatch{background-color:#92400e}.first-letter\:uppercase:first-letter{text-transform:uppercase}.placeholder\:text-gray-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.placeholder\:text-gray-500::placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.first\:border-0:first-child{border-width:0px}.first\:border-t-0:first-child{border-top-width:0px}.first\:pt-0:first-child{padding-top:0}.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}.last\:pb-0:last-child{padding-bottom:0}.read-only\:opacity-60:-moz-read-only{opacity:.6}.read-only\:opacity-60:read-only{opacity:.6}.empty\:hidden:empty{display:none}.focus-within\:border-blue-500:focus-within{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus-within\:border-sky-300:focus-within{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity, 1))}.hover\:border-ai-signal:hover{--tw-border-opacity: 1;border-color:rgb(var(--ai-signal) / var(--tw-border-opacity, 1))}.hover\:border-ai-signal\/40:hover{border-color:rgb(var(--ai-signal) / .4)}.hover\:border-ai-signal\/60:hover{border-color:rgb(var(--ai-signal) / .6)}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-gray-700:hover{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.hover\:border-red-400:hover{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.hover\:border-sky-300:hover{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity, 1))}.hover\:border-sky-400:hover{--tw-border-opacity: 1;border-color:rgb(56 189 248 / var(--tw-border-opacity, 1))}.hover\:border-sky-500:hover{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity, 1))}.hover\:bg-ai-surface:hover{--tw-bg-opacity: 1;background-color:rgb(var(--ai-surface) / var(--tw-bg-opacity, 1))}.hover\:bg-ai-surface-2:hover{--tw-bg-opacity: 1;background-color:rgb(var(--ai-surface-2) / var(--tw-bg-opacity, 1))}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-100\/70:hover{background-color:#fef3c7b3}.hover\:bg-amber-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-200\/60:hover{background-color:#bfdbfe99}.hover\:bg-blue-400:hover{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200\/60:hover{background-color:#e5e7eb99}.hover\:bg-gray-200\/70:hover{background-color:#e5e7ebb3}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50\/60:hover{background-color:#f9fafb99}.hover\:bg-gray-50\/70:hover{background-color:#f9fafbb3}.hover\:bg-gray-500\/20:hover{background-color:#6b728033}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-green-50:hover{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-sky-100:hover{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.hover\:bg-sky-50:hover{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.hover\:bg-sky-500\/15:hover{background-color:#0ea5e926}.hover\:bg-sky-500\/20:hover{background-color:#0ea5e933}.hover\:bg-sky-500\/25:hover{background-color:#0ea5e940}.hover\:bg-sky-500\/30:hover{background-color:#0ea5e94d}.hover\:bg-sky-700:hover{--tw-bg-opacity: 1;background-color:rgb(3 105 161 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-100:hover{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-50:hover{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / 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-amber-700:hover{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / 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\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-sky-600:hover{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.hover\:text-sky-700:hover{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.hover\:text-sky-900:hover{--tw-text-opacity: 1;color:rgb(12 74 110 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-sky-700:hover{text-decoration-color:#0369a1}.hover\:decoration-solid:hover{text-decoration-style:solid}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-md:hover{--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)}.hover\:ring-1:hover{--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)}.hover\:ring-gray-300:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.hover\:ring-gray-400:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity, 1))}.hover\:brightness-95:hover{--tw-brightness: brightness(.95);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-sky-400:focus{--tw-border-opacity: 1;border-color:rgb(56 189 248 / var(--tw-border-opacity, 1))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:bg-blue-500:focus-visible{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.focus-visible\:bg-gray-100:focus-visible{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus-visible\:bg-sky-500\/40:focus-visible{background-color:#0ea5e966}.focus-visible\:text-gray-900:focus-visible{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.focus-visible\:text-white:focus-visible{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-blue-500:focus-visible{outline-color:#3b82f6}.focus-visible\:ring-1: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(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-visible\:ring-2: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)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\:ring-amber-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-sky-400:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-sky-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-sky-600:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(2 132 199 / var(--tw-ring-opacity, 1))}.active\:cursor-grabbing:active{cursor:grabbing}.enabled\:hover\:bg-gray-100:hover:enabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.disabled\:no-underline:disabled{text-decoration-line:none}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.group\/rt:hover .group-hover\/rt\:text-sky-600,.group\/th:hover .group-hover\/th\:text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group\/bot:hover .group-hover\/bot\:opacity-100,.group\/rt:hover .group-hover\/rt\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.peer:empty~.peer-empty\:mt-0{margin-top:0}.peer:empty~.peer-empty\:border-t-0{border-top-width:0px}.peer:empty~.peer-empty\:pt-0{padding-top:0}.has-\[\:focus-visible\]\:ring-2:has(: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)}.has-\[\:focus-visible\]\:ring-sky-500:has(:focus-visible){--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity, 1))}@media(prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}.dark\:inline-block:is(.dark *){display:inline-block}.dark\:hidden:is(.dark *){display:none}.dark\:divide-gray-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(31 41 55 / var(--tw-divide-opacity, 1))}.dark\:divide-gray-800\/70:is(.dark *)>:not([hidden])~:not([hidden]){border-color:#1f2937b3}.dark\:border-amber-400\/50:is(.dark *){border-color:#fbbf2480}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-500\/60:is(.dark *){border-color:#f59e0b99}.dark\:border-amber-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(217 119 6 / var(--tw-border-opacity, 1))}.dark\:border-amber-600\/70:is(.dark *){border-color:#d97706b3}.dark\:border-amber-700\/50:is(.dark *){border-color:#b4530980}.dark\:border-amber-700\/60:is(.dark *){border-color:#b4530999}.dark\:border-amber-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(146 64 14 / var(--tw-border-opacity, 1))}.dark\:border-amber-800\/60:is(.dark *){border-color:#92400e99}.dark\:border-amber-900\/50:is(.dark *){border-color:#78350f80}.dark\:border-blue-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:border-blue-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900\/50:is(.dark *){border-color:#1e3a8a80}.dark\:border-cyan-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(8 145 178 / var(--tw-border-opacity, 1))}.dark\:border-gray-100:is(.dark *){--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.dark\:border-gray-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.dark\:border-gray-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.dark\:border-gray-800\/60:is(.dark *){border-color:#1f293799}.dark\:border-gray-800\/70:is(.dark *){border-color:#1f2937b3}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-green-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.dark\:border-green-700\/50:is(.dark *){border-color:#15803d80}.dark\:border-green-700\/60:is(.dark *){border-color:#15803d99}.dark\:border-green-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 101 52 / var(--tw-border-opacity, 1))}.dark\:border-green-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(20 83 45 / var(--tw-border-opacity, 1))}.dark\:border-indigo-500\/60:is(.dark *){border-color:#6366f199}.dark\:border-red-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity, 1))}.dark\:border-red-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity, 1))}.dark\:border-red-700\/60:is(.dark *){border-color:#b91c1c99}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:border-red-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(127 29 29 / var(--tw-border-opacity, 1))}.dark\:border-rose-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(159 18 57 / var(--tw-border-opacity, 1))}.dark\:border-sky-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(56 189 248 / var(--tw-border-opacity, 1))}.dark\:border-sky-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity, 1))}.dark\:border-sky-500\/50:is(.dark *){border-color:#0ea5e980}.dark\:border-sky-500\/60:is(.dark *){border-color:#0ea5e999}.dark\:border-sky-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(2 132 199 / var(--tw-border-opacity, 1))}.dark\:border-sky-600\/70:is(.dark *){border-color:#0284c7b3}.dark\:border-sky-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(3 105 161 / var(--tw-border-opacity, 1))}.dark\:border-sky-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(7 89 133 / var(--tw-border-opacity, 1))}.dark\:border-sky-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(12 74 110 / var(--tw-border-opacity, 1))}.dark\:border-teal-500\/60:is(.dark *){border-color:#14b8a699}.dark\:border-violet-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(124 58 237 / var(--tw-border-opacity, 1))}.dark\:border-violet-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(109 40 217 / var(--tw-border-opacity, 1))}.dark\:border-violet-800\/60:is(.dark *){border-color:#5b21b699}.dark\:border-yellow-500\/50:is(.dark *){border-color:#eab30880}.dark\:border-yellow-600\/50:is(.dark *){border-color:#ca8a0480}.dark\:border-b-gray-950:is(.dark *){--tw-border-opacity: 1;border-bottom-color:rgb(3 7 18 / var(--tw-border-opacity, 1))}.dark\:border-l-amber-500:is(.dark *){--tw-border-opacity: 1;border-left-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.dark\:border-l-gray-500:is(.dark *){--tw-border-opacity: 1;border-left-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\:border-l-red-500:is(.dark *){--tw-border-opacity: 1;border-left-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.dark\:border-l-sky-500:is(.dark *){--tw-border-opacity: 1;border-left-color:rgb(14 165 233 / var(--tw-border-opacity, 1))}.dark\:border-t-blue-400:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.dark\:border-t-transparent:is(.dark *){border-top-color:transparent}.dark\:bg-amber-400\/25:is(.dark *){background-color:#fbbf2440}.dark\:bg-amber-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-amber-900\/40:is(.dark *){background-color:#78350f66}.dark\:bg-amber-950\/20:is(.dark *){background-color:#451a0333}.dark\:bg-amber-950\/30:is(.dark *){background-color:#451a034d}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-amber-950\/50:is(.dark *){background-color:#451a0380}.dark\:bg-blue-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-900\/10:is(.dark *){background-color:#1e3a8a1a}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-blue-950\/40:is(.dark *){background-color:#17255466}.dark\:bg-cyan-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 78 99 / var(--tw-bg-opacity, 1))}.dark\:bg-emerald-400\/25:is(.dark *){background-color:#34d39940}.dark\:bg-emerald-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-100:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.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-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900\/20:is(.dark *){background-color:#11182733}.dark\:bg-gray-900\/30:is(.dark *){background-color:#1118274d}.dark\:bg-gray-900\/40:is(.dark *){background-color:#11182766}.dark\:bg-gray-900\/50:is(.dark *){background-color:#11182780}.dark\:bg-gray-900\/60:is(.dark *){background-color:#11182799}.dark\:bg-gray-900\/70:is(.dark *){background-color:#111827b3}.dark\:bg-gray-900\/95:is(.dark *){background-color:#111827f2}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950\/40:is(.dark *){background-color:#03071266}.dark\:bg-green-500\/15:is(.dark *){background-color:#22c55e26}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/40:is(.dark *){background-color:#14532d66}.dark\:bg-green-950\/30:is(.dark *){background-color:#052e164d}.dark\:bg-indigo-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.dark\:bg-indigo-950\/30:is(.dark *){background-color:#1e1b4b4d}.dark\:bg-red-500\/15:is(.dark *){background-color:#ef444426}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(69 10 10 / var(--tw-bg-opacity, 1))}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-rose-400\/20:is(.dark *){background-color:#fb718533}.dark\:bg-sky-900\/40:is(.dark *){background-color:#0c4a6e66}.dark\:bg-sky-900\/50:is(.dark *){background-color:#0c4a6e80}.dark\:bg-sky-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 47 73 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-950\/20:is(.dark *){background-color:#082f4933}.dark\:bg-sky-950\/30:is(.dark *){background-color:#082f494d}.dark\:bg-sky-950\/40:is(.dark *){background-color:#082f4966}.dark\:bg-sky-950\/50:is(.dark *){background-color:#082f4980}.dark\:bg-sky-950\/60:is(.dark *){background-color:#082f4999}.dark\:bg-teal-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.dark\:bg-teal-950\/30:is(.dark *){background-color:#042f2e4d}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-violet-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(167 139 250 / var(--tw-bg-opacity, 1))}.dark\:bg-violet-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(124 58 237 / var(--tw-bg-opacity, 1))}.dark\:bg-violet-950\/20:is(.dark *){background-color:#2e106533}.dark\:bg-yellow-400\/30:is(.dark *){background-color:#facc154d}.dark\:bg-yellow-950\/15:is(.dark *){background-color:#42200626}.dark\:fill-\[\#F26B4E\]:is(.dark *){fill:#f26b4e}.dark\:fill-amber-400\/15:is(.dark *){fill:#fbbf2426}.dark\:fill-amber-500:is(.dark *){fill:#f59e0b}.dark\:fill-amber-600:is(.dark *){fill:#d97706}.dark\:fill-emerald-400\/15:is(.dark *){fill:#34d39926}.dark\:fill-emerald-500:is(.dark *){fill:#10b981}.dark\:fill-gray-100:is(.dark *){fill:#f3f4f6}.dark\:fill-gray-400:is(.dark *){fill:#9ca3af}.dark\:fill-gray-600:is(.dark *){fill:#4b5563}.dark\:fill-gray-950:is(.dark *){fill:#030712}.dark\:fill-indigo-500:is(.dark *){fill:#6366f1}.dark\:fill-rose-400\/10:is(.dark *){fill:#fb71851a}.dark\:fill-rose-500:is(.dark *){fill:#f43f5e}.dark\:fill-sky-400:is(.dark *){fill:#38bdf8}.dark\:fill-sky-950:is(.dark *){fill:#082f49}.dark\:fill-teal-600:is(.dark *){fill:#0d9488}.dark\:stroke-gray-100:is(.dark *){stroke:#f3f4f6}.dark\:stroke-gray-400:is(.dark *){stroke:#9ca3af}.dark\:stroke-gray-50:is(.dark *){stroke:#f9fafb}.dark\:stroke-gray-500:is(.dark *){stroke:#6b7280}.dark\:stroke-gray-700:is(.dark *){stroke:#374151}.dark\:stroke-gray-800:is(.dark *){stroke:#1f2937}.dark\:stroke-gray-950:is(.dark *){stroke:#030712}.dark\:stroke-sky-400:is(.dark *){stroke:#38bdf8}.dark\:text-\[\#F26B4E\]:is(.dark *){--tw-text-opacity: 1;color:rgb(242 107 78 / var(--tw-text-opacity, 1))}.dark\:text-amber-100:is(.dark *){--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-300\/80:is(.dark *){color:#fcd34dcc}.dark\:text-amber-300\/90:is(.dark *){color:#fcd34de6}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-amber-400\/70:is(.dark *){color:#fbbf24b3}.dark\:text-amber-500:is(.dark *){--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.dark\:text-amber-500\/80:is(.dark *){color:#f59e0bcc}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / 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-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / 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-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-300\/10:is(.dark *){color:#d1d5db1a}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-50:is(.dark *){--tw-text-opacity: 1;color:rgb(249 250 251 / 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-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-gray-700:is(.dark *){--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.dark\:text-gray-800:is(.dark *){--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.dark\:text-gray-900:is(.dark *){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.dark\:text-gray-950:is(.dark *){--tw-text-opacity: 1;color:rgb(3 7 18 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-green-400\/70:is(.dark *){color:#4ade80b3}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / 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-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / 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-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-rose-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.dark\:text-sky-200:is(.dark *){--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-teal-300:is(.dark *){--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.dark\:text-teal-400:is(.dark *){--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.dark\:text-violet-200:is(.dark *){--tw-text-opacity: 1;color:rgb(221 214 254 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-violet-300\/70:is(.dark *){color:#c4b5fdb3}.dark\:text-violet-300\/90:is(.dark *){color:#c4b5fde6}.dark\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\:text-yellow-100:is(.dark *){--tw-text-opacity: 1;color:rgb(254 249 195 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:decoration-sky-300\/40:is(.dark *){text-decoration-color:#7dd3fc66}.dark\:ring-gray-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity, 1))}.dark\:ring-gray-900:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity, 1))}.dark\:ring-sky-400:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity, 1))}.dark\:ring-white\/10:is(.dark *){--tw-ring-color: rgb(255 255 255 / .1)}.dark\:ring-white\/20:is(.dark *){--tw-ring-color: rgb(255 255 255 / .2)}.dark\:ring-offset-gray-950:is(.dark *){--tw-ring-offset-color: #030712}.dark\:\[color-scheme\:dark\]:is(.dark *){color-scheme:dark}.dark\:placeholder\:text-gray-400:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-gray-400:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:hover\:border-gray-300:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.dark\:hover\:border-gray-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\:hover\:border-gray-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:hover\:border-gray-700:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:hover\:border-sky-700:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(3 105 161 / var(--tw-border-opacity, 1))}.dark\:hover\:bg-amber-900\/30:hover:is(.dark *){background-color:#78350f4d}.dark\:hover\:bg-amber-900\/40:hover:is(.dark *){background-color:#78350f66}.dark\:hover\:bg-blue-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-blue-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-blue-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-blue-800\/60:hover:is(.dark *){background-color:#1e40af99}.dark\:hover\:bg-blue-900\/30:hover:is(.dark *){background-color:#1e3a8a4d}.dark\:hover\:bg-blue-950\/40:hover:is(.dark *){background-color:#17255466}.dark\:hover\:bg-gray-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-800\/40:hover:is(.dark *){background-color:#1f293766}.dark\:hover\:bg-gray-800\/50:hover:is(.dark *){background-color:#1f293780}.dark\:hover\:bg-gray-800\/60:hover:is(.dark *){background-color:#1f293799}.dark\:hover\:bg-gray-800\/70:hover:is(.dark *){background-color:#1f2937b3}.dark\:hover\:bg-gray-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-900\/40:hover:is(.dark *){background-color:#11182766}.dark\:hover\:bg-gray-900\/60:hover:is(.dark *){background-color:#11182799}.dark\:hover\:bg-gray-900\/70:hover:is(.dark *){background-color:#111827b3}.dark\:hover\:bg-green-900\/30:hover:is(.dark *){background-color:#14532d4d}.dark\:hover\:bg-green-950\/30:hover:is(.dark *){background-color:#052e164d}.dark\:hover\:bg-red-900\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\:hover\:bg-red-950:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(69 10 10 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-sky-500\/10:hover:is(.dark *){background-color:#0ea5e91a}.dark\:hover\:bg-sky-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 74 110 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-sky-900\/30:hover:is(.dark *){background-color:#0c4a6e4d}.dark\:hover\:bg-sky-900\/40:hover:is(.dark *){background-color:#0c4a6e66}.dark\:hover\:bg-sky-950:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 47 73 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-sky-950\/20:hover:is(.dark *){background-color:#082f4933}.dark\:hover\:bg-sky-950\/40:hover:is(.dark *){background-color:#082f4966}.dark\:hover\:bg-sky-950\/50:hover:is(.dark *){background-color:#082f4980}.dark\:hover\:bg-violet-900\/20:hover:is(.dark *){background-color:#4c1d9533}.dark\:hover\:bg-violet-900\/30:hover:is(.dark *){background-color:#4c1d954d}.dark\:hover\:bg-violet-900\/40:hover:is(.dark *){background-color:#4c1d9566}.dark\:hover\:bg-white:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:hover\:text-amber-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-50:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(249 250 251 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:hover\:text-sky-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(224 242 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-sky-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:hover\:text-sky-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:hover\:ring-gray-600:hover:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1))}.dark\:hover\:brightness-125:hover:is(.dark *){--tw-brightness: brightness(1.25);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)}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus-visible\:bg-blue-600:focus-visible:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.dark\:focus-visible\:bg-gray-800:focus-visible:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus-visible\:text-gray-100:focus-visible:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:focus-visible\:ring-sky-400:focus-visible:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity, 1))}.dark\:enabled\:hover\:bg-gray-800:hover:enabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:disabled\:text-gray-400:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}@media not all and (min-width:640px){.max-sm\: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}.max-sm\:fixed{position:fixed}.max-sm\:inset-x-2{left:.5rem;right:.5rem}.max-sm\:top-auto{top:auto}.max-sm\:w-auto{width:auto}.max-sm\:max-w-none{max-width:none}}@media(min-width:640px){.sm\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.sm\:col-span-1{grid-column:span 1 / span 1}.sm\:ml-auto{margin-left:auto}.sm\:mt-0\.5{margin-top:.125rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-56{width:14rem}.sm\:max-w-\[10rem\]{max-width:10rem}.sm\:max-w-\[32rem\]{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[8\.5rem_minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-columns:8.5rem minmax(0,1fr) minmax(0,1fr)}.sm\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:overflow-y-auto{overflow-y:auto}.sm\:overflow-x-visible{overflow-x:visible}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:border-b-0{border-bottom-width:0px}.sm\:border-r{border-right-width:1px}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}}@media(min-width:768px){.md\:flex{display:flex}.md\:min-h-0{min-height:0px}.md\:w-56{width:14rem}.md\:w-72{width:18rem}.md\:w-full{width:100%}.md\:flex-1{flex:1 1 0%}.md\:shrink-0{flex-shrink:0}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1fr_1fr_20rem\]{grid-template-columns:1fr 1fr 20rem}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:overflow-y-auto{overflow-y:auto}.md\:overflow-x-visible{overflow-x:visible}.md\:border-b-0{border-bottom-width:0px}.md\:border-l{border-left-width:1px}.md\:border-r{border-right-width:1px}.md\:border-t-0{border-top-width:0px}}@media(min-width:1024px){.lg\:sticky{position:sticky}.lg\:inset-y-auto{top:auto;bottom:auto}.lg\:right-auto{right:auto}.lg\:top-0{top:0}.lg\:z-auto{z-index:auto}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:max-h-\[var\(--tray-h\,calc\(100vh-7rem\)\)\]{max-height:var(--tray-h, calc(100vh - 7rem) )}.lg\:min-h-0{min-height:0px}.lg\:w-64{width:16rem}.lg\:w-72{width:18rem}.lg\:w-\[min\(var\(--tray-w\)\,calc\(100\%-20rem\)\)\]{width:min(var(--tray-w),calc(100% - 20rem))}.lg\:shrink-0{flex-shrink:0}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,5fr\)_minmax\(0\,2fr\)\]{grid-template-columns:minmax(0,5fr) minmax(0,2fr)}.lg\:flex-row{flex-direction:row}.lg\:gap-0{gap:0px}.lg\:self-start{align-self:flex-start}.lg\:rounded-md{border-radius:.375rem}.lg\:border{border-width:1px}.lg\:border-l{border-left-width:1px}.lg\:pl-3{padding-left:.75rem}.lg\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1280px){.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:w-96{width:24rem}.xl\:flex-none{flex:none}.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))}}@media(min-width:1536px){.\32xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media print{.print\:hidden{display:none}}.\[\&_img\]\:hidden img{display:none}