@agentsky/desktop-ui 0.4.251 → 0.4.253

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.
@@ -374,6 +374,7 @@
374
374
  "AgentSky puts every agent, like Claude Code, Codex and Hermes, in one place. Use them in your browser, through the API, in the AgentSky Mac app, or from iMessage, Telegram, Lark, Slack, Discord and WhatsApp.": "AgentSky 把 Claude Code、Codex、Hermes 等所有智能体放在一处。你可以在浏览器里、通过 API、在 AgentSky Mac 应用里使用它们,也可以在 iMessage、Telegram、飞书、Slack、Discord 和 WhatsApp 中使用。",
375
375
  "AgentSky respects the limits your provider imposes on your plan tier. If the subscription hits a rate limit mid-task, the agent pauses and retries according to the provider’s retry guidance. If the limit cannot be cleared in the current turn, the turn fails gracefully and the session state is preserved so you can resume. Upgrading your subscription plan is the only way to raise that limit.": "AgentSky 遵守服务商对你的套餐设定的用量限制。若任务中途触及限额,代理会暂停并按服务商的指引重试。若当前轮次内无法解除限制,该轮会结束并保留会话状态,方便你稍后继续。升级订阅套餐才能提高该限额。",
376
376
  "AgentSky skill added": "已添加 AgentSky 技能",
377
+ "AgentSky turns rules on for each workspace. Email us and we'll turn them on for this one.": "AgentSky 按工作区开启规则。给我们发邮件,我们会为这个工作区开启。",
377
378
  "AgentSky {version} is ready.": "AgentSky {version} 已准备好。",
378
379
  "AgentSky — Every agent, one place": "AgentSky:所有智能体,一处使用",
379
380
  "AgentSky — Your company's agents, in one place": "AgentSky:公司的智能体,都在这里",
@@ -445,6 +446,7 @@
445
446
  "All plugins": "全部插件",
446
447
  "All rates": "全部价格",
447
448
  "All sources": "全部来源",
449
+ "All tabs": "所有标签页",
448
450
  "All the rules that apply here, whoever set them and wherever they were set.": "这里适用的所有规则,无论由谁设置、在哪里设置。",
449
451
  "All uploads progress": "全部上传进度",
450
452
  "All use cases": "全部用例",
@@ -1326,6 +1328,7 @@
1326
1328
  "Connect your apps once — every agent you run can use them.": "只需连接一次应用,你运行的每个智能体都能使用。",
1327
1329
  "Connect your apps to use them in a task.": "连接你的应用,在任务中使用它们。",
1328
1330
  "Connect your apps — every agent can use them.": "连接你的应用,所有智能体都能使用。",
1331
+ "Connect your own account": "连接你自己的账户",
1329
1332
  "Connect your own model plan and get $0 model usage on eligible agents and models.": "连接你自己的模型套餐,符合条件的代理和模型即可享受零模型用量费用。",
1330
1333
  "Connect your own model plan.": "连接你自己的模型套餐。",
1331
1334
  "Connect {name}": "连接 {name}",
@@ -1622,6 +1625,7 @@
1622
1625
  "Couldn't search {sources}": "无法搜索 {sources}",
1623
1626
  "Couldn't send the files. Try again.": "没能发送文件。请重试。",
1624
1627
  "Couldn't send the first message. Try again.": "没能发出第一条消息。请重试。",
1628
+ "Couldn't send your message.": "无法发送你的消息。",
1625
1629
  "Couldn't send your message. Try again.": "无法发送你的消息,请重试。",
1626
1630
  "Couldn't share the file. Try again.": "无法分享文件,请重试。",
1627
1631
  "Couldn't share {name}. Try again.": "无法分享 {name},请重试。",
@@ -2143,6 +2147,7 @@
2143
2147
  "Feedback": "反馈",
2144
2148
  "Fetch JS-heavy pages and run browser-backed sessions with TinyFish.": "用 TinyFish 读取依赖 JS 的页面,并运行基于浏览器的会话。",
2145
2149
  "Fetched a URL": "已获取一个网址",
2150
+ "Fetched {count} pages": "已获取 {count} 个网页",
2146
2151
  "Fetched {url}": "已获取 {url}",
2147
2152
  "Fewer than {count} verdicts — too few to call a winner yet.": "评判不足 {count} 个,还不足以判定胜者。",
2148
2153
  "File": "文件",
@@ -2288,7 +2293,7 @@
2288
2293
  "Fridays": "每周五",
2289
2294
  "Friend price": "朋友价",
2290
2295
  "From": "来源",
2291
- "From December 12, 2026, nothing sells for less than twice what it costs us. Claude and GPT stay at 30% off the maker’s price. DeepSeek bills at the maker’s price plus 20%, and every other model at twice its listed price. Image, video and speech models, meeting recording ($1.00 per recorder hour, $0.30 per recorded hour) and API gateway calls never bill below twice their supplier’s cost, and email an agent sends costs $0.0002 a message. Credit you already hold keeps its value, and work started before then keeps today’s price.": "自 2026 年 12 月 12 日起,所有收费项目的售价都不低于我们成本的两倍。Claude 和 GPT 仍按厂商价格的七折计费。DeepSeek 按厂商价格加 20% 计费,其他模型按其标价的两倍计费。图像、视频和语音模型、会议录制(录制机器人每小时 $1.00,每录制一小时 $0.30)以及 API 网关调用的价格都不低于供应商成本的两倍;智能体发送的邮件每封 $0.0002。您已持有的额度保持原有价值,在此之前开始的工作仍按现价计费。",
2296
+ "From December 12, 2026, some prices change. Claude and GPT stay at 30% off the maker’s price. DeepSeek bills at the maker’s price plus 20%, and every other model at twice its listed price. Image, video and speech models and API gateway calls move to the new prices on Pricing, meeting recording costs $1.00 per recorder hour and $0.30 per recorded hour, and email an agent sends costs $0.0002 a message. Credit you already hold keeps its value, and work started before then keeps today’s price.": "自 2026 年 12 月 12 日起,部分价格调整。Claude 和 GPT 仍按厂商价格的七折计费。DeepSeek 按厂商价格加 20% 计费,其他模型按其标价的两倍计费。图像、视频和语音模型以及 API 网关调用改按定价页上的新价格计费;会议录制为录制机器人每小时 $1.00、每录制一小时 $0.30;智能体发送的邮件每封 $0.0002。您已持有的额度保持原有价值,在此之前开始的工作仍按现价计费。",
2292
2297
  "From date": "开始日期",
2293
2298
  "From here on usage is billed normally.": "从这里开始按正常方式计费。",
2294
2299
  "From recent conversations": "来自最近的对话",
@@ -2511,6 +2516,7 @@
2511
2516
  "In the cloud it uses your {plan} plan; on this Mac it uses AgentSky credits.": "在云端使用你的 {plan} 套餐;在这台 Mac 上使用 AgentSky 额度。",
2512
2517
  "In the cloud it uses your {plan} plan; on this Mac it uses your own plan.": "在云端使用你的 {plan} 套餐;在这台 Mac 上使用你自己的套餐。",
2513
2518
  "In the cloud you pay for what you use: compute while your agent works, the models and tools it calls, and stored files above 1 GiB per workspace. No seats, no minimums. On your Mac, Claude Code and Codex run on your own plan.": "在云端你只为用到的付费:智能体工作时的算力、它调用的模型和工具,以及每个工作区超出 1 GiB 的存储文件。没有席位费,也没有最低消费。在 Mac 上,Claude Code 和 Codex 使用你自己的套餐运行。",
2519
+ "In the cloud · takes over this conversation": "在云端 · 接手这段对话",
2514
2520
  "In the cloud · {logins}": "在云端 · {logins}",
2515
2521
  "In the cloud, a spent account hands the chat to your next connected account of the same plan. Close the lid and the chat can move to the cloud with its folder.": "在云端,一个账号额度用完,对话自动交给你连接的同类套餐的下一个账号。合上盖子,对话可以带着文件夹搬到云端。",
2516
2522
  "In the cloud, a spent account hands the chat to your next connected account of the same plan. Close the lid and the chat moves to the cloud with its folder.": "在云端,一个账号额度用完,对话自动交给你连接的同类套餐的下一个账号。合上盖子,对话带着文件夹搬到云端。",
@@ -2930,7 +2936,7 @@
2930
2936
  "Manage {name}": "管理 {name}",
2931
2937
  "Manage…": "管理…",
2932
2938
  "Manual": "手动",
2933
- "Many agents can also pick models from the wider catalog, served through OpenRouter. Those bill at their cheapest provider's price, including OpenRouter's fee, plus {margin}%, with no discount.": "许多智能体还可以从更大的模型目录中选择通过 OpenRouter 提供的模型。这些模型按最便宜供应商的价格(含 OpenRouter 手续费)加 {margin}% 计费,不打折。",
2939
+ "Many agents can also pick models from the wider catalog. Each one shows its price before you use it, with no discount.": "许多智能体还可以从更广泛的模型目录中选择模型。每个模型在使用前都会显示价格,不享受折扣。",
2934
2940
  "Maps": "地图",
2935
2941
  "Maps & places": "地图与地点",
2936
2942
  "Margin": "外边距",
@@ -3109,6 +3115,7 @@
3109
3115
  "Music & sound effects": "音乐与音效",
3110
3116
  "Muted tasks": "已静音的任务",
3111
3117
  "My agents": "我的智能体",
3118
+ "My agents · takes over this conversation": "我的智能体 · 接手这段对话",
3112
3119
  "My balance": "我的余额",
