@epoch-agent/server 0.7.1 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Lang, WireSkillImportFailure, WireSkillImportForm, WireSkillRemoveFailure, WireCapabilitiesResponse, WireSkillBodyResponse, EpochUserContent, AgentEvent, WireEnvelope, CustomCommandDef, ExpandedCommand, ModelRef, SetSelectionResult, WireCommandExpansion, WireCustomCommand, WireGoalPhase, WireGoalRefusal, WireTurnState, WireSessionFinish, ApprovalOutcome, QuestionAnswer, SessionSurfaceView, WireSessionReference, WireFileReference, ProviderType, ModelSelectionOrigin, WireModelCaveat, WireModelRejection, ContextBreakdown, PermissionLevel, WirePermissionRememberFailure, WirePluginSourceType, WirePluginRefuseReason, WirePluginEntry, WireModelSource, WireModelProbeStatus, ScheduleDefinition, ScheduleRun, ScheduleBackendKind, OperationType, ScheduleTrigger, WireScheduleIssue, ScheduleRunStatus, TrustLevel, WireSandboxReason, WireAuditOutcome, WireAuditCode, WireCachedApproval, WireCachedDecision, WireToolVerdict, WireToolGateAxis, WireSecurityResponse, WireRewindScope, WireRewindRequest, WireCheckpointSummary, WireRewindPreview, WireRewindResponse, ActiveAgentRole, WireSettingValue, WireSettingLayer, WireSettingWriteLayer, WireSettingFutile, WireSettingApply, WireSettingValueKind, WireSettingsResponse, EpochConfig, TokenUsage, WireCompressionLine, WireProviderSummary, WireToolSummary, Diagnostic, WireReplayMessage, WireFileChange, WireAuthGuard, WireWorkspaceDiffResponse, BackgroundTaskInfo, WireTasksResponse, WireBackgroundTask, WireScheduleRow } from '@epoch-agent/protocol';
1
+ import { Lang, WireSkillImportFailure, WireSkillImportForm, WireSkillRemoveFailure, WireCapabilitiesResponse, WireSkillBodyResponse, EpochUserContent, AgentEvent, WireEnvelope, CustomCommandDef, ExpandedCommand, ModelRef, SetSelectionResult, WireCommandExpansion, WireCustomCommand, WireGoalPhase, WireGoalRefusal, WireTurnState, WireSessionFinish, ApprovalOutcome, QuestionAnswer, SessionSurfaceView, WireSessionReference, WireFileReference, ProviderType, ModelSelectionOrigin, WireModelCaveat, WireModelRejection, ContextBreakdown, PermissionLevel, WirePermissionRememberFailure, WirePluginSourceType, WirePluginVisibility, WirePluginRefuseReason, WirePluginEntry, WireModelSource, WireModelProbeStatus, ScheduleDefinition, ScheduleRun, ScheduleBackendKind, OperationType, ScheduleTrigger, WireScheduleIssue, ScheduleRunStatus, TrustLevel, WireSandboxReason, WireAuditOutcome, WireAuditCode, WireCachedApproval, WireCachedDecision, WireToolVerdict, WireToolGateAxis, WireSecurityResponse, WireRewindScope, WireRewindRequest, WireCheckpointSummary, WireRewindPreview, WireRewindResponse, ActiveAgentRole, WireSettingValue, WireSettingLayer, WireSettingWriteLayer, WireSettingFutile, WireSettingApply, WireSettingValueKind, WireSettingsResponse, EpochConfig, TokenUsage, WireCompressionLine, WireProviderSummary, WireToolSummary, Diagnostic, WireReplayMessage, WireFileChange, WireAuthGuard, WireWorkspaceDiffResponse, BackgroundTaskInfo, WireTasksResponse, WireBackgroundTask, WireScheduleRow } from '@epoch-agent/protocol';
2
2
  import { SerializableApprovalRequest, SerializableQuestionRequest, ApprovalRevokeResult, LevelChangeResult, WorkspaceFilesView } from '@epoch-agent/runtime';
3
3
  import { ServerResponse } from 'node:http';
4
4
 
@@ -2263,11 +2263,12 @@ interface RuntimeModel {
2263
2263
  }
2264
2264
 
2265
2265
  /**
2266
- * 插件那一页的十条端点(方案 59 §六 E2,2026-08-21;本地源与市场管理 2026-09-04
2267
- * 补,判据在 protocol 的 `wire-plugin.ts` 文件头第一节那次**翻案**):
2266
+ * 插件那一页的十二条端点(方案 59 §六 E2,2026-08-21;本地源与市场管理 2026-09-04
2267
+ * 补,判据在 protocol 的 `wire-plugin.ts` 文件头第一节那次**翻案**;上传 2026-09-08
2268
+ * 补,判据在那份文件头第一节之二):
2268
2269
  *
2269
2270
  * ```
2270
- * GET /api/plugins 装着的 + 市场里有什么 + 已加的市场 + pendingRestart
2271
+ * GET /api/plugins 装着的 + 市场里有什么 + 已加的市场 + pendingRestart + uploadEnabled
2271
2272
  * POST /api/plugins/install/preview {ref} → 将安装什么,一个字节都不写
2272
2273
  * POST /api/plugins/install {ref, token} → 真装
2273
2274
  * POST /api/plugins/install/local/preview {path} → 同上,来源是本机一条目录
@@ -2277,6 +2278,8 @@ interface RuntimeModel {
2277
2278
  * POST /api/plugins/uninstall {name} → 卸载
2278
2279
  * POST /api/plugins/marketplaces {source} → 加一个市场
2279
2280
  * POST /api/plugins/marketplaces/remove {name} → 移除一个市场
2281
+ * POST /api/plugins/upload/preview {path} → 会打包哪些文件,一个字节都不发
2282
+ * POST /api/plugins/upload {path, token} → 打包 + 交给宿主
2280
2283
  * ```
2281
2284
  *
2282
2285
  * ## ⚠️ 这一层**一条策略判断都没有**
@@ -2290,10 +2293,10 @@ interface RuntimeModel {
2290
2293
  * 界面上是一条画成可点、点了却被拒的行(判据同 `PluginSearchHit.installable`
2291
2294
  * 为什么不从结果里剔掉远程那条)。
2292
2295
  *
2293
- * ## ⚠️ 那一道闸:**九条 POST 在回环之外一律 403**,这是这个文件的正题
2296
+ * ## ⚠️ 那一道闸:**十一条 POST 在回环之外一律 403**,这是这个文件的正题
2294
2297
  *
2295
2298
  * 判据全文在 protocol 的 [wire-plugin.ts](../../protocol/src/wire-plugin.ts) 文件头
2296
- * 第二节,这里记它对这一层的五条直接后果:
2299
+ * 第二节,这里记它对这一层的**六**条直接后果:
2297
2300
  *
2298
2301
  * 1. **`ctx.lanExposed` 为真时 403 `plugin-write-lan-exposed`,一个字节都不写。**
2299
2302
  * 装一包插件会落下 `hooks.json` 和 `mcp.json`,那两样**起子进程** ——
@@ -2312,6 +2315,10 @@ interface RuntimeModel {
2312
2315
  * 唯一后果是那一页在 LAN 那一档下一片空白,
2313
2316
  * 偏偏那时用户最想知道的就是「我装了什么、生效了没有」。
2314
2317
  * (对比 `GET /api/mcp/config` 为什么连读都挡:那份文件里的 `env` 是明文密钥。)
2318
+ * 6. **上传那两条是这张表里最该挡的**(2026-09-08):它们读这台机器上任意一条
2319
+ * 目录、把内容**发到外面去**。放行的话,一个 LAN 上的人能指着 `~/.ssh` 说
2320
+ * 「上传它」。⚠️ **预览那一条同样挡**,虽然它一个字节都不发 ——
2321
+ * 它回的那份**文件清单本身就是情报**(拿它能探这台机器上有什么)。
2315
2322
  *
2316
2323
  * ## ⚠️ 这一片可以整个不存在 —— 503 `no-plugin-control`
2317
2324
  *
@@ -2320,6 +2327,11 @@ interface RuntimeModel {
2320
2327
  * JSDoc 上)。六条一律 503,判据同 `no-goal-store`:那是一句关于**这个部署**的
2321
2328
  * 真话,而一份「装了 0 个插件」的空列表会让用户去找一个不存在的安装按钮。
2322
2329
  *
2330
+ * ⚠️ **上传那两条还有第二档「没开」,而它比 503 那一档窄**:`runtime.plugins`
2331
+ * 在、但宿主没给 `upload` 回调 —— 那时它们回 **200 + `upload-unavailable`**,
2332
+ * 不是 503。两档分得开是有用的:503 说「这一整页没开」,那一档说
2333
+ * 「页开着,只是没有交出去这条路」,而后者正是 `epoch web --plugins` 的常态。
2334
+ *
2323
2335
  * ⚠️ **默认的 `epoch web` 就落在这一档上**(不给 `--plugins` 就不传
2324
2336
  * `hostMarketplaces`)。那一格 2026-08-21 答掉了:`epoch web --plugins` 才接上
2325
2337
  * (传 `{ sources: [] }`),**默认关**,判据在
@@ -2378,6 +2390,26 @@ interface PluginHitView {
2378
2390
  source: string;
2379
2391
  category?: string;
2380
2392
  keywords?: readonly string[];
2393
+ /** 目录里那一格「谁写的」。**摊平在投影里做**,判据在 `WirePluginHit.author` 上 */
2394
+ author?: {
2395
+ name: string;
2396
+ };
2397
+ /**
2398
+ * 市场那一侧数的两个计数(2026-09-08)。**可选**,而缺席在网线上变 `null`
2399
+ * 不是 `0` —— 判据在 `WirePluginHit.downloads` 上(「没人报」和「一次都没装过」
2400
+ * 是两句不同的话)。
2401
+ */
2402
+ downloads?: number;
2403
+ likes?: number;
2404
+ /** 展示用的那几格(2026-09-08)。全部可选 → 网线上一律 `null` */
2405
+ displayName?: string;
2406
+ icon?: string;
2407
+ /** **市场说的**版本。`updateAvailable` 是拿它和装着的那个比出来的 */
2408
+ version?: string;
2409
+ changelog?: string;
2410
+ size?: number;
2411
+ homepage?: string;
2412
+ visibility?: WirePluginVisibility;
2381
2413
  };
2382
2414
  sourceType?: WirePluginSourceType;
2383
2415
  installable: boolean;
@@ -2460,7 +2492,49 @@ type MarketOutcomeView = {
2460
2492
  marketplace?: MarketplaceView;
2461
2493
  } | RefusalView;
2462
2494
  /**
2463
- * `PluginControl`(runtime)在服务端眼里的样子 —— **只有那十一个动词加一格布尔**。
2495
+ * `PackPlan`(core,经 runtime 原样透出)的镜像 —— 「会打包什么」那一屏的内容。
2496
+ *
2497
+ * ⚠️ 借的是**整份 `files`** 而不是一个长度:判据在 `WirePluginUploadPlan.files`
2498
+ * 上(这条路上最常见的事故是「目录里有一份 `.env`」,一个计数答不出那件事)。
2499
+ */
2500
+ interface PackPlanView {
2501
+ manifest: {
2502
+ name: string;
2503
+ version: string;
2504
+ description?: string;
2505
+ author?: {
2506
+ name: string;
2507
+ };
2508
+ };
2509
+ files: readonly {
2510
+ path: string;
2511
+ bytes: number;
2512
+ }[];
2513
+ totalBytes: number;
2514
+ suspicious: readonly string[];
2515
+ skippedLinks: readonly string[];
2516
+ }
2517
+ type UploadPreviewOutcomeView = {
2518
+ ok: true;
2519
+ plan: PackPlanView;
2520
+ token: string;
2521
+ } | RefusalView;
2522
+ /**
2523
+ * 上传的结局。
2524
+ *
2525
+ * ⚠️ 成功那一档借的是 `detail`(**宿主原话**)而不是我们编的一句 —— 判据在
2526
+ * `WirePluginUploadResponse.detail` 上:上传之后发生什么(直接上架 / 排队审核)
2527
+ * 是宿主那一侧的流程,这一层编不出来。
2528
+ */
2529
+ type UploadOutcomeView = {
2530
+ ok: true;
2531
+ detail: string;
2532
+ name: string;
2533
+ version: string;
2534
+ bytes: number;
2535
+ } | RefusalView;
2536
+ /**
2537
+ * `PluginControl`(runtime)在服务端眼里的样子 —— **只有那十四个动词加两格布尔**。
2464
2538
  *
2465
2539
  * 镜像里只有它们,于是这个包**写不出** core 的 `setPluginEnabled`
2466
2540
  * (停用一个插件会静默拿掉别人正依赖的一批命令,正当性和「装 / 卸」不是一回事);
@@ -2486,7 +2560,29 @@ interface PluginControlView {
2486
2560
  marketplaces(): readonly MarketplaceView[];
2487
2561
  addMarketplace(source: string, lang?: Lang): Promise<MarketOutcomeView>;
2488
2562
  removeMarketplace(name: string, lang?: Lang): Promise<MarketOutcomeView>;
2563
+ /**
2564
+ * 「会打包什么」。⚠️ **同步的**(runtime 那一层只走一遍目录,不起子进程)——
2565
+ * 镜像上写成 `Promise` 也满足,但那会让这一层顺手 `await` 一个不用等的东西
2566
+ */
2567
+ previewUpload(path: string, lang?: Lang): UploadPreviewOutcomeView;
2568
+ upload(path: string, token: string,
2569
+ /** 用户在那一屏上填的。**宿主没声明要问的格子由下一层丢掉**,这一层不过滤 */
2570
+ form: {
2571
+ visibility?: WirePluginVisibility;
2572
+ changelog?: string;
2573
+ }, lang?: Lang): Promise<UploadOutcomeView>;
2489
2574
  readonly pendingRestart: boolean;
2575
+ /** 上传表单多问哪几格。**两个恒有的布尔**,runtime 那一层算好的 */
2576
+ readonly uploadOptions: {
2577
+ visibility: boolean;
2578
+ changelog: boolean;
2579
+ };
2580
+ /**
2581
+ * 宿主给了上传出口吗。**runtime 算好的结论**,这一层原样投影上网线 ——
2582
+ * 在这儿重判一次(比如看那个回调在不在)就是给同一个问题第二个答案,
2583
+ * 判据同文件头那句「这一层一条策略判断都没有」。
2584
+ */
2585
+ readonly uploadEnabled: boolean;
2490
2586
  }
2491
2587
  /**
2492
2588
  * 装着的一条 → 网线上那一行。
package/dist/index.js CHANGED
@@ -2448,7 +2448,8 @@ function toWirePluginEntry(entry) {
2448
2448
  counts: entry.counts ? toWireCounts(entry.counts) : null
2449
2449
  };
2450
2450
  }
2451
- function toWirePluginHit(hit, installedNames) {
2451
+ function toWirePluginHit(hit, installed) {
2452
+ const mine = installed.get(hit.entry.name);
2452
2453
  return {
2453
2454
  marketplace: hit.marketplace,
2454
2455
  ref: hit.ref,
@@ -2458,7 +2459,18 @@ function toWirePluginHit(hit, installedNames) {
2458
2459
  keywords: [...hit.entry.keywords ?? []],
2459
2460
  sourceType: hit.sourceType ?? null,
2460
2461
  installable: hit.installable,
2461
- installed: installedNames.has(hit.entry.name)
2462
+ installed: mine !== void 0,
2463
+ author: hit.entry.author?.name ?? null,
2464
+ downloads: hit.entry.downloads ?? null,
2465
+ likes: hit.entry.likes ?? null,
2466
+ displayName: hit.entry.displayName ?? null,
2467
+ icon: hit.entry.icon ?? null,
2468
+ version: hit.entry.version ?? null,
2469
+ changelog: hit.entry.changelog ?? null,
2470
+ size: hit.entry.size ?? null,
2471
+ homepage: hit.entry.homepage ?? null,
2472
+ visibility: hit.entry.visibility ?? null,
2473
+ updateAvailable: mine !== void 0 && !mine.linked && hit.entry.version !== void 0 && hit.entry.version !== mine.version
2462
2474
  };
2463
2475
  }
2464
2476
  function toWireMarketplace(market) {
@@ -2518,12 +2530,16 @@ function listPlugins(ctx, res, lang) {
2518
2530
  const control = controlOf(ctx, res, lang);
2519
2531
  if (!control) return;
2520
2532
  const installed = control.list();
2521
- const installedNames = new Set(installed.map((p) => p.name));
2533
+ const installedMap = new Map(
2534
+ installed.map((p) => [p.name, { version: p.version, linked: p.linked }])
2535
+ );
2522
2536
  sendJson(res, 200, {
2523
2537
  installed: installed.map(toWirePluginEntry),
2524
- hits: control.search().map((hit) => toWirePluginHit(hit, installedNames)),
2538
+ hits: control.search().map((hit) => toWirePluginHit(hit, installedMap)),
2525
2539
  marketplaces: control.marketplaces().map(toWireMarketplace),
2526
- pendingRestart: control.pendingRestart
2540
+ pendingRestart: control.pendingRestart,
2541
+ uploadEnabled: control.uploadEnabled,
2542
+ uploadOptions: control.uploadOptions
2527
2543
  });
2528
2544
  }
2529
2545
  function sendPreview(res, outcome) {
@@ -2658,6 +2674,71 @@ async function removePluginMarketplace(ctx, req, res, lang) {
2658
2674
  if (!body.ok) return sendError(res, body.status, "bad-body", body.message);
2659
2675
  sendMarket(res, await control.removeMarketplace(fieldOf(asRecord(body.value), "name"), lang));
2660
2676
  }
2677
+ function previewPluginUpload(ctx, req, res, lang) {
2678
+ return withUploadBody(ctx, req, res, lang, (control, payload) => {
2679
+ sendUploadPreview(res, control.previewUpload(fieldOf(payload, "path"), lang));
2680
+ });
2681
+ }
2682
+ function uploadPlugin(ctx, req, res, lang) {
2683
+ return withUploadBody(ctx, req, res, lang, async (control, payload) => {
2684
+ sendUpload(
2685
+ res,
2686
+ await control.upload(
2687
+ fieldOf(payload, "path"),
2688
+ fieldOf(payload, "token"),
2689
+ {
2690
+ ...fieldOf(payload, "visibility") === "private" ? { visibility: "private" } : fieldOf(payload, "visibility") === "public" ? { visibility: "public" } : {},
2691
+ ...fieldOf(payload, "changelog") ? { changelog: fieldOf(payload, "changelog") } : {}
2692
+ },
2693
+ lang
2694
+ )
2695
+ );
2696
+ });
2697
+ }
2698
+ async function withUploadBody(ctx, req, res, lang, run) {
2699
+ if (refusedByLan(ctx, res, lang)) return;
2700
+ const control = controlOf(ctx, res, lang);
2701
+ if (!control) return;
2702
+ const body = await readJsonBody(req);
2703
+ if (!body.ok) return sendError(res, body.status, "bad-body", body.message);
2704
+ await run(control, asRecord(body.value));
2705
+ }
2706
+ function sendUploadPreview(res, outcome) {
2707
+ if (!outcome.ok) {
2708
+ return sendJson(res, 200, {
2709
+ ok: false,
2710
+ plan: null,
2711
+ token: null,
2712
+ reason: outcome.reason,
2713
+ detail: outcome.detail
2714
+ });
2715
+ }
2716
+ const { manifest, files, totalBytes, suspicious, skippedLinks } = outcome.plan;
2717
+ sendJson(res, 200, {
2718
+ ok: true,
2719
+ plan: {
2720
+ name: manifest.name,
2721
+ version: manifest.version,
2722
+ description: manifest.description ?? "",
2723
+ author: manifest.author?.name ?? null,
2724
+ files: files.map((f) => ({ path: f.path, bytes: f.bytes })),
2725
+ totalBytes,
2726
+ suspicious: [...suspicious],
2727
+ skippedLinks: [...skippedLinks]
2728
+ },
2729
+ token: outcome.token,
2730
+ reason: null,
2731
+ detail: null
2732
+ });
2733
+ }
2734
+ function sendUpload(res, outcome) {
2735
+ sendJson(res, 200, {
2736
+ ok: outcome.ok,
2737
+ detail: outcome.detail,
2738
+ uploaded: outcome.ok ? { name: outcome.name, version: outcome.version, bytes: outcome.bytes } : null,
2739
+ reason: outcome.ok ? null : outcome.reason
2740
+ });
2741
+ }
2661
2742
  function toWireProvider(option, lang) {
2662
2743
  return {
2663
2744
  type: option.type,
@@ -4370,6 +4451,12 @@ async function handleApi(opts, req, res, method, segments, lang) {
4370
4451
  if (resource === "plugins" && first === "marketplaces" && second === void 0 && method === "POST") {
4371
4452
  return addPluginMarketplace(ctx, req, res, lang);
4372
4453
  }
4454
+ if (resource === "plugins" && first === "upload" && second === "preview" && method === "POST") {
4455
+ return previewPluginUpload(ctx, req, res, lang);
4456
+ }
4457
+ if (resource === "plugins" && first === "upload" && second === void 0 && method === "POST") {
4458
+ return uploadPlugin(ctx, req, res, lang);
4459
+ }
4373
4460
  if (resource === "providers" && first === void 0 && isRead(method)) {
4374
4461
  return listProviders(ctx, res, lang);
4375
4462
  }
@@ -0,0 +1 @@
1
+ :root{--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, "Cascadia Mono", Consolas, monospace;--fs-eyebrow:11.5px;--fs-micro:11px;--fs-data:12px;--fs-sm:13px;--fs-body:14px;--fs-lg:16px;--fs-title:21px;--fs-touch-min:0px;--lh-tight:1.3;--lh-body:1.65;--lh-code:1.55;--tracking-title:-.021em;--tracking-lg:-.012em;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--r-sm:8px;--r:10px;--r-md:12px;--r-lg:14px;--r-xl:18px;--r-pill:999px;--ctl-h:32px;--ctl-h-sm:28px;--ctl-pad-x:10px;--h-header:52px;--w-sidebar:268px;--w-inspector:384px;--w-drawer-peek:44px;--tap-min:auto;--w-gutter:34px;--w-read:712px;--w-panel:920px;--w-menu-max:360px;--w-form-label:72px;--pad-center:max(var(--s6), calc((100% - var(--w-panel)) / 2));--w-column:calc(var(--w-gutter) + var(--w-read));--w-frame:calc(var(--w-column) + var(--w-gutter));--dur-fast:.14s;--dur:.22s;--dur-slow:.42s;--ease:cubic-bezier(.25, .1, .25, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--z-drawer:28;--z-toast:30;--z-menu:40;--z-modal:55;--scrim:#00000061}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-canvas:#fafbfe;--bg-chrome:#f1f2f8;--bg-card:#fff;--bg-code:#f3f4fa;--bg-said:#e2e6f4;--bg-raise:#0000000b;--bg-active:#00000016;--bg-inverse:#1d1d1f;--ctl-bg:#fff;--ctl-bd:#00000024;--ctl-bd-hover:#00000042;--ctl-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23656b7a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--ink:#191c24;--ink-muted:#4d5261;--ink-faint:#656b7a;--ink-inverse:#fff;--bd-muted:#0000000f;--bd-base:#0000001b;--bd-strong:#0000002e;--success:#0f7530;--warning:#a94c00;--danger:#ce0013;--info:#006a9b;--add:#0f7530;--add-bg:#34c7591f;--del:#ce0013;--del-bg:#ff3b301a;--tk-comment:#5a6875;--tk-keyword:#9b2393;--tk-string:#c41a16;--tk-number:#1c00cf;--tk-fn:#2f6870;--tk-type:#4b21b0;--teal:#0a746f;--hue-1:#0a6cd8;--hue-2:#5b52d8;--hue-3:#9333c4;--hue-4:#c2185b;--hue-5:#b45309;--hue-6:#0f766e;--accent:#0067e6;--accent-hover:#005ed6;--accent-press:#0051bd;--accent-ink:#fff;--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--shadow-card:0 1px 2px #1118270a, 0 4px 12px -6px #1118270f;--shadow-pop:0 0 0 .5px #1118271a, 0 2px 8px #1118270f, 0 16px 40px -10px #11182742;--shadow-dock:0 0 0 .5px #11182717, 0 -2px 8px #1118270d, 0 -16px 40px -18px #11182738;--shadow-control:0 .5px 1px #11182712, 0 1px 2.5px #1118270f;--shadow-seg:0 0 0 .5px #1118270a, 0 1px 3px #1118271c;--wash:10%;--wash-warning:linear-gradient(color-mix(in srgb, var(--warning) var(--wash), transparent) 0 100%);--wash-info:linear-gradient(color-mix(in srgb, var(--info) var(--wash), transparent) 0 100%);--grad-accent:linear-gradient(180deg, var(--accent-hover) 0%, var(--accent-press) 100%);--glow-1:radial-gradient(900px 520px at 88% -8%, #0067e60d, transparent 70%);--glow-2:radial-gradient(760px 460px at 4% 104%, #5b52d80a, transparent 70%)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-chrome:#0e1217;--bg-canvas:#131820;--bg-card:#1b212a;--bg-code:#0b0e13;--bg-said:#27313f;--bg-raise:#fff1;--bg-active:#ffffff1f;--ctl-bg:#ffffff09;--ctl-bd:#ffffff26;--ctl-bd-hover:#ffffff47;--ctl-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238b93a3' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--bg-inverse:#f5f5f7;--ink:#f2f4f8;--ink-muted:#a3aab8;--ink-faint:#8b93a3;--ink-inverse:#1d1d1f;--bd-muted:#ffffff12;--bd-base:#ffffff1f;--bd-strong:#fff3;--success:#30d158;--warning:#ff9f0a;--danger:#ff4e41;--info:#64d2ff;--add:#30d158;--add-bg:#30d1581c;--del:#ff4e41;--del-bg:#ff453a1f;--tk-comment:#7c8896;--tk-keyword:#ff7ab2;--tk-string:#ff8170;--tk-number:#d9c97c;--tk-fn:#67b7a4;--tk-type:#dabaff;--teal:#66d4cf;--hue-1:#4aa3ff;--hue-2:#9b93ff;--hue-3:#cf8bf3;--hue-4:#ff6b9d;--hue-5:#f0a44a;--hue-6:#5ecfc4;--accent:#1e8eff;--accent-hover:#369dff;--accent-press:#4aa5ff;--accent-ink:#0e1217;--accent-soft:color-mix(in srgb, var(--accent) 22%, transparent);--shadow-card:0 1px 2px #0000005c, 0 4px 12px -6px #0006;--shadow-pop:0 0 0 .5px #ffffff1f, 0 18px 44px -10px #000000c2;--shadow-dock:0 0 0 .5px #ffffff1a, 0 -16px 40px -18px #000000b3;--shadow-control:0 1px 2px #00000057;--shadow-seg:0 0 0 .5px #ffffff14, 0 1px 3px #0006;--wash:18%;--glow-1:radial-gradient(900px 520px at 88% -8%, #1e8eff0f, transparent 70%);--glow-2:radial-gradient(760px 460px at 4% 104%, #5ecfc40a, transparent 70%)}[data-permission=plan]{--permission:var(--info)}[data-permission=default]{--permission:var(--teal)}[data-permission=acceptEdits]{--permission:var(--warning)}[data-permission=bypass]{--permission:var(--danger)}@media (pointer:coarse){:root{--fs-touch-min:16px;--tap-min:44px}}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100dvh;margin:0}body{background:var(--bg-canvas);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}input,textarea,select{font-size:max(1em, var(--fs-touch-min))}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}*{scrollbar-width:thin;scrollbar-color:var(--bd-base) transparent}::-webkit-scrollbar{width:13px;height:13px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--bd-strong);border-radius:var(--r-pill);background-clip:content-box;border:4px solid #0000}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--ink) 42%, transparent);background-clip:content-box}.app{grid-template-columns:var(--w-sidebar) minmax(0, 1fr) var(--w-inspector);grid-template-rows:minmax(0,1fr);height:100%;display:grid}.app[data-inspector=closed]{grid-template-columns:var(--w-sidebar) minmax(0, 1fr)}.sidebar{background:var(--bg-chrome);border-right:1px solid var(--bd-muted);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.sidebar__head{align-items:center;gap:var(--s2);height:var(--h-header);padding:0 var(--s3);border-bottom:1px solid var(--bd-muted);display:flex}.brandslot{text-overflow:ellipsis;white-space:nowrap;max-width:96px;font-size:var(--fs-sm);color:var(--ink-muted);flex:none;overflow:hidden}.ssearch{min-width:0;height:28px;padding:0 var(--s2);border-radius:var(--r-sm);background:var(--bg-raise);color:var(--ink-faint);transition:background-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);flex:1;align-items:center;gap:6px;display:flex}.ssearch:hover{background:var(--bg-active)}.ssearch:focus-within{background:var(--bg-raise);box-shadow:0 0 0 2px var(--accent), 0 0 0 5px var(--accent-soft);color:var(--ink-muted)}.ssearch input{min-width:0;font-size:max(var(--fs-sm), var(--fs-touch-min));color:var(--ink);background:0 0;border:none;outline:none;flex:1}.ssearch input::placeholder{color:var(--ink-faint)}.ssearch input::-webkit-search-cancel-button{appearance:none}.sidebar__scroll{padding:var(--s3) var(--s3) var(--s4);overflow-y:auto}.actions{padding-bottom:var(--s3);border-bottom:1px solid var(--bd-muted);flex-direction:column;gap:1px;display:flex}.newsession__err{margin:var(--s1) 0 0;padding:0 var(--s2);font-size:var(--fs-micro);color:var(--danger);line-height:1.5}.section{margin-top:var(--s4)}.section__title{margin:0 0 var(--s1);padding:0 var(--s2);font-size:var(--fs-eyebrow);color:var(--ink-faint);align-items:center;gap:6px;font-weight:600;display:flex}.section__count{font-variant-numeric:tabular-nums}.section__note{margin:calc(-1 * var(--s1)) 0 var(--s1);padding:0 var(--s2);font-size:var(--fs-eyebrow);color:var(--ink-faint);line-height:1.45}.slist{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.slist__empty{margin:var(--s4) 0 0;padding:0 var(--s2);font-size:var(--fs-sm);color:var(--ink-faint)}.slist--nested{margin:1px 0 var(--s2);padding-left:var(--s3);border-left:1px solid var(--bd-muted);margin-left:calc(var(--s2) + 7px)}.space:not([data-open]) .slist--nested{display:none}.srowbox{border-radius:var(--r);color:var(--ink-muted);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;position:relative}.srowbox:hover{background:var(--bg-raise);color:var(--ink)}.srowbox:has(.srow[aria-current=true]){background:var(--accent-soft);color:var(--ink)}.srowbox:has(.srow[aria-current=true]) .srow__meta{color:var(--ink-muted)}.srow{align-items:center;gap:var(--s2);text-align:left;border-radius:var(--r);width:100%;padding:7px var(--s2);cursor:pointer;color:inherit;background:0 0;border:none;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.srow__more{border-radius:var(--r-sm);cursor:pointer;width:24px;height:24px;color:var(--ink-faint);background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-right:2px;display:inline-flex}.srowbox:hover .srow__more,.srow__more:hover,.srow__more:focus-visible{color:var(--ink)}.srowbox:has(.srow[aria-current=true]) .srow__more{color:var(--ink)}.srow__more:hover{background:var(--bg-active)}.srow__more[aria-expanded=true]{background:var(--bg-active);color:var(--ink)}.srow__dot{border-radius:var(--r-pill);background:var(--ink-faint);width:5px;height:5px}.srow[data-state=running] .srow__dot{background:var(--warning);animation:pulse 1.6s var(--ease) infinite}.srow[data-state=awaiting] .srow__dot{background:var(--danger)}.srow__label{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;line-height:1.45;overflow:hidden}.srow__meta{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);font-variant-numeric:tabular-nums}.srow__spin{border-radius:var(--r-pill);border:1.5px solid var(--bd-strong);border-top-color:var(--ink-muted);flex:none;width:11px;height:11px;animation:.7s linear infinite spin}.srow__pill{font-size:var(--fs-micro);border-radius:var(--r-pill);white-space:nowrap;background:var(--danger);color:var(--ink-inverse);flex:none;padding:0 7px;line-height:1.6}.srename{align-items:center;gap:var(--s2);width:100%;padding:6px calc(var(--s2) - 1px);border:1px solid var(--bd-strong);border-radius:var(--r);background:var(--bg-canvas);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.srename:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft)}.srename__input{min-width:0;font-family:inherit;font-size:max(var(--fs-sm), var(--fs-touch-min));color:var(--ink);background:0 0;border:none;outline:none;padding:0;line-height:1.45}.srename__go{cursor:pointer;color:var(--ink-faint);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.srename__go:hover,.srename__go:focus-visible{color:var(--ink)}.srename__err{margin:var(--s1) 0 0;font-size:var(--fs-micro);color:var(--danger);grid-column:1/-1;line-height:1.5}.srowmenu__ask{margin:var(--s1) var(--s2) var(--s1);font-size:var(--fs-sm);color:var(--ink);font-weight:500;line-height:1.5}.srowmenu__what{margin:0 var(--s2) var(--s2);font-size:var(--fs-micro);color:var(--ink-faint);line-height:1.6}.srowmenu__exits{justify-content:flex-end;gap:var(--s2);padding:0 var(--s1) var(--s1);display:flex}.spacehead{border-radius:var(--r);color:var(--ink-muted);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.spacehead:hover{background:var(--bg-raise);color:var(--ink)}.sprow{align-items:center;gap:var(--s2);text-align:left;border-radius:var(--r);width:100%;padding:6px var(--s2);cursor:pointer;color:inherit;background:0 0;border:none;display:flex}.sprow__add{border-radius:var(--r-sm);cursor:pointer;width:24px;height:24px;color:var(--ink-faint);background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-right:2px;display:inline-flex}.spacehead:hover .sprow__add,.sprow__add:hover,.sprow__add:focus-visible{color:var(--ink)}.sprow__add:hover{background:var(--bg-active)}.sprow__add:disabled{cursor:default;color:var(--ink-faint);background:0 0}.sprow__caret{opacity:.6;transition:rotate var(--dur-fast) var(--ease);flex:none;display:flex}.space[data-open] .sprow__caret{rotate:90deg}.sprow__folder{opacity:.75;flex:none;display:flex}.sprow__name{min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sprow__n{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);flex:none}.sidebar__foot{border-top:1px solid var(--bd-muted);padding:var(--s3) var(--s5) var(--s4);gap:var(--s3);flex-direction:column;display:flex}.sidebar__end{border-top:1px solid var(--bd-muted);padding:var(--s3)}.hostnav{flex-direction:column;gap:1px;max-height:40vh;margin:0 0 1px;padding:0;list-style:none;display:flex;overflow-y:auto}.hostnav__label,.usermenu__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.meter{flex-direction:column;gap:6px;display:flex}.meter__row{align-items:baseline;gap:var(--s2);font-family:var(--font-mono);font-size:var(--fs-data);font-variant-numeric:tabular-nums;color:var(--ink-muted);display:flex}.meter__row b{color:var(--ink);font-weight:500}.meter__row>:first-child{white-space:nowrap;flex:none}.meter__row>:last-child{margin-left:auto}.diag{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.diag li{gap:var(--s2);font-size:var(--fs-data);color:var(--ink-muted);overflow-wrap:anywhere;grid-template-columns:auto minmax(0,1fr);line-height:1.45;display:grid}.diag li[data-level=warn] .diag__sign{color:var(--warning)}.diag li[data-level=failed] .diag__sign{color:var(--danger)}.main{min-width:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--glow-1), var(--glow-2), var(--bg-canvas);grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:relative}.topbar{z-index:2;align-items:center;gap:var(--s3);height:var(--h-header);padding:0 var(--s5);background:var(--bg-canvas);border-bottom:1px solid var(--bd-muted);display:flex;position:absolute;inset:0 0 auto}.topbar__title{letter-spacing:var(--tracking-lg);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:600;line-height:1.3;overflow:hidden}.topbar__facts{align-items:center;gap:var(--s3);min-width:0;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-muted);margin-left:auto;display:flex}.topbar__facts>:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.path{min-width:0;display:inline-flex}.path i{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-style:normal;overflow:hidden}.path b{color:var(--ink);white-space:nowrap;font-weight:400}.conn{font-family:var(--font-mono);font-size:var(--fs-micro);border:1px solid var(--bd-base);border-radius:var(--r-pill);color:var(--ink-muted);white-space:nowrap;align-items:center;gap:6px;padding:2px 9px 2px 7px;display:inline-flex}.conn:before{content:"";border-radius:var(--r-pill);background:currentColor;width:5px;height:5px}.conn[data-conn=open]{color:var(--success);border-color:color-mix(in oklab, var(--success) 34%, transparent)}.conn[data-conn=connecting],.conn[data-conn=reconnecting]{color:var(--warning);border-color:color-mix(in oklab, var(--warning) 34%, transparent)}.conn[data-conn=connecting]:before,.conn[data-conn=reconnecting]:before{animation:pulse 1.2s var(--ease) infinite}.conn[data-conn=closed]{color:var(--danger);border-color:color-mix(in oklab, var(--danger) 40%, transparent)}.banner{align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s6);background:var(--del-bg);color:var(--danger);font-size:var(--fs-sm);border-bottom:1px solid color-mix(in oklab, var(--danger) 24%, transparent);display:flex}.banner p{margin:0}.banner__hint{color:var(--ink-muted);margin-top:2px}.banner button{margin-left:auto}.thread{scrollbar-gutter:stable both-edges;padding:calc(var(--h-header) + var(--s8)) var(--s6) var(--s10);overflow-y:auto}.main:has(>.bannerslot>.banner){padding-top:var(--h-header)}.main:has(>.bannerslot>.banner) .thread{padding-top:var(--s8)}.thread__column{max-width:var(--w-read);margin:0 auto}.thread__tail{bottom:var(--s5);z-index:1;justify-content:center;align-items:flex-end;height:0;display:flex;position:sticky}.tobottom{background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r-pill);width:32px;height:32px;color:var(--ink-muted);box-shadow:var(--shadow-pop);cursor:pointer;animation:shell-in var(--dur) var(--ease);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);justify-content:center;align-items:center;padding:0;display:flex}.tobottom:hover{background:var(--bg-raise);color:var(--ink)}.tobottom:focus-visible{border-radius:var(--r-pill)}.composer-region{width:100%;max-width:calc(var(--w-frame) + 2 * var(--s6));padding:0 calc(var(--s6) + var(--w-gutter)) max(var(--s5), env(safe-area-inset-bottom));margin:0 auto;position:relative}.composer{background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r-xl);box-shadow:var(--shadow-control);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);grid-template-rows:auto auto;display:grid}.composer-region:has(.dock) .dock{z-index:1;inset:auto calc(var(--s6) + var(--w-gutter)) var(--s5);position:absolute}.composer-region:has(.crossbar) .composer{border-top-left-radius:0;border-top-right-radius:0}.composer-region:has(.crossbar) .crossbar{border-radius:var(--r-xl) var(--r-xl) 0 0;border-bottom:none;margin-bottom:-1px}.composer-region:has(.autobar) .composer{border-top-left-radius:0;border-top-right-radius:0}.composer-region:has(.autobar) .autobar{border-radius:var(--r-xl) var(--r-xl) 0 0;border-bottom:none;margin-bottom:-1px}.composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft)}.composer[aria-disabled=true]{opacity:.72}.composer__input{resize:none;padding:var(--s3) var(--s4) var(--s2);background:0 0;border:none;outline:none;min-height:62px;line-height:1.6}.composer__input::placeholder{color:var(--ink-faint)}.composer__bar{align-items:center;gap:var(--s2);padding:0 var(--s2) var(--s2) var(--s3);display:flex}.composer__hint{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);margin-left:auto}.composer__bar .btn--primary{margin-left:auto}.composer__hint+.btn--primary{margin-left:0}.composer__usage{align-items:baseline;gap:var(--s1);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);display:inline-flex;overflow:hidden}.composer__usage-scope{font-family:var(--font-sans)}.composer__usage b{color:var(--ink-muted);font-weight:500}.xchip{align-items:center;gap:var(--s1);padding:3px var(--s2) 3px 3px;border-radius:var(--r);background:var(--bg-active);font-size:var(--fs-data);color:var(--ink);white-space:nowrap;display:inline-flex}.xchip__x{border-radius:var(--r-sm);cursor:pointer;width:18px;height:18px;color:var(--ink-muted);background:0 0;border:none;place-items:center;padding:0;display:grid}.xchip__x:hover{background:var(--bg-raise);color:var(--ink)}.composer__reject{padding:0 var(--s3) var(--s2);font-size:var(--fs-micro);color:var(--warning);max-height:6.5rem;margin:0;list-style:none;overflow-y:auto}.composer__oversize{padding:0 var(--s3) var(--s2);font-size:var(--fs-micro);color:var(--danger);margin:0}.composer__rejects{align-items:flex-start;display:flex}.composer__rejects .composer__reject{flex:1;min-width:0}.composer__notice-head{color:var(--ink-faint)}.composer__reject[data-tone=ok]{color:var(--ink-muted)}.composer__notice-spin{vertical-align:-1px;border-radius:var(--r-pill);border:1.5px solid var(--bd-strong);border-top-color:var(--ink-muted);width:9px;height:9px;margin-inline-end:var(--s1);animation:.7s linear infinite spin;display:inline-block}.cmdpalette{z-index:1;inset:auto calc(var(--s6) + var(--w-gutter)) auto;margin:0 0 var(--s2);padding:var(--s1);background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r-lg);max-height:15rem;box-shadow:var(--shadow-pop);list-style:none;position:absolute;bottom:calc(100% + 4px);overflow-y:auto}.cmdpalette__row{align-items:baseline;gap:var(--s2);padding:var(--s1) var(--s2);border-radius:var(--r-sm);cursor:pointer;display:flex}.cmdpalette__row[data-active=on]{background:var(--accent-soft)}.cmdpalette__row[data-active=on] .cmdpalette__desc,.cmdpalette__row[data-active=on] .cmdpalette__hint,.cmdpalette__row[data-active=on] .refopt__meta{color:var(--ink-muted)}.cmdpalette__name{font-family:var(--font-mono);color:var(--ink);white-space:nowrap}.cmdpalette__hint{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap}.cmdpalette__desc{font-size:var(--fs-micro);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.cmdpalette__group{padding:var(--s1) var(--s2);font-size:var(--fs-micro);color:var(--ink-faint);letter-spacing:.04em}.refopt__title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.refopt__meta{font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap;margin-left:auto}.userimgs{gap:var(--s1);margin-bottom:var(--s2);flex-wrap:wrap;display:flex}.userimgs__item{min-width:0;margin:0}.userimgs__img{object-fit:contain;border:1px solid var(--bd-base);border-radius:var(--r-md);background:var(--bg-raise);max-width:min(320px,100%);max-height:240px;display:block}.userimgs__fallback{font-size:var(--fs-micro);color:var(--ink-faint)}.refcards{gap:var(--s1);margin-bottom:var(--s2);flex-direction:column;display:flex}.refcard{align-items:baseline;gap:var(--s2);padding:var(--s1) var(--s2);border:1px solid var(--bd-base);border-radius:var(--r-md);background:var(--bg-raise);display:flex}.refcard__label{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap}.refcard__title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.refcard__count{font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap;margin-left:auto}.refcard__note{font-size:var(--fs-micro);color:var(--warning);white-space:normal}.shots{gap:var(--s2);padding:var(--s3) var(--s4) 0;flex-wrap:wrap;display:flex}.shot{box-sizing:border-box;border:1px solid var(--bd-base);border-radius:var(--r);background:var(--bg-code);flex:none;width:64px;height:64px;margin:0;position:relative;overflow:hidden}.shot__img{object-fit:cover;width:100%;height:100%;display:block}.shot__x{border-radius:var(--r-pill);color:#fff;cursor:pointer;width:18px;height:18px;transition:background var(--dur-fast) var(--ease);background:#0000008c;border:none;place-items:center;padding:0;display:grid;position:absolute;top:3px;right:3px}.shot__x:hover{background:var(--danger)}.shot__size{color:#fff;font-family:var(--font-mono);text-align:center;background:#0009;margin:0;padding:1px 4px;font-size:10px;line-height:1.4;position:absolute;inset:auto 0 0}.shot--reading{width:auto;max-width:200px;padding:0 var(--s2);color:var(--ink-muted);font-size:var(--fs-micro);animation:pulse 1.4s var(--ease) infinite;background:0 0;border-style:dashed;align-items:center;gap:6px;display:flex}.shot__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.shot__note{color:var(--ink-faint);opacity:.8;flex:none}.shot__spin{border:1.5px solid var(--bd-strong);border-top-color:var(--ink-faint);border-radius:var(--r-pill);flex:none;width:10px;height:10px;animation:.8s linear infinite spin}.composer__reject-x{margin:0 var(--s3) var(--s2) 0;border-radius:var(--r-pill);color:var(--ink-faint);cursor:pointer;background:0 0;border:none;flex:none;padding:1px;display:flex}.composer__reject-x:hover{color:var(--danger);background:var(--bg-raise)}.dropzone{z-index:2;pointer-events:none;background:color-mix(in oklab, var(--bg-canvas) 72%, transparent);place-items:center;display:grid;position:absolute;inset:0}.dropzone__box{align-items:center;gap:var(--s2);padding:var(--s3) var(--s5);background:var(--bg-raise);border:1px dashed color-mix(in oklab, var(--permission) 60%, var(--bd-strong));border-radius:var(--r-lg);color:var(--ink-muted);box-shadow:var(--shadow-pop);display:flex}.composer__foot{align-items:center;gap:var(--s3);padding:var(--s2) var(--s1) 0;font-size:var(--fs-micro);color:var(--ink-faint);display:flex}.fact{align-items:center;gap:var(--s1);text-overflow:ellipsis;white-space:nowrap;min-width:0;display:inline-flex;overflow:hidden}.fact[data-perm]{color:var(--permission)}.fact--toggle,.fact--menu,.fact--link{padding:1px var(--s2);color:inherit;border:1px solid var(--bd-muted);border-radius:var(--r-pill);cursor:pointer;background:0 0}.fact--toggle:hover:not(:disabled),.fact--link:hover{color:var(--ink);background:var(--bg-raise)}.fact--menu:hover:not(:disabled){background:var(--bg-raise)}.fact--menu[aria-expanded=true]{background:var(--bg-raise);border-color:var(--bd-strong)}.fact--toggle:disabled,.fact--menu:disabled{cursor:progress;opacity:.6}.fact--toggle[data-on]{color:var(--permission);border-color:var(--permission);background:var(--bg-raise)}.fact--plan{color:var(--permission)}.fact--toggle,.fact--menu,.fact--err{flex-shrink:0}.fact--err{color:var(--danger)}.inspector{background:var(--bg-chrome);border-left:1px solid var(--bd-muted);grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.tabs{height:var(--h-header);padding:0 var(--s3);border-bottom:1px solid var(--bd-muted);scrollbar-width:none;align-items:center;gap:2px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{border-radius:var(--r-sm);cursor:pointer;height:28px;color:var(--ink-muted);font-size:var(--fs-sm);transition:background var(--dur-fast) var(--ease);background:0 0;border:none;flex:none;align-items:center;gap:5px;padding:0 10px;display:flex}.tab__label{white-space:nowrap}.tab:hover:not([aria-selected=true]){background:var(--bg-raise);color:var(--ink)}.tab[aria-selected=true]{background:var(--bg-active);color:var(--ink);font-weight:500}.tab__n{font-size:var(--fs-micro);font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--ink) 12%, transparent);border-radius:var(--r-pill);text-align:center;min-width:16px;padding:0 5px}.inspector__body{padding:var(--s4);overflow-y:auto}.inspector__panel[hidden]{display:none}.ipane__head{margin-bottom:var(--s3);align-items:center;gap:2px;display:flex}.ipane__title{font-size:var(--fs-body);letter-spacing:var(--tracking-lg);color:var(--ink);margin:0;font-weight:600}.patches{gap:var(--s4);flex-direction:column;display:flex}.patches .diff__body{max-height:none}.patches__locate{margin-top:var(--s1);align-self:flex-end}.patches__item{flex-direction:column;display:flex}.iempty{padding:var(--s6) var(--s4);text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.iempty__sign{color:var(--bd-strong);place-items:center;display:grid}.iempty__sign .i{width:26px;height:26px}.iempty__title{font-size:var(--fs-sm);color:var(--ink-muted);margin:0;font-weight:500}.iempty__hint{max-width:260px;font-size:var(--fs-data);color:var(--ink-faint);margin:0;line-height:1.65}.empty{color:var(--ink-faint);font-size:var(--fs-sm);text-align:center;padding:var(--s4) var(--s3)}.btn{background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r);padding:5px var(--s3);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-control);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);align-items:center;gap:6px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--bd-strong);background:color-mix(in srgb, var(--ink) 4%, var(--bg-card))}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{color:var(--ink-faint);cursor:not-allowed;box-shadow:none}.btn--primary{background:var(--grad-accent);color:var(--accent-ink);box-shadow:0 .5px 1px #0000001f, 0 1px 3px color-mix(in srgb, var(--accent) 34%, transparent);border-color:#0000;font-weight:500}.btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:#0000}.btn--primary:active:not(:disabled){background:var(--accent-press)}.btn--primary:disabled{background:var(--bg-active);color:var(--ink-faint)}.btn--danger{color:var(--danger);border-color:color-mix(in oklab, var(--danger) 30%, transparent)}.btn--danger:hover:not(:disabled){border-color:var(--danger);background:var(--del-bg)}.btn--ghost{color:var(--ink-muted);box-shadow:none;background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--bg-raise);color:var(--ink);border-color:#0000}.btn--icon{padding:6px}.btn--row{width:100%;padding:7px var(--s2);justify-content:flex-start;display:flex}.btn--row kbd{margin-left:auto}.navgroup{flex-direction:column;gap:1px;display:flex}.navgroup__mark{color:var(--ink-faint);margin-left:auto;display:flex}.navgroup__head[aria-disabled=true]{cursor:default}.navgroup__sub{margin:0 0 0 calc(var(--s2) + 9px);padding:0 0 0 var(--s2);border-left:1px solid var(--bd-muted);flex-direction:column;gap:1px;list-style:none;display:flex}.navgroup__sub .btn--row{padding:5px var(--s2);font-size:var(--fs-data);color:var(--ink-muted)}.navgroup__sub .btn--row[aria-current=true]{background:var(--accent-soft);color:var(--ink);font-weight:500}.btn__dot{border-radius:var(--r-pill);background:var(--danger);width:5px;height:5px;margin-left:auto}.btn__dot--accent{background:var(--accent)}.btn__spin{border-radius:var(--r-pill);border:1.5px solid var(--bd-strong);border-top-color:var(--ink-muted);flex:none;width:11px;height:11px;animation:.7s linear infinite spin}.btn--row .btn__spin{margin-left:auto}.btn--row .btn__spin+.btn__dot{margin-left:0}.btn--sm{padding:3px var(--s2);font-size:var(--fs-data)}.btn small{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint)}.btn--primary small{color:var(--accent-ink)}.fatal{max-width:560px;padding:0 var(--s4);margin:15vh auto}.fatal h1{color:var(--danger);font-size:var(--fs-title)}.crossbar{align-items:center;gap:var(--s2);margin-bottom:var(--s2);padding:7px var(--s3) 7px var(--s4);background:var(--bg-card);border:1px solid color-mix(in oklab, var(--danger) 38%, transparent);border-radius:var(--r);font-size:var(--fs-sm);animation:shell-in var(--dur-slow) var(--ease);display:flex}.crossbar__sign{color:var(--danger);display:flex}.crossbar__who{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}.crossbar__cold,.crossbar__age,.crossbar__more,.crossbar>.btn{flex:none}.crossbar__cold{padding:1px var(--s2);font-size:var(--fs-micro);color:var(--ink-faint);border:1px solid var(--bd-base);border-radius:var(--r-pill)}.crossbar__age{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.crossbar__more{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint)}.autobar{align-items:center;gap:var(--s2);margin-bottom:var(--s2);padding:7px var(--s3) 7px var(--s4);background:var(--bg-card);border:1px solid color-mix(in oklab, var(--warning) 38%, transparent);border-radius:var(--r);font-size:var(--fs-sm);animation:shell-in var(--dur-slow) var(--ease);display:flex}.autobar__sign{color:var(--warning);display:flex}.autobar__who{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}.autobar__rule{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-muted);flex:0 auto;overflow:hidden}.autobar__more,.autobar>.btn{flex:none}.autobar__more{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);font-variant-numeric:tabular-nums}.autobar[data-kind=running]{border-color:var(--bd-base)}.autobar__spin{border-radius:var(--r-pill);border:1.5px solid var(--bd-strong);border-top-color:var(--ink-muted);flex:none;width:11px;height:11px;animation:.7s linear infinite spin}.toasts{right:calc(var(--s6) + var(--w-gutter));z-index:var(--z-toast);align-items:flex-end;gap:var(--s2);padding-bottom:var(--s3);pointer-events:none;flex-direction:column;display:flex;position:absolute;bottom:100%}.toast{align-items:center;gap:var(--s2);max-width:380px;padding:var(--s2) var(--s2) var(--s2) var(--s3);background:var(--bg-card);border:1px solid var(--bd-muted);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);font-size:var(--fs-sm);pointer-events:auto;animation:shell-in var(--dur-slow) var(--ease-out);display:flex}.toast__sign{font-family:var(--font-mono);color:var(--success)}.toast[data-tone=error] .toast__sign{color:var(--danger)}.toast__who{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.toast__stat{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);white-space:nowrap;flex:none}.toast>.btn{flex:none}.dock{background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);animation:shell-in var(--dur-slow) var(--ease-out);overflow:hidden}.dock[data-kind=permission]{border-color:color-mix(in oklab, var(--warning) 42%, transparent);background-color:var(--bg-card);background-image:var(--wash-warning)}.dock[data-kind=plan],.dock[data-kind=question]{border-color:color-mix(in oklab, var(--info) 42%, transparent);background-color:var(--bg-card);background-image:var(--wash-info)}.dock__head{align-items:center;gap:var(--s2);padding:var(--s3) var(--s4) var(--s2);font-size:var(--fs-sm);display:flex}.dock__sign{font-family:var(--font-mono);display:flex}.dock[data-kind=permission] .dock__sign{color:var(--warning)}.dock[data-kind=plan] .dock__sign,.dock[data-kind=question] .dock__sign{color:var(--info)}.dock__title{font-weight:500}.dock__queue{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);margin-left:auto}.dock__body{padding:0 var(--s4) var(--s3)}.facts{gap:5px var(--s3);font-size:var(--fs-data);grid-template-columns:auto minmax(0,1fr);max-height:34vh;margin:0;display:grid;overflow-y:auto}.facts dt{font-size:var(--fs-data);color:var(--ink-faint);padding-top:1px}.facts dd{font-family:var(--font-mono);overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.5}.facts__scroll{max-height:18vh;overflow-y:auto}.facts__more{width:fit-content;padding:0 var(--s1);font-family:var(--font-sans);font-size:var(--fs-micro);color:var(--ink-muted);background:var(--bg-card);border:1px solid var(--bd-muted);border-radius:var(--r-sm);margin-left:auto;line-height:1.6;display:block}.facts dd em{color:var(--ink-muted);font-style:normal}.dock__foot{gap:var(--s2);padding:var(--s3) var(--s4);border-top:1px solid var(--bd-muted);background:color-mix(in oklab, var(--bg-card) 60%, var(--bg-canvas));flex-wrap:wrap;display:flex}.dock__exits{justify-content:flex-end;gap:var(--s2);flex-wrap:wrap;margin-left:auto;display:flex}.dock__plan{max-height:34vh;padding-right:var(--s2);margin-bottom:var(--s3);overflow-y:auto}.dock__note{align-items:center;gap:var(--s2);font-size:var(--fs-data);color:var(--ink-muted);display:flex}.dock__note input{background:var(--bg-code);border:1px solid var(--bd-base);border-radius:var(--r);min-width:0;padding:6px var(--s2);font-size:max(var(--fs-data), var(--fs-touch-min));flex:1}.dock__note input:focus{border-color:color-mix(in oklab, var(--permission) 55%, var(--bd-strong))}.qtabs{gap:var(--s1);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.qtabs__tab{min-width:0;padding:4px var(--s2);border:1px solid var(--bd-base);border-radius:var(--r-pill);color:var(--ink-muted);font:inherit;font-size:var(--fs-data);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;align-items:center;gap:6px;display:flex}.qtabs__tab:hover{background:var(--bg-raise)}.qtabs__tab[aria-selected=true]{background:var(--bg-active);border-color:var(--bd-strong);color:var(--ink)}.qtabs__ord{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint)}.qtabs__name{overflow-wrap:anywhere;min-width:0}.qtabs__tab[data-answered] svg{color:var(--success)}.question__list{gap:var(--s3);flex-direction:column;max-height:46vh;display:flex;overflow-y:auto}.question__item{padding:var(--s2) var(--s3) var(--s3);border:1px solid var(--bd-base);border-radius:var(--r);overflow-wrap:anywhere;min-width:0;margin:0}.question__legend{width:100%;color:var(--ink);font-weight:500;line-height:var(--lh-body);margin-bottom:10px;padding:0}.question__option{gap:2px var(--s2);cursor:pointer;grid-template-columns:auto minmax(0,1fr);padding:3px 0;display:grid}.question__option>input{grid-row:1;align-self:center;margin:0}.question__label{overflow-wrap:anywhere;grid-column:2}.question__option>small{color:var(--ink-faint);line-height:var(--lh-body);overflow-wrap:anywhere;grid-column:2}.question__free{gap:var(--s1);margin-top:var(--s3);font-size:var(--fs-data);color:var(--ink-muted);flex-direction:column;display:flex}.question__free input{background:var(--bg-code);border:1px solid var(--bd-base);border-radius:var(--r);width:100%;min-width:0;padding:6px var(--s2)}@keyframes pulse{50%{opacity:.3}}@keyframes spin{to{rotate:360deg}}@keyframes shell-in{0%{opacity:0;transform:translateY(6px)}}.sidebar,.inspector{animation:shell-in var(--dur-slow) var(--ease) backwards}.inspector{animation-delay:60ms}.drawer-scrim{z-index:var(--z-drawer);background:var(--scrim);overscroll-behavior:contain;animation:drawer-scrim-in var(--dur) var(--ease);opacity:var(--drawer-progress,1);transition:opacity var(--drawer-settle,0s) var(--ease);position:fixed;inset:0}@keyframes drawer-in-left{0%{transform:translate(-100%)}}@keyframes drawer-in-right{0%{transform:translate(100%)}}@keyframes drawer-scrim-in{0%{opacity:0}}@media (width<=1180px){.app,.app[data-inspector=open],.app[data-inspector=closed]{grid-template-columns:var(--w-sidebar) minmax(0, 1fr)}.inspector{display:none}.app[data-drawer=inspector] .inspector{width:min(var(--w-inspector), calc(100vw - var(--w-drawer-peek)));z-index:calc(var(--z-toast) - 1);box-shadow:var(--shadow-pop);animation:drawer-in-right var(--dur) var(--ease);translate:var(--drawer-drag,0px) 0;transition:translate var(--drawer-settle,0s) var(--ease);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);display:grid;position:fixed;inset-block:0;inset-inline-end:0}.tab__label{display:none}}@media (width<=860px){.app,.app[data-inspector=open],.app[data-inspector=closed]{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.app[data-drawer=sidebar] .sidebar{width:min(var(--w-sidebar), 86vw);z-index:calc(var(--z-toast) - 1);box-shadow:var(--shadow-pop);animation:drawer-in-left var(--dur) var(--ease);translate:var(--drawer-drag,0px) 0;transition:translate var(--drawer-settle,0s) var(--ease);touch-action:pan-y pinch-zoom;padding-left:env(safe-area-inset-left);padding-bottom:env(safe-area-inset-bottom);display:grid;position:fixed;inset-block:0;inset-inline-start:0}.thread{padding:calc(var(--h-header) + var(--s5)) var(--s4) var(--s8)}.main:has(>.bannerslot>.banner) .thread{padding-top:var(--s5)}.topbar,.composer-region{padding-inline:var(--s4)}.conn[data-conn=connected]{gap:0;padding:4px;font-size:0}}.topbar__nav{flex:none}.topbar__nav .i{transform:scaleX(-1)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (pointer:coarse){.btn{min-height:var(--tap-min)}.btn--icon,.srow__more,.sprow__add,.tobottom{min-width:var(--tap-min);min-height:var(--tap-min)}.fact{min-height:var(--tap-min)}.tab{min-width:var(--tap-min);min-height:var(--tap-min)}.ssearch,.ssearch input{min-height:var(--tap-min)}}:where(select,input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],input[type=number]){appearance:none;box-sizing:border-box;height:var(--ctl-h);padding:0 var(--ctl-pad-x);border:1px solid var(--ctl-bd);border-radius:var(--r);background:var(--ctl-bg);color:var(--ink);font-size:max(var(--fs-sm), var(--fs-touch-min));min-width:0;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);line-height:1}:where(select){padding-right:calc(var(--ctl-pad-x) * 2 + 14px);background-image:var(--ctl-chevron);background-repeat:no-repeat;background-position:right var(--ctl-pad-x) center;cursor:pointer}:where(input[type=date],input[type=time],input[type=datetime-local])::-webkit-calendar-picker-indicator{width:14px;height:14px;margin-left:var(--s1);opacity:.45;cursor:pointer;transition:opacity var(--dur-fast) var(--ease);padding:0}:where(input[type=date],input[type=time],input[type=datetime-local])::-webkit-calendar-picker-indicator:hover{opacity:.85}:where(input[type=number])::-webkit-inner-spin-button{appearance:none;margin:0}:where(input[type=number])::-webkit-outer-spin-button{appearance:none;margin:0}:where(select,input[type=date],input[type=time],input[type=number]):hover:not(:disabled){border-color:var(--ctl-bd-hover)}:where(select,input[type=date],input[type=time],input[type=number]):disabled{opacity:.55;cursor:default}:where(select,input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],input[type=number]):focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}:where(input[type=checkbox],input[type=radio]){accent-color:var(--accent);cursor:pointer;width:15px;height:15px;margin:0}:where(input[type=checkbox],input[type=radio]):disabled{cursor:default;opacity:.55}:where(input[type=range]){accent-color:var(--accent);cursor:pointer}.app[data-view=settings],.app[data-view=auto],.app[data-view=diff]{--w-navcol:216px;grid-template-columns:var(--w-sidebar) var(--w-navcol) minmax(0, 1fr)}.app[data-view=cap]{grid-template-columns:var(--w-sidebar) minmax(0, 1fr)}.navcol{background:var(--bg-chrome);border-right:1px solid var(--bd-muted);grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.navcol__head{align-items:center;gap:var(--s2);height:var(--h-header);padding:0 var(--s2) 0 var(--s4);border-bottom:1px solid var(--bd-muted);font-size:16px;font-weight:500;display:flex}.navcol__back{margin-left:auto}.navcol__list{padding:var(--s3) var(--s2);flex-direction:column;gap:1px;margin:0;list-style:none;display:flex;overflow-y:auto}.navcol__list button{align-items:center;gap:var(--s2);text-align:left;border-radius:var(--r);width:100%;padding:7px var(--s2);cursor:pointer;color:var(--ink-muted);font-size:var(--fs-sm);background:0 0;border:none;grid-template-columns:18px minmax(0,1fr) auto;display:grid}.navcol__list button:hover{background:var(--bg-raise);color:var(--ink)}.navcol__list button[aria-current=true]{background:var(--accent-soft);color:var(--ink);font-weight:500}.navcol__sign{color:var(--ink-faint);text-align:center}.navcol__list button[aria-current=true] .navcol__sign{color:var(--ink-muted)}.navcol__n{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.navcol__list button[aria-current=true] .navcol__n{color:var(--ink-muted)}.panelcol{background:var(--bg-canvas);grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.app[data-view=settings] .panelcol,.app[data-view=cap] .panelcol{background:var(--bg-chrome)}.panelcol__head{align-items:center;gap:var(--s3);height:var(--h-header);padding-block:0;padding-inline:var(--pad-center) max(var(--s3), var(--pad-center));border-bottom:1px solid var(--bd-muted);display:flex}.panelcol__title{letter-spacing:var(--tracking-lg);margin:0;font-size:16px;font-weight:600;line-height:1.3}.panelcol__n{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.panelcol__nav{transform:scaleX(-1)}.panelcol__body{overflow-y:auto}.panelcol__inner{padding-block:var(--s6) var(--s12);padding-inline:var(--pad-center)}.panelcol__lede{margin:0 0 var(--s8);max-width:var(--w-read);color:var(--ink-muted);font-size:var(--fs-sm)}.panelcol__lede code,.field__hint code,.note-block code{font-family:var(--font-mono);background:var(--bg-code);border:1px solid var(--bd-muted);border-radius:var(--r-sm);padding:1px 4px;font-size:.9em}.setgroup{margin-bottom:var(--s6);padding:0 var(--s4) var(--s3);background:var(--bg-card);border:1px solid var(--bd-muted);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.setgroup__title{padding:var(--s3) 0;border-bottom:1px solid var(--bd-muted);font-size:var(--fs-sm);color:var(--ink);margin:0;font-weight:600}.field{gap:var(--s2);padding:var(--s3) 0;border-bottom:1px solid var(--bd-muted);display:grid}.setgroup>:last-child{border-bottom:none}.setgroup>.setgroup__title:last-child,.setgroup>.field:last-child{padding-bottom:0}.field__head{align-items:center;gap:var(--s2);display:flex}.field__name,.field__label{font-size:var(--fs-sm);font-weight:500}.field__label[data-req]:after{content:attr(data-req);border-radius:var(--r-sm);background:var(--bg-active);color:var(--ink-muted);font-size:var(--fs-micro);vertical-align:1px;margin-inline-start:var(--s2);padding:1px 5px;font-weight:500}.field__hint{max-width:var(--w-read);color:var(--ink-muted);font-size:var(--fs-hint,var(--fs-data));margin:0;line-height:1.6}.field__ctl{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.why>summary{cursor:pointer;width:fit-content;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint)}.chain{margin:var(--s2) 0 0;gap:3px var(--s3);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);grid-template-columns:auto auto minmax(0,1fr);display:grid}.chain dt{white-space:nowrap}.chain dd{overflow-wrap:anywhere;margin:0}.chain__win{color:var(--success);white-space:nowrap}.chain [data-win]{color:var(--ink)}.cmd{padding:5px var(--s3);border-radius:var(--r);background:var(--bg-code);border:1px solid var(--bd-muted);font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink);overflow-wrap:anywhere}.seg{background:var(--bg-active);border-radius:var(--r);border:none;gap:2px;padding:2px;display:inline-flex}.seg button{padding:4px var(--s3);cursor:pointer;color:var(--ink-muted);font-size:var(--fs-data);white-space:nowrap;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:none;border-radius:6px;font-weight:500}.seg button:hover:not([aria-pressed=true]){color:var(--ink)}.seg button[aria-pressed=true]{background:var(--bg-card);color:var(--ink);box-shadow:var(--shadow-seg)}.note-block{margin:var(--s3) 0 0;max-width:var(--w-read);padding:2px 0 2px var(--s3);border-left:2px solid var(--bd-base);font-size:var(--fs-data);color:var(--ink-faint);line-height:1.65}.note-block[data-tone=warn]{border-left-color:var(--warning)}.note-block[data-tone=danger]{border-left-color:var(--danger)}.note-block p{margin:0}.note-block p+p,.note-block ul+p,.note-block p+ul{margin-top:var(--s2)}.note-block>details>summary{cursor:pointer;width:fit-content;color:var(--ink-faint)}.note-block>details[open]>summary{margin-bottom:var(--s2)}@media (width<=1080px){.app[data-view=settings],.app[data-view=auto],.app[data-view=diff]{grid-template-columns:var(--w-navcol) minmax(0, 1fr)}.app[data-view=settings] .sidebar,.app[data-view=auto] .sidebar,.app[data-view=diff] .sidebar{display:none}}@media (width<=860px){.app[data-view=cap]{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.app[data-view=settings],.app[data-view=auto],.app[data-view=diff]{grid-template-columns:minmax(0,1fr)}.navcol{display:none}.app[data-view=settings],.app[data-view=auto]{grid-template-rows:auto minmax(0,1fr)}.app[data-view=settings] .navcol,.app[data-view=auto] .navcol{border-right:none;border-bottom:1px solid var(--bd-muted);grid-template-rows:auto auto;display:grid}.app[data-view=settings] .navcol__list,.app[data-view=auto] .navcol__list{padding:var(--s2);gap:var(--s1);flex-direction:row;overflow:auto hidden}.app[data-view=settings] .navcol__list>li,.app[data-view=auto] .navcol__list>li{flex:none}.app[data-view=settings] .navcol__list button,.app[data-view=auto] .navcol__list button{white-space:nowrap}.app[data-view=settings] .navcol__head,.app[data-view=auto] .navcol__head{height:calc(var(--h-header) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}}@media (pointer:coarse){.navcol__list button{min-height:var(--tap-min)}}.cap__back{margin-right:var(--s2);margin-left:calc(var(--s2) * -1);padding:5px var(--s2);border-radius:var(--r-sm);color:var(--accent);font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);background:0 0;border:none;flex:none;align-items:center;gap:2px;font-weight:500;display:inline-flex}.cap__back:hover{background:var(--accent-soft)}.cap__back:active{transform:scale(.97)}.cap__back .i{transform:scaleX(-1)}.cap__title{align-items:center;gap:2px;display:inline-flex}.cap__search{width:260px;padding:0 var(--s2);background:var(--bg-raise);border-radius:var(--r-sm);color:var(--ink-faint);border:none;align-items:center;gap:6px;margin-left:auto;display:flex}.cap__search:focus-within{box-shadow:0 0 0 2px var(--accent), 0 0 0 5px var(--accent-soft)}.cap__search input{width:100%;font-size:max(var(--fs-sm), var(--fs-touch-min));color:var(--ink);background:0 0;border:none;outline:none;padding:5px 0}.cap__search input::-webkit-search-cancel-button{appearance:none}.cap__pane{padding-block:var(--s6) var(--s12);padding-inline:var(--pad-center)}.cap__lede{margin:0 0 var(--s6);max-width:var(--w-read);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-muted)}.cap__lede code,.cap__foot code,.cap__gnote code{font-family:var(--font-mono);color:var(--ink);font-size:.9em}.cap__group{margin-bottom:var(--s8)}.cap__ghead{align-items:baseline;gap:2px var(--s3);margin-bottom:var(--s4);grid-template-columns:minmax(0,1fr) auto;display:grid}.cap__gtitle{font-size:var(--fs-lg);letter-spacing:var(--tracking-lg);color:var(--ink);grid-column:1;margin:0;font-weight:600;line-height:1.3}.cap__gnote{max-width:var(--w-read);font-size:var(--fs-data);color:var(--ink-faint);grid-column:1;margin:0;line-height:1.6}.cap__trust{padding:3px var(--s2);border-radius:var(--r-pill);font-size:var(--fs-micro);flex:none;grid-area:1/2/span 2;align-self:center;align-items:center;gap:4px;font-weight:500;display:inline-flex}.cap__trust[data-trust=on]{background:var(--success);color:var(--ink-inverse)}.cap__trust[data-trust=off]{background:var(--warning);color:var(--ink-inverse)}.cap__foot{margin:var(--s3) 0 0;font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-faint)}.cap__gacts{align-items:flex-start;gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.cap__gacts>.mcpadd,.cap__gacts>.mcpcfg,.cap__gacts>.cap__foot{flex-basis:100%;margin:0}.mcpadd__bar,.roleadd__bar{margin:0 0 var(--s3);display:flex}.cap__gacts>.mcpadd__bar,.cap__gacts>.mcpcfg__bar{margin-bottom:0}:is(.cap__gacts:has(>.mcpadd)>.mcpcfg__bar,.cap__gacts:has(>.mcpcfg)>.mcpadd__bar){flex-basis:100%}.mcpadd,.roleadd{gap:var(--s3);margin:0 0 var(--s3);padding:var(--s3);border-radius:var(--r-lg);background:var(--bg-raise);max-width:var(--w-read);align-content:start;display:grid}.mcpadd__title,.roleadd__title{font-size:var(--fs-lg);letter-spacing:var(--tracking-lg);margin:0}.mcpadd label,.roleadd label{gap:var(--s1);display:grid}.mcpadd input[type=text],.mcpadd select,.roleadd input[type=text],.roleadd input[type=number]{box-sizing:border-box;height:var(--ctl-h);padding:0 var(--ctl-pad-x);border:1px solid var(--ctl-bd);border-radius:var(--r);background-color:var(--ctl-bg);color:var(--ink);font:inherit;font-size:max(var(--fs-sm), var(--fs-touch-min));transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease)}.mcpadd textarea,.roleadd textarea{box-sizing:border-box;padding:var(--s2) var(--ctl-pad-x);border:1px solid var(--ctl-bd);border-radius:var(--r);background:var(--ctl-bg);color:var(--ink);font:inherit;font-size:max(var(--fs-sm), var(--fs-touch-min));transition:border-color var(--dur-fast) var(--ease)}.mcpadd input:hover:not(:disabled,:focus-visible),.mcpadd select:hover:not(:disabled,:focus-visible),.mcpadd textarea:hover:not(:disabled,:focus-visible),.roleadd input:hover:not(:disabled,:focus-visible),.roleadd textarea:hover:not(:disabled,:focus-visible){border-color:var(--ctl-bd-hover)}.mcpadd input:focus-visible,.mcpadd select:focus-visible,.mcpadd textarea:focus-visible,.roleadd input:focus-visible,.roleadd textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft);outline:none}.mcpadd textarea,.roleadd__mono{font-family:var(--font-mono);font-size:max(var(--fs-data), var(--fs-touch-min));resize:vertical}.roleadd textarea{resize:vertical;line-height:var(--lh-body)}.mcpadd__error,.roleadd__error{align-items:flex-start;gap:var(--s2);padding:var(--s2);border:1px solid color-mix(in oklab, var(--danger) 35%, var(--bd-base));border-radius:var(--r);background:color-mix(in oklab, var(--danger) 12%, transparent);font-size:var(--fs-data);margin:0;line-height:1.6;display:flex}.mcpadd__error svg,.roleadd__error svg{color:var(--danger);flex:none;margin-top:2px}.mcpadd__act,.roleadd__act{gap:var(--s2);display:flex}.mcpcfg__bar{margin:0 0 var(--s3);display:flex}.mcpcfg{gap:var(--s3);margin:0 0 var(--s3);padding:var(--s3);border-radius:var(--r-lg);background:var(--bg-raise);align-content:start;display:grid}.mcpcfg__title{font-size:var(--fs-lg);letter-spacing:var(--tracking-lg);margin:0}.mcpcfg__path{align-items:center;gap:var(--s2);font-size:var(--fs-data);flex-wrap:wrap;margin:0;display:flex}.mcpcfg__path-label{color:var(--ink-muted)}.mcpcfg__path code{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink);word-break:break-all}.mcpcfg__dirty{border:1px solid color-mix(in oklab, var(--warning) 35%, var(--bd-base));border-radius:var(--r-sm);background:color-mix(in oklab, var(--warning) 12%, transparent);font-size:var(--fs-micro);color:var(--ink);padding:2px 6px}.mcpcfg__note{font-size:var(--fs-data);color:var(--ink-muted);margin:0}.mcpcfg__editor{border:1px solid var(--bd-base);border-radius:var(--r);background:var(--bg-card);grid-template-columns:auto minmax(0,1fr);height:22rem;display:grid;overflow:hidden}.mcpcfg__editor:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft)}.mcpcfg__gutter{padding:var(--s2) var(--s2) var(--s2) var(--s3);border-right:1px solid var(--bd-muted);background:var(--bg-code);color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--fs-data);line-height:var(--lh-code);text-align:right;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;overflow:hidden}.mcpcfg__code{position:relative;overflow:hidden}.mcpcfg__hl,.mcpcfg__ta{padding:var(--s2);font-family:var(--font-mono);font-size:var(--fs-data);line-height:var(--lh-code);white-space:pre;tab-size:2;border:0;margin:0;position:absolute;inset:0}.mcpcfg__hl{pointer-events:none;color:var(--ink);overflow:hidden}.mcpcfg__ta{color:#0000;caret-color:var(--ink);resize:none;background:0 0;overflow:auto}.mcpcfg__ta:focus-visible{outline:none}.mcpcfg__issues{gap:var(--s1);padding:var(--s2);border:1px solid color-mix(in oklab, var(--warning) 35%, var(--bd-base));border-radius:var(--r);background:color-mix(in oklab, var(--warning) 12%, transparent);font-size:var(--fs-data);margin:0;line-height:1.6;list-style:none;display:grid}.mcpcfg__issues li{align-items:flex-start;gap:var(--s2);display:flex}.mcpcfg__issues svg{color:var(--warning);flex:none;margin-top:2px}.mcpcfg__error{gap:var(--s2);padding:var(--s2);border:1px solid color-mix(in oklab, var(--danger) 35%, var(--bd-base));border-radius:var(--r);background:color-mix(in oklab, var(--danger) 12%, transparent);font-size:var(--fs-data);line-height:1.6;display:grid}.mcpcfg__error p{align-items:flex-start;gap:var(--s2);margin:0;display:flex}.mcpcfg__error svg{color:var(--danger);flex:none;margin-top:2px}.mcpcfg__receipt{align-items:flex-start;gap:var(--s2);font-size:var(--fs-data);color:var(--ink-muted);margin:0;line-height:1.6;display:flex}.mcpcfg__receipt svg{color:var(--success);flex:none;margin-top:2px}.mcpcfg__applied{font-size:var(--fs-data);line-height:1.6}.mcpcfg__applied p{margin:0 0 var(--s1);color:var(--ink-muted)}.mcpcfg__applied ul{gap:var(--s1);margin:0;padding:0;list-style:none;display:grid}.mcpcfg__applied li{align-items:baseline;gap:var(--s2);flex-wrap:wrap;display:flex}.mcpcfg__applied code{font-family:var(--font-mono);font-size:var(--fs-data)}.mcpcfg__applied li[data-action=removed] code{color:var(--ink-faint);text-decoration:line-through}.mcpcfg__why{color:var(--ink-muted)}.mcpcfg__act{gap:var(--s2);display:flex}@media (width<=1080px){.cap__search{display:none}}.cards{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(316px,1fr));display:grid}.cards--vary{align-items:start}.card{gap:var(--s2);background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r-lg);box-shadow:var(--shadow-card);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);flex-direction:column;padding:18px;display:flex}.card:hover{border-color:var(--bd-strong);box-shadow:0 1px 3px #0000000d,0 6px 16px -10px #00000038}.card__head{align-items:center;gap:var(--s2);display:flex}.card__ava{border-radius:var(--r);background-color:var(--bg-active);width:36px;height:36px;color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-data);text-transform:lowercase;flex:none;place-items:center;font-weight:500;display:grid}.card__ava[data-hue="1"]{background-color:color-mix(in oklab, var(--hue-1) 14%, var(--bg-card))}.card__ava[data-hue="2"]{background-color:color-mix(in oklab, var(--hue-2) 14%, var(--bg-card))}.card__ava[data-hue="3"]{background-color:color-mix(in oklab, var(--hue-3) 14%, var(--bg-card))}.card__ava[data-hue="4"]{background-color:color-mix(in oklab, var(--hue-4) 14%, var(--bg-card))}.card__ava[data-hue="5"]{background-color:color-mix(in oklab, var(--hue-5) 14%, var(--bg-card))}.card__ava[data-hue="6"]{background-color:color-mix(in oklab, var(--hue-6) 14%, var(--bg-card))}.card__id{flex-direction:column;min-width:0;display:flex}.card__name{font-family:var(--font-mono);font-size:var(--fs-body);color:var(--ink);font-weight:600;line-height:1.35}.card__nameline{align-items:baseline;gap:var(--s2);min-width:0;display:flex}.card__src{font-size:var(--fs-micro);color:var(--ink-faint)}.card__call{background:var(--accent);color:var(--accent-ink);border-color:#0000;flex:none;font-weight:500;box-shadow:0 .5px 1px #0000001f}.card__call,.card__takeover,.card__open{border-radius:var(--r-pill);padding:4px 14px}.card__call:hover:not(:disabled){background:var(--accent-hover);border-color:#0000}.card__call:active:not(:disabled){background:var(--accent-press)}.card__call:disabled{background:var(--bg-active);color:var(--ink-faint);box-shadow:none}.card__badge{padding:2px var(--s2);border-radius:var(--r-pill);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;background:var(--bg-active);color:var(--ink-muted);flex:none}.card__badge[data-tone=ok]{background:var(--success);color:var(--ink-inverse)}.card__badge[data-tone=danger]{background:var(--danger);color:var(--ink-inverse)}.card__badge[data-tone=warn]{background:var(--warning);color:var(--ink-inverse)}.card__desc{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-muted);-webkit-line-clamp:3;line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.card__desc[data-open]{-webkit-line-clamp:none;line-clamp:none;display:block;overflow:visible}.card__more{color:var(--accent);font:inherit;font-size:var(--fs-data);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin:0;padding:0;font-weight:500}.card__more:hover{text-decoration:underline}.card__desc code{font-family:var(--font-mono);color:var(--ink);font-size:.9em}.card__foot{justify-content:flex-end;align-items:center;gap:var(--s2);border-top:1px solid var(--bd-muted);flex-wrap:wrap;margin-top:auto;padding-top:14px;display:flex}.card__meta{align-items:baseline;gap:2px var(--s2);flex-wrap:wrap;margin:0;display:flex}.card__stat{font-size:var(--fs-micro);color:var(--ink-faint)}.card__stat+.card__stat:before{content:"·";margin-right:var(--s2);color:var(--bd-strong)}.card__stat b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-muted);font-weight:500}.card__takeover,.card__open{background:var(--bg-raise);color:var(--ink);border-color:#0000}.card__takeover:hover:not(:disabled),.card__open:hover:not(:disabled){background:var(--bg-active);border-color:#0000}.card__tools>summary{cursor:pointer;width:fit-content;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint)}.card__hint{margin:var(--s2) 0 0;font-size:var(--fs-micro);color:var(--ink-faint);line-height:1.7}.card__hint code{font-family:var(--font-mono);color:var(--ink-muted)}.card__notice{padding:var(--s2) var(--s3);border-radius:var(--r);background:color-mix(in oklab, var(--warning) 9%, transparent);font-size:var(--fs-micro);color:var(--ink-muted);gap:6px;margin:0;line-height:1.7;display:flex}.card__nsign{color:var(--warning);flex:none}.card__notice[data-tone=error]{background:var(--del-bg)}.card__notice[data-tone=error] .card__nsign{color:var(--danger)}.card__notice code{font-family:var(--font-mono);color:var(--ink)}.card--conn .card__foot{justify-content:flex-start}.card--conn[data-state=failed]{border-color:color-mix(in oklab, var(--danger) 32%, var(--bd-base))}.card--conn[data-state=login]{border-color:color-mix(in oklab, var(--warning) 38%, var(--bd-base))}.chips{margin-top:var(--s2);flex-wrap:wrap;gap:4px;display:flex}.chip{border-radius:var(--r-sm);background:var(--bg-code);border:1px solid var(--bd-muted);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-muted);padding:2px 6px}.chip[data-cut]{color:var(--ink-faint);opacity:.7;text-decoration:line-through}.card__skillnames{margin-top:var(--s2);flex-wrap:wrap;gap:4px;display:flex}.card__skill{border-radius:var(--r-sm);background:var(--bg-raise);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);padding:2px 6px}.card__act{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.card__spin{border-radius:var(--r-pill);border:1.5px solid var(--bd-strong);border-top-color:var(--ink-muted);flex:none;width:11px;height:11px;animation:.7s linear infinite spin}.card__foot>.card__hint{flex-basis:100%;margin-top:0}.slots{background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r-lg);box-shadow:var(--shadow-card);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.slot{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--bg-card);grid-template-columns:minmax(0,220px) minmax(0,1fr) auto;display:grid}.slots[data-act] .slot{grid-template-columns:minmax(0,220px) minmax(0,1fr) auto auto}.slot__act{justify-content:flex-end;justify-self:end;align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.slots[data-kind=connector] .slot{grid-template-columns:minmax(0,1fr) auto}.slots[data-kind=plugin]{grid-template-columns:fit-content(300px) minmax(0,1fr) fit-content(176px);display:grid}.slots[data-kind=plugin][data-act]{grid-template-columns:fit-content(300px) minmax(0,1fr) fit-content(176px) max-content}.slots[data-kind=plugin] .slot{grid-column:1/-1;grid-template-columns:subgrid}.slots[data-kind=plugin] .slot__path{align-items:center;gap:var(--s1);flex-wrap:wrap;display:flex}.slots[data-kind=plugin] .slot__stat{justify-content:flex-end;align-items:center;gap:var(--s1);white-space:normal;flex-wrap:wrap;display:flex}.slot+.slot{border-top:1px solid var(--bd-muted)}.slot__path{font-family:var(--font-mono);font-size:var(--fs-data);overflow-wrap:anywhere}.slot__path i{color:var(--ink-faint);font-style:normal}.slot__path b{color:var(--ink);font-weight:500}.slot__desc{font-size:var(--fs-sm);color:var(--ink-muted);line-height:1.6}.slot__desc b,.skill__ask{color:var(--ink);font-weight:500}.skill__err{margin-left:var(--s2);font-weight:500}.slot__stat{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);white-space:nowrap}.slot__stat[data-residency]:not([data-residency=indexed]){font-variant-numeric:normal;font-family:inherit;font-style:italic}.locked{padding:var(--s4);border:1px dashed color-mix(in oklab, var(--warning) 40%, var(--bd-base));border-radius:var(--r-lg);background:color-mix(in oklab, var(--warning) 5%, transparent)}.locked__line{margin:0 0 var(--s2);font-size:var(--fs-sm);color:var(--ink);font-weight:500}.locked__why{margin:0 0 var(--s2);max-width:var(--w-read);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-muted)}.locked__why code{font-family:var(--font-mono);color:var(--ink);font-size:.9em}.locked__act{align-items:center;gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}@media (width<=760px){.slot,.slots[data-act] .slot,.slots[data-kind=plugin],.slots[data-kind=plugin][data-act]{grid-template-columns:minmax(0,1fr) auto}.slots[data-kind=plugin] .slot{grid-template-columns:subgrid}.slot__desc{grid-column:1/-1}}.skillbody{gap:var(--s3);max-width:var(--w-read);flex-direction:column;display:flex}.skillbody__head{align-items:center;gap:var(--s3);display:flex}.skillbody__name{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink);font-weight:500}.skillbody__note,.skillbody__size{font-size:var(--fs-micro);color:var(--ink-faint);margin:0;line-height:1.7}.skillbody__size{padding-top:var(--s2);border-top:1px solid var(--bd-muted);font-variant-numeric:tabular-nums}.skimport__entry{margin-bottom:var(--s3);justify-content:flex-end;display:flex}.skimport{gap:var(--s4);flex-direction:column;min-width:0;display:flex}.skimport>.cap__lede{margin-bottom:0}.skimport__head{align-items:center;gap:var(--s3);display:flex}.skimport__back{margin-left:calc(var(--s3) * -1)}.skimport__title{font-size:var(--fs-sm);color:var(--ink);font-weight:600}.skimport__form{align-items:center;gap:var(--s2);flex-wrap:wrap;max-width:560px;display:flex}.skimport__path{flex:1;min-width:220px}.skimport__pick{background:var(--bg-raise);color:var(--ink);border-color:#0000}.skimport__pick:hover:not(:disabled){background:var(--bg-active);border-color:#0000}.skimport__browse{background:var(--bg-card);border:1px solid var(--bd-muted);border-radius:var(--r-lg);padding:var(--s3);gap:var(--s2);flex-direction:column;display:flex}.skimport__crumb{justify-content:space-between;align-items:center;gap:var(--s3);font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-muted);overflow-wrap:anywhere;display:flex}.skimport__dirs{flex-direction:column;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.skimport__dir{text-align:left;border-radius:var(--r);width:100%;padding:4px var(--s2);font:inherit;font-size:var(--fs-sm);color:var(--ink);cursor:pointer;background:0 0;border:0;display:block}.skimport__dir:hover:not(:disabled),.skimport__dir:focus-visible:not(:disabled){background:var(--bg-raise)}.skimport__dir:disabled{color:var(--ink-faint);cursor:default}.skimport__hidden{align-items:center;gap:var(--s2);font-size:var(--fs-micro);color:var(--ink-faint);cursor:pointer;display:flex}.skimport__hidden:hover{color:var(--ink)}.skimport__omitted{padding:4px var(--s2);font-size:var(--fs-micro);color:var(--ink-faint)}.skimport__result{gap:var(--s3);flex-direction:column;display:flex}.skimport__count{font-size:var(--fs-sm);color:var(--ink);margin:0;font-weight:600}.slot[data-conflict=refuse]{background:color-mix(in oklab, var(--danger) 8%, transparent)}.slot[data-conflict=shadowed]{background:color-mix(in oklab, var(--warning) 10%, transparent)}.skimport__warn{color:var(--ink);font-weight:500}.skimport__act{justify-content:flex-end;gap:var(--s2);display:flex}.skimport__names{gap:var(--s2);font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.skimport__issues{background:color-mix(in oklab, var(--warning) 8%, transparent);border:1px solid color-mix(in oklab, var(--warning) 22%, transparent);border-radius:var(--r-lg);padding:var(--s3)}.skimport__issues-head{margin:0 0 var(--s2);font-size:var(--fs-sm);color:var(--ink);font-weight:600}.skimport__issues ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.skimport__issues li{gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-muted);overflow-wrap:anywhere;line-height:1.6;display:flex}.skimport__issues code{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-faint);flex:none}.skills__removed{margin-bottom:var(--s12)}.plug{gap:var(--s6);flex-direction:column;display:flex}.plug__sec{gap:var(--s3);flex-direction:column;display:flex}.plug__head{font-size:var(--fs-lg);letter-spacing:var(--tracking-lg);color:var(--ink);margin:0;font-weight:600;line-height:1.3}.plug__restart{gap:var(--s2);flex-direction:column;display:flex}.plug__restart-head{align-items:center;gap:var(--s2);margin:0;display:flex}.plug__counts{margin-left:var(--s2);color:var(--ink-faint);font-style:normal}.plug__err{margin-left:var(--s2);font-weight:500}.plug__warn{color:var(--ink);font-weight:500}.plug__ask{font-weight:500}.plug__tag{box-sizing:border-box;min-height:20px;padding:2px var(--s2);border:1px solid var(--bd-muted);border-radius:var(--r-pill);background:var(--bg-raise);font-size:var(--fs-data);color:var(--ink-muted);white-space:nowrap;align-items:center;line-height:1.3;display:inline-flex}.plug__author{gap:var(--s1)}.slot[data-state=pending],.slot[data-state=stale]{background:color-mix(in oklab, var(--warning) 10%, transparent)}.slot[data-state=off]{background:color-mix(in oklab, var(--danger) 8%, transparent)}.plug__prev{gap:var(--s3);flex-direction:column;display:flex}.plug__prev-head{font-size:var(--fs-sm);color:var(--ink-muted);align-items:center;display:flex}.plug__result{gap:var(--s3);max-width:var(--w-read);padding:var(--s4);border:1px solid var(--bd-base);border-radius:var(--r-lg);background:var(--bg-card);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.plug__title{font-size:var(--fs-lg);letter-spacing:var(--tracking-lg);color:var(--ink);margin:0;font-weight:600}.plug__result>.cap__lede{margin-bottom:0}.plug__facts{gap:var(--s1) var(--s3);padding:var(--s3) 0;border-block:1px solid var(--bd-muted);font-size:var(--fs-sm);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.plug__facts dt{color:var(--ink-faint)}.plug__facts dd{color:var(--ink);overflow-wrap:anywhere;margin:0}.plug__brings{font-size:var(--fs-sm);color:var(--ink);margin:0;font-weight:600}.plug__inv{padding:var(--s3) var(--s4);gap:var(--s2);background:var(--bg-raise);border-radius:var(--r);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink);overflow-wrap:anywhere;flex-direction:column;margin:0;list-style:none;display:flex}.plug__danger{margin:0 calc(-1 * var(--s2));padding:var(--s1) var(--s2);border-left:2px solid var(--danger);background:color-mix(in oklab, var(--danger) 8%, transparent)}.plug__pending-hint{min-width:220px;font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-muted);flex:1;margin:0 auto 0 0}.plug__act{justify-content:flex-end;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.plug__top{justify-content:flex-end;align-items:flex-start;gap:var(--s3);display:flex}.plug__acts{align-items:center;gap:var(--s2);display:flex}.plug__add,.plug__upload{flex-shrink:0}.plugadd{gap:var(--s3);flex-direction:column;display:flex}.plugadd__head{align-items:center;display:flex}.plugadd__title{font-size:var(--fs-lg);letter-spacing:var(--tracking-lg);color:var(--ink);font-weight:600}.plugadd__tabs{gap:var(--s1);border-bottom:1px solid var(--bd-muted);display:flex}.plugadd__tab{min-height:var(--tap-min);border-radius:var(--r-sm) var(--r-sm) 0 0;padding:var(--s2);font:inherit;font-size:var(--fs-sm);color:var(--ink-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;font-weight:500;display:inline-flex}.plugadd__tab:hover:not([data-on]),.plugadd__tab:focus-visible{background:var(--bg-raise);color:var(--ink)}.plugadd__tab[data-on]{color:var(--ink);border-bottom-color:var(--ink)}.plugadd__pane{gap:var(--s3);max-width:var(--w-read);flex-direction:column;display:flex}.plugadd__form{align-items:center;gap:var(--s2);flex-wrap:wrap;max-width:560px;display:flex}.plugadd__path{flex:1;min-width:220px}.plugadd__pick{background:var(--bg-raise);color:var(--ink);border-color:#0000}.plugadd__pick:hover:not(:disabled){background:var(--bg-active)}.plugadd__browse{background:var(--bg-card);border:1px solid var(--bd-muted);border-radius:var(--r-lg);padding:var(--s3);gap:var(--s2);flex-direction:column;display:flex}.plugadd__crumb{justify-content:space-between;align-items:center;gap:var(--s3);font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-muted);overflow-wrap:anywhere;display:flex}.plugadd__dirs{flex-direction:column;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.plugadd__dir{text-align:left;border-radius:var(--r);width:100%;padding:4px var(--s2);font:inherit;font-size:var(--fs-sm);color:var(--ink);cursor:pointer;background:0 0;border:0;display:block}.plugadd__dir:hover:not(:disabled),.plugadd__dir:focus-visible:not(:disabled){background:var(--bg-raise)}.plugadd__dir:disabled{color:var(--ink-faint);cursor:default}.plugadd__omitted{padding:4px var(--s2);font-size:var(--fs-micro);color:var(--ink-faint)}.plugadd__hidden{align-items:center;gap:var(--s2);font-size:var(--fs-micro);color:var(--ink-faint);cursor:pointer;display:flex}.plugupl__target{font-size:var(--fs-data);color:var(--ink-muted);word-break:break-all}.plugupl__files{max-height:260px;padding:var(--s3);border-radius:var(--r);background:var(--bg-raise);margin:0;list-style:none;overflow-y:auto}.plugupl__files li{justify-content:space-between;align-items:baseline;gap:var(--s2);font-size:var(--fs-data);padding:2px 0;display:flex}.plugupl__files code{word-break:break-all;min-width:0;color:var(--ink)}.plugupl__files i{color:var(--ink-faint);flex-shrink:0;font-style:normal}.plugupl__secrets{margin:var(--s1) 0;padding-left:var(--s4);font-size:var(--fs-data)}.plugupl__skipped{font-size:var(--fs-sm);color:var(--ink-faint);margin:0}.plugupl__leaving{color:var(--ink);font-weight:600}.plug__face{margin-right:var(--s1);border-radius:var(--r-sm);background:var(--bg-raise);width:28px;height:28px;color:var(--ink-faint);flex:none;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.plug__icon{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.plug__key{margin-left:var(--s1);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);font-style:normal}.plug__version{margin-left:var(--s1);font-size:var(--fs-micro);color:var(--ink-faint);font-style:normal}.plug__fresh{margin-left:var(--s2);color:var(--accent);font-weight:500}.plug__tag[data-vis=public]{background:color-mix(in oklab, var(--accent) 14%, transparent);color:var(--ink)}.plugupl__form{align-items:center;gap:var(--s2) var(--s3);font-size:var(--fs-sm);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.plugupl__label{color:var(--ink-faint)}.plugupl__radios{align-items:center;gap:var(--s3);display:flex}.plugupl__radio{align-items:center;gap:var(--s1);color:var(--ink);cursor:pointer;display:inline-flex}.plugupl__hint{font-size:var(--fs-micro);color:var(--ink-muted);grid-column:1/-1}.plugupl__changelog{resize:vertical;width:100%}.seccards{gap:var(--s3);margin-bottom:var(--s10);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.seccard{padding:var(--s3) var(--s4);background:var(--bg-card);border:1px solid var(--bd-muted);border-radius:var(--r-lg);box-shadow:var(--shadow-card);align-content:start;gap:3px;display:grid}.seccard__k{font-size:var(--fs-micro);color:var(--ink-faint)}.seccard__v{font-size:var(--fs-sm);color:var(--ink);font-weight:500}.seccard[data-tone] .seccard__v:before{content:"";width:6px;height:6px;margin-right:var(--s2);border-radius:var(--r-pill);vertical-align:.1em;background:currentColor;display:inline-block}.seccard__d{font-size:var(--fs-micro);color:var(--ink-faint);overflow-wrap:anywhere;line-height:1.5}.seccard[data-tone=ok] .seccard__v{color:var(--success)}.seccard[data-tone=lock] .seccard__v{color:var(--info)}.seccard[data-tone=warn] .seccard__v{color:var(--warning)}.layer{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);border:1px solid var(--bd-muted);border-radius:var(--r-pill);white-space:nowrap;margin-left:auto;padding:1px 8px}.layer[data-layer=managed]{color:var(--danger);border-color:color-mix(in oklab, var(--danger) 38%, transparent)}.layer[data-layer=cli]{color:var(--warning);border-color:color-mix(in oklab, var(--warning) 38%, transparent)}.lockline{font-size:var(--fs-data);color:var(--danger);align-items:baseline;gap:6px;margin:0;display:flex}.rules{flex-direction:column;gap:1px;display:flex}.rule{align-items:center;gap:var(--s3);padding:6px var(--s2);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-data);grid-template-columns:46px minmax(0,1fr) auto;display:grid}.rule:hover{background:var(--bg-raise)}.rule__verdict{font-family:var(--font-mono);font-size:var(--fs-micro)}.rule[data-verdict=deny] .rule__verdict{color:var(--danger)}.rule[data-verdict=ask] .rule__verdict{color:var(--warning)}.rule[data-verdict=allow] .rule__verdict{color:var(--success)}.rule__pattern{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rule__src{font-size:var(--fs-micro);color:var(--ink-faint)}.audit{margin-top:var(--s3);flex-direction:column;gap:1px;display:flex}.audit__row,.audit__head{align-items:center;gap:var(--s3);padding:6px var(--s2);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-data);grid-template-columns:76px 116px 84px minmax(0,1fr) 52px auto;display:grid}.audit__head{font-size:var(--fs-micro);color:var(--ink-faint)}.audit__row:hover{background:var(--bg-raise)}.audit__at,.audit__type{color:var(--ink-faint);font-size:var(--fs-micro)}.audit__tool,.audit__target{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.audit__code{font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap}.audit__outcome{font-family:var(--font-mono);font-size:var(--fs-micro)}.audit__row[data-outcome=granted] .audit__outcome{color:var(--ink-muted)}.audit__row[data-outcome=denied] .audit__outcome{color:var(--danger)}.approvals{margin-top:var(--s3);flex-direction:column;gap:1px;display:flex}.approval{align-items:center;gap:var(--s3);padding:6px var(--s2);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-data);grid-template-columns:84px 116px minmax(0,1fr) 68px 76px auto;display:grid}.approval:hover{background:var(--bg-raise)}.approval__decision{font-family:var(--font-sans);font-size:var(--fs-micro)}.approval[data-decision=deny] .approval__decision{color:var(--danger)}.approval[data-decision=allow-session] .approval__decision,.approval[data-decision=allow-always] .approval__decision{color:var(--ink-muted)}.approval__tool,.approval__target{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.approval__scope,.approval__at{font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap}.approval__scope{font-family:var(--font-sans)}.approval__revoke{justify-self:end}.sec__trust{padding:3px var(--s2);border-radius:var(--r-pill);font-size:var(--fs-micro);white-space:nowrap;align-items:center;gap:4px;margin-left:auto;font-weight:500;display:inline-flex}.sec__trust[data-trust=on]{color:var(--success)}.sec__trust[data-trust=off]{color:var(--warning)}.sec__files{margin:var(--s2) 0 0;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-muted);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.sec__foot{margin:var(--s3) 0 0;font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-faint)}.slots[data-kind=root] .slot{grid-template-columns:minmax(0,320px) minmax(0,1fr)}.slots[data-kind=space] .slot,.slots[data-kind=policy] .slot{grid-template-columns:minmax(0,1fr) minmax(0,260px) auto}.locked__act .cmd{flex:auto}.permrow{align-items:center;gap:var(--s2);flex:0 0 100%;display:flex}.permrow__when{width:3em;font-size:var(--fs-micro);color:var(--ink-faint);flex:none}.permrow__note{font-size:var(--fs-micro);color:var(--ink-muted)}.timeline{margin:0;padding:0;list-style:none}.ev__body{min-width:0;padding-bottom:var(--s6)}.ev[data-kind=user] .ev__body{padding-bottom:var(--s5);justify-content:flex-end;display:flex}.said{background:var(--bg-said);border-radius:var(--r-lg);padding:var(--s2) var(--s4);white-space:pre-wrap;overflow-wrap:anywhere;border:none;min-width:0;max-width:78%}.think{padding-left:var(--s3);border-left:2px solid var(--bd-base);color:var(--ink-muted);font-size:var(--fs-sm);margin:0}.think__label{align-items:center;gap:var(--s2);width:100%;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);text-align:left;cursor:pointer;background:0 0;border:none;padding:0;display:flex}.think__label:hover{color:var(--ink-muted)}.think__what{min-width:0;font-family:var(--font-sans);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.think__dots{flex:none;gap:3px;display:inline-flex}.think__dots i{border-radius:var(--r-pill);width:3px;height:3px;animation:pulse 1.2s var(--ease) infinite;background:currentColor}.think__dots i:nth-child(2){animation-delay:.15s}.think__dots i:nth-child(3){animation-delay:.3s}.think__text{margin:var(--s1) 0 0;white-space:pre-wrap;line-height:1.7}.prose{overflow-wrap:anywhere}.prose__chunk{display:contents}.prose>:first-child,.prose__chunk:first-child>:first-child{margin-top:0}.prose>:last-child,.prose__chunk:last-child>:last-child{margin-bottom:0}.prose p{margin:0 0 var(--s3)}.prose h2,.prose h3{margin:var(--s6) 0 var(--s2);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.01em}.prose h2{font-size:var(--fs-lg)}.prose h3{font-size:var(--fs-body);color:var(--ink-muted)}.prose h1,.prose h4,.prose h5,.prose h6{margin:var(--s6) 0 var(--s2);font-size:var(--fs-body);font-weight:600;line-height:var(--lh-tight)}.prose ul,.prose ol{margin:0 0 var(--s3);padding-left:1.35em}.prose li{margin-bottom:var(--s1)}.prose li::marker{color:var(--ink-faint);font-family:var(--font-mono);font-size:.85em}.prose strong{font-weight:600}.prose a{color:var(--accent);text-underline-offset:3px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}.prose a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.prose blockquote{margin:0 0 var(--s3);padding-left:var(--s3);border-left:2px solid var(--bd-base);color:var(--ink-muted)}.prose hr{margin:var(--s5) 0;border:none;border-top:1px solid var(--bd-muted)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--bg-code);border:1px solid var(--bd-muted);border-radius:var(--r-sm);padding:1px 4px;font-size:.89em}.prose table{width:100%;margin:0 0 var(--s3);border-collapse:collapse;font-size:var(--fs-sm)}.prose th,.prose td{text-align:left;padding:6px var(--s3) 6px 0;border-bottom:1px solid var(--bd-muted)}.prose th{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap;font-weight:500}.prose[data-live] .prose__chunk:last-child>:last-child:after{content:"";background:var(--ink-muted);width:7px;height:1em;margin-left:2px;animation:1.05s steps(2,start) infinite blink;display:inline-block;translate:0 2px}@keyframes blink{50%{opacity:0}}.code{margin:0 0 var(--s3);background:var(--bg-code);border:1px solid var(--bd-muted);border-radius:var(--r);overflow:hidden}.code__head{align-items:center;gap:var(--s2);padding:5px var(--s2) 5px var(--s3);border-bottom:1px solid var(--bd-muted);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);display:flex}.code__lang{color:var(--ink-faint)}.code__copy{color:var(--ink-faint);cursor:pointer;font-family:inherit;font-size:inherit;border-radius:var(--r-sm);background:0 0;border:none;align-items:center;margin-left:auto;padding:4px;display:flex}.code__copy:hover{color:var(--ink);background:var(--bg-raise)}.code pre{padding:var(--s3);font-family:var(--font-mono);font-size:var(--fs-data);line-height:var(--lh-code);margin:0;overflow-x:auto}.tk-c{color:var(--tk-comment);font-style:italic}.tk-k{color:var(--tk-keyword)}.tk-s{color:var(--tk-string)}.tk-n{color:var(--tk-number)}.tk-f{color:var(--tk-fn)}.tk-p{color:var(--ink-muted)}.tools{gap:var(--s1);flex-direction:column;display:flex}.tool{background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r);box-shadow:var(--shadow-card);overflow:hidden}.tool__head{align-items:center;gap:var(--s2);padding:4px var(--s3);display:flex}.tool__fold{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;align-items:center;gap:6px;padding:0;display:flex}.tool__fold:disabled{cursor:default}.tool__fold:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.tool__fold svg{color:var(--ink-faint)}.tool__name{font-family:var(--font-mono);font-size:var(--fs-data);font-weight:500}.tool__sig{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool__stat{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);white-space:nowrap;margin-left:auto}.tool[data-status=pending] .tool__stat{color:var(--warning)}.tool[data-status=error] .tool__stat{color:var(--danger)}.tool__body{padding:var(--s1) var(--s3) var(--s2)}.tool__args{margin:0 0 var(--s2);gap:3px var(--s3);font-family:var(--font-mono);font-size:var(--fs-micro);grid-template-columns:auto minmax(0,1fr);display:grid}.tool__args dt{color:var(--ink-faint)}.tool__args dd{color:var(--ink-muted);overflow-wrap:anywhere;margin:0}.tool__args summary{cursor:pointer}.tool__args pre{margin:var(--s1) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.tool__out{padding:var(--s2) var(--s3);background:var(--bg-code);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-muted);white-space:pre-wrap;overflow-wrap:anywhere;max-height:110px;margin:0;line-height:1.65;overflow-y:auto}.tool__out[data-live]{color:var(--ink-faint);max-height:72px}.tool__more{padding:var(--s2) 0 0;color:var(--ink-muted);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-micro);background:0 0;border:none}.tool__more:hover{color:var(--ink)}.tool__art{margin:var(--s2) 0 0;font-size:var(--fs-micro);color:var(--ink-muted)}.tool__art img{border:1px solid var(--bd-muted);border-radius:var(--r-sm);max-width:100%;display:block}.tool__art-audio{width:100%;display:block}.tool__art-dl{align-items:baseline;gap:var(--s2);padding:var(--s2) var(--s3);background:var(--bg-code);border:1px solid var(--bd-base);border-radius:var(--r-sm);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-data);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);text-decoration:none;display:flex}.tool__art-dl:hover{background:var(--bg-raise);border-color:var(--bd-strong)}.tool__art-dl-name{overflow-wrap:anywhere;min-width:0}.tool__art-dl-type{font-size:var(--fs-micro);color:var(--ink-faint);flex:none;margin-left:auto}.tool__art-cap{gap:var(--s1);margin-top:var(--s2);flex-direction:column;display:flex}.tool__art-fact{align-items:center;gap:6px;margin:0;display:flex}.tool__art-badge{border-radius:var(--r-pill);font-size:var(--fs-micro);border:1px solid #0000;flex:none;padding:1px 7px;font-weight:500}.tool__art[data-admission=in] .tool__art-badge{color:var(--success);background:var(--add-bg)}.tool__art[data-admission=out] .tool__art-badge{color:var(--ink-muted);background:var(--bg-active)}.tool__art[data-admission=unknown] .tool__art-badge{color:var(--warning);border-color:var(--bd-base)}.tool__art-tokens{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.tool__art-note{color:var(--ink-faint);margin:0;line-height:1.6}.tool__art-sum{color:var(--ink-faint);overflow-wrap:anywhere;margin:0;line-height:1.6}.diff{background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r);box-shadow:var(--shadow-card);margin:0;overflow:hidden}.diff__head{align-items:center;gap:var(--s2);padding:7px var(--s2) 7px var(--s3);border-bottom:1px solid var(--bd-muted);font-family:var(--font-mono);font-size:var(--fs-data);display:flex}.diff__path{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.diff__stat{font-size:var(--fs-micro);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.diff__stat b{color:var(--add);font-weight:500}.diff__stat i{color:var(--del);font-style:normal}.diff__stat--opaque{color:var(--ink-muted)}.diff__note{padding:var(--s2) var(--s3);border-top:1px solid var(--bd-muted);font-size:var(--fs-micro)}.diff__body{font-family:var(--font-mono);font-size:var(--fs-micro);max-height:300px;line-height:1.7;overflow:auto}.dl{white-space:pre;grid-template-columns:30px 30px max-content;width:max-content;min-width:100%;display:grid}.dl__n{text-align:right;padding-right:var(--s2);color:var(--ink-faint);opacity:.6;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.dl__t{padding-right:var(--s3)}.dl--add{background:var(--add-bg)}.dl--add .dl__t{color:var(--add)}.dl--del{background:var(--del-bg)}.dl--del .dl__t{color:var(--del)}.dl--ctx .dl__t{color:var(--ink-muted)}.dl--gap{background:var(--bg-code);color:var(--ink-faint)}.todo{border:1px solid var(--bd-base);border-radius:var(--r);background:var(--bg-raise);padding:var(--s3) var(--s4)}.todo__head{align-items:baseline;gap:var(--s2);margin:0 0 var(--s2);font-size:var(--fs-sm);color:var(--ink);font-weight:500;display:flex}.todo__n{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);font-weight:400}.todo__list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.todo__item{font-size:var(--fs-sm);color:var(--ink-muted);padding-left:20px;line-height:1.65;position:relative}.todo__item:before{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-faint);position:absolute;left:0}.todo__item[data-st=completed]{color:var(--ink-faint)}.todo__item[data-st=completed]:before{content:"✓";color:var(--success)}.todo__item[data-st=in_progress]{color:var(--ink);font-weight:500}.todo__item[data-st=in_progress]:before{content:"▸";color:var(--warning)}.todo__item[data-st=pending]:before{content:"·"}.todo__item[data-st=cancelled]{color:var(--ink-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--bd-strong);text-decoration-color:var(--bd-strong)}.todo__item[data-st=cancelled]:before{content:"×"}.todo__why{font-size:var(--fs-micro);color:var(--ink-faint);border:1px solid var(--bd-muted);border-radius:var(--r-sm);margin-left:4px;padding:0 4px;text-decoration:none;display:inline-block}.mhead{align-items:center;gap:var(--s2);margin-bottom:var(--s3);display:flex}.mhead__ava{border-radius:var(--r-sm);background:var(--bg-active);border:1px solid var(--bd-base);width:22px;height:22px;font-family:var(--font-mono);letter-spacing:-.02em;color:var(--ink-muted);flex:none;place-items:center;font-size:10px;display:grid}.mhead__lines{flex-direction:column;gap:1px;min-width:0;display:flex}.mhead__name{align-items:center;gap:var(--s2);font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink);display:flex}.mhead__sub{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.mhead__sub b{color:var(--ink-muted);font-weight:500}.src-chip{font-family:var(--font-sans);font-size:var(--fs-micro);color:var(--ink-faint);border:1px solid var(--bd-muted);border-radius:var(--r-sm);padding:0 4px}.fold__bar{align-items:center;gap:var(--s2);width:100%;padding:var(--s1) var(--s2);margin:var(--s1) 0;border:1px dashed var(--bd-muted);border-radius:var(--r);color:var(--ink-faint);font:inherit;font-size:var(--fs-micro);text-align:left;cursor:pointer;background:0 0;display:flex}.fold__bar:hover{background:var(--bg-raise);color:var(--ink-muted)}.turnfoot{align-items:center;gap:var(--s3);padding:var(--s1) 0 var(--s6);border-bottom:1px solid var(--bd-muted);margin-bottom:var(--s6);flex-wrap:wrap;display:flex}.turnfoot__acts{gap:var(--s1);flex-wrap:wrap;display:flex}.turnfoot__acts .btn--icon{padding:7px}.turnfoot__facts{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);margin:0 0 0 auto}.turnfoot__facts b{color:var(--ink-muted);font-weight:500}.turnfoot__facts code{font-family:var(--font-mono)}.unknown{border:1px dashed var(--bd-strong);border-radius:var(--r-sm);color:var(--ink-faint);padding:0 4px}.est{font-family:var(--font-sans);font-size:var(--fs-micro);color:var(--warning);border:1px solid color-mix(in oklab, var(--warning) 40%, transparent);border-radius:var(--r-sm);padding:0 4px}.est--warn{color:var(--danger);border-color:color-mix(in oklab, var(--danger) 42%, transparent)}.ctxline{font-family:var(--font-sans);font-size:var(--fs-micro);color:var(--ink-faint);border:1px solid var(--bd-muted);border-radius:var(--r-sm);padding:0 4px}.ctxline--off{color:var(--danger);border-color:color-mix(in oklab, var(--danger) 42%, transparent)}.livestat{align-items:center;gap:var(--s2);padding:var(--s1) 0 var(--s6);font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);display:flex}.livestat__dot{border-radius:var(--r-pill);background:var(--warning);width:6px;height:6px;animation:pulse 1.5s var(--ease) infinite}.livestat__queued{color:var(--warning)}.livestat__stop{margin-left:auto}.livestat .btn--icon{padding:7px}.livestat .btn--icon:disabled{cursor:progress;opacity:.6}.note{align-items:baseline;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-muted);margin:0;display:flex}.note__sign{font-family:var(--font-mono);color:var(--ink-faint)}.note[data-tone=error],.note[data-tone=error] .note__sign{color:var(--danger)}.note[data-tone=warn],.note[data-tone=warn] .note__sign{color:var(--warning)}.rewind{margin-top:var(--s2);padding:var(--s3);border:1px solid color-mix(in oklab, var(--danger) 32%, var(--bd-base));border-radius:var(--r);background:var(--bg-raise);font-size:var(--fs-sm);flex-basis:100%}.rewind__head,.rewind__hint,.rewind__warn,.rewind__err{margin:0 0 var(--s2)}.rewind__hint{color:var(--ink-faint);font-size:var(--fs-micro)}.rewind__warn{color:var(--warning)}.rewind__err{color:var(--danger)}.rewind__files{margin:0 0 var(--s3);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.rewind__files li,.rewind__files label{align-items:center;gap:var(--s2);min-width:0;display:flex}.rewind__files label{cursor:pointer;width:100%}.rewind__files code{font-family:var(--font-mono);font-size:var(--fs-micro);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rewind__act{min-width:3em;color:var(--ink-muted);font-size:var(--fs-micro);flex:none}.rewind__files--conflict .rewind__act{color:var(--warning)}.rewind__drift{color:var(--ink-faint);font-size:var(--fs-micro);white-space:nowrap}.rewind__scope{margin:0 0 var(--s3);border:none;flex-direction:column;gap:2px;padding:0;display:flex}.rewind__scope legend{margin-bottom:var(--s1);color:var(--ink-faint);font-size:var(--fs-micro);padding:0}.rewind__scope label{align-items:center;gap:var(--s2);cursor:pointer;display:flex}.rewind__scope label[data-off]{color:var(--ink-faint);cursor:not-allowed}.rewind__scope em{color:var(--ink-faint);font-size:var(--fs-micro);font-style:normal}.rewind__confirm{align-items:flex-start;gap:var(--s2);margin-bottom:var(--s3);color:var(--warning);cursor:pointer;display:flex}.rewind__acts{justify-content:flex-end;gap:var(--s2);display:flex}.rewind__done{margin:0 0 var(--s3);color:var(--ink-muted);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.rewound{padding:var(--s3) 0 var(--s6);margin-top:var(--s3);border-top:1px dashed color-mix(in oklab, var(--danger) 38%, var(--bd-base));font-size:var(--fs-sm)}.rewound__head{color:var(--ink);margin:0}.rewound__lines{margin:var(--s1) 0 0;color:var(--ink-muted);font-size:var(--fs-micro);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.pathlink{font:inherit;color:var(--accent);cursor:pointer;-webkit-text-decoration:underline dotted color-mix(in oklab, var(--accent) 45%, transparent);text-decoration:underline dotted color-mix(in oklab, var(--accent) 45%, transparent);text-underline-offset:2px;word-break:break-all;text-align:left;background:0 0;border:none;margin:0;padding:0}.pathlink:hover{-webkit-text-decoration:underline solid var(--accent);text-decoration:underline solid var(--accent)}.pathlink:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.draft{border:1px solid var(--bd-base);border-radius:var(--r);background:var(--bg-raise);padding:var(--s3) var(--s4)}.draft__head{align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink);margin:0;font-weight:500;display:flex}.draft__name{margin:var(--s1) 0 0;font-size:var(--fs-body);color:var(--ink);font-weight:600}.draft__why{margin:var(--s2) 0 0;font-size:var(--fs-sm);color:var(--ink-muted);line-height:1.65}.draft__facts{gap:var(--s1) var(--s3);margin:var(--s3) 0 0;font-size:var(--fs-sm);grid-template-columns:max-content minmax(0,1fr);display:grid}.draft__facts dt{color:var(--ink-faint)}.draft__facts dd{color:var(--ink-muted);min-width:0;margin:0}.draft__rules{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.draft__rules code{font-family:var(--font-mono);font-size:var(--fs-micro);word-break:break-all}.draft__wider{align-items:center;gap:var(--s2);margin:var(--s3) 0 0;font-size:var(--fs-sm);color:var(--warning);display:flex}.draft__note{margin:var(--s3) 0 var(--s2);font-size:var(--fs-micro);color:var(--ink-faint)}@media (pointer:coarse){.code__copy{min-width:var(--tap-min);min-height:var(--tap-min);justify-content:center}.fold__bar{min-height:var(--tap-min)}}.agroup+.agroup{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--bd-muted)}.agroup__title{margin:0 0 var(--s1);font-size:var(--fs-body);letter-spacing:var(--tracking-lg);color:var(--ink);align-items:center;gap:6px;font-weight:600;display:flex}.agroup__n{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);background:var(--bg-active);border-radius:var(--r-sm);padding:0 5px;font-weight:400}.alist{margin:0 0 var(--s3);gap:var(--s1);flex-direction:column;padding:0;list-style:none;display:flex}.aitem{align-items:center;gap:var(--s1);grid-template-columns:minmax(0,1fr) auto;display:grid}.arow{align-items:center;gap:0 var(--s2);text-align:left;border-radius:var(--r);width:100%;padding:var(--s2);cursor:pointer;color:inherit;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;border:1px solid #0000;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;text-decoration:none;display:grid}.arow:hover{background:var(--bg-raise);border-color:var(--bd-base)}.arow--flat{cursor:default}.arow--flat:hover{background:0 0;border-color:#0000}.arow__i{color:var(--ink-faint);grid-row:1/3}.arow__name{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink);overflow-wrap:anywhere}.arow__dir{color:var(--ink-faint);font-style:normal}.arow__meta{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);grid-column:2}.arow__meta b{color:var(--add);font-weight:500}.arow__go{color:var(--ink-faint);grid-area:1/3/3;justify-self:end}.aitem__locate{flex:none;padding:4px}.inspector[data-mode=list] .preview,.inspector[data-mode=preview]>.tabs,.inspector[data-mode=preview]>.inspector__body{display:none}.inspector[data-mode=preview]{grid-template-rows:minmax(0,1fr)}.preview{grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0;display:grid}.preview__head{align-items:center;gap:var(--s2);height:var(--h-header);padding:0 var(--s3);border-bottom:1px solid var(--bd-muted);display:flex}.preview__path{flex:1;min-width:0}.preview__ro{font-size:var(--fs-micro);color:var(--ink-faint);border:1px solid var(--bd-muted);border-radius:var(--r-sm);flex:none;padding:0 4px}.preview__meta{padding:var(--s2) var(--s4);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);border-bottom:1px solid var(--bd-muted);margin:0}.preview__body{padding:var(--s3) var(--s4);overflow:auto}.preview__code{font-family:var(--font-mono);font-size:var(--fs-data);line-height:var(--lh-code);color:var(--ink-muted);white-space:pre;margin:0}.preview__note{padding:var(--s2) var(--s4);border-top:1px solid var(--bd-muted);border-radius:0;margin:0}.preview__media{background-image:linear-gradient(45deg, var(--bg-chrome) 25%, transparent 25%), linear-gradient(-45deg, var(--bg-chrome) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg-chrome) 75%), linear-gradient(-45deg, transparent 75%, var(--bg-chrome) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;max-width:100%;max-height:50vh;display:block}.preview__pdf{border:1px solid var(--bd-muted);border-radius:var(--r-md);background:var(--bg-card);width:100%;height:70vh;display:block}.preview__acts{align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-top:1px solid var(--bd-muted);flex-wrap:wrap;display:flex}.preview__acts .preview__note{border-top:none;flex:1 0 100%;padding:0}.tgroup__title{gap:var(--s2);min-width:0}.tgroup__id{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint);background:var(--bg-active);border-radius:var(--r-sm);flex:none;padding:0 5px}.tgroup__kind{font-size:var(--fs-micro);color:var(--ink-muted);background:var(--bg-raise);border-radius:var(--r-sm);flex:none;padding:0 5px}.tgroup__cmd{min-width:0;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:400;overflow:hidden}.tmeta{align-items:center;gap:var(--s1) var(--s2);margin:0 0 var(--s2);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);flex-wrap:wrap;display:flex}.tmeta>*+:before{content:"·";margin-right:var(--s2);color:var(--bd-muted)}.tmeta b{color:var(--ink-muted);font-weight:500}.tmeta b[data-state=running]{color:var(--success)}.tmeta b[data-state=failed]{color:var(--danger)}.tout{margin:0 0 var(--s2);padding:var(--s2) var(--s3);background:var(--bg-code);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-micro);line-height:var(--lh-code);color:var(--ink-muted);white-space:pre;max-height:260px;overflow:auto}.input{box-sizing:border-box;height:var(--ctl-h);background:var(--ctl-bg);color:inherit;border:1px solid var(--ctl-bd);border-radius:var(--r);padding:0 var(--ctl-pad-x);font-size:max(var(--fs-sm), var(--fs-touch-min));min-width:0;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}.input:hover:not(:disabled,:focus-visible){border-color:var(--ctl-bd-hover)}.input--mono{font-family:var(--font-mono);font-size:max(var(--fs-data), var(--fs-touch-min))}.input--wide{flex:1;min-width:200px;max-width:420px}.input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.setwrite{gap:var(--s2);margin-top:var(--s2);padding:var(--s3);background:var(--bg-raise);border:1px solid var(--bd-muted);border-radius:var(--r);flex-basis:100%;display:grid}.setwrite__line{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.setwrite__label{font-size:var(--fs-data);color:var(--ink-muted)}.setwrite__value,.setwrite__layer,.setwrite__where{grid-template-columns:var(--w-form-label) minmax(0, 1fr);align-items:center;gap:var(--s2);display:grid}.setwrite__field{align-items:center;gap:var(--s2);min-width:0;display:flex}.setwrite__layer{justify-items:start}.setwrite__where{margin:0}.setwrite__dirty{padding:1px var(--s2);border:1px solid var(--warning);border-radius:var(--r-sm);color:var(--warning);font-size:var(--fs-eyebrow);white-space:nowrap}.setwrite__actions{gap:var(--s2);margin-left:auto;display:flex}.setwrite__blocked{gap:var(--s1);color:var(--warning);font-size:var(--fs-data);align-items:center;display:flex}.setwrite__foot{margin-top:var(--s1);padding-top:var(--s2);border-top:1px solid var(--bd-muted)}.setwrite__receipt{margin:var(--s2) 0 0;font-size:var(--fs-data);color:var(--ink-muted);gap:2px;line-height:1.65;display:grid}.setwrite__receipt code{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.9em}.setctx{gap:var(--s2);margin-top:var(--s3);display:grid}.setctx__line{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink)}.setctx__yaml{margin:var(--s2) 0 0;padding:var(--s2) var(--s3);background:var(--bg-code);border:1px solid var(--bd-muted);border-radius:var(--r);overflow-x:auto}.setctx__yaml code{font-family:var(--font-mono);font-size:var(--fs-data);line-height:var(--lh-code);color:var(--ink);white-space:pre}.setbudget{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--bd-muted)}.setbudget__title{font-size:var(--fs-sm);color:var(--ink);margin:0;font-weight:600}.setbudget__rows{gap:var(--s2);grid-template-columns:minmax(0,auto) max-content minmax(3rem,1fr);margin:0;padding:0;list-style:none;display:grid}.setbudget__row{grid-column:1/-1;grid-template-columns:subgrid;font-size:var(--fs-micro);align-items:center;row-gap:2px;display:grid}.setbudget__label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.setbudget__n{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-muted);text-align:end}.setbudget__bar{border-radius:var(--r-pill);background:var(--bd-muted);height:6px;display:block;overflow:hidden}.setbudget__bar i{border-radius:inherit;background:var(--ink-faint);height:100%;display:block}.setbudget__detail{color:var(--ink-faint);grid-column:1/-1}.setbudget__act{gap:var(--s1);margin-top:var(--s3);justify-items:start;display:grid}.setbudget__done{margin:var(--s2) 0 0;font-size:var(--fs-micro);color:var(--ink)}.settools{margin-top:var(--s3);flex-direction:column;gap:1px;display:flex}.settool,.settools__head{align-items:center;gap:var(--s3);padding:6px var(--s2);border-radius:var(--r-sm);font-size:var(--fs-data);grid-template-columns:144px 160px minmax(0,1fr) 196px 48px;display:grid}.settools__head{font-size:var(--fs-micro);color:var(--ink-faint)}.settool:hover{background:var(--bg-raise)}.settool__name,.settool__src,.settool__desc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settool__name{font-family:var(--font-mono)}.settool__src{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-faint)}.settool__desc{color:var(--ink-muted)}.settool__gate{align-items:baseline;gap:var(--s2);min-width:0;font-size:var(--fs-micro);display:flex}.settool__verdict{font-family:var(--font-mono);white-space:nowrap}.settool__by{font-family:var(--font-mono);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settool__cond{margin:-3px 0 -3px -4px}.settool__calls,.settools__head>:nth-child(5){text-align:right}.settool__calls{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-muted)}.settool[data-calls="0"] .settool__calls{color:var(--ink-faint)}.settool[data-verdict=deny] .settool__verdict{color:var(--danger)}.settool[data-verdict=ask] .settool__verdict{color:var(--warning)}.settool[data-verdict=allow] .settool__verdict{color:var(--success)}.settool[data-verdict=depends] .settool__verdict{color:var(--ink-muted)}.settool[data-verdict=none] .settool__verdict{color:var(--ink-faint)}@media (width<=1180px){.settool,.settools__head{grid-template-columns:minmax(0,1fr) 96px 176px 48px}.settool__desc,.settools__head>:nth-child(3){display:none}}.spend{gap:var(--s4);margin-top:var(--s3);display:grid}.spend__hero{gap:var(--s4) var(--s10);flex-wrap:wrap;align-items:flex-start;display:flex}.spend__stat{gap:2px;display:grid}.spend__stat-n{font-size:var(--fs-title);letter-spacing:var(--tracking-title);font-weight:600;line-height:var(--lh-tight);color:var(--ink);font-variant-numeric:tabular-nums}.spend__stat-k{align-items:center;gap:var(--s1);font-size:var(--fs-micro);color:var(--ink-faint);display:flex}.spend__line{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink)}.spend__rows{gap:var(--s2);max-width:var(--w-read);grid-template-columns:minmax(0,auto) max-content minmax(3rem,1fr);margin:0;padding:0;list-style:none;display:grid}.spend__row{grid-column:1/-1;grid-template-columns:subgrid;font-size:var(--fs-micro);align-items:center;row-gap:2px;display:grid}.spend__label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spend__n{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink-muted);text-align:end}.spend__bar{border-radius:var(--r-pill);background:var(--bd-muted);height:6px;display:block;overflow:hidden}.spend__bar i{border-radius:inherit;background:var(--ink-faint);height:100%;display:block}.spend__row[data-tier=cheap] .spend__bar i{background:var(--success)}.spend__detail{color:var(--ink-faint);grid-column:1/-1}.spendturns{margin-top:var(--s3);flex-direction:column;display:flex}.spendturn,.spendturns__head{align-items:center;gap:2px var(--s3);padding:var(--s2);border-radius:var(--r-sm);font-size:var(--fs-data);grid-template-columns:64px minmax(0,1fr) 88px 96px;display:grid}.spendturns__head{font-size:var(--fs-micro);color:var(--ink-faint)}.spendturn+.spendturn{border-top:1px solid var(--bd-muted)}.spendturn:hover{background:var(--bg-raise)}.spendturn__tokens,.spendturn__usd,.spendturns__head>:nth-child(3),.spendturns__head>:nth-child(4){text-align:end}.spendturn__idx{font-size:var(--fs-micro);color:var(--ink-faint)}.spendturn__model{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spendturn__tokens,.spendturn__usd{font-family:var(--font-mono);color:var(--ink-muted)}.spendturn__meta{font-size:var(--fs-micro);color:var(--ink-faint);grid-column:1/-1}.menu{z-index:var(--z-menu);min-width:216px;max-width:min(var(--w-menu-max), calc(100vw - var(--s4)));padding:var(--s1);overflow-wrap:anywhere;background:var(--bg-card);overscroll-behavior:contain;border:1px solid var(--bd-muted);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);animation:pop-in var(--dur-fast) var(--ease-out);position:fixed;overflow-y:auto}.menu__item{align-items:center;gap:var(--s2);text-align:left;border-radius:var(--r);width:100%;padding:7px var(--s2);cursor:pointer;font-size:var(--fs-sm);color:var(--ink-muted);background:0 0;border:none;display:flex}.menu__item:hover{background:var(--bg-raise);color:var(--ink)}.menu__item:disabled{cursor:default;opacity:.45}.menu__item:disabled:hover{color:var(--ink-muted);background:0 0}.menu__item--tall{padding:var(--s2);align-items:flex-start}.menu:has(.menu__item--tall){min-width:264px}.menu__lines{flex-direction:column;gap:2px;min-width:0;display:flex}.menu__lines b{color:var(--ink);font-weight:500}.menu__lines i{font-style:normal;font-size:var(--fs-micro);color:var(--ink-faint);line-height:1.5}.menu__item[data-danger]{color:var(--danger)}.menu__item[data-danger]:hover{background:color-mix(in oklab, var(--danger) 12%, transparent);color:var(--danger)}.menu__item[data-unavailable] .menu__lines b{text-decoration:line-through}.menu__tick{visibility:hidden;color:var(--permission);opacity:1;flex:none;margin-top:2px}.menu__item[aria-checked=true] .menu__tick{visibility:visible}.menu__item kbd{margin-left:auto}.menu__sep{height:1px;margin:var(--s1) 0;background:var(--bd-muted);border:none}.menu__search{align-items:center;gap:var(--s2);padding:6px var(--s2);border-radius:var(--r-sm);color:var(--ink-faint);display:flex}.menu__search:focus-within{box-shadow:0 0 0 2px var(--accent), 0 0 0 5px var(--accent-soft)}.menu__search input{min-width:0;font-size:max(var(--fs-sm), var(--fs-touch-min));color:var(--ink);background:0 0;border:none;outline:none;flex:1}.menu__search input::placeholder{color:var(--ink-faint)}.menu__search input::-webkit-search-cancel-button{appearance:none}.menu__lock{gap:var(--s2);margin:var(--s1) 0 0;padding:var(--s2);border-top:1px solid var(--bd-muted);font-size:var(--fs-micro);color:var(--ink-faint);grid-template-columns:auto minmax(0,1fr);line-height:1.6;display:grid}.menu__lock .i{margin-top:2px}.menu__lock[data-tone=warn] .i{color:var(--warning)}.menu__lock p{margin:0}.menu__lock p+p{margin-top:var(--s1)}@media (pointer:coarse){.menu__item{min-height:var(--tap-min)}}.tip__btn{border-radius:var(--r-sm);width:22px;height:22px;color:var(--ink-faint);cursor:help;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.tip__btn .i{width:14px;height:14px}.tip__btn:hover,.tip__btn[aria-expanded=true]{background:var(--bg-raise);color:var(--ink)}.tip__pop{z-index:var(--z-menu);max-width:300px;padding:var(--s2) var(--s3);border-radius:var(--r);background:var(--bg-card);box-shadow:var(--shadow-pop);color:var(--ink-muted);font-size:var(--fs-data);pointer-events:none;overflow-wrap:anywhere;line-height:1.55;position:fixed}@media (pointer:coarse){.tip__btn{min-width:var(--tap-min);min-height:var(--tap-min)}}.dirpick{flex-direction:column;display:flex}.dirpick__bar{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-bottom:1px solid var(--bd-muted);display:flex}.dirpick__back{align-items:center;gap:var(--s1);color:var(--ink-faint);font-size:var(--fs-micro);cursor:pointer;background:0 0;border:0;flex:none;padding:0;display:inline-flex}.dirpick__back:hover,.dirpick__back:focus-visible{color:var(--ink)}.dirpick__where{color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--fs-micro);text-align:left;text-overflow:ellipsis;white-space:nowrap;direction:rtl;flex:1;overflow:hidden}.dirpick__here{align-items:center;gap:var(--s1);padding:2px var(--s2);border:1px solid var(--bd-muted);border-radius:var(--r-sm);color:var(--ink-muted);font-size:var(--fs-micro);white-space:nowrap;cursor:pointer;background:0 0;flex:none;display:inline-flex}.dirpick__here:hover,.dirpick__here:focus-visible{border-color:var(--bd-strong);color:var(--ink)}.dirpick__here:disabled{cursor:default;opacity:.55}.dirpick__row{align-items:stretch;display:flex}.dirpick__pick{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);color:inherit;font-size:var(--fs-body);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;display:flex;overflow:hidden}.dirpick__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dirpick__tag{padding:0 var(--s1);border-radius:var(--r-sm);background:var(--bg-raise);color:var(--ink-faint);font-size:var(--fs-eyebrow);flex:none}.dirpick__use{padding:0 var(--s3);color:var(--ink-faint);cursor:pointer;background:0 0;border:0;flex:none;align-items:center;display:flex}.dirpick__pick:hover,.dirpick__use:hover,.dirpick__pick:focus-visible,.dirpick__use:focus-visible{background:var(--bg-raise)}.dirpick__pick:disabled,.dirpick__use:disabled{cursor:default}.dirpick__row[data-unreadable] .dirpick__pick,.dirpick__row[data-unreadable] .dirpick__use{color:var(--ink-faint);opacity:.55}.dirpick__row[data-unreadable] .dirpick__pick:hover,.dirpick__row[data-unreadable] .dirpick__use:hover{background:0 0}.dirpick__hidden{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-bottom:1px solid var(--bd-muted);color:var(--ink-faint);font-size:var(--fs-micro);cursor:pointer;display:flex}.dirpick__hidden:hover{color:var(--ink)}.dirpick__manual{gap:var(--s1);padding:var(--s2) var(--s3) var(--s3);flex-direction:column;display:flex}.dirpick__label{color:var(--ink-faint);font-size:var(--fs-micro)}.dirpick__entry{gap:var(--s2);display:flex}.dirpick__entry .input{min-width:0;font-family:var(--font-mono);font-size:max(var(--fs-micro), var(--fs-touch-min));flex:1;overflow:hidden}.dirpick__note{margin:var(--s1) 0 0;color:var(--ink-faint);font-size:var(--fs-eyebrow);line-height:1.5}.mpick{gap:var(--s2);flex-direction:column;display:flex;container:mpick/inline-size}.mpick__row{grid-template-columns:var(--w-form-label) minmax(0, 1fr);align-items:center;gap:var(--s2);display:grid}.mpick__label{font-size:var(--fs-micro);color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mpick__ctl{align-items:center;gap:var(--s2);min-width:0;display:flex}.mpick__sel{flex:1;min-width:0}.mpick__redo{flex:none}.mpick__key{box-sizing:border-box;min-width:0;height:var(--ctl-h);background:var(--ctl-bg);color:inherit;border:1px solid var(--ctl-bd);border-radius:var(--r);padding:0 var(--ctl-pad-x);font-family:var(--font-mono);font-size:var(--fs-data);transition:border-color var(--dur-fast) var(--ease);flex:1}.mpick__key:hover:not(:focus-visible){border-color:var(--ctl-bd-hover)}.mpick__key:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.mpick__keynote{margin:0 0 0 calc(var(--w-form-label) + var(--s2));font-size:var(--fs-micro);line-height:var(--lh-body);color:var(--ink-faint);overflow-wrap:anywhere}.mpick__ctl--combo{position:relative}.mpick__combo{box-sizing:border-box;min-width:0;height:var(--ctl-h);background:var(--ctl-bg);border:1px solid var(--ctl-bd);border-radius:var(--r);transition:border-color var(--dur-fast) var(--ease);flex:1;align-items:center;display:flex}.mpick__combo:hover:not(:focus-within){border-color:var(--ctl-bd-hover)}.mpick__input{min-width:0;color:inherit;padding:0 var(--ctl-pad-x);font-family:var(--font-mono);font-size:max(var(--fs-data), var(--fs-touch-min));background:0 0;border:none;flex:1;align-self:stretch}.mpick__input:focus{outline:none}.mpick__combo:focus-within{box-shadow:0 0 0 2px var(--accent), 0 0 0 5px var(--accent-soft)}.mpick__caret{color:var(--ink-faint);padding:0 var(--s2);cursor:pointer;background:0 0;border:none;flex:none;align-items:center;display:flex}.mpick__caret:hover:not(:disabled){color:var(--ink)}.mpick__caret:disabled{opacity:.5;cursor:default}.mpick__pop{z-index:var(--z-menu);background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r);min-height:0;box-shadow:var(--shadow-pop);flex-direction:column;display:flex;position:fixed;overflow:hidden}.mpick__list{min-height:0;padding:var(--s1);overscroll-behavior:contain;flex-direction:column;flex:0 auto;max-height:168px;margin:0;list-style:none;display:flex;overflow-y:auto}.mpick__opt{border-radius:var(--r-sm);padding:4px var(--s2);font-family:var(--font-mono);font-size:var(--fs-data);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mpick__opt[data-active]{background:var(--bg-active)}.mpick__note{padding:var(--s2);border-top:1px solid var(--bd-muted);font-size:var(--fs-micro);color:var(--ink-faint);line-height:var(--lh-body);margin:0}.mpick__say{align-items:flex-start;gap:var(--s2);padding:var(--s2);border-radius:var(--r-sm);font-size:var(--fs-micro);line-height:var(--lh-body);color:var(--ink-muted);background:color-mix(in oklab, var(--ink-faint) 8%, transparent);overflow-wrap:anywhere;margin:0;display:flex}.mpick__say[data-tone=warn]{color:var(--ink);background:color-mix(in oklab, var(--warning) 14%, transparent)}.mpick__say .i{flex:none;margin-top:2px}.mpick__go{margin-left:var(--s2);vertical-align:middle;flex:none}@container mpick (width<=420px){.mpick__row{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:2px}.mpick__keynote{margin-left:0}}.blank{max-width:62ch;padding:var(--s12) 0;margin:0 auto}.blank__title{letter-spacing:var(--tracking-title);margin:0;font-size:26px;font-weight:600;line-height:1.25}.blank__eyebrow{margin:0 0 var(--s2);font-size:var(--fs-eyebrow);color:var(--ink-faint);font-weight:600}.blank__lede{margin:var(--s3) 0 0;font-size:var(--fs-sm);color:var(--ink-muted);line-height:1.5}.blank__cards{gap:var(--s3);margin:var(--s6) 0 0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:0;list-style:none;display:grid}.blankcard{gap:var(--s1);width:100%;height:100%;padding:var(--s4);text-align:left;cursor:pointer;background:var(--bg-card);border:1px solid var(--bd-base);border-radius:var(--r-lg);box-shadow:var(--shadow-card);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex-direction:column;display:flex}.blankcard__head{gap:var(--s2);align-items:center;display:flex}.blankcard__title{font-weight:600}.blankcard:hover{background:var(--bg-raise);border-color:var(--bd-strong)}.blankcard svg{flex-shrink:0}.blankcard[data-hue="1"] svg{color:var(--hue-1)}.blankcard[data-hue="2"] svg{color:var(--hue-2)}.blankcard[data-hue="3"] svg{color:var(--hue-3)}.blankcard[data-hue="4"] svg{color:var(--hue-4)}.blankcard[data-hue="5"] svg{color:var(--hue-5)}.blankcard[data-hue="6"] svg{color:var(--hue-6)}.blankcard__sub{color:var(--ink-muted);font-size:12px;line-height:1.4}.app[data-view=diff]{--w-navcol:264px}.navcol__sign[data-status=added]{color:var(--add)}.navcol__sign[data-status=deleted]{color:var(--del)}.wsdiff__path{align-items:baseline;min-width:0;display:flex}.wsdiff__dir{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-faint);overflow:hidden}.wsdiff__name{color:inherit;flex-shrink:0}.wsdiff__title{min-width:0;overflow:hidden}.wsdiff__root{gap:var(--s1);text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--fs-micro);align-items:center;display:inline-flex;overflow:hidden}.wsdiff__reload{flex-shrink:0;margin-left:auto}.wsdiff__inner{gap:var(--s4);padding:var(--s5) var(--s5) var(--s12);flex-direction:column;display:flex}@media (width<=760px){.app[data-view=diff]{grid-template-rows:auto minmax(0,1fr)}.app[data-view=diff] .navcol{border-right:none;border-bottom:1px solid var(--bd-muted);grid-template-rows:auto minmax(0,40vh);display:grid}}.auto__pane{gap:var(--s4);max-width:920px;padding:var(--s6) var(--s6) var(--s12);align-content:start;display:grid}.auto__toolbar{justify-content:flex-end;display:flex}.auto__empty-state{gap:var(--s2);max-width:var(--w-read);padding:var(--s12) var(--s4);text-align:center;justify-items:center;margin:0 auto;display:grid}.auto__empty{color:var(--ink);font-size:var(--fs-lg);letter-spacing:var(--tracking-lg)}.auto__hint{color:var(--ink-muted);font-size:var(--fs-sm)}.auto__tpl-title{margin:var(--s4) 0 0;color:var(--ink-muted);font-size:var(--fs-sm);font-weight:500}.auto__tpl{gap:var(--s2);text-align:start;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));width:100%;margin:0;padding:0;list-style:none;display:grid}.tplcard{gap:var(--s1);padding:var(--s3);border:1px solid var(--bd-muted);border-radius:var(--r-lg);background:var(--bg-card);grid-template-rows:auto 1fr auto auto;display:grid}.tplcard__name{color:var(--ink);font-size:var(--fs-sm);font-weight:500}.tplcard__desc{color:var(--ink-muted);font-size:var(--fs-data);line-height:1.5}.tplcard__facts{gap:var(--s2);margin-bottom:var(--s1);color:var(--ink-faint);font-size:var(--fs-micro);flex-wrap:wrap;display:flex}.tplcard__perm{padding:1px var(--s2);border:1px solid var(--bd-base);border-radius:var(--r-pill)}.auto__tasks{gap:var(--s3);display:grid}.auto__list,.auto__runs{gap:var(--s2);margin:0;padding:0;list-style:none;display:grid}.task{align-items:start;gap:var(--s1) var(--s4);padding:var(--s3) var(--s4);border:1px solid var(--bd-muted);border-radius:var(--r-lg);background:var(--bg-card);transition:background var(--dur-fast) var(--ease);grid-template-columns:minmax(0,1fr) auto;display:grid}.task:hover{background:color-mix(in oklab, var(--bg-card) 92%, var(--ink))}.task:not([data-enabled]){opacity:.55}.task[data-danger]{border-color:color-mix(in oklab, var(--danger) 32%, var(--bd-base))}.task__main{gap:var(--s2);align-items:baseline;display:flex}.task__name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:590;overflow:hidden}.task__perm,.task__host{border-radius:var(--r-pill);background:var(--bg-active);color:var(--ink-muted);font-size:var(--fs-micro);padding:1px 7px}.task__perm[data-danger]{background:color-mix(in oklab, var(--danger) 14%, transparent);color:color-mix(in oklab, var(--danger) 78%, var(--ink))}.task__facts{gap:var(--s3);color:var(--ink-muted);font-size:var(--fs-data);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.task__trigger{color:var(--ink)}.task__next{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.task__last [data-tone=ok]{color:var(--success)}.task__last [data-tone=warn]{color:var(--warning)}.task__last [data-tone=error]{color:var(--danger)}.task__acts{grid-area:1/2/span 2;align-self:center;gap:2px;display:flex}@media (width<=760px){.task{grid-template-columns:minmax(0,1fr)}.task__acts{margin-top:var(--s1);flex-wrap:wrap;grid-area:auto/1}}.run{gap:var(--s1);padding:var(--s2) var(--s4);border:1px solid var(--bd-muted);border-left:2px solid var(--bd-base);border-radius:var(--r-lg);background:var(--bg-card);display:grid}.run[data-tone=ok]{border-left-color:var(--success)}.run[data-tone=warn]{border-left-color:var(--warning)}.run[data-tone=error]{border-left-color:var(--danger)}.run__head{gap:var(--s2);font-size:var(--fs-data);flex-wrap:wrap;align-items:baseline;display:flex}.run__sign{color:var(--bd-strong);align-self:center;display:inline-flex}.run[data-tone=ok] .run__sign{color:var(--success)}.run[data-tone=warn] .run__sign{color:var(--warning)}.run[data-tone=error] .run__sign{color:var(--danger)}.run__name{color:var(--ink);font-weight:590}.run__status,.run__manual,.run__at,.run__meta{color:var(--ink-muted);font-variant-numeric:tabular-nums}.run__toggle{margin-left:auto}.run__reason{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--fs-data);overflow-wrap:anywhere}.run__pending{gap:var(--s1);margin-top:var(--s1);padding:var(--s2) var(--s3);border:1px solid color-mix(in oklab, var(--warning) 32%, var(--bd-base));border-radius:var(--r);background:color-mix(in oklab, var(--warning) 8%, transparent);display:grid}.run__pending-head{color:var(--ink);font-size:var(--fs-data);font-weight:590}.run__pending-list{gap:var(--s1);font-size:var(--fs-data);margin:0;padding:0;list-style:none;display:grid}.run__rule{margin-left:var(--s2);color:var(--ink-muted);font-family:var(--font-mono)}.run__rule[data-muted]{font-family:inherit;font-style:italic}.run__fixed{color:var(--success);font-size:var(--fs-data)}.auto__replay{max-height:60vh;margin-top:var(--s1);padding:var(--s2) 0;border-top:1px solid var(--bd-muted);overflow-y:auto}.auto__replay>.note[data-tone=warn]{top:calc(var(--s2) * -1);z-index:1;margin:calc(var(--s2) * -1) 0 var(--s2);padding:var(--s2) 0;background:var(--bg-raise);position:sticky}.auto__running{gap:var(--s2);padding:var(--s3) var(--s4);border:1px solid var(--bd-base);border-radius:var(--r-lg);background:var(--bg-raise);display:grid}.auto__running-head{gap:var(--s2);color:var(--ink);font-size:var(--fs-sm);align-items:center;font-weight:590;display:flex}.auto__running-dur{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-weight:400;font-family:var(--font-mono)}.auto__spin{border-radius:var(--r-pill);border:1.5px solid var(--bd-strong);border-top-color:var(--ink-muted);flex:none;width:11px;height:11px;animation:.7s linear infinite spin}.auto__lastrun{gap:var(--s2);padding:var(--s3) var(--s4);border:1px solid color-mix(in oklab, var(--info) 30%, var(--bd-base));border-radius:var(--r-lg);background:color-mix(in oklab, var(--info) 7%, transparent);display:grid}.auto__lastrun-head{gap:var(--s2);color:var(--ink);font-size:var(--fs-sm);justify-content:space-between;align-items:baseline;font-weight:590;display:flex}.autoform{gap:var(--s4);max-width:var(--w-read);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.autoform__title{font-size:var(--fs-lg);letter-spacing:var(--tracking-lg);margin:0}.autoform label,.autoform__field{gap:var(--s1);grid-template-columns:minmax(0,1fr);display:grid}.autoform label>input[type=text],.autoform label>input[type=number],.autoform label>input[type=date],.autoform label>input[type=time],.autoform label>select,.autoform__field>input[type=text],.autoform__pick{box-sizing:border-box;height:var(--ctl-h);padding:0 var(--ctl-pad-x);border:1px solid var(--ctl-bd);border-radius:var(--r);background-color:var(--ctl-bg);color:var(--ink);font:inherit;font-size:max(var(--fs-sm), var(--fs-touch-min));transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease)}.autoform label>textarea{box-sizing:border-box;padding:var(--s2) var(--ctl-pad-x);border:1px solid var(--ctl-bd);border-radius:var(--r);background:var(--ctl-bg);color:var(--ink);font:inherit;font-size:max(var(--fs-sm), var(--fs-touch-min));transition:border-color var(--dur-fast) var(--ease)}.autoform label>input:hover:not(:disabled,:focus-visible),.autoform label>select:hover:not(:disabled,:focus-visible),.autoform label>textarea:hover:not(:disabled,:focus-visible),.autoform__field>input:hover:not(:disabled,:focus-visible),.autoform__pick:hover:not(:disabled){border-color:var(--ctl-bd-hover)}.autoform label>input:disabled,.autoform label>select:disabled,.autoform label>textarea:disabled,.autoform__field>input:disabled{opacity:.55;cursor:default}.autoform__pick{gap:var(--s2);cursor:pointer;text-align:left;align-items:center;width:100%;display:flex}.autoform__pick[disabled]{cursor:default;opacity:.55}.autoform__pickval{white-space:nowrap;text-align:left;text-overflow:ellipsis;direction:rtl;flex:1;min-width:0;overflow:hidden}.autoform__pickval[data-empty]{color:var(--ink-faint)}.autoform label>input:focus-visible,.autoform label>select:focus-visible,.autoform label>textarea:focus-visible,.autoform__field>input:focus-visible,.autoform__pick:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft);outline:none}.autoform textarea{font-family:var(--font-mono);font-size:max(var(--fs-data), var(--fs-touch-min));resize:vertical}.autoform__row{gap:var(--s3);flex-wrap:wrap;align-items:start;display:flex}.autoform__row>label{flex:160px}.autoform__trigger,.autoform__allow{gap:var(--s2);padding:var(--s3);border:1px solid var(--bd-muted);border-radius:var(--r-lg);background:var(--bg-raise);margin:0;display:grid}.autoform__allow[data-off]>label{opacity:.5}.autoform__allow[data-off]>label input:disabled,.autoform__allow[data-off]>label select:disabled,.autoform__allow[data-off]>label textarea:disabled{opacity:1}.autoform__days,.autoform__months{gap:var(--s1);border:0;margin:0;padding:0;display:grid}.autoform__days{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.autoform__chk,.autoform__ack{gap:var(--s2);font-size:var(--fs-data);align-items:center;display:flex!important}.autoform__ops{gap:var(--s2);flex-wrap:wrap;display:flex}.autoform__ack{padding:var(--s2) var(--s3);border:1px solid color-mix(in oklab, var(--danger) 32%, var(--bd-base));border-radius:var(--r);background:color-mix(in oklab, var(--danger) 8%, transparent)}.autoform__err{color:var(--danger);font-size:var(--fs-data)}.autoform__foot{gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--bd-muted);flex-wrap:wrap;align-items:center;display:flex}.autoform__blocked{gap:var(--s1);color:var(--warning);font-size:var(--fs-data);align-items:center;display:flex}.fgroup{padding:0 var(--s4) var(--s4);background:var(--bg-card);border:1px solid var(--bd-muted);border-radius:var(--r-lg);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr);display:grid}.fgroup__title{padding:var(--s3) 0;font-size:var(--fs-sm);color:var(--ink);margin:0;font-weight:600}.fgroup__note{margin:0 0 var(--s3);padding-bottom:var(--s3);border-bottom:1px solid var(--bd-muted);color:var(--ink-faint);font-size:var(--fs-data);line-height:var(--lh-tight,1.45)}.fgroup__title:not(:has(+.fgroup__note)){padding-bottom:var(--s3);margin-bottom:var(--s3);border-bottom:1px solid var(--bd-muted)}.fgroup__body{gap:var(--s4);grid-template-columns:minmax(0,1fr);display:grid}.fgroup[data-tone=warn]{border-color:color-mix(in oklab, var(--warning) 38%, var(--bd-muted));background:color-mix(in oklab, var(--warning) 4%, var(--bg-card))}.fgroup[data-tone=warn] .fgroup__title{color:var(--warning)}.fgroup[data-tone=warn] .fgroup__note{border-bottom-color:color-mix(in oklab, var(--warning) 24%, var(--bd-muted))}.fgroup{--fs-hint:var(--fs-micro)}.goal__phase{align-items:center;gap:var(--s2);margin:0 0 var(--s2);font-size:var(--fs-sm);color:var(--ink);font-weight:500;display:flex}.goal__sign{color:var(--ink-muted);flex:none;display:flex}.goal__phase[data-tone=warn],.goal__phase[data-tone=warn] .goal__sign{color:var(--warning)}.goal__phase[data-tone=done],.goal__phase[data-tone=done] .goal__sign{color:var(--success)}.goal__rounds{font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;color:var(--ink-faint);cursor:help;flex:none;margin-inline-start:auto}.goal__objective{margin:0 0 var(--s3);font-size:var(--fs-body);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.goal__block{gap:var(--s1);margin:0 0 var(--s3);padding:var(--s2) var(--s3);background:var(--bg-card);border-inline-start:2px solid var(--warning);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink);overflow-wrap:anywhere;flex-direction:column;line-height:1.55;display:flex}.goal__code{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--warning);background:var(--bg-active);border-radius:var(--r-sm);align-self:flex-start;padding:0 5px}.goal__evidence{gap:var(--s1);margin:0 0 var(--s3);padding:var(--s2) var(--s3);background:var(--bg-card);border-inline-start:2px solid var(--success);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink);overflow-wrap:anywhere;flex-direction:column;line-height:1.55;display:flex}.goal__label{font-size:var(--fs-micro);color:var(--ink-faint)}.goal__acts{gap:var(--s2);margin:var(--s2) 0 0;flex-wrap:wrap;display:flex}.goal__form{gap:var(--s2);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--bd-muted);flex-direction:column;display:flex}.goal__field{gap:var(--s1);flex-direction:column;display:flex}.goal__field--inline{flex-flow:wrap;align-items:center}.goal__text,.goal__num{padding:6px var(--s2);font:inherit;font-size:var(--fs-sm);color:var(--ink);background:var(--ctl-bg);border:1px solid var(--ctl-bd);border-radius:var(--r);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);line-height:1.55}.goal__text:hover:not(:disabled,:focus-visible),.goal__num:hover:not(:disabled,:focus-visible){border-color:var(--ctl-bd-hover)}.goal__text{box-sizing:border-box;resize:vertical;width:100%}.goal__num{width:7ch;height:var(--ctl-h-sm);box-sizing:border-box;padding:0 var(--s2);font-variant-numeric:tabular-nums}.goal__text:focus-visible,.goal__num:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft);outline:none}.goal__text:disabled,.goal__num:disabled{opacity:.6;cursor:progress}.goal__hint{min-width:0;font-size:var(--fs-micro);color:var(--ink-faint);flex:auto}.i{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;vertical-align:-3px;flex:none;width:16px;height:16px}.i--sm{stroke-width:1.7px;width:14px;height:14px}.i--lg{stroke-width:1.4px;width:18px;height:18px}details>summary:has(>.i){align-items:center;gap:var(--s2);list-style:none;display:flex}details>summary:has(>.i)::-webkit-details-marker{display:none}details>summary>.i{transition:rotate var(--dur-fast) var(--ease)}details[open]>summary>.i{rotate:90deg}.diag__sign,.banner__sign,.navcol__sign{justify-content:center;align-items:center;font-family:inherit;display:inline-flex}.diag__sign,.banner__sign{align-self:start;margin-top:3px}kbd{border-radius:var(--r-sm);background:var(--bg-active);min-width:18px;height:18px;font-family:var(--font-sans);letter-spacing:.07em;text-indent:.07em;color:var(--ink-muted);flex:none;justify-content:center;align-items:center;padding:0 6px;font-size:11.5px;font-weight:500;line-height:1;display:inline-flex}kbd .i{stroke-width:1.8px;vertical-align:0;width:12px;height:12px}.btn--primary kbd{background:color-mix(in oklab, var(--ink-inverse) 12%, transparent);color:color-mix(in oklab, var(--ink-inverse) 62%, transparent)}.btn--danger kbd{background:color-mix(in oklab, var(--danger) 14%, transparent);color:color-mix(in oklab, var(--danger) 75%, var(--ink-muted))}