3113
3120
  "My browser": "我的浏览器",
3114
3121
  "My notes": "我的笔记",
@@ -3204,6 +3211,7 @@
3204
3211
  "No access": "无权限",
3205
3212
  "No active chat.": "没有进行中的对话。",
3206
3213
  "No additional related work.": "没有更多相关工作。",
3214
+ "No agent fee. It runs on your own provider account or API key, and that provider bills the model. AgentSky bills only compute time while it works.": "没有智能体费用。它使用你自己的服务商账户或 API 密钥运行,模型费用由该服务商收取。AgentSky 只收取它工作期间的计算时间费用。",
3207
3215
  "No agent matches": "没有匹配的智能体",
3208
3216
  "No agent on this Mac": "这台 Mac 上没有智能体",
3209
3217
  "No agent uses it": "没有智能体在用",
@@ -3570,6 +3578,7 @@
3570
3578
  "Only the sites you choose": "只导入你选择的网站",
3571
3579
  "Only the workspace owner can change these.": "只有工作区所有者可以修改。",
3572
3580
  "Only the workspace's owner and admins change its rules.": "只有工作区的所有者和管理员可以修改规则。",
3581
+ "Only the workspace's owner can ask AgentSky to turn them on.": "只有工作区的所有者可以请 AgentSky 开启规则。",
3573
3582
  "Only tools you select are approved": "仅批准你选择的工具",
3574
3583
  "Only when I'm away": "仅在我不在时",
3575
3584
  "Only when unfocused": "仅在未聚焦时",
@@ -5789,6 +5798,7 @@
5789
5798
  "Try the preview of {name} again": "重新预览 {name}",
5790
5799
  "Try this task": "试试这个任务",
5791
5800
  "Try {name} again": "重试 {name}",
5801
+ "Trying again in {seconds}s.": "{seconds} 秒后重试。",
5792
5802
  "Tuesday": "星期二",
5793
5803
  "Tuesdays": "每周二",
5794
5804
  "Turn": "轮",
@@ -5953,6 +5963,7 @@
5953
5963
  "Use a browser on this Mac": "使用本机浏览器",
5954
5964
  "Use a public https:// address.": "请使用公开的 https:// 地址。",
5955
5965
  "Use an API key": "使用 API 密钥",
5966
+ "Skip for now": "暂不登录",
5956
5967
  "Use an email that has no AgentSky account yet.": "请用还没注册过 AgentSky 的邮箱。",
5957
5968
  "Use an unrestricted personal AgentSky API key with write access.": "请使用没有限制、带写入权限的个人 AgentSky API 密钥。",
5958
5969
  "Use another account": "使用其他账号",
@@ -6099,6 +6110,7 @@
6099
6110
  "Watching {count}": "正在跟进 {count} 件",
6100
6111
  "Ways to use an agent": "使用智能体的方式",
6101
6112
  "We could not load this chat. Try again in a moment.": "暂时无法加载这个对话,请稍后重试。",
6113
+ "We could not load this chat. We'll keep trying, or you can try again now.": "暂时无法加载这个对话。我们会继续自动重试,你也可以现在重试。",
6102
6114
  "We could not reach the chat just now. Nothing about your access has changed.": "刚才无法连接到这个对话,你的访问权限没有变化。",
6103
6115
  "We couldn't confirm your message arrived. Check the chat before sending it again.": "无法确认消息已送达。重新发送前请先查看对话。",
6104
6116
  "We finish within {days} days and email you when the request is in. You are signed out as soon as you confirm. Billing records are kept as long as tax rules require.": "我们会在 {days} 天内完成,收到申请后会发邮件通知你。确认后你会立即退出登录。账单记录会按税务规定的期限保留。",
@@ -6251,6 +6263,7 @@
6251
6263
  "Which files": "选择文件来源",
6252
6264
  "Which meeting apps does it work with?": "支持哪些会议软件?",
6253
6265
  "Which one do you like?": "你更喜欢哪一个?",
6266
+ "Which plugins agents may use here, set in the developer console.": "这里的智能体可以使用哪些插件,在开发者控制台中设置。",
6254
6267
  "Which response worked best for you?": "哪个回答对你最有用?",
6255
6268
  "Which rule decides?": "由哪条规则决定?",
6256
6269
  "Which tool": "哪个工具",
@@ -7393,5 +7406,34 @@
7393
7406
  "Set a chat's permission mode": "设置对话的权限模式",
7394
7407
  "You asked for {permission}": "你申请的是:{permission}",
7395
7408
  "Awaiting approval": "待批准",
7396
- "Waiting for {name} to answer": "正在等待 {name} 回答"
7409
+ "Waiting for {name} to answer": "正在等待 {name} 回答",
7410
+ "Stop and save the meeting": "停止并保存会议",
7411
+ "Record a meeting": "录制会议",
7412
+ "Turn on Meetings to record": "开启会议功能后即可录制",
7413
+ "Tomorrow": "明天",
7414
+ "Starting now": "即将开始",
7415
+ "In {minutes} min": "{minutes} 分钟后",
7416
+ "Untitled meeting": "未命名会议",
7417
+ "Join and record": "加入并录制",
7418
+ "Calendar access is off. Turn it on in System Settings › Privacy & Security › Calendars.": "日历访问已关闭。请在“系统设置 › 隐私与安全性 › 日历”中开启。",
7419
+ "Calendar couldn't be read.": "无法读取日历。",
7420
+ "New chat (⌘N)": "新对话 (⌘N)",
7421
+ "Show my meetings from Calendar": "显示日历中的会议",
7422
+ "This needs the cloud": "这一步需要云端",
7423
+ "“Only on this Mac” is on, so nothing is sent to the cloud. Turn the cloud back on to continue.": "已开启“仅限这台 Mac”,所以不会向云端发送任何内容。开启云端即可继续。",
7424
+ "This needs the cloud. “Only on this Mac” is on, so nothing is sent until you turn the cloud back on.": "这一步需要云端。已开启“仅限这台 Mac”,开启云端前不会发送任何内容。",
7425
+ "Off stops recording apps, sites, documents, files and screenshots on this Mac; what was already recorded stays until you delete it.": "关闭后,这台 Mac 不再记录应用、网站、文档、文件和截图;已记录的内容会保留,直到你删除。",
7426
+ "Off stops reading the WeChat chats you chose; messages already sent to your account stay until you delete them.": "关闭后,不再读取你选择的微信聊天;已发送到你账户的消息会保留,直到你删除。",
7427
+ "Off stops recording and transcribing calls on this Mac; notes and recordings already saved stay until you delete them.": "关闭后,这台 Mac 不再录制和转写通话;已保存的笔记和录音会保留,直到你删除。",
7428
+ "Off stops sending recorders and withdraws the ones already booked; notes and videos already written stay in this workspace.": "关闭后,不再派出录制机器人,并撤回已预约的;已写好的笔记和视频仍保留在这个工作区。",
7429
+ "Off stops new uploads from this Mac; chats already added stay in the library until you delete them.": "关闭后,这台 Mac 不再上传新的聊天;已加入的聊天会留在库中,直到你删除。",
7430
+ ", then “Add to Home Screen”": ",再选「添加到主屏幕」",
7431
+ "Full screen, with notifications.": "全屏打开,还能收通知。",
7432
+ "Got it": "知道了",
7433
+ "Menu": "菜单",
7434
+ "On iPhone, add AgentSky to your Home Screen to get notified when an agent finishes or needs you.": "在 iPhone 上,把 AgentSky 添加到主屏幕,agent 完成或需要你时就会通知你。",
7435
+ "Tap": "点",
7436
+ "Use AgentSky as an app": "像 App 一样用 AgentSky",
7437
+ "Approval": "审批",
7438
+ "Sends": "发送"
7397
7439
  }
@@ -1 +1 @@
1
- :root{--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-code: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--pad-xs: 4px;--pad-sm: 8px;--pad-md: 12px;--pad-lg: 16px;--pad-xl: 24px;--gap-xs: var(--pad-xs);--gap-sm: var(--pad-sm);--gap-md: var(--pad-md);--gap-lg: var(--pad-lg);--gap-xl: var(--pad-xl);--h-control-xs: 28px;--h-control-sm: 32px;--h-control: 36px;--h-control-lg: 40px;--icon-xs: 12px;--icon-sm: 14px;--icon: 16px;--icon-lg: 20px;--icon-xl: 32px;--corner-tiny: 4px;--corner-control: 8px;--corner-card: 12px;--corner-bubble: 20px;--fs-caption: 12px;--lh-caption: 17px;--fs-meta: 13px;--lh-meta: 18px;--fs-ui: 14px;--lh-ui: 21px;--fs-prose: 15px;--lh-prose: 24px;--fs-subhead: 16px;--lh-subhead: 22px;--fs-title: 18px;--lh-title: 24px;--fs-display: 24px;--lh-display: 29px;--fs-metric: 32px;--lh-metric: 36px;--fs-cta: 14px;--lh-cta: 14px;--fs-reading: 17px;--lh-reading: calc(var(--fs-reading) * 1.625);--fs-trace: 15px;--lh-trace: 22px;--dur-fast: 60ms;--dur-snap: .15s;--dur-base: .2s;--dur-sheet: .3s;--dur-slow: .3s;--ease-standard: cubic-bezier(0, 0, .2, 1);--ease-snap: cubic-bezier(.32, .72, 0, 1);--ease-overshoot: cubic-bezier(.34, 1.3, .64, 1);--z-base: 0;--z-raised: 10;--z-sticky: 20;--z-dropdown: 30;--z-overlay: 40;--z-modal: 50;--z-popover: 60;--z-tooltip: 80;--corner-radius-scale: 1;--color-foreground: var(--foreground);--text-meta: var(--fs-meta);--text-meta--line-height: var(--lh-meta);--text-meta--letter-spacing: 0;--text-ui: var(--fs-ui);--text-ui--line-height: var(--lh-ui);--text-ui--letter-spacing: 0;--text-cta: var(--fs-cta);--text-cta--line-height: var(--lh-cta);--text-cta--letter-spacing: 0;--text-reading: var(--fs-reading);--text-reading--line-height: var(--lh-reading);--text-reading--letter-spacing: 0;--text-trace: var(--fs-trace);--text-trace--line-height: var(--lh-trace);--text-trace--letter-spacing: 0;--text-prose: var(--fs-prose);--text-prose--line-height: var(--lh-prose);--text-prose--letter-spacing: 0;--text-subhead: var(--fs-subhead);--text-subhead--line-height: var(--lh-subhead);--text-subhead--letter-spacing: -.01em;--text-title: var(--fs-title);--text-title--line-height: var(--lh-title);--text-title--letter-spacing: -.02em;--text-display: var(--fs-display);--text-display--line-height: var(--lh-display);--text-display--letter-spacing: -.02em;--text-metric: var(--fs-metric);--text-metric--line-height: var(--lh-metric);--text-metric--letter-spacing: -.03em;--text-code: .92em;--text-code--line-height: 1.45;--text-code--letter-spacing: 0;--text-caption: var(--fs-caption);--text-caption--line-height: var(--lh-caption);--text-caption--letter-spacing: 0;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 600;--radius-tiny: calc(var(--corner-tiny) * var(--corner-radius-scale));--radius-control: calc(var(--corner-control) * var(--corner-radius-scale));--radius-card: calc(var(--corner-card) * var(--corner-radius-scale));--radius-pill: 9999px;--radius-composer: 1.5rem;--radius-bubble: var(--radius-card);--radius-menu: var(--radius-card);--radius-context: var(--radius-card);--container-reading: 48.75rem;--container-bubble: 42rem;--background: var(--ast-canvas);--foreground: var(--ast-ink);--card: var(--ast-panel);--card-foreground: var(--ast-ink);--popover: var(--ast-panel);--popover-foreground: var(--ast-ink);--primary: #0d0d0d;--primary-foreground: #ffffff;--secondary: var(--ast-surface);--secondary-foreground: var(--ast-ink);--muted: var(--ast-surface);--muted-foreground: var(--ast-muted-ink);--accent: var(--ast-surface);--accent-foreground: var(--ast-ink);--destructive: var(--ast-danger);--border: var(--ast-line);--input: var(--ast-line-strong);--ring: var(--ast-brand-deep);--shadow-control: none;--shadow-row: none;--shadow-panel: none;--shadow-panel-hover: var(--shadow-overlay);--shadow-focus: 0 0 0 2px var(--ring);--shadow-overlay: 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent), 0 16px 40px -18px rgb(0 0 0 / 55%);--glass-bar: color-mix(in oklab, var(--ast-surface) 82%, transparent);--glass-fill: rgb(255 255 255 / 70%);--glass-fill-hover: #ffffff;--shadow-glass: inset 0 1px 0 rgb(255 255 255 / 95%), inset 0 -1px 0 color-mix(in srgb, var(--ast-ink) 4%, transparent), 0 0 0 .5px var(--ast-line-strong), 0 6px 16px -8px color-mix(in srgb, var(--ast-ink) 22%, transparent);--space-micro: 2px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--row-compact: 32px;--row-default: 40px;--row-touch: 44px;--app-rail-bg: var(--ast-canvas);--app-rail-active-bg: var(--ast-surface);--app-row-hover: var(--ast-surface);--app-rail-width: 320px;--app-rail-header-height: 48px;--app-rail-row-height: 28px;--app-rail-row-radius: 6px;--app-rail-nav-size: var(--fs-ui);--app-rail-label-size: calc(var(--fs-ui) * .9);--app-rail-section-gap: 24px;--app-rail-ink: var(--ast-ink);--app-rail-muted: #68686f;--app-rail-hover: rgb(0 0 0 / 6%);--app-rail-active: color-mix(in srgb, #0d0d0d 6%, transparent);--app-rail-active-ink: var(--ast-brand-deep);--app-rail-edge-shadow: inset -8px 0 12px -8px rgb(0 0 0 / 5%);--app-nav-rail-bg: color-mix(in srgb, var(--ast-ink) 4.5%, var(--ast-canvas));--ast-brand-sky: #e7f4fe;--ast-sky-ink: #0d0d0d;--app-workspace-bg: #f3f3f3;--app-session-rail-bg: #f3f3f3;--color-chart-claude: var(--ast-chart-claude);--color-chart-codex: var(--ast-chart-codex);--color-chart-hermes: var(--ast-chart-hermes);--ast-syntax-string: color-mix(in oklab, var(--color-chart-hermes) 55%, var(--color-foreground));--ast-syntax-number: color-mix(in oklab, var(--color-chart-codex) 55%, var(--color-foreground));--ast-syntax-deletion: color-mix(in oklab, var(--color-chart-claude) 55%, var(--color-foreground));--ast-ink: #0d0d0d;--ast-secondary-ink: #404040;--ast-muted-ink: #595959;--ast-faint: #636363;--ast-placeholder: #636363;--ast-brand: #1683f3;--ast-brand-hover: #0d70d5;--ast-brand-deep: #054a94;--ast-brand-ink: #0a66c2;--ast-brand-ink-hover: #085aab;--ast-brand-foreground: #061a2d;--ast-action: #0a66c2;--ast-action-hover: #2c3038;--ast-line: color-mix(in oklab, #0d0d0d 6%, transparent);--ast-line-strong: color-mix(in oklab, #0d0d0d 10%, transparent);--ast-line-hover: color-mix(in oklab, #0d0d0d 14%, transparent);--ast-divider: color-mix(in oklab, #0d0d0d 4%, transparent);--ast-surface: #f4f4f4;--ast-canvas: #ffffff;--ast-logo-tile: #ffffff;--ast-panel: #ffffff;--ast-navy: #061a2d;--ast-navy-deep: #04121f;--ast-sky: #1683f3;--ast-sky-soft: #f2f9ff;--ast-sky-mid: #d9edfe;--ast-sky-strong: color-mix(in oklab, var(--ast-sky-mid) 80%, var(--ast-sky));--ast-positive: oklch(.52 .14 145);--ast-warning: oklch(.68 .14 75);--ast-info: #075eb8;--ast-danger: oklch(.54 .23 27.325);--ast-switch-on: var(--ast-brand);--ast-runtime-ink: #dcecff;--ast-runtime-line: rgb(255 255 255 / .08);--ast-runtime-hover: #0b2a47;--ast-band-foreground: #ffffff;--ast-band-line: rgb(255 255 255 / .25);--ast-shadow-float: var(--shadow-overlay);--ast-shadow-runtime: var(--shadow-overlay);--ast-shadow-panel: none;--ast-shadow-composer: var(--shadow-overlay);--ast-composer-surface: rgb(255 255 255 / .86);--ast-chart-claude: #eb6834;--ast-chart-codex: #2a78d6;--ast-chart-hermes: #1baf7a;--ast-chart-pi: #8b5cf6;--ast-chart-cost-lo: #86b6ef;--ast-chart-cost-mid: #2a78d6;--ast-chart-cost-hi: #104281;--ast-chart-time: #4a3aa7;--ast-identity-1: #3fb8a8;--ast-identity-2: #f29c38;--ast-identity-3: #5b6cf0;--ast-identity-4: #8e5cf0;--ast-identity-5: #2f7df6;--ast-identity-6: #ef6a3a;--ast-identity-7: #2fa66a;--ast-identity-8: #e0559a;--color-border-subtle: color-mix(in oklab, var(--ast-ink) 8%, transparent);--color-surface-subtle: color-mix(in oklab, var(--ast-ink) 3%, transparent);--color-accent-muted: var(--ast-sky-soft);--color-destructive-muted: color-mix(in oklab, var(--destructive) 12%, transparent);--color-diff-add: oklch(.72 .17 145);--color-diff-del: oklch(.6 .22 27);--bubble-user: var(--ast-surface);--bubble-user-foreground: var(--ast-ink);--bubble-assistant: color-mix(in oklab, var(--muted) 80%, transparent);--composer-surface: color-mix(in oklab, var(--card) 90%, transparent);--composer-border: transparent;--composer-border-focus: transparent;--composer-shadow: var(--ast-shadow-composer);--composer-shadow-focus: 0 0 0 1px var(--ring), 0 0 0 4px color-mix(in oklab, var(--ring) 24%, transparent), 0 2px 6px -2px rgb(0 0 0 / .05), 0 8px 24px -12px rgb(0 0 0 / .08)}@media(prefers-color-scheme:dark){:root{--primary: var(--ast-ink);--primary-foreground: var(--ast-canvas);--secondary: rgb(255 255 255 / 8%);--muted: rgb(255 255 255 / 8%);--accent: rgb(255 255 255 / 8%);--shadow-overlay: 0 20px 56px -16px oklch(0 0 0 / .72), 0 0 0 1px oklch(1 0 0 / .08);--glass-bar: rgb(255 255 255 / 8%);--glass-fill: rgb(255 255 255 / 10%);--glass-fill-hover: rgb(255 255 255 / 16%);--shadow-glass: inset 0 1px 0 rgb(255 255 255 / 18%), inset 0 -1px 0 color-mix(in srgb, var(--ast-canvas) 40%, transparent), 0 0 0 .5px var(--ast-line-strong), 0 8px 20px -10px color-mix(in srgb, var(--ast-canvas) 90%, transparent);--app-rail-muted: #a1a1aa;--app-rail-hover: rgb(255 255 255 / 8%);--app-rail-active: color-mix(in srgb, #ffffff 10%, transparent);--app-rail-active-ink: var(--ast-ink);--app-rail-edge-shadow: inset -8px 0 12px -8px rgb(0 0 0 / 40%);--app-workspace-bg: #131313;--app-session-rail-bg: #131313;--ast-ink: #ececec;--ast-secondary-ink: color-mix(in oklab, #ffffff 74%, transparent);--ast-muted-ink: color-mix(in oklab, #ffffff 62%, transparent);--ast-faint: color-mix(in oklab, #ffffff 56%, transparent);--ast-placeholder: #9a9a9a;--ast-brand-hover: #3a97f5;--ast-brand-deep: #8ed1ff;--ast-brand-ink: #78c8ff;--ast-brand-ink-hover: #8ed1ff;--ast-brand-foreground: #020e19;--ast-action: #78c8ff;--ast-action-hover: #d8d6cf;--ast-line: color-mix(in oklab, #ffffff 8%, transparent);--ast-line-strong: color-mix(in oklab, #ffffff 14%, transparent);--ast-line-hover: oklch(1 0 0 / 18%);--ast-divider: color-mix(in oklab, #ffffff 4%, transparent);--ast-surface: #303030;--ast-canvas: #181818;--ast-logo-tile: #d8d8d8;--ast-panel: #212121;--ast-navy: #020e19;--ast-navy-deep: #010810;--ast-sky-soft: #10202c;--ast-sky-mid: #1a3346;--ast-positive: oklch(.62 .15 145);--ast-warning: oklch(.7 .16 85);--ast-info: #8ed1ff;--ast-danger: oklch(.78 .14 22.216);--ast-band-foreground: #020e19;--ast-band-line: rgb(2 14 25 / .25);--ast-composer-surface: rgb(26 27 30 / .82);--ast-chart-claude: #d95926;--ast-chart-codex: #3987e5;--ast-chart-hermes: #199e70;--ast-chart-pi: #a78bfa;--ast-chart-cost-lo: #6da7ec;--ast-chart-cost-mid: #3987e5;--ast-chart-cost-hi: #184f95;--ast-chart-time: #9085e9;--color-border-subtle: color-mix(in oklab, #ffffff 8%, transparent);--color-surface-subtle: color-mix(in oklab, #ffffff 4%, transparent);--color-accent-muted: color-mix(in oklab, var(--ast-sky-soft) 20%, transparent);--color-diff-add: oklch(.62 .17 145);--color-diff-del: oklch(.52 .22 27);--bubble-user: rgb(255 255 255 / 6%);--bubble-user-foreground: var(--foreground);--bubble-assistant: color-mix(in oklab, var(--ast-surface) 60%, transparent);--composer-border: rgba(255, 255, 255, .16);--composer-border-focus: rgba(255, 255, 255, .24);--composer-shadow: 0 0 0 1px var(--composer-border);--composer-shadow-focus: 0 0 0 1px var(--ring), 0 0 0 4px color-mix(in oklab, var(--ring) 24%, transparent)}}:root[data-accent=blue]{--ast-brand: #0f4c81;--ast-brand-hover: #0d4372;--ast-brand-deep: #0c3b65;--ast-brand-ink: #0f4c81;--ast-brand-ink-hover: #0e4474;--ast-brand-foreground: #ffffff;--ast-action: #0e4474;--ast-sky: #0f4c81;--ast-sky-soft: #f4f8fc;--ast-sky-mid: #dce8f3;--ring: var(--ast-brand-deep)}:root[data-accent=ultraviolet]{--ast-brand: #5f4b8b;--ast-brand-hover: #54427a;--ast-brand-deep: #442f6d;--ast-brand-ink: #5f4b8b;--ast-brand-ink-hover: #513d7c;--ast-brand-foreground: #ffffff;--ast-action: #513d7c;--ast-sky: #5f4b8b;--ast-sky-soft: #f7f5fe;--ast-sky-mid: #e8e2fc;--ring: var(--ast-brand-deep)}:root[data-accent=vivamagenta]{--ast-brand: #bb2649;--ast-brand-hover: #a52140;--ast-brand-deep: #930231;--ast-brand-ink: #bb2649;--ast-brand-ink-hover: #a90b3b;--ast-brand-foreground: #ffffff;--ast-action: #a90b3b;--ast-sky: #bb2649;--ast-sky-soft: #fff4f4;--ast-sky-mid: #ffdddf;--ring: var(--ast-brand-deep)}:root[data-accent=peachfuzz]{--ast-brand: #ffbe98;--ast-brand-hover: #e0a786;--ast-brand-deep: #7e3b03;--ast-brand-ink: #a85416;--ast-brand-ink-hover: #964702;--ast-brand-foreground: #1a1c1f;--ast-action: #964702;--ast-sky: #ffbe98;--ast-sky-soft: #fef5f0;--ast-sky-mid: #fedfce;--ring: var(--ast-brand-deep)}:root[data-accent=mochamousse]{--ast-brand: #a47864;--ast-brand-hover: #906a58;--ast-brand-deep: #6d4533;--ast-brand-ink: #8c614e;--ast-brand-ink-hover: #7c5340;--ast-brand-foreground: #000000;--ast-action: #7c5340;--ast-sky: #a47864;--ast-sky-soft: #fef5f1;--ast-sky-mid: #f4e2da;--ring: var(--ast-brand-deep)}:root[data-accent=greenery]{--ast-brand: #88b04b;--ast-brand-hover: #789b42;--ast-brand-deep: #3c5702;--ast-brand-ink: #527603;--ast-brand-ink-hover: #476601;--ast-brand-foreground: #1a1c1f;--ast-action: #476601;--ast-sky: #88b04b;--ast-sky-soft: #f3faeb;--ast-sky-mid: #ddedcb;--ring: var(--ast-brand-deep)}:root[data-accent=emerald]{--ast-brand: #009473;--ast-brand-hover: #008265;--ast-brand-deep: #03553f;--ast-brand-ink: #047a5f;--ast-brand-ink-hover: #036d54;--ast-brand-foreground: #000000;--ast-action: #036d54;--ast-sky: #009473;--ast-sky-soft: #eafbf5;--ast-sky-mid: #ccf0e2;--ring: var(--ast-brand-deep)}:root[data-accent=clouddancer]{--ast-switch-on: var(--ast-ink);--ast-brand: #f0eee9;--ast-brand-hover: #d3d1cd;--ast-brand-deep: #404040;--ast-brand-ink: #595959;--ast-brand-ink-hover: #404040;--ast-brand-foreground: #0d0d0d;--ast-action: #404040;--ast-sky: #f0eee9;--ast-sky-soft: #f7f7f7;--ast-sky-mid: #e8e8e8;--app-rail-active: color-mix(in srgb, #0d0d0d 6%, transparent);--ring: var(--ast-brand-deep)}@media(prefers-color-scheme:dark){:root[data-accent=blue]{--ast-brand: #0f4c81;--ast-brand-hover: #2c6190;--ast-brand-deep: #b3d1ef;--ast-brand-ink: #7fb0e0;--ast-brand-ink-hover: #93bde6;--ast-brand-foreground: #ffffff;--ast-action: #7fb0e0;--ast-sky: #0f4c81;--ast-sky-soft: #121c26;--ast-sky-mid: #1d3044;--ring: var(--ast-brand-deep)}:root[data-accent=ultraviolet]{--ast-brand: #5f4b8b;--ast-brand-hover: #726199;--ast-brand-deep: #c0adf5;--ast-brand-ink: #a591d8;--ast-brand-ink-hover: #b29ee5;--ast-brand-foreground: #ffffff;--ast-action: #a591d8;--ast-sky: #5f4b8b;--ast-sky-soft: #201a2d;--ast-sky-mid: #332b47;--ring: var(--ast-brand-deep)}:root[data-accent=vivamagenta]{--ast-brand: #bb2649;--ast-brand-hover: #c3405f;--ast-brand-deep: #fe9ca6;--ast-brand-ink: #ff6c82;--ast-brand-ink-hover: #fe8492;--ast-brand-foreground: #ffffff;--ast-action: #ff6c82;--ast-sky: #bb2649;--ast-sky-soft: #301418;--ast-sky-mid: #4e1f26;--ring: var(--ast-brand-deep)}:root[data-accent=peachfuzz]{--ast-brand: #ffbe98;--ast-brand-hover: #ffc6a4;--ast-brand-deep: #fda26a;--ast-brand-ink: #df864e;--ast-brand-ink-hover: #ed935b;--ast-brand-foreground: #1a1c1f;--ast-action: #df864e;--ast-sky: #ffbe98;--ast-sky-soft: #2f1708;--ast-sky-mid: #4a250d;--ring: var(--ast-brand-deep)}:root[data-accent=mochamousse]{--ast-brand: #a47864;--ast-brand-hover: #af8877;--ast-brand-deep: #ddae98;--ast-brand-ink: #c0927d;--ast-brand-ink-hover: #cd9f8a;--ast-brand-foreground: #000000;--ast-action: #c0927d;--ast-sky: #a47864;--ast-sky-soft: #271b15;--ast-sky-mid: #3e2b23;--ring: var(--ast-brand-deep)}:root[data-accent=greenery]{--ast-brand: #88b04b;--ast-brand-hover: #96b961;--ast-brand-deep: #9cc560;--ast-brand-ink: #81a943;--ast-brand-ink-hover: #8db651;--ast-brand-foreground: #1a1c1f;--ast-action: #81a943;--ast-sky: #88b04b;--ast-sky-soft: #182209;--ast-sky-mid: #26360b;--ring: var(--ast-brand-deep)}:root[data-accent=emerald]{--ast-brand: #009473;--ast-brand-hover: #1fa184;--ast-brand-deep: #58cba7;--ast-brand-ink: #36af8c;--ast-brand-ink-hover: #47bc99;--ast-brand-foreground: #000000;--ast-action: #36af8c;--ast-sky: #009473;--ast-sky-soft: #05241b;--ast-sky-mid: #043a2c;--ring: var(--ast-brand-deep)}:root[data-accent=clouddancer]{--ast-switch-on: var(--ast-ink);--ast-brand: #f0eee9;--ast-brand-hover: #f2f0ec;--ast-brand-deep: #bdbdbd;--ast-brand-ink: #a3a3a3;--ast-brand-ink-hover: #b0b0b0;--ast-brand-foreground: #0d0d0d;--ast-action: #a3a3a3;--ast-sky: #f0eee9;--ast-sky-soft: #1f1f1f;--ast-sky-mid: #313131;--app-rail-active: color-mix(in srgb, #ffffff 10%, transparent);--ring: var(--ast-brand-deep)}}.type-overline{font-size:var(--text-meta);line-height:var(--text-meta--line-height);font-weight:var(--font-weight-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--ast-faint)}.type-meta{font-size:var(--text-meta);line-height:var(--text-meta--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-meta--letter-spacing)}.type-label{font-size:var(--text-ui);line-height:var(--text-ui--line-height);font-weight:var(--font-weight-medium);letter-spacing:var(--text-ui--letter-spacing)}.type-caption{font-size:var(--text-ui);line-height:var(--text-ui--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-ui--letter-spacing)}.type-body{font-size:var(--text-prose);line-height:var(--text-prose--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-prose--letter-spacing)}.type-body-sm{font-size:var(--text-ui);line-height:var(--text-ui--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-ui--letter-spacing)}.type-prose{font-size:var(--text-prose);line-height:var(--text-prose--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-prose--letter-spacing)}.type-title-sm{font-size:var(--text-subhead);line-height:var(--text-subhead--line-height);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-subhead--letter-spacing)}.type-title{font-size:var(--text-title);line-height:var(--text-title--line-height);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-title--letter-spacing)}.type-metric{font-size:var(--text-display);line-height:var(--text-display--line-height);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-display--letter-spacing)}.app-section-label{font-size:var(--text-meta);line-height:var(--text-meta--line-height);font-weight:var(--font-weight-medium);letter-spacing:.04em;color:var(--ast-faint)}:root{--radius-editor-tool: 6px;color-scheme:light dark;--canvas: var(--ast-canvas);--panel: var(--ast-panel);--surface: var(--ast-surface);--ink: var(--ast-ink);--secondary-ink: var(--ast-secondary-ink);--muted-ink: var(--ast-muted-ink);--faint: var(--ast-faint);--placeholder: var(--ast-placeholder);--line: var(--ast-line);--line-strong: var(--ast-line-strong);--line-hover: var(--ast-line-hover);--brand: var(--ast-brand-deep);--brand-sky: var(--app-rail-active);--action: var(--ast-action);--primary-ink: var(--primary-foreground);--danger: var(--ast-danger);--success: var(--ast-positive);--info-soft: oklch(from var(--ast-info) .92 .05 h);--success-soft: oklch(from var(--success) .92 .07 h);--warning-soft: oklch(from var(--ast-warning) .93 .09 h);--danger-soft: oklch(from var(--danger) .91 .06 h);--rail-bg: var(--canvas);--rail-ink: var(--app-rail-ink);--rail-muted: var(--app-rail-muted);--rail-hover: var(--app-rail-hover);--rail-active: color-mix(in srgb, var(--ink) 8%, transparent);--rail-active-ink: var(--ink);--rail-row-height: var(--app-rail-row-height);--rail-row-radius: var(--app-rail-row-radius);--rail-label-size: var(--app-rail-label-size);--rail-section-gap: var(--app-rail-section-gap);--rail-header-height: var(--app-rail-header-height);--sidebar-width: var(--app-rail-width);--mac-chat-rail-width: 296px;--reading: var(--container-reading);--paper: #ffffff;--on-color: #ffffff;--code-string: var(--ast-syntax-string);--code-number: var(--ast-syntax-number);--code-keyword: var(--ast-brand-deep)}@media(prefers-color-scheme:dark){:root{--info-soft: oklch(from var(--ast-info) .32 .06 h);--success-soft: oklch(from var(--success) .32 .06 h);--warning-soft: oklch(from var(--ast-warning) .34 .07 h);--danger-soft: oklch(from var(--danger) .32 .08 h)}}:root[data-accent]{--rail-active: var(--app-rail-active);--rail-active-ink: var(--app-rail-active-ink)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font:400 var(--text-ui) / var(--text-ui--line-height) var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden;user-select:none;cursor:default}button,input,select,textarea{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}:lang(zh){line-break:strict;word-break:normal;font-synthesis:none}body{background:var(--panel)}main{display:flex;flex-direction:column;gap:var(--space-2);height:100vh;padding:var(--space-3);-webkit-app-region:drag}form,.row{display:flex;gap:var(--space-2);-webkit-app-region:no-drag}form{align-items:flex-end;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-composer);background:var(--panel);box-shadow:0 0 0 1px var(--line-strong);transition:box-shadow var(--dur-snap) var(--ease-standard)}form:focus-within{box-shadow:0 0 0 1px var(--ring)}textarea{flex:1;height:52px;padding:var(--space-1) 0;border:0;outline:0;resize:none;background:transparent;font-size:var(--text-prose);user-select:text;cursor:text}textarea::placeholder{color:var(--placeholder)}#send{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;border:0;border-radius:var(--radius-pill);background:var(--primary);color:var(--primary-ink);cursor:pointer}#send:disabled{opacity:.4;cursor:default}.row{align-items:center;justify-content:space-between}nav{display:flex;gap:var(--space-1)}nav button{height:28px;padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:transparent;font-weight:500;cursor:pointer}nav button:hover{background:var(--surface)}nav button:focus-visible,#send:focus-visible{outline:2px solid var(--brand);outline-offset:1px}#hint{margin:0;overflow:hidden;color:var(--muted-ink);font-size:var(--text-meta);text-overflow:ellipsis;white-space:nowrap}#hint.is-alert{color:var(--danger)}.ui-tooltip{position:fixed;z-index:var(--z-tooltip);display:inline-flex;width:max-content;max-width:min(20rem,calc(100vw - 16px));align-items:center;gap:var(--gap-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--ast-line);border-radius:var(--radius-control);background:var(--ast-panel);color:var(--ast-ink);box-shadow:var(--shadow-overlay);font-size:var(--text-meta);line-height:var(--text-meta--line-height);pointer-events:none;opacity:0;transform:scale(.98);transition:opacity var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}.ui-tooltip.is-open{opacity:1;transform:none}.ui-hover-card[data-hover-card-action]{pointer-events:auto}.ui-hover-card{position:fixed;z-index:var(--z-tooltip);display:flex;width:320px;max-width:min(20rem,calc(100vw - 16px));flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--ast-line);border-radius:var(--radius-card);background:var(--ast-canvas);color:var(--ast-ink);box-shadow:var(--shadow-overlay);font-size:var(--text-ui);line-height:var(--text-ui--line-height);pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease-standard)}.ui-hover-card.is-open{opacity:1}.ui-hover-card-title{display:flex;align-items:baseline;gap:var(--space-3)}.ui-hover-card-title strong{display:-webkit-box;min-width:0;flex:1;overflow:hidden;font-weight:500;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:4}.ui-hover-card-meta{flex-shrink:0;color:var(--ast-faint);font-size:var(--text-meta);font-variant-numeric:tabular-nums;white-space:nowrap}.ui-hover-card-row{display:flex;min-width:0;align-items:center;gap:var(--space-2)}.ui-hover-card-icon{display:flex;width:18px;height:18px;flex-shrink:0;align-items:center;justify-content:center;color:var(--ast-secondary-ink)}.ui-hover-card-icon:empty{display:none}.ui-hover-card-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1
+ :root{--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-code: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--pad-xs: 4px;--pad-sm: 8px;--pad-md: 12px;--pad-lg: 16px;--pad-xl: 24px;--gap-xs: var(--pad-xs);--gap-sm: var(--pad-sm);--gap-md: var(--pad-md);--gap-lg: var(--pad-lg);--gap-xl: var(--pad-xl);--h-control-xs: 28px;--h-control-sm: 32px;--h-control: 36px;--h-control-lg: 40px;--icon-xs: 12px;--icon-sm: 14px;--icon: 16px;--icon-lg: 20px;--icon-xl: 32px;--corner-tiny: 4px;--corner-control: 8px;--corner-card: 12px;--corner-bubble: 20px;--fs-caption: 12px;--lh-caption: 17px;--fs-meta: 13px;--lh-meta: 18px;--fs-ui: 14px;--lh-ui: 21px;--fs-prose: 15px;--lh-prose: 24px;--fs-subhead: 16px;--lh-subhead: 22px;--fs-title: 18px;--lh-title: 24px;--fs-display: 24px;--lh-display: 29px;--fs-metric: 32px;--lh-metric: 36px;--fs-cta: 14px;--lh-cta: 14px;--fs-reading: 17px;--lh-reading: calc(var(--fs-reading) * 1.625);--fs-trace: 15px;--lh-trace: 22px;--dur-fast: 60ms;--dur-snap: .15s;--dur-base: .2s;--dur-sheet: .3s;--dur-slow: .3s;--ease-standard: cubic-bezier(0, 0, .2, 1);--ease-snap: cubic-bezier(.32, .72, 0, 1);--ease-overshoot: cubic-bezier(.34, 1.3, .64, 1);--z-base: 0;--z-raised: 10;--z-sticky: 20;--z-dropdown: 30;--z-overlay: 40;--z-modal: 50;--z-popover: 60;--z-tooltip: 80;--corner-radius-scale: 1;--color-foreground: var(--foreground);--text-meta: var(--fs-meta);--text-meta--line-height: var(--lh-meta);--text-meta--letter-spacing: 0;--text-ui: var(--fs-ui);--text-ui--line-height: var(--lh-ui);--text-ui--letter-spacing: 0;--text-cta: var(--fs-cta);--text-cta--line-height: var(--lh-cta);--text-cta--letter-spacing: 0;--text-reading: var(--fs-reading);--text-reading--line-height: var(--lh-reading);--text-reading--letter-spacing: 0;--text-trace: var(--fs-trace);--text-trace--line-height: var(--lh-trace);--text-trace--letter-spacing: 0;--text-prose: var(--fs-prose);--text-prose--line-height: var(--lh-prose);--text-prose--letter-spacing: 0;--text-subhead: var(--fs-subhead);--text-subhead--line-height: var(--lh-subhead);--text-subhead--letter-spacing: -.01em;--text-title: var(--fs-title);--text-title--line-height: var(--lh-title);--text-title--letter-spacing: -.02em;--text-display: var(--fs-display);--text-display--line-height: var(--lh-display);--text-display--letter-spacing: -.02em;--text-metric: var(--fs-metric);--text-metric--line-height: var(--lh-metric);--text-metric--letter-spacing: -.03em;--text-code: .92em;--text-code--line-height: 1.45;--text-code--letter-spacing: 0;--text-caption: var(--fs-caption);--text-caption--line-height: var(--lh-caption);--text-caption--letter-spacing: 0;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 600;--radius-tiny: calc(var(--corner-tiny) * var(--corner-radius-scale));--radius-control: calc(var(--corner-control) * var(--corner-radius-scale));--radius-card: calc(var(--corner-card) * var(--corner-radius-scale));--radius-pill: 9999px;--radius-composer: 1.5rem;--radius-bubble: var(--radius-card);--radius-menu: var(--radius-card);--radius-context: var(--radius-card);--container-reading: 48.75rem;--container-bubble: 42rem;--background: var(--ast-canvas);--foreground: var(--ast-ink);--card: var(--ast-panel);--card-foreground: var(--ast-ink);--popover: var(--ast-panel);--popover-foreground: var(--ast-ink);--primary: #0d0d0d;--primary-foreground: #ffffff;--secondary: var(--ast-surface);--secondary-foreground: var(--ast-ink);--muted: var(--ast-surface);--muted-foreground: var(--ast-muted-ink);--accent: var(--ast-surface);--accent-foreground: var(--ast-ink);--destructive: var(--ast-danger);--border: var(--ast-line);--input: var(--ast-line-strong);--ring: var(--ast-brand-deep);--shadow-control: none;--shadow-row: none;--shadow-panel: none;--shadow-panel-hover: var(--shadow-overlay);--shadow-focus: 0 0 0 2px var(--ring);--shadow-overlay: 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent), 0 16px 40px -18px rgb(0 0 0 / 55%);--glass-bar: color-mix(in oklab, var(--ast-surface) 82%, transparent);--glass-fill: rgb(255 255 255 / 70%);--glass-fill-hover: #ffffff;--shadow-glass: inset 0 1px 0 rgb(255 255 255 / 95%), inset 0 -1px 0 color-mix(in srgb, var(--ast-ink) 4%, transparent), 0 0 0 .5px var(--ast-line-strong), 0 6px 16px -8px color-mix(in srgb, var(--ast-ink) 22%, transparent);--space-micro: 2px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--row-compact: 32px;--row-default: 40px;--row-touch: 44px;--app-rail-bg: var(--ast-canvas);--app-rail-active-bg: var(--ast-surface);--app-row-hover: var(--ast-surface);--app-rail-width: 320px;--app-rail-header-height: 48px;--app-rail-row-height: var(--h-control);--app-rail-row-radius: 6px;--app-rail-nav-size: var(--fs-prose);--app-rail-label-size: calc(var(--fs-ui) * .9);--app-rail-section-gap: 24px;--app-rail-ink: var(--ast-ink);--app-rail-muted: #68686f;--app-rail-hover: rgb(0 0 0 / 6%);--app-rail-active: color-mix(in srgb, #0d0d0d 6%, transparent);--app-rail-active-ink: var(--ast-brand-deep);--app-rail-edge-shadow: inset -8px 0 12px -8px rgb(0 0 0 / 5%);--app-nav-rail-bg: color-mix(in srgb, var(--ast-ink) 4.5%, var(--ast-canvas));--ast-brand-sky: #e7f4fe;--ast-sky-ink: #0d0d0d;--app-workspace-bg: #f3f3f3;--app-session-rail-bg: #f3f3f3;--color-chart-claude: var(--ast-chart-claude);--color-chart-codex: var(--ast-chart-codex);--color-chart-hermes: var(--ast-chart-hermes);--ast-syntax-string: color-mix(in oklab, var(--color-chart-hermes) 55%, var(--color-foreground));--ast-syntax-number: color-mix(in oklab, var(--color-chart-codex) 55%, var(--color-foreground));--ast-syntax-deletion: color-mix(in oklab, var(--color-chart-claude) 55%, var(--color-foreground));--ast-ink: #0d0d0d;--ast-secondary-ink: #404040;--ast-muted-ink: #595959;--ast-faint: #636363;--ast-placeholder: #636363;--ast-brand: #1683f3;--ast-brand-hover: #0d70d5;--ast-brand-deep: #054a94;--ast-brand-ink: #0a66c2;--ast-brand-ink-hover: #085aab;--ast-brand-foreground: #061a2d;--ast-action: #0a66c2;--ast-action-hover: #2c3038;--ast-line: color-mix(in oklab, #0d0d0d 6%, transparent);--ast-line-strong: color-mix(in oklab, #0d0d0d 10%, transparent);--ast-line-hover: color-mix(in oklab, #0d0d0d 14%, transparent);--ast-divider: color-mix(in oklab, #0d0d0d 4%, transparent);--ast-surface: #f4f4f4;--ast-canvas: #ffffff;--ast-logo-tile: #ffffff;--ast-panel: #ffffff;--ast-navy: #061a2d;--ast-navy-deep: #04121f;--ast-sky: #1683f3;--ast-sky-soft: #f2f9ff;--ast-sky-mid: #d9edfe;--ast-sky-strong: color-mix(in oklab, var(--ast-sky-mid) 80%, var(--ast-sky));--ast-positive: oklch(.52 .14 145);--ast-warning: oklch(.68 .14 75);--ast-info: #075eb8;--ast-danger: oklch(.54 .23 27.325);--ast-switch-on: var(--ast-brand);--ast-runtime-ink: #dcecff;--ast-runtime-line: rgb(255 255 255 / .08);--ast-runtime-hover: #0b2a47;--ast-band-foreground: #ffffff;--ast-band-line: rgb(255 255 255 / .25);--ast-shadow-float: var(--shadow-overlay);--ast-shadow-runtime: var(--shadow-overlay);--ast-shadow-panel: none;--ast-shadow-composer: var(--shadow-overlay);--ast-composer-surface: rgb(255 255 255 / .86);--ast-chart-claude: #eb6834;--ast-chart-codex: #2a78d6;--ast-chart-hermes: #1baf7a;--ast-chart-pi: #8b5cf6;--ast-chart-cost-lo: #86b6ef;--ast-chart-cost-mid: #2a78d6;--ast-chart-cost-hi: #104281;--ast-chart-time: #4a3aa7;--ast-identity-1: #3fb8a8;--ast-identity-2: #f29c38;--ast-identity-3: #5b6cf0;--ast-identity-4: #8e5cf0;--ast-identity-5: #2f7df6;--ast-identity-6: #ef6a3a;--ast-identity-7: #2fa66a;--ast-identity-8: #e0559a;--color-border-subtle: color-mix(in oklab, var(--ast-ink) 8%, transparent);--color-surface-subtle: color-mix(in oklab, var(--ast-ink) 3%, transparent);--color-accent-muted: var(--ast-sky-soft);--color-destructive-muted: color-mix(in oklab, var(--destructive) 12%, transparent);--color-diff-add: oklch(.72 .17 145);--color-diff-del: oklch(.6 .22 27);--bubble-user: var(--ast-surface);--bubble-user-foreground: var(--ast-ink);--bubble-assistant: color-mix(in oklab, var(--muted) 80%, transparent);--composer-surface: color-mix(in oklab, var(--card) 90%, transparent);--composer-border: transparent;--composer-border-focus: transparent;--composer-shadow: var(--ast-shadow-composer);--composer-shadow-focus: 0 0 0 1px var(--ast-line-strong), 0 2px 6px -2px rgb(0 0 0 / .05), 0 8px 24px -12px rgb(0 0 0 / .08)}@media(prefers-color-scheme:dark){:root{--primary: var(--ast-ink);--primary-foreground: var(--ast-canvas);--secondary: rgb(255 255 255 / 8%);--muted: rgb(255 255 255 / 8%);--accent: rgb(255 255 255 / 8%);--shadow-overlay: 0 20px 56px -16px oklch(0 0 0 / .72), 0 0 0 1px oklch(1 0 0 / .08);--glass-bar: rgb(255 255 255 / 8%);--glass-fill: rgb(255 255 255 / 10%);--glass-fill-hover: rgb(255 255 255 / 16%);--shadow-glass: inset 0 1px 0 rgb(255 255 255 / 18%), inset 0 -1px 0 color-mix(in srgb, var(--ast-canvas) 40%, transparent), 0 0 0 .5px var(--ast-line-strong), 0 8px 20px -10px color-mix(in srgb, var(--ast-canvas) 90%, transparent);--app-rail-muted: #a1a1aa;--app-rail-hover: rgb(255 255 255 / 8%);--app-rail-active: color-mix(in srgb, #ffffff 10%, transparent);--app-rail-active-ink: var(--ast-ink);--app-rail-edge-shadow: inset -8px 0 12px -8px rgb(0 0 0 / 40%);--app-workspace-bg: #131313;--app-session-rail-bg: #131313;--ast-ink: #ececec;--ast-secondary-ink: color-mix(in oklab, #ffffff 74%, transparent);--ast-muted-ink: color-mix(in oklab, #ffffff 62%, transparent);--ast-faint: color-mix(in oklab, #ffffff 56%, transparent);--ast-placeholder: #9a9a9a;--ast-brand-hover: #3a97f5;--ast-brand-deep: #8ed1ff;--ast-brand-ink: #78c8ff;--ast-brand-ink-hover: #8ed1ff;--ast-brand-foreground: #020e19;--ast-action: #78c8ff;--ast-action-hover: #d8d6cf;--ast-line: color-mix(in oklab, #ffffff 8%, transparent);--ast-line-strong: color-mix(in oklab, #ffffff 14%, transparent);--ast-line-hover: oklch(1 0 0 / 18%);--ast-divider: color-mix(in oklab, #ffffff 4%, transparent);--ast-surface: #303030;--ast-canvas: #181818;--ast-logo-tile: #d8d8d8;--ast-panel: #212121;--ast-navy: #020e19;--ast-navy-deep: #010810;--ast-sky-soft: #10202c;--ast-sky-mid: #1a3346;--ast-positive: oklch(.62 .15 145);--ast-warning: oklch(.7 .16 85);--ast-info: #8ed1ff;--ast-danger: oklch(.78 .14 22.216);--ast-band-foreground: #020e19;--ast-band-line: rgb(2 14 25 / .25);--ast-composer-surface: rgb(26 27 30 / .82);--ast-chart-claude: #d95926;--ast-chart-codex: #3987e5;--ast-chart-hermes: #199e70;--ast-chart-pi: #a78bfa;--ast-chart-cost-lo: #6da7ec;--ast-chart-cost-mid: #3987e5;--ast-chart-cost-hi: #184f95;--ast-chart-time: #9085e9;--color-border-subtle: color-mix(in oklab, #ffffff 8%, transparent);--color-surface-subtle: color-mix(in oklab, #ffffff 4%, transparent);--color-accent-muted: color-mix(in oklab, var(--ast-sky-soft) 20%, transparent);--color-diff-add: oklch(.62 .17 145);--color-diff-del: oklch(.52 .22 27);--bubble-user: rgb(255 255 255 / 6%);--bubble-user-foreground: var(--foreground);--bubble-assistant: color-mix(in oklab, var(--ast-surface) 60%, transparent);--composer-border: rgba(255, 255, 255, .16);--composer-border-focus: rgba(255, 255, 255, .24);--composer-shadow: 0 0 0 1px var(--composer-border);--composer-shadow-focus: 0 0 0 1px var(--composer-border-focus)}}:root[data-accent=blue]{--ast-brand: #0f4c81;--ast-brand-hover: #0d4372;--ast-brand-deep: #0c3b65;--ast-brand-ink: #0f4c81;--ast-brand-ink-hover: #0e4474;--ast-brand-foreground: #ffffff;--ast-action: #0e4474;--ast-sky: #0f4c81;--ast-sky-soft: #f4f8fc;--ast-sky-mid: #dce8f3;--ring: var(--ast-brand-deep)}:root[data-accent=ultraviolet]{--ast-brand: #5f4b8b;--ast-brand-hover: #54427a;--ast-brand-deep: #442f6d;--ast-brand-ink: #5f4b8b;--ast-brand-ink-hover: #513d7c;--ast-brand-foreground: #ffffff;--ast-action: #513d7c;--ast-sky: #5f4b8b;--ast-sky-soft: #f7f5fe;--ast-sky-mid: #e8e2fc;--ring: var(--ast-brand-deep)}:root[data-accent=vivamagenta]{--ast-brand: #bb2649;--ast-brand-hover: #a52140;--ast-brand-deep: #930231;--ast-brand-ink: #bb2649;--ast-brand-ink-hover: #a90b3b;--ast-brand-foreground: #ffffff;--ast-action: #a90b3b;--ast-sky: #bb2649;--ast-sky-soft: #fff4f4;--ast-sky-mid: #ffdddf;--ring: var(--ast-brand-deep)}:root[data-accent=peachfuzz]{--ast-brand: #ffbe98;--ast-brand-hover: #e0a786;--ast-brand-deep: #7e3b03;--ast-brand-ink: #a85416;--ast-brand-ink-hover: #964702;--ast-brand-foreground: #1a1c1f;--ast-action: #964702;--ast-sky: #ffbe98;--ast-sky-soft: #fef5f0;--ast-sky-mid: #fedfce;--ring: var(--ast-brand-deep)}:root[data-accent=mochamousse]{--ast-brand: #a47864;--ast-brand-hover: #906a58;--ast-brand-deep: #6d4533;--ast-brand-ink: #8c614e;--ast-brand-ink-hover: #7c5340;--ast-brand-foreground: #000000;--ast-action: #7c5340;--ast-sky: #a47864;--ast-sky-soft: #fef5f1;--ast-sky-mid: #f4e2da;--ring: var(--ast-brand-deep)}:root[data-accent=greenery]{--ast-brand: #88b04b;--ast-brand-hover: #789b42;--ast-brand-deep: #3c5702;--ast-brand-ink: #527603;--ast-brand-ink-hover: #476601;--ast-brand-foreground: #1a1c1f;--ast-action: #476601;--ast-sky: #88b04b;--ast-sky-soft: #f3faeb;--ast-sky-mid: #ddedcb;--ring: var(--ast-brand-deep)}:root[data-accent=emerald]{--ast-brand: #009473;--ast-brand-hover: #008265;--ast-brand-deep: #03553f;--ast-brand-ink: #047a5f;--ast-brand-ink-hover: #036d54;--ast-brand-foreground: #000000;--ast-action: #036d54;--ast-sky: #009473;--ast-sky-soft: #eafbf5;--ast-sky-mid: #ccf0e2;--ring: var(--ast-brand-deep)}:root[data-accent=clouddancer]{--ast-switch-on: var(--ast-ink);--ast-brand: #f0eee9;--ast-brand-hover: #d3d1cd;--ast-brand-deep: #404040;--ast-brand-ink: #595959;--ast-brand-ink-hover: #404040;--ast-brand-foreground: #0d0d0d;--ast-action: #404040;--ast-sky: #f0eee9;--ast-sky-soft: #f7f7f7;--ast-sky-mid: #e8e8e8;--app-rail-active: color-mix(in srgb, #0d0d0d 6%, transparent);--ring: var(--ast-brand-deep)}@media(prefers-color-scheme:dark){:root[data-accent=blue]{--ast-brand: #0f4c81;--ast-brand-hover: #2c6190;--ast-brand-deep: #b3d1ef;--ast-brand-ink: #7fb0e0;--ast-brand-ink-hover: #93bde6;--ast-brand-foreground: #ffffff;--ast-action: #7fb0e0;--ast-sky: #0f4c81;--ast-sky-soft: #121c26;--ast-sky-mid: #1d3044;--ring: var(--ast-brand-deep)}:root[data-accent=ultraviolet]{--ast-brand: #5f4b8b;--ast-brand-hover: #726199;--ast-brand-deep: #c0adf5;--ast-brand-ink: #a591d8;--ast-brand-ink-hover: #b29ee5;--ast-brand-foreground: #ffffff;--ast-action: #a591d8;--ast-sky: #5f4b8b;--ast-sky-soft: #201a2d;--ast-sky-mid: #332b47;--ring: var(--ast-brand-deep)}:root[data-accent=vivamagenta]{--ast-brand: #bb2649;--ast-brand-hover: #c3405f;--ast-brand-deep: #fe9ca6;--ast-brand-ink: #ff6c82;--ast-brand-ink-hover: #fe8492;--ast-brand-foreground: #ffffff;--ast-action: #ff6c82;--ast-sky: #bb2649;--ast-sky-soft: #301418;--ast-sky-mid: #4e1f26;--ring: var(--ast-brand-deep)}:root[data-accent=peachfuzz]{--ast-brand: #ffbe98;--ast-brand-hover: #ffc6a4;--ast-brand-deep: #fda26a;--ast-brand-ink: #df864e;--ast-brand-ink-hover: #ed935b;--ast-brand-foreground: #1a1c1f;--ast-action: #df864e;--ast-sky: #ffbe98;--ast-sky-soft: #2f1708;--ast-sky-mid: #4a250d;--ring: var(--ast-brand-deep)}:root[data-accent=mochamousse]{--ast-brand: #a47864;--ast-brand-hover: #af8877;--ast-brand-deep: #ddae98;--ast-brand-ink: #c0927d;--ast-brand-ink-hover: #cd9f8a;--ast-brand-foreground: #000000;--ast-action: #c0927d;--ast-sky: #a47864;--ast-sky-soft: #271b15;--ast-sky-mid: #3e2b23;--ring: var(--ast-brand-deep)}:root[data-accent=greenery]{--ast-brand: #88b04b;--ast-brand-hover: #96b961;--ast-brand-deep: #9cc560;--ast-brand-ink: #81a943;--ast-brand-ink-hover: #8db651;--ast-brand-foreground: #1a1c1f;--ast-action: #81a943;--ast-sky: #88b04b;--ast-sky-soft: #182209;--ast-sky-mid: #26360b;--ring: var(--ast-brand-deep)}:root[data-accent=emerald]{--ast-brand: #009473;--ast-brand-hover: #1fa184;--ast-brand-deep: #58cba7;--ast-brand-ink: #36af8c;--ast-brand-ink-hover: #47bc99;--ast-brand-foreground: #000000;--ast-action: #36af8c;--ast-sky: #009473;--ast-sky-soft: #05241b;--ast-sky-mid: #043a2c;--ring: var(--ast-brand-deep)}:root[data-accent=clouddancer]{--ast-switch-on: var(--ast-ink);--ast-brand: #f0eee9;--ast-brand-hover: #f2f0ec;--ast-brand-deep: #bdbdbd;--ast-brand-ink: #a3a3a3;--ast-brand-ink-hover: #b0b0b0;--ast-brand-foreground: #0d0d0d;--ast-action: #a3a3a3;--ast-sky: #f0eee9;--ast-sky-soft: #1f1f1f;--ast-sky-mid: #313131;--app-rail-active: color-mix(in srgb, #ffffff 10%, transparent);--ring: var(--ast-brand-deep)}}.type-overline{font-size:var(--text-meta);line-height:var(--text-meta--line-height);font-weight:var(--font-weight-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--ast-faint)}.type-meta{font-size:var(--text-meta);line-height:var(--text-meta--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-meta--letter-spacing)}.type-label{font-size:var(--text-ui);line-height:var(--text-ui--line-height);font-weight:var(--font-weight-medium);letter-spacing:var(--text-ui--letter-spacing)}.type-caption{font-size:var(--text-ui);line-height:var(--text-ui--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-ui--letter-spacing)}.type-body{font-size:var(--text-prose);line-height:var(--text-prose--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-prose--letter-spacing)}.type-body-sm{font-size:var(--text-ui);line-height:var(--text-ui--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-ui--letter-spacing)}.type-prose{font-size:var(--text-prose);line-height:var(--text-prose--line-height);font-weight:var(--font-weight-normal);letter-spacing:var(--text-prose--letter-spacing)}.type-title-sm{font-size:var(--text-subhead);line-height:var(--text-subhead--line-height);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-subhead--letter-spacing)}.type-title{font-size:var(--text-title);line-height:var(--text-title--line-height);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-title--letter-spacing)}.type-metric{font-size:var(--text-display);line-height:var(--text-display--line-height);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-display--letter-spacing)}.app-section-label{font-size:var(--text-meta);line-height:var(--text-meta--line-height);font-weight:var(--font-weight-medium);letter-spacing:.04em;color:var(--ast-faint)}:root{--radius-editor-tool: 6px;color-scheme:light dark;--canvas: var(--ast-canvas);--panel: var(--ast-panel);--surface: var(--ast-surface);--ink: var(--ast-ink);--secondary-ink: var(--ast-secondary-ink);--muted-ink: var(--ast-muted-ink);--faint: var(--ast-faint);--placeholder: var(--ast-placeholder);--line: var(--ast-line);--line-strong: var(--ast-line-strong);--line-hover: var(--ast-line-hover);--brand: var(--ast-brand-deep);--brand-sky: var(--app-rail-active);--action: var(--ast-action);--primary-ink: var(--primary-foreground);--danger: var(--ast-danger);--success: var(--ast-positive);--info-soft: oklch(from var(--ast-info) .92 .05 h);--success-soft: oklch(from var(--success) .92 .07 h);--warning-soft: oklch(from var(--ast-warning) .93 .09 h);--danger-soft: oklch(from var(--danger) .91 .06 h);--rail-bg: var(--canvas);--rail-ink: var(--app-rail-ink);--rail-muted: var(--app-rail-muted);--rail-hover: var(--app-rail-hover);--rail-active: color-mix(in srgb, var(--ink) 8%, transparent);--rail-active-ink: var(--ink);--rail-row-height: 28px;--rail-row-radius: var(--app-rail-row-radius);--rail-label-size: var(--app-rail-label-size);--rail-section-gap: var(--app-rail-section-gap);--rail-header-height: var(--app-rail-header-height);--sidebar-width: var(--app-rail-width);--mac-chat-rail-width: 296px;--reading: var(--container-reading);--paper: #ffffff;--on-color: #ffffff;--code-string: var(--ast-syntax-string);--code-number: var(--ast-syntax-number);--code-keyword: var(--ast-brand-deep)}@media(prefers-color-scheme:dark){:root{--info-soft: oklch(from var(--ast-info) .32 .06 h);--success-soft: oklch(from var(--success) .32 .06 h);--warning-soft: oklch(from var(--ast-warning) .34 .07 h);--danger-soft: oklch(from var(--danger) .32 .08 h)}}:root[data-accent]{--rail-active: var(--app-rail-active);--rail-active-ink: var(--app-rail-active-ink)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font:400 var(--text-ui) / var(--text-ui--line-height) var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden;user-select:none;cursor:default}button,input,select,textarea{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}:lang(zh){line-break:strict;word-break:normal;font-synthesis:none}body{background:var(--panel)}main{display:flex;flex-direction:column;gap:var(--space-2);height:100vh;padding:var(--space-3);-webkit-app-region:drag}form,.row{display:flex;gap:var(--space-2);-webkit-app-region:no-drag}form{align-items:flex-end;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-composer);background:var(--panel);box-shadow:0 0 0 1px var(--line-strong);transition:box-shadow var(--dur-snap) var(--ease-standard)}form:focus-within{box-shadow:0 0 0 1px var(--ring)}textarea{flex:1;height:52px;padding:var(--space-1) 0;border:0;outline:0;resize:none;background:transparent;font-size:var(--text-prose);user-select:text;cursor:text}textarea::placeholder{color:var(--placeholder)}#send{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;border:0;border-radius:var(--radius-pill);background:var(--primary);color:var(--primary-ink);cursor:pointer}#send:disabled{opacity:.4;cursor:default}.row{align-items:center;justify-content:space-between}nav{display:flex;gap:var(--space-1)}nav button{height:28px;padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:transparent;font-weight:500;cursor:pointer}nav button:hover{background:var(--surface)}nav button:focus-visible,#send:focus-visible{outline:2px solid var(--brand);outline-offset:1px}#hint{margin:0;overflow:hidden;color:var(--muted-ink);font-size:var(--text-meta);text-overflow:ellipsis;white-space:nowrap}#hint.is-alert{color:var(--danger)}.ui-tooltip{position:fixed;z-index:var(--z-tooltip);display:inline-flex;width:max-content;max-width:min(20rem,calc(100vw - 16px));align-items:center;gap:var(--gap-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--ast-line);border-radius:var(--radius-control);background:var(--ast-panel);color:var(--ast-ink);box-shadow:var(--shadow-overlay);font-size:var(--text-meta);line-height:var(--text-meta--line-height);pointer-events:none;opacity:0;transform:scale(.98);transition:opacity var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}.ui-tooltip.is-open{opacity:1;transform:none}.ui-hover-card[data-hover-card-action]{pointer-events:auto}.ui-hover-card{position:fixed;z-index:var(--z-tooltip);display:flex;width:320px;max-width:min(20rem,calc(100vw - 16px));flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--ast-line);border-radius:var(--radius-card);background:var(--ast-canvas);color:var(--ast-ink);box-shadow:var(--shadow-overlay);font-size:var(--text-ui);line-height:var(--text-ui--line-height);pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease-standard)}.ui-hover-card.is-open{opacity:1}.ui-hover-card-title{display:flex;align-items:baseline;gap:var(--space-3)}.ui-hover-card-title strong{display:-webkit-box;min-width:0;flex:1;overflow:hidden;font-weight:500;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:4}.ui-hover-card-meta{flex-shrink:0;color:var(--ast-faint);font-size:var(--text-meta);font-variant-numeric:tabular-nums;white-space:nowrap}.ui-hover-card-row{display:flex;min-width:0;align-items:center;gap:var(--space-2)}.ui-hover-card-icon{display:flex;width:18px;height:18px;flex-shrink:0;align-items:center;justify-content:center;color:var(--ast-secondary-ink)}.ui-hover-card-icon:empty{display:none}.ui-hover-card-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}