apptify 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -0
- package/README.md +294 -0
- package/dist/apptify.css +1 -0
- package/dist/apptify.js +5863 -0
- package/dist/components/button.d.ts +67 -0
- package/dist/components/content.d.ts +3038 -0
- package/dist/components/date-picker.d.ts +136 -0
- package/dist/components/forms.d.ts +2998 -0
- package/dist/components/foundation.d.ts +843 -0
- package/dist/components/motion.d.ts +131 -0
- package/dist/components/navibar.d.ts +184 -0
- package/dist/components/overlays.d.ts +1771 -0
- package/dist/core/context.d.ts +100 -0
- package/dist/core/motion.d.ts +10 -0
- package/dist/index.d.ts +4621 -0
- package/docs/COMPONENTS.md +204 -0
- package/docs/VALIDATION.md +36 -0
- package/package.json +55 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Apptify contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
Demo photographs and Apple product imagery are not covered by this license.
|
|
24
|
+
See public/images/SOURCES.md for their provenance. Apple is a trademark of
|
|
25
|
+
Apple Inc. This project is independent and is not endorsed by Apple Inc.
|
package/README.md
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
# Apptify
|
|
2
|
+
|
|
3
|
+
面向桌面与移动端的个人 Vue 3 组件库。统一使用 `<apple-*>` 前缀,保留 Vuetify 的 Ripple 指令,而不继承它的整套 Material 组件外观。
|
|
4
|
+
|
|
5
|
+
设计借鉴 Apple 网站的排版、留白、层次与交互节奏;不是 Apple 官方产品,也不声称全部控件都与 Apple 网站逐像素一致。表格、级联选择、验证码、下拉刷新等能力是在同一套视觉语言下的扩展。
|
|
6
|
+
|
|
7
|
+
当前导出并注册 **68 个组件**:基础 9 个、表单 18 个、内容与移动交互 29 个、弹层 10 个、动效 2 个。其中 `AppleOverlayHost` 是由 Provider 自动挂载的基础设施,通常直接使用其余 67 个即可。完整实际 API 见 [组件参考](docs/COMPONENTS.md)。
|
|
8
|
+
|
|
9
|
+
## 本地运行与安装
|
|
10
|
+
|
|
11
|
+
项目尚未发布到 npm。不要把 `npm install apptify` 当成已发布包的安装方式。
|
|
12
|
+
|
|
13
|
+
建议使用 Node.js 22 LTS 或 24 LTS;测试工具不支持奇数版本的 Node.js。
|
|
14
|
+
|
|
15
|
+
在本仓库执行:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
npm ci
|
|
19
|
+
npm run dev
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
开发服务器地址以终端输出为准。开发页面是可交互的组件工作台,不是组件库的业务页面模板。
|
|
23
|
+
|
|
24
|
+
在另一个项目中使用本地包:
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
# 在本仓库构建并生成 apptify-0.1.0.tgz
|
|
28
|
+
npm run build
|
|
29
|
+
npm pack
|
|
30
|
+
|
|
31
|
+
# 在消费项目执行,将路径替换为实际包路径
|
|
32
|
+
npm install /absolute/path/apptify/apptify-0.1.0.tgz
|
|
33
|
+
npm install vue@^3.5 vuetify@^3.9
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Vue 与 Vuetify 是 peer dependencies。图标使用 `lucide-vue-next`,图片预览的缩放与手势使用 `@panzoom/panzoom`。本库没有要求安装 Vuetify 插件或导入其完整样式,也不需要 `<v-app>`。
|
|
37
|
+
|
|
38
|
+
## 接入应用
|
|
39
|
+
|
|
40
|
+
JavaScript 和 TypeScript 项目都可直接使用。消费项目不需要 TypeScript、`tsconfig.json` 或 `<script setup>`;普通 `<script>` 与 Options API 是完整支持的用法。随包提供的类型声明也可以为 JavaScript 编辑器提供补全。
|
|
41
|
+
|
|
42
|
+
```js
|
|
43
|
+
// src/main.js
|
|
44
|
+
import { createApp } from 'vue'
|
|
45
|
+
import { createAppleUI } from 'apptify'
|
|
46
|
+
import 'apptify/style.css'
|
|
47
|
+
import App from './App.vue'
|
|
48
|
+
|
|
49
|
+
const apple = createAppleUI({
|
|
50
|
+
theme: 'system',
|
|
51
|
+
motion: 'auto',
|
|
52
|
+
persist: true,
|
|
53
|
+
storageKey: 'my-app:appearance',
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
createApp(App).use(apple).mount('#app')
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```vue
|
|
60
|
+
<!-- App.vue -->
|
|
61
|
+
<template>
|
|
62
|
+
<apple-provider>
|
|
63
|
+
<main>
|
|
64
|
+
<apple-container>
|
|
65
|
+
<apple-card title="个人资料" subtitle="保持联系。">
|
|
66
|
+
<apple-input v-model="name" label="姓名" autocomplete="name" />
|
|
67
|
+
<template #actions>
|
|
68
|
+
<apple-button @click="save">保存</apple-button>
|
|
69
|
+
</template>
|
|
70
|
+
</apple-card>
|
|
71
|
+
</apple-container>
|
|
72
|
+
</main>
|
|
73
|
+
</apple-provider>
|
|
74
|
+
</template>
|
|
75
|
+
|
|
76
|
+
<script>
|
|
77
|
+
export default {
|
|
78
|
+
data: () => ({ name: '' }),
|
|
79
|
+
methods: {
|
|
80
|
+
save() {
|
|
81
|
+
this.$apple.notify('资料已保存', { tone: 'success' })
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
}
|
|
85
|
+
</script>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
这是 Options API 用法。插件注册 PascalCase 名称,Vue 模板同时支持 `<AppleCard>` 和 `<apple-card>`。所有组件也可命名导入并局部注册。
|
|
89
|
+
|
|
90
|
+
`AppleProvider` 应包住业务 UI。它应用主题变量、监听系统偏好、提供同主题的 Teleport 目标,并自动渲染 `AppleOverlayHost`。**不要在同一上下文再额外渲染一份 Host。** 根 Provider 不传属性时复用插件上下文;嵌套 Provider 或显式指定 `theme` / `motion` 的 Provider 会建立局部上下文。嵌套 Provider 未指定的主题与动效属性跟随父级更新。
|
|
91
|
+
|
|
92
|
+
`this.$apple` 始终指向插件级上下文。局部 Provider 内的组件如需使用局部主题、通知或弹层,使用 Options API 注入:
|
|
93
|
+
|
|
94
|
+
```js
|
|
95
|
+
import { appleKey } from 'apptify'
|
|
96
|
+
|
|
97
|
+
export default {
|
|
98
|
+
inject: { apple: { from: appleKey } },
|
|
99
|
+
methods: {
|
|
100
|
+
showMessage() {
|
|
101
|
+
this.apple.notify('使用当前 Provider 的通知')
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
也导出 `useApple()` 供 Composition API 的 `setup()` 使用,但不需要为接入组件库重写现有 Options API 页面。
|
|
108
|
+
|
|
109
|
+
## 主题与动效
|
|
110
|
+
|
|
111
|
+
内置主题为 `light`、`dark`、`graphite`、`rose`;`system` 表示跟随系统浅深色。主题即时生效,不需要刷新页面。设置 `persist: true` 才会保存主题名称、动效等级并同步其他标签页的同名存储设置;自定义主题定义应通过初始化 `themes` 配置或启动时的 `register()` 再次提供。
|
|
112
|
+
|
|
113
|
+
```js
|
|
114
|
+
this.$apple.theme.set('dark')
|
|
115
|
+
this.$apple.theme.register('forest', {
|
|
116
|
+
accent: '#237047',
|
|
117
|
+
'accent-text': '#ffffff',
|
|
118
|
+
bg: '#f4f7f5',
|
|
119
|
+
surface: '#ffffff',
|
|
120
|
+
}, 'light')
|
|
121
|
+
this.$apple.theme.set('forest')
|
|
122
|
+
this.$apple.motion.set('reduced')
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
`register(name, tokens, scheme)` 自动补齐对应浅色或深色主题的默认 token。可覆盖 `bg`、`surface`、`surface-alt`、`text`、`secondary`、`border`、`accent`、`accent-text`、`danger`、`success`、`warning`、`shadow`、`radius`,对应 `--apple-*` CSS 变量。注册后先调用 `set()` 才会切换;`system` 是保留名称。
|
|
126
|
+
|
|
127
|
+
| 动效值 | 行为 |
|
|
128
|
+
| --- | --- |
|
|
129
|
+
| `auto` | 自动遵循系统减少动态效果偏好。 |
|
|
130
|
+
| `full` | 在全局策略与系统偏好允许时使用完整动效。 |
|
|
131
|
+
| `reduced` | 减少位移、缩放和持续动态,保留必要状态反馈。 |
|
|
132
|
+
| `none` | 关闭动效,包括按钮 Ripple。 |
|
|
133
|
+
| `inherit` | 组件默认值,继承当前 Provider 的策略;不是全局配置值。 |
|
|
134
|
+
|
|
135
|
+
全局 `none` / `reduced` 是动效上限,安全优先。组件可以再降低动效,但 `motion="full"` 不能越过全局限制或系统的减少动态效果偏好。支持 `motion` 的组件以 [API 表](docs/COMPONENTS.md) 为准;静态布局组件不需要动效属性。
|
|
136
|
+
|
|
137
|
+
```vue
|
|
138
|
+
<apple-card motion="none" zoom="none" title="静态内容" />
|
|
139
|
+
<apple-button :ripple="false">仅关闭这个按钮的波纹</apple-button>
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Dialog 与反向通道
|
|
143
|
+
|
|
144
|
+
```js
|
|
145
|
+
const dialog = this.$apple.dialog({
|
|
146
|
+
title: '删除文件?',
|
|
147
|
+
message: '此操作不能撤销。',
|
|
148
|
+
confirmText: '删除',
|
|
149
|
+
cancelText: '取消',
|
|
150
|
+
tone: 'danger',
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
const confirmed = await dialog.result
|
|
154
|
+
// 默认确认返回 true,取消返回 false,关闭按钮 / Escape 返回 undefined。
|
|
155
|
+
if (confirmed === true) this.$apple.notify('文件已删除', { tone: 'success' })
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
每次调用创建独立层。`dialog` 句柄含 `id`、`close(value?)`、`update(patch)` 与 `result` Promise。`this.$apple.overlays.closeTop()` 只关闭最上面的非通知弹层;已有层不会被新层覆盖。声明式 `<apple-dialog v-model="opened">` 与命令式弹层共享焦点栈和滚动锁。
|
|
159
|
+
|
|
160
|
+
自定义弹层组件接收 `close`、`sendMessage` 两个 prop。下面的编辑组件通过反向通道请求父调用方保存,父调用方再打开第二层确认。
|
|
161
|
+
|
|
162
|
+
```vue
|
|
163
|
+
<!-- ProfileEditor.vue -->
|
|
164
|
+
<template>
|
|
165
|
+
<apple-input v-model="name" label="姓名" />
|
|
166
|
+
<apple-button :loading="saving" @click="save">保存资料</apple-button>
|
|
167
|
+
</template>
|
|
168
|
+
|
|
169
|
+
<script>
|
|
170
|
+
export default {
|
|
171
|
+
props: {
|
|
172
|
+
initialName: { type: String, default: '' },
|
|
173
|
+
close: { type: Function, required: true },
|
|
174
|
+
sendMessage: { type: Function, required: true },
|
|
175
|
+
},
|
|
176
|
+
data() { return { name: this.initialName, saving: false } },
|
|
177
|
+
methods: {
|
|
178
|
+
async save() {
|
|
179
|
+
this.saving = true
|
|
180
|
+
try {
|
|
181
|
+
const result = await this.sendMessage('profile:save', { name: this.name })
|
|
182
|
+
if (result?.saved) this.close(result)
|
|
183
|
+
} finally {
|
|
184
|
+
this.saving = false
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
}
|
|
189
|
+
</script>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
```js
|
|
193
|
+
import ProfileEditor from './ProfileEditor.vue'
|
|
194
|
+
|
|
195
|
+
export default {
|
|
196
|
+
methods: {
|
|
197
|
+
async editProfile() {
|
|
198
|
+
const editor = this.$apple.dialog({
|
|
199
|
+
title: '编辑资料',
|
|
200
|
+
component: ProfileEditor,
|
|
201
|
+
props: { initialName: '小明' },
|
|
202
|
+
confirmText: '',
|
|
203
|
+
cancelText: '取消',
|
|
204
|
+
onMessage: async (channel, payload) => {
|
|
205
|
+
if (channel !== 'profile:save') return
|
|
206
|
+
const confirmation = this.$apple.dialog({
|
|
207
|
+
title: '保存修改?',
|
|
208
|
+
message: `将姓名更新为 ${payload.name}。`,
|
|
209
|
+
})
|
|
210
|
+
if (await confirmation.result !== true) return { saved: false }
|
|
211
|
+
// 在这里执行实际业务请求;该示例只返回结果。
|
|
212
|
+
return { saved: true, name: payload.name }
|
|
213
|
+
},
|
|
214
|
+
})
|
|
215
|
+
const result = await editor.result
|
|
216
|
+
if (result?.saved) this.$apple.notify('资料已保存', { tone: 'success' })
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
通用消息总线也有真实的返回值通道,而不只是单向通知:
|
|
223
|
+
|
|
224
|
+
```js
|
|
225
|
+
const unsubscribe = this.$apple.onMessage('profile:read', () => ({ name: '小明' }))
|
|
226
|
+
const responses = this.$apple.sendMessage('profile:read')
|
|
227
|
+
console.log(responses[0].name)
|
|
228
|
+
unsubscribe()
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
`sendMessage()` 同步调用监听器,返回所有监听器返回值组成的数组;异步监听器返回 Promise,可用 `Promise.all()` 等待。动态弹层的 `sendMessage()` 若有专属 `onMessage`,直接返回该回调结果;未设置时才回退到当前上下文消息总线。长期监听请在 `beforeUnmount` 中调用取消订阅函数。
|
|
232
|
+
|
|
233
|
+
## 通知与图片
|
|
234
|
+
|
|
235
|
+
```js
|
|
236
|
+
const notice = this.$apple.notify('正在同步', { duration: 0 })
|
|
237
|
+
notice.update({ message: '同步完成', tone: 'success', duration: 2500 })
|
|
238
|
+
// 或 notice.close()
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
通知独立堆叠,默认 4 秒,`duration: 0` 常驻,悬停或键盘焦点进入时暂停倒计时。需要动作按钮时直接使用 `<apple-snackbar action="撤销" @action="undo" />`;命令式 `notify()` 当前没有 action 配置。
|
|
242
|
+
|
|
243
|
+
```vue
|
|
244
|
+
<apple-image
|
|
245
|
+
src="/images/workspace.webp"
|
|
246
|
+
alt="桌面工作区"
|
|
247
|
+
:gallery="['/images/workspace.webp', '/images/detail.webp']"
|
|
248
|
+
:index="0"
|
|
249
|
+
/>
|
|
250
|
+
|
|
251
|
+
<apple-image-viewer
|
|
252
|
+
v-model="previewOpen"
|
|
253
|
+
v-model:index="previewIndex"
|
|
254
|
+
:images="[{ src: '/images/workspace.webp', alt: '桌面工作区' }]"
|
|
255
|
+
loop
|
|
256
|
+
/>
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
示例图片路径需要替换为业务资源。`AppleImage` 默认支持点击预览,可用 `:preview="false"` 关闭。独立 Viewer 支持图库、缩放、拖动、旋转、触屏手势、键盘切换和有标签的工具按钮;核心图片交互由已有图库引擎处理。
|
|
260
|
+
|
|
261
|
+
## 移动端与边界
|
|
262
|
+
|
|
263
|
+
- 弹层、抽屉、底部面板和通知考虑安全区;布局基于可用宽度,而不是把屏幕横竖方向等同于设备类型。
|
|
264
|
+
- 提供下拉刷新、无限加载、侧滑操作、验证码、级联选择、ActionSheet 等组件,保留桌面按钮或键盘入口。
|
|
265
|
+
- 日期、时间、颜色和基础 Select 使用浏览器原生选择能力;弹出界面随操作系统变化,不宣称它们在所有平台都长得完全一样。
|
|
266
|
+
- Upload 负责本地文件选择、拖放与限制校验,不自动上传文件;Table 支持客户端排序、分页、固定行高虚拟滚动与列宽拖拽,不含服务端分页协议。
|
|
267
|
+
- 导入阶段避免直接访问浏览器全局;这不等于已完成 SSR 全部组件的服务端渲染、hydration、跨请求隔离和主题首屏验证。SSR 接入时每个请求创建独立实例,并自行验证水合行为。
|
|
268
|
+
- 本项目不是浏览器、屏幕阅读器和实体设备兼容矩阵认证。即使桌面/移动视口检查通过,也不代表已覆盖 iOS Safari、Android WebView、触控笔、软键盘与所有真机组合。
|
|
269
|
+
|
|
270
|
+
## 从旧项目迁移
|
|
271
|
+
|
|
272
|
+
| 旧方式 | 新方式与差异 |
|
|
273
|
+
| --- | --- |
|
|
274
|
+
| `<apple-card title subtitle text icon icon-color>` | 保留这些属性与默认 slot,并增加 `media`、`title`、`icon`、`actions` slots。 |
|
|
275
|
+
| `zoom="big/small/none"`、`shadow="normal/static/focused/none"` | 继续支持;新默认 `zoom="small"`,不保证旧尺寸和缩放数值完全一致。 |
|
|
276
|
+
| `icon="mdi-home"` | 不再识别 MDI 字符串。导入 Lucide 组件并通过 `:icon="Home"` 传入;Card 的字符串 icon 被当作图片 URL。 |
|
|
277
|
+
| `globalTheme` / `fancyAnimation` 模块常量 | 改用响应式 `theme.set()` / `motion.set()`;不需要刷新,也不要再直接读写旧 localStorage 键。 |
|
|
278
|
+
| `sendMessage('showSnackbar', { type, text })` | 在 `this.$apple.sendMessage()` 或当前注入上下文上兼容;`showSnackBar`、`showMessage` 别名也保留。 |
|
|
279
|
+
| `sendMessage('showDiag', { title, message })` | 仍可通过当前上下文发送;推荐使用返回独立句柄与 Promise 的 `dialog()`。 |
|
|
280
|
+
| `btn: [{ bgColor, text, clickEvent }]` | **不直接兼容**。简单对话框用 `confirmText` / `cancelText`,复杂交互用声明式 `#footer` 或动态组件。 |
|
|
281
|
+
| `sendMessage('closeDiag')` | 关闭当前上下文最上面的非通知弹层;不会一次关闭全部层。 |
|
|
282
|
+
| `<e-img src squared gallery index>` | 改为 `<apple-image>`,并补上必需的 `alt`;不注册旧 `e-img` 名称。 |
|
|
283
|
+
|
|
284
|
+
## 验证命令
|
|
285
|
+
|
|
286
|
+
```sh
|
|
287
|
+
npm run typecheck
|
|
288
|
+
npm test
|
|
289
|
+
npm run build
|
|
290
|
+
npm run test:e2e
|
|
291
|
+
npm run test:package
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
命令是否通过以当前执行结果为准。`build` 生成组件库 `dist/`、类型声明与工作台 `site/`。源码中的行为测试不代替消费项目的业务测试与真机验证。
|
package/dist/apptify.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@property --apple-bg{syntax: "<color>"; inherits: true; initial-value: #f5f5f7;}@property --apple-surface{syntax: "<color>"; inherits: true; initial-value: #fff;}@property --apple-surface-alt{syntax: "<color>"; inherits: true; initial-value: #f0f0f2;}@property --apple-text{syntax: "<color>"; inherits: true; initial-value: #1d1d1f;}@property --apple-secondary{syntax: "<color>"; inherits: true; initial-value: #6e6e73;}@property --apple-border{syntax: "<color>"; inherits: true; initial-value: #d2d2d7;}@property --apple-accent{syntax: "<color>"; inherits: true; initial-value: #0071e3;}@property --apple-accent-text{syntax: "<color>"; inherits: true; initial-value: #fff;}@property --apple-danger{syntax: "<color>"; inherits: true; initial-value: #c93830;}@property --apple-success{syntax: "<color>"; inherits: true; initial-value: #248245;}@property --apple-warning{syntax: "<color>"; inherits: true; initial-value: #996600;}.apple-provider{--apple-duration: .3s;--apple-fast: .12s;--apple-theme-duration: .26s;--v-theme-overlay-multiplier: .4;--apple-hover: color-mix(in srgb, var(--apple-text) 5%, var(--apple-surface));--apple-pressed: color-mix(in srgb, var(--apple-text) 10%, var(--apple-surface));--apple-selected: color-mix(in srgb, var(--apple-text) 8%, var(--apple-surface));--apple-ease: cubic-bezier(.2,.65,.3,1);color:var(--apple-text);background:var(--apple-bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.5;letter-spacing:0;-webkit-font-smoothing:antialiased;accent-color:var(--apple-accent);min-width:0;transition:--apple-bg var(--apple-theme-duration) ease,--apple-surface var(--apple-theme-duration) ease,--apple-surface-alt var(--apple-theme-duration) ease,--apple-text var(--apple-theme-duration) ease,--apple-secondary var(--apple-theme-duration) ease,--apple-border var(--apple-theme-duration) ease,--apple-accent var(--apple-theme-duration) ease,--apple-accent-text var(--apple-theme-duration) ease,--apple-danger var(--apple-theme-duration) ease,--apple-success var(--apple-theme-duration) ease,--apple-warning var(--apple-theme-duration) ease}.apple-provider *,.apple-provider *:before,.apple-provider *:after{box-sizing:border-box;letter-spacing:0}.apple-provider button,.apple-provider input,.apple-provider textarea,.apple-provider select{font:inherit}.apple-provider button{cursor:pointer}.apple-provider button:disabled,.apple-provider [aria-disabled=true]{cursor:not-allowed}.apple-provider :focus-visible{outline:3px solid color-mix(in srgb,var(--apple-accent) 65%,transparent);outline-offset:3px}.apple-provider [data-apple-motion=none],.apple-provider[data-apple-motion=none],.apple-provider [data-motion=none]{--apple-duration: 0ms;--apple-fast: 0ms;--apple-theme-duration: 0ms}.apple-provider [data-apple-motion=reduced],.apple-provider[data-apple-motion=reduced],.apple-provider [data-motion=reduced]{--apple-duration: 80ms}.apple-provider[data-apple-motion=none] *,.apple-provider [data-apple-motion=none] *,.apple-provider [data-motion=none] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.apple-provider[data-apple-motion=reduced] .apple-card,.apple-provider [data-apple-motion=reduced] .apple-card{transform:none!important}.apple-provider[data-apple-motion=reduced] .apple-spin,.apple-provider[data-apple-motion=reduced] .apple-control__spinner{animation:none}.apple-button{position:relative;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 22px;border:1px solid transparent;border-radius:999px;font-weight:500;line-height:1.4;background:var(--apple-accent);color:var(--apple-accent-text);text-decoration:none;overflow:hidden;vertical-align:middle;transition:background var(--apple-duration),box-shadow var(--apple-duration),opacity var(--apple-duration);max-width:100%;white-space:normal}.apple-button--secondary,.apple-button--outline{border-color:var(--apple-accent);background:transparent;color:var(--apple-accent)}.apple-button--ghost{background:transparent;color:var(--apple-accent)}.apple-button--danger{background:var(--apple-danger)}.apple-button--small{padding:7px 16px;min-height:36px;font-size:13px}.apple-button--large{min-height:50px;padding:12px 28px;font-size:17px}.apple-button--icon{width:44px;height:44px;padding:0;flex-shrink:0}.apple-button--icon.apple-button--small{width:36px;height:36px}.apple-button:disabled{opacity:.45}.apple-button{transition:background-color var(--apple-fast),color var(--apple-fast),border-color var(--apple-fast),box-shadow var(--apple-fast)}.apple-button__content{position:relative;z-index:1;display:inline-flex;gap:8px;align-items:center;justify-content:center;min-width:0;pointer-events:none}@media(hover:hover){.apple-button:not(:disabled):hover{background:color-mix(in srgb,var(--apple-accent) 90%,white)}.apple-button--secondary:not(:disabled):hover,.apple-button--outline:not(:disabled):hover{background:color-mix(in srgb,var(--apple-accent) 7%,transparent)}.apple-button--ghost:not(:disabled):hover{background:transparent;color:color-mix(in srgb,var(--apple-accent) 80%,var(--apple-text))}.apple-button--danger:not(:disabled):hover{background:color-mix(in srgb,var(--apple-danger) 90%,white)}}.apple-button:not(:disabled):active{background:color-mix(in srgb,var(--apple-accent) 80%,black)}.apple-button--secondary:not(:disabled):active,.apple-button--outline:not(:disabled):active{background:color-mix(in srgb,var(--apple-accent) 15%,transparent)}.apple-button--ghost:not(:disabled):active{background:transparent;color:var(--apple-text)}.apple-button--danger:not(:disabled):active{background:color-mix(in srgb,var(--apple-danger) 80%,black)}.apple-provider .v-ripple__animation--in{opacity:.1}.apple-provider .v-ripple__animation--out{opacity:0}.apple-link{display:inline-flex;align-items:center;gap:3px;color:var(--apple-accent);text-decoration:none}.apple-link:hover{text-decoration:underline}.apple-card{position:relative;background:var(--apple-surface);border-radius:var(--apple-radius);overflow:hidden;min-width:0;transition:transform var(--apple-duration) var(--apple-ease),box-shadow var(--apple-duration) var(--apple-ease)}.apple-card--shadow-normal,.apple-card--shadow-static{box-shadow:var(--apple-shadow)}.apple-card--shadow-focused{box-shadow:0 8px 32px #00000026}.apple-card__body{padding:26px}.apple-card__heading{display:flex;align-items:center;gap:12px}.apple-card h3{font-size:23px;line-height:1.25;font-weight:650;margin:0;overflow-wrap:anywhere}.apple-card h3 a{color:inherit;text-decoration:none}.apple-card__eyebrow{margin:0 0 9px;color:var(--apple-secondary);font-size:12px;font-weight:600}.apple-card__subtitle{color:var(--apple-secondary);margin:8px 0 0}.apple-card__text{margin:14px 0 0}.apple-card__image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.apple-card__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}@media(hover:hover)and (pointer:fine){.apple-card--zoom-small[data-apple-motion=full]:hover{transform:translateY(-3px)}.apple-card--zoom-big[data-apple-motion=full]:hover{transform:translateY(-4px) scale(1.02)}.apple-card--shadow-normal[data-apple-motion=full]:hover{box-shadow:0 10px 32px #0000001f}}.apple-container{width:100%;padding-inline:24px;margin-inline:auto}.apple-stack{display:flex;min-width:0}.apple-grid{display:grid;min-width:0}.apple-stack>*,.apple-grid>*{min-width:0}.apple-image{margin:0;position:relative;min-width:0;border-radius:var(--apple-radius)}.apple-image__surface{position:relative;width:100%;height:100%;background:var(--apple-surface-alt);overflow:hidden;border-radius:inherit;transition:transform var(--apple-duration) var(--apple-ease),box-shadow var(--apple-duration) var(--apple-ease)}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.apple-image--loaded[data-apple-motion=full]:hover{z-index:1}.apple-image--loaded[data-apple-motion=full]:hover>.apple-image__surface{transform:scale(1.04);box-shadow:var(--apple-shadow)}}.apple-image__trigger{display:flex;width:100%;height:100%;padding:0;border:0;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:transparent;color:var(--apple-secondary)}.apple-image img{display:block;width:100%;height:100%}.apple-image__zoom{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#1d1d1f;background:#ffffffe0}.apple-image figcaption{position:absolute;bottom:0;background:var(--apple-surface);padding:8px 12px}.apple-search{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;background:var(--apple-surface-alt);border:1px solid transparent;border-radius:8px;color:var(--apple-secondary)}.apple-search{transition:background-color var(--apple-fast),border-color var(--apple-fast),box-shadow var(--apple-fast)}.apple-search:focus-within{border-color:var(--apple-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--apple-accent) 20%,transparent)}.apple-search input{width:100%;min-width:0;padding:10px 0;color:var(--apple-text);border:0;outline:0;background:transparent}.apple-search input::-webkit-search-cancel-button{display:none}.apple-provider .apple-search input:focus-visible{outline:none;box-shadow:none}.apple-search button{display:grid;place-items:center;border:0;background:transparent;color:inherit;padding:5px}.apple-spin{animation:apple-spin 1s linear infinite}.apple-selection{position:relative;isolation:isolate}.apple-selection-indicator{display:block;position:absolute;left:0;top:0;z-index:-1;pointer-events:none;background:var(--apple-selected);border-radius:inherit;transition:transform var(--apple-duration) var(--apple-ease),width var(--apple-duration) var(--apple-ease),height var(--apple-duration) var(--apple-ease),background-color var(--apple-fast)}.apple-selection-indicator[hidden]{display:none}.apple-auto-size{min-width:0}.apple-auto-size__inner{display:flow-root;min-width:0}.apple-page-enter-active,.apple-page-leave-active,.apple-slide-x-enter-active,.apple-slide-x-leave-active,.apple-slide-y-enter-active,.apple-slide-y-leave-active{transition:transform var(--apple-duration) var(--apple-ease)}.apple-page-enter-from,.apple-slide-y-enter-from{transform:translateY(22px)}.apple-page-leave-to,.apple-slide-y-leave-to{transform:translateY(-16px)}.apple-slide-x-enter-from{transform:translate(24px)}.apple-slide-x-leave-to{transform:translate(-24px)}.apple-fade-enter-active,.apple-fade-leave-active{transition:opacity var(--apple-fast) ease}.apple-fade-enter-from,.apple-fade-leave-to{opacity:0}@media(prefers-reduced-motion:reduce){.apple-page-enter-from,.apple-page-leave-to,.apple-slide-x-enter-from,.apple-slide-x-leave-to,.apple-slide-y-enter-from,.apple-slide-y-leave-to{transform:none}}@media(prefers-reduced-motion:reduce){.apple-provider{--apple-duration: 80ms}.apple-provider *,.apple-provider *:before,.apple-provider *:after{scroll-behavior:auto!important}.apple-card{transform:none!important}.apple-spin{animation:none}}@media(max-width:600px){.apple-container{padding-inline:16px}.apple-button--small{min-height:44px}.apple-card__body{padding:22px}}.apple-field{display:flex;flex-direction:column;gap:8px;min-width:0;color:var(--apple-text);font:inherit}.apple-field__label{font-size:14px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.apple-field__required,.apple-field__message.is-error{color:var(--apple-danger)}.apple-field__message{margin:0;color:var(--apple-secondary);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.apple-field__counter{align-self:flex-end;color:var(--apple-secondary);font-size:12px;font-variant-numeric:tabular-nums}.apple-control{box-sizing:border-box;min-width:0;width:100%;min-height:48px;border:1px solid var(--apple-border);border-radius:8px;padding:11px 14px;background:var(--apple-surface);color:var(--apple-text);font:inherit;font-size:16px;line-height:1.5;transition:border-color var(--apple-duration-fast, .12s) ease,box-shadow var(--apple-duration-fast, .12s) ease,background-color var(--apple-duration-fast, .12s) ease,color var(--apple-duration-fast, .12s) ease}.apple-field .apple-control{font-size:16px}.apple-control::placeholder{color:var(--apple-secondary);opacity:1}.apple-control:hover:not(:disabled){border-color:color-mix(in srgb,var(--apple-secondary) 60%,var(--apple-border))}.apple-control:focus{border-color:var(--apple-accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--apple-accent) 20%,transparent)}.apple-field.has-error .apple-control,.apple-field.has-error .apple-input-wrap{border-color:var(--apple-danger)}.apple-control:disabled,.apple-choice:has(input:disabled),.apple-switch-row:has(input:disabled),.apple-field .is-disabled{opacity:.5;cursor:not-allowed}.apple-control:disabled{background:var(--apple-surface-alt)}.apple-input-wrap{display:flex;align-items:center;min-width:0;border:1px solid var(--apple-border);border-radius:8px;background:var(--apple-surface);transition:border-color var(--apple-duration-fast, .12s) ease,box-shadow var(--apple-duration-fast, .12s) ease,background-color var(--apple-duration-fast, .12s) ease}.apple-input-wrap:hover:not(:has(input:disabled)){border-color:color-mix(in srgb,var(--apple-secondary) 60%,var(--apple-border))}.apple-input-wrap:focus-within{border-color:var(--apple-accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--apple-accent) 20%,transparent)}.apple-input-wrap>.apple-control,.apple-input-wrap>.apple-control:focus,.apple-input-wrap>.apple-control:focus-visible{border:0;background:transparent;box-shadow:none;outline:none}.apple-input-wrap>.apple-control:disabled{background:transparent}.apple-input-wrap:has(input:disabled){background:var(--apple-surface-alt)}.apple-input__affix{display:inline-flex;align-items:center;flex-shrink:0;max-width:35%;padding-inline:12px;color:var(--apple-secondary);overflow-wrap:anywhere}.apple-input__affix+.apple-control{padding-inline-start:0}.apple-field__icon{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:0;border-radius:6px;color:var(--apple-secondary);background:transparent;cursor:pointer;transition:background-color var(--apple-duration-fast, .12s) ease,color var(--apple-duration-fast, .12s) ease}.apple-field__icon:hover:not(:disabled){color:var(--apple-text);background:var(--apple-surface-alt)}.apple-field__icon:active:not(:disabled){background:color-mix(in srgb,var(--apple-text) 15%,var(--apple-surface))}.apple-field__icon:focus-visible,.apple-stepper__button:focus-visible,.apple-rate__star:focus-visible{outline:3px solid var(--apple-accent);outline-offset:2px}.apple-field__icon:disabled,.apple-stepper__button:disabled{opacity:.4;cursor:not-allowed}.apple-control__spinner{flex-shrink:0;margin-inline:12px;color:var(--apple-accent);animation:apple-control-spin .9s linear infinite}.apple-textarea{min-height:104px;display:block}.apple-select-wrap{position:relative;display:flex;align-items:center;min-width:0}.apple-select{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-inline-end:42px;cursor:pointer;text-align:start}.apple-select:active:not(:disabled){background:color-mix(in srgb,var(--apple-text) 7%,var(--apple-surface))}.apple-select .is-placeholder{color:var(--apple-secondary)}.apple-select__chevron,.apple-select-wrap>.apple-control__spinner{position:absolute;inset-inline-end:14px;pointer-events:none;color:var(--apple-secondary)}.apple-select-wrap>.apple-control__spinner{margin:0}.apple-input-wrap>.apple-select__chevron{position:static;flex-shrink:0;margin-inline-end:14px}.apple-select__chevron{transition:transform var(--apple-duration) var(--apple-ease)}.apple-select__chevron.is-open{transform:rotate(180deg)}.apple-autocomplete{position:relative;min-width:0}.apple-field-menu{position:absolute;top:calc(100% + 6px);inset-inline:0;z-index:40;box-sizing:border-box;overflow:hidden;border:1px solid var(--apple-border);border-radius:10px;background:color-mix(in srgb,var(--apple-surface) 78%,transparent);-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%);box-shadow:var(--apple-shadow)}.apple-field-menu-enter-active,.apple-field-menu-leave-active{transition:height var(--apple-duration) var(--apple-ease),transform var(--apple-duration) var(--apple-ease)}.apple-field-menu-enter-from,.apple-field-menu-leave-to{transform:translateY(-6px)}.apple-autocomplete__list{max-height:min(280px,50vh);margin:0;padding:6px;overflow-y:auto;overscroll-behavior:contain;list-style:none;scrollbar-width:thin}.apple-autocomplete__option{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box;min-height:44px;padding:10px 12px;border-radius:6px;cursor:pointer;font-size:14px;overflow-wrap:anywhere;transition:background-color var(--apple-duration-fast, .12s) ease,color var(--apple-duration-fast, .12s) ease}.apple-autocomplete__option>span{min-width:0}.apple-autocomplete__option>svg{flex-shrink:0;color:var(--apple-text)}.apple-autocomplete__option.is-active,.apple-autocomplete__option[aria-selected=true]{background:var(--apple-surface-alt)}.apple-autocomplete__option:active:not(.is-disabled){background:color-mix(in srgb,var(--apple-text) 15%,var(--apple-surface))}.apple-autocomplete__option.is-disabled{pointer-events:none}.apple-autocomplete__empty{padding:16px 12px;color:var(--apple-secondary);font-size:14px}.apple-choice{display:inline-flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.apple-choice__label{min-width:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.apple-checkbox,.apple-radio{box-sizing:border-box;flex-shrink:0;width:20px;height:20px;margin:0;accent-color:var(--apple-accent);cursor:inherit}.apple-checkbox:focus-visible,.apple-radio:focus-visible{outline:3px solid color-mix(in srgb,var(--apple-accent) 40%,transparent);outline-offset:3px}.apple-radio-group{display:flex;flex-direction:column;gap:3px;min-width:0}.apple-radio-group.is-inline{flex-direction:row;gap:8px 24px;flex-wrap:wrap}.apple-switch-row{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;min-height:44px;cursor:pointer}.apple-switch{position:relative;flex:0 0 50px;width:50px;height:30px}.apple-switch>input{position:absolute;top:-7px;right:0;bottom:-7px;left:0;z-index:1;width:100%;height:44px;margin:0;opacity:0;cursor:inherit}.apple-switch__track{display:block;width:50px;height:30px;border-radius:20px;background:color-mix(in srgb,var(--apple-secondary) 28%,var(--apple-surface));transition:background var(--apple-duration) var(--apple-ease)}.apple-switch__track:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0002;transition:transform var(--apple-duration) var(--apple-ease)}.apple-switch>input:checked+.apple-switch__track{background:var(--apple-success)}.apple-switch>input:checked+.apple-switch__track:after{transform:translate(20px)}.apple-switch>input:focus-visible+.apple-switch__track{outline:3px solid var(--apple-accent);outline-offset:3px}.apple-switch__track>.apple-control__spinner{position:absolute;z-index:2;top:6px;left:6px;margin:0}.apple-switch>input:checked+.apple-switch__track>.apple-control__spinner{left:26px}.apple-slider-row{display:flex;align-items:center;gap:16px;min-width:0;min-height:44px}.apple-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;min-width:0;height:44px;margin:0;background:transparent;cursor:pointer}.apple-slider::-webkit-slider-runnable-track{height:6px;border-radius:4px;background:linear-gradient(to right,var(--apple-accent) var(--apple-slider-progress),var(--apple-surface-alt) var(--apple-slider-progress))}.apple-slider::-moz-range-track{height:6px;border-radius:4px;background:linear-gradient(to right,var(--apple-accent) var(--apple-slider-progress),var(--apple-surface-alt) var(--apple-slider-progress))}.apple-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;margin-top:-9px;border-radius:50%;border:1px solid var(--apple-border);background:var(--apple-surface);box-shadow:0 2px 5px #0002;transition:background-color var(--apple-duration-fast, .12s) ease,border-color var(--apple-duration-fast, .12s) ease,box-shadow var(--apple-duration-fast, .12s) ease}.apple-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;border:1px solid var(--apple-border);background:var(--apple-surface);box-shadow:0 2px 5px #0002;transition:background-color var(--apple-duration-fast, .12s) ease,border-color var(--apple-duration-fast, .12s) ease,box-shadow var(--apple-duration-fast, .12s) ease}.apple-slider:hover:not(:disabled)::-webkit-slider-thumb{background:color-mix(in srgb,var(--apple-accent) 16%,var(--apple-surface));border-color:var(--apple-accent)}.apple-slider:hover:not(:disabled)::-moz-range-thumb{background:color-mix(in srgb,var(--apple-accent) 16%,var(--apple-surface));border-color:var(--apple-accent)}.apple-slider:active:not(:disabled)::-webkit-slider-thumb{background:var(--apple-accent);border-color:var(--apple-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--apple-accent) 16%,transparent)}.apple-slider:active:not(:disabled)::-moz-range-thumb{background:var(--apple-accent);border-color:var(--apple-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--apple-accent) 16%,transparent)}.apple-slider:focus-visible{outline:3px solid var(--apple-accent);outline-offset:9px}.apple-slider:disabled{opacity:.4;cursor:not-allowed}.apple-slider__value{flex-shrink:0;min-width:3ch;max-width:35%;text-align:end;font-size:14px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.apple-stepper{display:inline-grid;grid-template-columns:44px minmax(50px,86px) 44px;align-self:flex-start;max-width:100%;border:1px solid var(--apple-border);border-radius:8px;overflow:visible;background:var(--apple-surface)}.apple-stepper>.apple-control{width:100%;padding-inline:5px;border:0;border-radius:0;background:transparent;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.apple-stepper>.apple-control::-webkit-outer-spin-button,.apple-stepper>.apple-control::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.apple-stepper__button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:48px;border:0;border-radius:0;color:var(--apple-accent);background:transparent;cursor:pointer;transition:background-color var(--apple-duration-fast, .12s) ease,color var(--apple-duration-fast, .12s) ease}.apple-stepper__button:first-child{border-radius:7px 0 0 7px}.apple-stepper__button:last-child{border-radius:0 7px 7px 0}.apple-stepper__button:hover:not(:disabled){background:var(--apple-surface-alt)}.apple-stepper__button:active:not(:disabled){background:color-mix(in srgb,var(--apple-text) 15%,var(--apple-surface))}.apple-segmented{position:relative;display:flex;align-items:stretch;flex-wrap:wrap;gap:3px;min-width:0;padding:3px;border-radius:8px;background:var(--apple-surface-alt);isolation:isolate}.apple-segmented__item{position:relative;display:flex;flex:1 1 70px;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:44px;padding:8px 12px;border-radius:6px;font-size:14px;line-height:1.4;text-align:center;cursor:pointer;overflow-wrap:anywhere;transition:background var(--apple-duration) var(--apple-ease),box-shadow var(--apple-duration) var(--apple-ease)}.apple-segmented__item{z-index:1;background:transparent}.apple-segmented__item{color:var(--apple-secondary);transition:color var(--apple-fast)}.apple-segmented__item.is-selected{color:var(--apple-text)}.apple-segmented__item:hover:not(.is-disabled){color:color-mix(in srgb,var(--apple-text) 75%,var(--apple-secondary))}.apple-segmented__item:active:not(.is-disabled){color:var(--apple-text)}.apple-segmented>.apple-selection-indicator{border-radius:6px;background:var(--apple-surface);box-shadow:0 1px 5px #0002}.apple-segmented__item:has(input:focus-visible){outline:3px solid var(--apple-accent);outline-offset:1px}.apple-date-input{min-width:0;max-width:100%}.apple-color-row{position:relative;display:flex;align-items:center;gap:12px}.apple-color-picker{box-sizing:border-box;width:56px;height:44px;padding:4px;border:1px solid var(--apple-border);border-radius:8px;background:var(--apple-surface);cursor:pointer}.apple-color-picker>span{display:block;width:100%;height:100%;border-radius:5px;background:var(--apple-picked-color)}.apple-color-picker:focus-visible{outline:3px solid var(--apple-accent);outline-offset:2px}.apple-color-picker:disabled{opacity:.5;cursor:not-allowed}.apple-color__value{font-size:14px;font-variant-numeric:tabular-nums}.apple-color-menu{width:min(280px,100%);inset-inline-end:auto;padding:14px}.apple-color-plane{position:relative;height:170px;border-radius:8px;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent);touch-action:none;cursor:crosshair}.apple-color-plane__thumb{position:absolute;width:16px;height:16px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0005;pointer-events:none}.apple-color-hue{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:100%;height:14px;margin:18px 0;border-radius:8px;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:pointer}.apple-color-hue::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border:3px solid var(--apple-surface);border-radius:50%;background:transparent;box-shadow:0 0 0 1px #0004}.apple-color-hue::-moz-range-thumb{width:16px;height:16px;border:3px solid var(--apple-surface);border-radius:50%;background:transparent;box-shadow:0 0 0 1px #0004}.apple-color-hex{display:flex;align-items:center;gap:12px;color:var(--apple-secondary);font-size:12px}.apple-color-hex .apple-control{min-height:38px;padding:5px 10px;text-transform:uppercase}.apple-color-swatches{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin-top:14px}.apple-color-swatch{aspect-ratio:1;min-width:0;border:1px solid #8885;border-radius:5px;cursor:pointer}.apple-color-swatch[aria-pressed=true]{outline:2px solid var(--apple-accent);outline-offset:2px}.apple-upload{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 16px;border:1px dashed var(--apple-border);border-radius:8px;background:var(--apple-surface);transition:border-color var(--apple-duration),background var(--apple-duration)}.apple-upload.is-dragging{border-color:var(--apple-accent);background:color-mix(in srgb,var(--apple-accent) 7%,var(--apple-surface))}.apple-upload:has(input:focus-visible){outline:3px solid var(--apple-accent);outline-offset:2px}.apple-upload__trigger{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding-inline:16px;color:var(--apple-accent);cursor:pointer;font-size:14px;font-weight:600}.apple-upload__files{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.apple-upload__file{display:flex;align-items:center;gap:12px;min-width:0;padding:8px 10px;border-bottom:1px solid var(--apple-border);font-size:13px}.apple-upload__file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apple-upload__file-size{color:var(--apple-secondary);flex-shrink:0;font-variant-numeric:tabular-nums}.apple-form{min-width:0}.apple-form__fields{display:grid;gap:22px;min-width:0;margin:0;padding:0;border:0}.apple-otp{display:grid;grid-template-columns:repeat(var(--apple-otp-length),minmax(0,48px));gap:8px;min-width:0}.apple-field .apple-otp__digit{min-width:0;width:100%;padding:10px 0;text-align:center;font-size:21px;font-weight:500;font-variant-numeric:tabular-nums}.apple-cascader{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.apple-cascader>.apple-field{flex:1 1 130px}.apple-rate{display:flex;flex-wrap:wrap;align-items:center;gap:0;min-height:44px}.apple-rate__star{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:6px;color:var(--apple-secondary);background:transparent;cursor:pointer}.apple-rate__star svg{fill:transparent;stroke-width:1.5px;transition:fill var(--apple-duration),color var(--apple-duration)}.apple-rate__star.is-filled{color:var(--apple-warning)}.apple-rate__star.is-filled svg{fill:currentColor}.apple-rate__star:hover{background:transparent;transform:none}.apple-rate__star:focus:not(:focus-visible){outline:none;box-shadow:none}.apple-rate__star:disabled,.apple-rate__star[aria-disabled=true]{cursor:default}.apple-rate__star:disabled{opacity:.4}.apple-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}[data-apple-motion=none] .apple-control__spinner,[data-apple-motion=reduced] .apple-control__spinner{animation:none}.apple-field[data-apple-motion=none] *,.apple-field[data-apple-motion=none] *:after{transition:none!important}@keyframes apple-control-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.apple-control__spinner{animation:none}.apple-field *,.apple-field *:after{transition-duration:.01ms!important}}@media(max-width:480px){.apple-otp{gap:4px}.apple-field__label{font-size:13px}.apple-upload{padding:16px 10px}}.apple-date-anchor{position:relative;min-width:0}.apple-date-input{min-height:48px;padding-inline-start:12px}.apple-date-segments{display:flex;align-items:center;flex:1;flex-wrap:wrap;gap:0;min-width:0;padding-block:7px;font-variant-numeric:tabular-nums}.apple-date-segment{box-sizing:content-box;min-width:2ch;width:2ch;max-width:4ch;height:30px;border:0;border-radius:3px;padding:0 1px;background:transparent;color:var(--apple-text);text-align:center;font:inherit;font-size:16px;font-variant-numeric:tabular-nums;outline:none!important;box-shadow:none!important}.apple-date-segment[data-part=year]{width:4ch}.apple-date-segment::placeholder{color:var(--apple-secondary);opacity:1}.apple-date-segment:focus{background:color-mix(in srgb,var(--apple-accent) 12%,transparent)}.apple-date-separator{flex:0 0 auto;min-width:.35ch;white-space:pre;color:var(--apple-secondary);font-size:16px}.apple-date-menu{position:absolute;top:calc(100% + 8px);inset-inline-start:0;z-index:45;box-sizing:border-box;width:332px;max-width:min(100%,calc(100vw - 32px));border:1px solid var(--apple-border);border-radius:12px;background:color-mix(in srgb,var(--apple-surface) 82%,transparent);-webkit-backdrop-filter:blur(26px) saturate(145%);backdrop-filter:blur(26px) saturate(145%);box-shadow:var(--apple-shadow);color:var(--apple-text);overflow:hidden;isolation:isolate}.apple-calendar{padding:12px}.apple-calendar__header{display:flex;align-items:center;gap:2px;margin-bottom:8px}.apple-calendar__heading{display:flex;align-items:center;justify-content:flex-start;flex:1;gap:6px;min-width:0;min-height:40px;padding:6px;border:0;border-radius:6px;color:var(--apple-text);background:transparent;text-align:left;font:inherit;font-weight:600;cursor:pointer}.apple-calendar__header .apple-field__icon{width:36px;height:40px}.apple-calendar__week,.apple-calendar__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.apple-calendar__weekdays{margin-bottom:6px;color:var(--apple-secondary);font-size:12px;text-align:center;line-height:28px}.apple-calendar__week{margin-block:2px}.apple-calendar__week>span{display:flex;justify-content:center;min-width:0}.apple-calendar__day,.apple-calendar__choice{box-sizing:border-box;border:0;border-radius:8px;background:transparent;color:var(--apple-text);font:inherit;font-size:14px;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--apple-duration-fast, .12s) ease,color var(--apple-duration-fast, .12s) ease}.apple-calendar__day{width:100%;aspect-ratio:1;padding:0;max-height:40px;position:relative}.apple-calendar__day.is-other-month{color:var(--apple-secondary)}.apple-calendar__day[aria-current=date]:after{position:absolute;bottom:4px;left:calc(50% - 2px);content:"";width:4px;height:4px;border-radius:50%;background:currentColor}.apple-calendar__day:not(.is-selected):hover:not(:disabled),.apple-calendar__choice:not(.is-selected):hover:not(:disabled),.apple-calendar__heading:hover,.apple-calendar__time-values button:not(.is-selected):hover{background:var(--apple-surface-alt)}.apple-calendar__day:active:not(:disabled),.apple-calendar__choice:active:not(:disabled),.apple-calendar__heading:active,.apple-calendar__time-values button:active{background:color-mix(in srgb,var(--apple-text) 15%,var(--apple-surface))}.apple-calendar__day.is-selected,.apple-calendar__choice.is-selected,.apple-calendar__time-values button.is-selected{color:var(--apple-text);background:color-mix(in srgb,var(--apple-text) 12%,var(--apple-surface));font-weight:600}.apple-calendar__day:disabled{color:var(--apple-secondary);opacity:.35;cursor:not-allowed}.apple-calendar__day:focus-visible,.apple-calendar__choice:focus-visible,.apple-calendar__heading:focus-visible,.apple-calendar__tabs button:focus-visible,.apple-calendar__time-values button:focus-visible{outline:2px solid var(--apple-accent);outline-offset:-2px}.apple-calendar__choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:6px 0}.apple-calendar__choice{min-height:48px}.apple-calendar__tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:12px 12px 0;padding:3px;border-radius:8px;background:var(--apple-surface-alt);isolation:isolate}.apple-calendar__tabs>button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:5px 10px;border:0;border-radius:6px;color:var(--apple-text);background:transparent;font:inherit;font-size:13px;cursor:pointer}.apple-calendar__tabs>.apple-selection-indicator{border-radius:6px;background:var(--apple-surface);box-shadow:0 1px 3px #0002}.apple-calendar__tabs>button{color:var(--apple-secondary);transition:color var(--apple-fast)}.apple-calendar__tabs>button[aria-selected=true]{color:var(--apple-text)}.apple-calendar__tabs>button:hover{color:color-mix(in srgb,var(--apple-text) 75%,var(--apple-secondary));background:transparent}.apple-calendar__tabs>button:active{color:var(--apple-text);background:transparent}.apple-calendar__time{display:flex;justify-content:center;gap:12px;padding:20px 16px 12px}.apple-calendar__time-column{display:flex;flex:1;flex-direction:column;gap:8px;min-width:0;text-align:center;color:var(--apple-secondary);font-size:13px}.apple-calendar__time-column .apple-control{min-height:40px;padding:5px;text-align:center;font-variant-numeric:tabular-nums}.apple-calendar__time-values{display:flex;flex-direction:column;height:176px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border-block:1px solid var(--apple-border)}.apple-calendar__time-values>button{flex:0 0 40px;border:0;border-radius:6px;background:transparent;color:var(--apple-text);font:inherit;font-size:15px;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--apple-duration-fast, .12s) ease}.apple-calendar__footer{display:flex;align-items:center;gap:10px;padding:8px 12px 12px;border-top:1px solid var(--apple-border)}.apple-calendar__text,.apple-calendar__done{min-height:36px;padding:6px 10px;border:0;border-radius:999px;color:var(--apple-accent);background:transparent;font:inherit;font-size:13px;cursor:pointer;transition:color var(--apple-duration-fast, .12s) ease,background-color var(--apple-duration-fast, .12s) ease}.apple-calendar__text:hover{color:color-mix(in srgb,var(--apple-accent) 76%,var(--apple-text))}.apple-calendar__text:active{color:var(--apple-text)}.apple-calendar__text:disabled{opacity:.4;cursor:not-allowed}.apple-calendar__done{margin-inline-start:auto;color:var(--apple-accent-text);background:var(--apple-accent);padding-inline:16px}.apple-calendar__done:hover{background:color-mix(in srgb,var(--apple-accent) 90%,var(--apple-text))}.apple-calendar__done:active{background:color-mix(in srgb,var(--apple-accent) 78%,var(--apple-text))}.apple-date-pop-enter-active,.apple-date-pop-leave-active{overflow:hidden;transition:height var(--apple-duration, .24s) var(--apple-ease),transform var(--apple-duration, .24s) var(--apple-ease)}.apple-date-pop-enter-from,.apple-date-pop-leave-to{transform:translateY(-8px)}.apple-calendar-forward-enter-active,.apple-calendar-forward-leave-active,.apple-calendar-backward-enter-active,.apple-calendar-backward-leave-active{transition:transform var(--apple-duration, .24s) var(--apple-ease)}.apple-calendar-forward-enter-from,.apple-calendar-backward-leave-to{transform:translate(25px)}.apple-calendar-forward-leave-to,.apple-calendar-backward-enter-from{transform:translate(-25px)}@media(max-width:380px){.apple-calendar{padding:8px}.apple-calendar__header .apple-field__icon{width:30px}.apple-calendar__day{font-size:13px}.apple-date-input{padding-inline-start:8px}}.apple-content-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.apple-tabs,.apple-accordion,.apple-table,.apple-tree,.apple-list,.apple-carousel,.apple-pull-refresh,.apple-infinite-scroll,.apple-swipe-cell,.apple-marquee{min-width:0;max-width:100%;color:var(--apple-text)}.apple-tabs button,.apple-pagination button,.apple-accordion button,.apple-table button,.apple-tree button,.apple-list button,.apple-tag button,.apple-alert button,.apple-steps button,.apple-carousel button,.apple-pull-refresh button,.apple-infinite-scroll button,.apple-swipe-cell button,.apple-back-top,.apple-marquee button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.apple-tabs button:disabled,.apple-pagination button:disabled,.apple-accordion button:disabled,.apple-table button:disabled,.apple-tree button:disabled,.apple-list button:disabled,.apple-tag button:disabled,.apple-steps button:disabled,.apple-carousel button:disabled,.apple-pull-refresh button:disabled,.apple-infinite-scroll button:disabled,.apple-swipe-cell button:disabled,.apple-back-top:disabled,.apple-marquee button:disabled{cursor:not-allowed;opacity:.42}.apple-tabs :focus-visible,.apple-pagination :focus-visible,.apple-breadcrumbs :focus-visible,.apple-accordion :focus-visible,.apple-table :focus-visible,.apple-tree :focus-visible,.apple-list :focus-visible,.apple-tag :focus-visible,.apple-alert :focus-visible,.apple-steps :focus-visible,.apple-carousel :focus-visible,.apple-pull-refresh :focus-visible,.apple-infinite-scroll :focus-visible,.apple-swipe-cell :focus-visible,.apple-back-top:focus-visible,.apple-marquee :focus-visible{outline:3px solid var(--apple-accent);outline-offset:3px}.apple-content-icon-button{display:inline-flex;flex:0 0 44px;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:inherit;background:transparent;border:0;border-radius:50%}.apple-content-icon-button:hover:not(:disabled){background:color-mix(in srgb,var(--apple-text) 6%,transparent)}.apple-content-icon-button,.apple-tag button,.apple-carousel__arrows button,.apple-pull-refresh__button,.apple-infinite-scroll__status button{transition:color var(--apple-fast),background-color var(--apple-fast),border-color var(--apple-fast)}.apple-content-icon-button:active:not(:disabled),.apple-tag button:active:not(:disabled),.apple-carousel__arrows button:active:not(:disabled),.apple-pull-refresh__button:active:not(:disabled),.apple-infinite-scroll__status button:active:not(:disabled){background:var(--apple-pressed)}.apple-tone-neutral{--apple-tone: var(--apple-secondary)}.apple-tone-accent,.apple-tone-info{--apple-tone: var(--apple-accent)}.apple-tone-danger{--apple-tone: var(--apple-danger)}.apple-tone-success{--apple-tone: var(--apple-success)}.apple-tone-warning{--apple-tone: var(--apple-warning)}.apple-tabs__list{position:relative;display:flex;align-items:stretch;gap:28px;overflow-x:auto;overscroll-behavior-inline:contain;border-bottom:1px solid var(--apple-border);scrollbar-width:none}.apple-tabs__list::-webkit-scrollbar{display:none}.apple-tabs__tab{position:relative;flex:0 0 auto;min-height:48px;max-width:100%;padding:10px 0 13px;border:0;background:transparent;color:var(--apple-secondary);font-size:14px!important;font-weight:500!important;overflow-wrap:anywhere}.apple-tabs__tab{transition:color var(--apple-fast),background-color var(--apple-fast)}.apple-tabs__tab.is-active{color:var(--apple-text)}.apple-tabs__tab:hover:not(:disabled){color:color-mix(in srgb,var(--apple-text) 75%,var(--apple-secondary))}.apple-tabs__tab:active:not(:disabled){color:var(--apple-text)}.apple-tabs--underline .apple-selection-indicator{background:transparent;border-radius:0}.apple-tabs--underline .apple-selection-indicator:after{position:absolute;inset:auto 0 0;height:2px;background:var(--apple-text);content:""}.apple-tabs--bar .apple-tabs__list{gap:0;border:0;border-radius:8px 8px 0 0;background:var(--apple-surface-alt)}.apple-tabs--bar .apple-tabs__tab{flex:1 0 auto;padding-inline:18px}.apple-tabs--bar .apple-selection-indicator{border-radius:8px 8px 0 0}.apple-tabs__tab:focus-visible{outline-offset:-4px;border-radius:4px}.apple-tabs__panel{min-width:0;padding-top:20px}.apple-tabs__panel:empty{padding-top:0}.apple-tabs__viewport{overflow:hidden}.apple-tabs__viewport>div{position:relative}.apple-tab-panel-enter-active,.apple-tab-panel-leave-active{transition:transform var(--apple-duration) var(--apple-ease)}.apple-tab-panel-leave-active{position:absolute;top:0;width:100%}.apple-tab-panel-enter-from,.apple-tabs.is-backward .apple-tab-panel-leave-to{transform:translate(100%)}.apple-tab-panel-leave-to,.apple-tabs.is-backward .apple-tab-panel-enter-from{transform:translate(-100%)}.apple-breadcrumbs{font-size:13px;color:var(--apple-secondary)}.apple-breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;padding:0;margin:0;list-style:none}.apple-breadcrumbs li{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}.apple-breadcrumbs a,.apple-breadcrumbs button{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:transparent;font:inherit;color:inherit;text-decoration:none;cursor:pointer;transition:color var(--apple-fast)}.apple-breadcrumbs a:hover,.apple-breadcrumbs button:hover{text-decoration:none;color:var(--apple-text)}.apple-breadcrumbs a:active,.apple-breadcrumbs button:active{color:var(--apple-accent)}.apple-breadcrumbs [aria-current]{color:var(--apple-text)}.apple-breadcrumbs svg{flex-shrink:0;opacity:.5}.apple-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;max-width:100%}.apple-pagination button{display:inline-flex;flex:0 0 44px;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--apple-secondary);font-size:13px;font-variant-numeric:tabular-nums;transition:background-color var(--apple-fast),color var(--apple-fast)}.apple-pagination button:hover:not(:disabled){background:var(--apple-surface-alt)}.apple-pagination button:active:not(:disabled){background:var(--apple-pressed)}.apple-pagination button.is-active{background:var(--apple-accent);color:var(--apple-accent-text)}.apple-pagination button.is-active:hover:not(:disabled){background:color-mix(in srgb,var(--apple-accent) 92%,var(--apple-text))}.apple-pagination button.is-active:active:not(:disabled){background:color-mix(in srgb,var(--apple-accent) 80%,var(--apple-text))}.apple-pagination__gap{display:inline-flex;justify-content:center;align-items:center;width:12px;color:var(--apple-secondary)}.apple-accordion__item{border-bottom:1px solid var(--apple-border)}.apple-accordion__item:first-child{border-top:1px solid var(--apple-border)}.apple-accordion h3{margin:0;font-size:17px;font-weight:600}.apple-accordion h3 button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:68px;padding:18px 0;border:0;background:transparent;color:var(--apple-text);text-align:left}.apple-accordion h3 button span{min-width:0;overflow-wrap:anywhere}.apple-accordion h3 svg{flex-shrink:0;color:var(--apple-secondary);transition:transform var(--apple-duration) var(--apple-ease)}.apple-accordion__item.is-open h3 svg{transform:rotate(180deg)}.apple-accordion__content{padding:0 32px 24px 0;color:var(--apple-secondary);font-size:14px;line-height:1.7;overflow-wrap:anywhere}.apple-accordion__region{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--apple-duration) var(--apple-ease)}.apple-accordion__item.is-open .apple-accordion__region{grid-template-rows:1fr}.apple-accordion__clip{min-height:0;overflow:hidden}.apple-accordion h3 button{padding-inline:12px;transition:color var(--apple-fast),background-color var(--apple-fast)}.apple-accordion h3 button:hover:not(:disabled){background:var(--apple-hover)}.apple-accordion h3 button:active:not(:disabled){background:var(--apple-pressed)}.apple-accordion__content{padding-left:12px}.apple-table{font-size:13px}.apple-table__scroll{overflow-x:auto;overscroll-behavior-inline:contain}.apple-table table{width:100%;min-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;text-align:left}.apple-table th{position:relative;box-sizing:border-box;height:48px;padding:0 16px;border-bottom:1px solid var(--apple-border);background:var(--apple-surface-alt);font-weight:500;color:var(--apple-secondary);white-space:nowrap}.apple-table td{padding:14px 16px;border-bottom:1px solid var(--apple-border);line-height:1.5;overflow-wrap:anywhere}.apple-table tbody tr{transition:background-color var(--apple-fast)}.apple-table tbody tr.is-selected{background:var(--apple-selected)}.apple-table tbody tr:hover{background:var(--apple-hover)}.apple-table tbody tr:active{background:var(--apple-pressed)}.apple-table .apple-table__select{width:44px;padding:0 12px}.apple-table__select input{display:block;width:18px;height:18px;accent-color:var(--apple-accent);cursor:pointer}.apple-table__select input:disabled{cursor:not-allowed}.apple-table__sort{display:inline-flex;align-items:center;gap:6px;min-height:44px;max-width:100%;padding:0 8px;margin-inline:-8px;color:inherit;background:transparent;border:0;border-radius:4px;text-align:inherit;transition:color var(--apple-fast),background-color var(--apple-fast)}.apple-table__sort:hover:not(:disabled){color:var(--apple-text);background:var(--apple-hover)}.apple-table__sort:active:not(:disabled){color:var(--apple-text);background:var(--apple-pressed)}.apple-table__sort svg{transition:transform var(--apple-duration) var(--apple-ease)}.apple-table__sort svg.is-ascending{transform:rotate(180deg)}.apple-table__sort svg.is-unsorted{opacity:.35}.apple-table td.apple-table__empty{height:140px;text-align:center;color:var(--apple-secondary)}.apple-table__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:12px;color:var(--apple-secondary)}.apple-table__resize{position:absolute;z-index:2;top:0;right:-4px;width:10px;height:100%;cursor:col-resize;touch-action:none}.apple-table__resize:after{position:absolute;top:12px;bottom:12px;left:4px;width:2px;background:var(--apple-border);content:"";transition:background-color var(--apple-fast)}.apple-table__resize:hover:after,.apple-table__resize:focus-visible:after{background:var(--apple-secondary)}.apple-table__resize:active:after{background:var(--apple-text)}.apple-table__resize[aria-disabled]{cursor:not-allowed}.apple-table--virtual .apple-table__scroll{overflow:auto}.apple-table--virtual thead th{position:sticky;z-index:3;top:0}.apple-table--virtual td{box-sizing:border-box;height:var(--apple-row-height);padding-block:0}.apple-table--virtual .apple-table__cell{max-height:calc(var(--apple-row-height) - 2px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.apple-table .apple-table__spacer,.apple-table .apple-table__spacer:hover{background:transparent}.apple-table .apple-table__spacer td{height:0;padding:0;border:0}.apple-tree,.apple-tree ul{padding:0;margin:0;list-style:none}.apple-tree li{border-radius:6px}.apple-tree li:focus-visible{outline:none}.apple-tree li:focus-visible>.apple-tree__row{outline:3px solid var(--apple-accent);outline-offset:-2px}.apple-tree__row{position:relative;display:flex;align-items:center;gap:4px;min-height:44px;padding-block:2px;padding-inline-end:8px;border-radius:6px;cursor:pointer;font-size:14px;transition:background-color var(--apple-fast),color var(--apple-fast)}.apple-tree__row>span:last-child{min-width:0;overflow-wrap:anywhere}.apple-tree__row:hover:not(.is-disabled){background:var(--apple-hover)}.apple-tree__row:active:not(.is-disabled){background:var(--apple-pressed)}.apple-tree__row.is-selected{color:var(--apple-text)}.apple-tree>.apple-selection-indicator{border-radius:6px}.apple-tree__row.is-disabled{opacity:.45;cursor:not-allowed}.apple-tree__toggle,.apple-tree__spacer{display:inline-flex;flex:0 0 36px;align-items:center;justify-content:center;width:36px;height:40px;padding:0;border:0;background:transparent;color:var(--apple-secondary)}.apple-tree__toggle svg{transition:transform var(--apple-duration) var(--apple-ease)}.apple-tree__toggle.is-open svg{transform:rotate(90deg)}.apple-list{position:relative;padding:0;margin:0;list-style:none}.apple-list>li+li{border-top:1px solid var(--apple-border)}.apple-list__item{display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box;width:100%;min-height:60px;padding:12px 2px;border:0;background:transparent;text-decoration:none;color:var(--apple-text);text-align:left}button.apple-list__item:hover,a.apple-list__item:hover{background:color-mix(in srgb,var(--apple-text) 3%,transparent)}.apple-list__item.is-selected>svg{color:var(--apple-accent)}.apple-list__copy{display:flex;flex-direction:column;gap:4px;min-width:0}.apple-list__label{font-size:14px;overflow-wrap:anywhere}.apple-list__description{color:var(--apple-secondary);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.apple-list__item>svg{flex-shrink:0;color:var(--apple-secondary)}.apple-list__item{position:relative;padding-inline:8px;transition:background-color var(--apple-fast),color var(--apple-fast)}.apple-list__item:active:not(:disabled){background:var(--apple-pressed)}.apple-list-row-enter-active,.apple-list-row-leave-active,.apple-list-row-move{transition:transform var(--apple-duration) var(--apple-ease)}.apple-list-row-enter-from{transform:translateY(24px)}.apple-list-row-leave-to{transform:translate(100%)}.apple-list-row-leave-active{position:absolute;width:100%}.apple-avatar{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;box-sizing:border-box;overflow:hidden;vertical-align:middle;border-radius:50%;background:var(--apple-surface-alt);color:var(--apple-secondary);font-weight:600;line-height:1}.apple-avatar--square{border-radius:8px}.apple-avatar img{width:100%;height:100%;object-fit:cover}.apple-avatar-group{display:flex;align-items:center;flex-wrap:wrap;padding-left:7px}.apple-avatar-group>.apple-avatar{margin-left:-7px;border:2px solid var(--apple-surface)}.apple-avatar-group__more{font-size:11px;font-weight:500}.apple-badge{position:relative;display:inline-flex;align-items:center;vertical-align:middle}.apple-badge__value{position:absolute;top:0;right:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:19px;height:19px;padding:0 5px;transform:translate(45%,-40%);border:2px solid var(--apple-surface);border-radius:20px;background:var(--apple-tone, var(--apple-danger));color:#fff;white-space:nowrap;font-size:10px;line-height:1;font-weight:600}.apple-badge__value--dot{min-width:10px;width:10px;height:10px;padding:0}.apple-badge--standalone .apple-badge__value{position:static;transform:none}.apple-tag{display:inline-flex;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;max-width:100%;min-height:26px;padding:3px 9px;border-radius:5px;background:color-mix(in srgb,var(--apple-tone, var(--apple-secondary)) 10%,var(--apple-surface));color:var(--apple-tone, var(--apple-secondary));font-size:11px;font-weight:500;line-height:1.5;vertical-align:middle;overflow-wrap:anywhere}.apple-tag button{display:inline-flex;flex:0 0 22px;align-items:center;justify-content:center;width:22px;height:22px;margin:-2px -5px -2px 0;padding:0;border:0;border-radius:3px;background:transparent;color:inherit}.apple-tag button:hover:not(:disabled){background:color-mix(in srgb,var(--apple-tone, var(--apple-secondary)) 12%,transparent)}.apple-alert{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid color-mix(in srgb,var(--apple-tone) 18%,var(--apple-border));border-radius:8px;background:color-mix(in srgb,var(--apple-tone) 5%,var(--apple-surface));color:var(--apple-text);font-size:13px;line-height:1.6}.apple-alert>svg{flex:0 0 auto;margin-top:1px;color:var(--apple-tone)}.apple-alert__copy{flex:1;min-width:0;overflow-wrap:anywhere}.apple-alert strong{font-size:13px;font-weight:600}.apple-alert p{margin:4px 0 0;color:var(--apple-secondary)}.apple-alert>button{margin:-11px -11px -11px -4px}.apple-progress{display:flex;align-items:center;gap:12px;min-width:0}.apple-progress__track{flex:1;height:5px;overflow:hidden;border-radius:5px;background:var(--apple-surface-alt)}.apple-progress__fill{display:block;height:100%;border-radius:inherit;background:var(--apple-tone, var(--apple-accent));transition:width var(--apple-duration) var(--apple-ease)}.apple-progress__value{min-width:38px;text-align:right;color:var(--apple-secondary);font-size:12px;font-variant-numeric:tabular-nums}.apple-progress.is-indeterminate .apple-progress__fill{width:35%;animation:apple-progress 1.4s ease-in-out infinite}.apple-spinner{display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--apple-secondary);vertical-align:middle;font-size:13px}.apple-spinner>svg{flex-shrink:0;animation:apple-spin 1s linear infinite}.apple-skeleton{min-width:0}.apple-skeleton__layout{display:flex;align-items:flex-start;gap:14px;width:100%;height:100%}.apple-skeleton__avatar{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--apple-surface-alt)}.apple-skeleton__lines{display:flex;flex:1;flex-direction:column;gap:10px;min-width:0;padding-top:3px}.apple-skeleton__lines span{display:block;height:12px;border-radius:4px;background:var(--apple-surface-alt)}.apple-skeleton__block{display:block;flex-shrink:0;background:var(--apple-surface-alt);border-radius:4px}.apple-skeleton__avatar{border-radius:50%}.apple-skeleton--avatar{width:44px;height:44px}.apple-skeleton--avatar .apple-skeleton__avatar{width:100%;height:100%}.apple-skeleton--avatar .apple-skeleton__layout{display:block}.apple-skeleton--card .apple-skeleton__layout,.apple-skeleton--list .apple-skeleton__layout,.apple-skeleton--table .apple-skeleton__layout{flex-direction:column}.apple-skeleton--card .apple-skeleton__lines{width:100%}.apple-skeleton__image{width:100%;aspect-ratio:16 / 10;border-radius:8px}.apple-skeleton--image .apple-skeleton__image{height:100%}.apple-skeleton__row{display:flex;gap:14px;width:100%;padding-block:8px}.apple-skeleton__table-row{display:grid;gap:24px;width:100%;padding:12px 0;border-bottom:1px solid var(--apple-border)}.apple-skeleton__table-row .apple-skeleton__block{height:12px}.apple-skeleton__table-row:first-child{background:var(--apple-surface-alt)}.apple-skeleton__table-row:first-child .apple-skeleton__block{background:var(--apple-border)}.apple-skeleton.is-animated .apple-skeleton__block{animation:apple-skeleton 1.8s ease-in-out infinite}.apple-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:44px 20px;text-align:center;color:var(--apple-secondary)}.apple-empty>svg{margin-bottom:2px;opacity:.7}.apple-empty h3{margin:0;color:var(--apple-text);font-size:16px;font-weight:600}.apple-empty p{max-width:360px;margin:0;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.apple-empty>:last-child:not(h3):not(p):not(svg){margin-top:8px}.apple-divider{display:flex;align-items:center;gap:16px;margin:24px 0;color:var(--apple-secondary);font-size:12px}.apple-divider:before,.apple-divider:after{flex:1;height:1px;background:var(--apple-border);content:""}.apple-divider:empty:after{display:none}.apple-divider--vertical{display:inline-flex;align-self:stretch;width:1px;min-height:20px;margin:0 12px;vertical-align:middle;background:var(--apple-border)}.apple-divider--vertical:before,.apple-divider--vertical:after{display:none}.apple-steps{display:flex;align-items:flex-start;padding:0;margin:0;list-style:none;overflow-x:auto}.apple-steps>li{position:relative;flex:1 0 84px;min-width:0}.apple-steps>li:not(:last-child):after{position:absolute;z-index:0;top:17px;left:calc(50% + 22px);right:calc(-50% + 22px);height:1px;content:"";background:var(--apple-border)}.apple-steps>li>div,.apple-steps>li>button{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;width:100%;min-height:44px;padding:0 6px 8px;border:0;background:transparent;text-align:center;color:var(--apple-secondary)}.apple-steps>li>button{transition:color var(--apple-fast),background-color var(--apple-fast)}.apple-steps>li>button:hover:not(:disabled){background:var(--apple-hover)}.apple-steps>li>button:active:not(:disabled){background:var(--apple-pressed)}.apple-steps__number{z-index:1;display:flex;flex:0 0 34px;align-items:center;justify-content:center;box-sizing:border-box;width:34px;height:34px;border:1px solid var(--apple-border);border-radius:50%;background:var(--apple-surface);font-size:13px;transition:color var(--apple-fast),background-color var(--apple-fast),border-color var(--apple-fast)}.apple-steps__number>span{display:inline-flex;align-items:center;justify-content:center}.apple-step-symbol-enter-active,.apple-step-symbol-leave-active{transition:opacity var(--apple-fast)}.apple-step-symbol-enter-from,.apple-step-symbol-leave-to{opacity:0}.apple-steps .is-current .apple-steps__number{border-color:var(--apple-accent);background:var(--apple-accent);color:var(--apple-accent-text)}.apple-steps .is-complete .apple-steps__number{border-color:transparent;background:color-mix(in srgb,var(--apple-accent) 10%,var(--apple-surface));color:var(--apple-accent)}.apple-steps .is-current .apple-steps__copy strong{color:var(--apple-text)}.apple-steps__copy{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;max-width:100%;text-align:center;overflow-wrap:anywhere}.apple-steps__copy strong{font-size:13px;font-weight:500;transition:color var(--apple-fast)}.apple-steps__copy>span{font-size:11px;line-height:1.5}.apple-timeline{padding:0;margin:0;list-style:none}.apple-timeline>li{position:relative;display:flex;gap:16px;min-height:70px;padding-bottom:26px}.apple-timeline>li:last-child{padding-bottom:0}.apple-timeline>li:not(:last-child):before{position:absolute;top:15px;bottom:-3px;left:4px;width:1px;content:"";background:var(--apple-border)}.apple-timeline__point{position:relative;flex:0 0 9px;width:9px;height:9px;margin-top:6px;border-radius:50%;background:var(--apple-tone, var(--apple-accent))}.apple-timeline__copy{display:flex;flex-direction:column;gap:5px;min-width:0}.apple-timeline time{color:var(--apple-secondary);font-size:11px}.apple-timeline strong{font-size:14px;font-weight:500}.apple-timeline p{margin:0;color:var(--apple-secondary);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.apple-timeline--horizontal{display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.apple-timeline--horizontal>li{flex:1 0 150px;flex-direction:column;gap:12px;min-width:0;padding:0 20px 0 0}.apple-timeline--horizontal>li:not(:last-child):before{top:10px;bottom:auto;left:15px;width:calc(100% - 18px);height:1px}.apple-carousel__track{position:relative;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-inline:contain;border-radius:8px}.apple-carousel__track::-webkit-scrollbar{display:none}.apple-carousel__slide{position:relative;flex:0 0 100%;min-width:0;box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden}.apple-carousel__slide>img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover}.apple-carousel__caption{padding:18px 0 0}.apple-carousel__caption h3{margin:0;font-size:20px;font-weight:600}.apple-carousel__caption p{margin:8px 0 0;color:var(--apple-secondary);font-size:14px;line-height:1.6}.apple-carousel__controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px}.apple-carousel__dots{display:flex;flex-wrap:wrap;align-items:center;min-width:0}.apple-carousel__dots button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:44px;padding:0;border:0;background:transparent}.apple-carousel__dots button span{width:6px;height:6px;border-radius:6px;background:var(--apple-border);transition:width var(--apple-duration) var(--apple-ease),background var(--apple-duration) var(--apple-ease)}.apple-carousel__dots button.is-active span{width:20px;background:var(--apple-text)}.apple-carousel__arrows{display:flex;flex:0 0 auto;gap:8px}.apple-carousel__arrows button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--apple-surface-alt);color:var(--apple-text)}.apple-carousel__arrows button:hover:not(:disabled){background:color-mix(in srgb,var(--apple-secondary) 18%,var(--apple-surface))}.apple-pull-refresh__indicator{display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;color:var(--apple-secondary);font-size:12px;transition:height var(--apple-duration) var(--apple-ease)}.apple-pull-refresh[aria-busy=true] .apple-pull-refresh__indicator svg{animation:apple-spin 1s linear infinite}.apple-pull-refresh__button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;margin:8px auto 0;padding:0 12px;border:0;background:transparent;color:var(--apple-accent);font-size:12px!important}.apple-infinite-scroll__status{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;min-height:64px;color:var(--apple-secondary);font-size:12px}.apple-infinite-scroll__status button{min-height:44px;padding:0 12px;border:0;background:transparent;color:var(--apple-accent);font-size:12px}.apple-swipe-cell{overflow:hidden;border-bottom:1px solid var(--apple-border)}.apple-swipe-cell__content{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:8px 0}.apple-swipe-cell__content>:not(button){min-width:0;overflow-wrap:anywhere}.apple-swipe-cell__actions{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--apple-duration) var(--apple-ease)}.apple-swipe-cell.is-open .apple-swipe-cell__actions{grid-template-rows:1fr}.apple-swipe-cell__clip{min-height:0;overflow:hidden}.apple-swipe-cell__buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:0 0 12px}.apple-floating-group{position:fixed;z-index:25;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:10px;max-height:calc(100dvh - 40px)}.apple-back-top{position:relative;order:1000;display:inline-flex;flex:0 0 44px;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--apple-border);border-radius:50%;background:var(--apple-surface);color:var(--apple-text);box-shadow:var(--apple-shadow);transition:color var(--apple-fast),background-color var(--apple-fast),border-color var(--apple-fast)}.apple-back-top--fixed{position:fixed;z-index:25;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom))}.apple-back-top:hover:not(:disabled){background:var(--apple-surface-alt)}.apple-back-top:active:not(:disabled){background:var(--apple-pressed)}.apple-floating-action-enter-active,.apple-floating-action-leave-active{transition:transform var(--apple-duration) var(--apple-ease),opacity var(--apple-fast)}.apple-floating-action-enter-from,.apple-floating-action-leave-to{transform:translateY(24px);opacity:0}.apple-marquee{display:flex;align-items:center;gap:8px;padding:0 8px 0 14px;min-height:44px;background:var(--apple-surface-alt);border-radius:6px;font-size:12px}.apple-marquee__viewport{flex:1;min-width:0;overflow:hidden}.apple-marquee__track{display:flex;width:max-content;animation:apple-marquee var(--apple-marquee-duration) linear infinite}.apple-marquee__track>span{padding-right:70px;white-space:nowrap}.apple-marquee.is-paused .apple-marquee__track,.apple-marquee:hover .apple-marquee__track,.apple-marquee__viewport:focus-within .apple-marquee__track{animation-play-state:paused}.apple-statistic{min-width:0;max-width:100%}.apple-statistic__label{color:var(--apple-secondary);font-size:13px}.apple-statistic__value{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;margin-top:8px;color:var(--apple-text);font-variant-numeric:tabular-nums}.apple-statistic__value strong{min-width:0;font-size:32px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.apple-statistic__value>span{color:var(--apple-secondary);font-size:14px}.apple-statistic p{margin:8px 0 0;color:var(--apple-secondary);font-size:12px;line-height:1.5}@keyframes apple-spin{to{transform:rotate(360deg)}}@keyframes apple-progress{0%{transform:translate(-110%)}to{transform:translate(390%)}}@keyframes apple-skeleton{50%{opacity:.45}}@keyframes apple-marquee{to{transform:translate(-50%)}}[data-motion=none] .apple-carousel__track,.apple-carousel[data-motion=none] .apple-carousel__track,[data-motion=reduced] .apple-carousel__track,.apple-carousel[data-motion=reduced] .apple-carousel__track{scroll-behavior:auto}.apple-spinner[data-motion=none]>svg,.apple-progress[data-motion=none] .apple-progress__fill,.apple-skeleton[data-motion=none] span,.apple-marquee[data-motion=none] .apple-marquee__track,.apple-pull-refresh[data-motion=none] .apple-pull-refresh__indicator svg,.apple-spinner[data-motion=reduced]>svg,.apple-progress[data-motion=reduced] .apple-progress__fill,.apple-skeleton[data-motion=reduced] span,.apple-marquee[data-motion=reduced] .apple-marquee__track,.apple-pull-refresh[data-motion=reduced] .apple-pull-refresh__indicator svg{animation:none}:is([data-apple-motion=reduced],[data-apple-motion=none]) :is(.apple-spinner>svg,.apple-progress__fill,.apple-skeleton span,.apple-marquee__track,.apple-pull-refresh__indicator svg){animation:none!important}:is([data-apple-motion=reduced],[data-apple-motion=none]) .apple-carousel__track{scroll-behavior:auto}:is([data-apple-motion=reduced],[data-apple-motion=none]) .apple-marquee__track,.apple-marquee:is([data-motion=reduced],[data-motion=none]) .apple-marquee__track{width:auto}:is([data-apple-motion=reduced],[data-apple-motion=none]) .apple-marquee__track>span,.apple-marquee:is([data-motion=reduced],[data-motion=none]) .apple-marquee__track>span{padding:10px 0;white-space:normal;overflow-wrap:anywhere}:is([data-apple-motion=reduced],[data-apple-motion=none]) :is(.apple-marquee__track>span[aria-hidden],.apple-marquee>button),.apple-marquee:is([data-motion=reduced],[data-motion=none]) :is(.apple-marquee__track>span[aria-hidden],button){display:none}@media(max-width:480px){.apple-tabs__list{gap:22px}.apple-pagination{gap:2px}.apple-table th,.apple-table td{padding-inline:12px}.apple-table__footer{flex-direction:column;align-items:stretch}.apple-table__footer>span{font-size:12px}.apple-carousel__caption h3{font-size:18px}}@media(prefers-reduced-motion:reduce){.apple-carousel__track{scroll-behavior:auto}.apple-spinner>svg,.apple-progress.is-indeterminate .apple-progress__fill,.apple-skeleton.is-animated span,.apple-marquee__track,.apple-pull-refresh[aria-busy=true] .apple-pull-refresh__indicator svg{animation:none}.apple-marquee__track{width:auto}.apple-marquee__track>span{padding:10px 0;white-space:normal;overflow-wrap:anywhere}.apple-marquee__track>span[aria-hidden],.apple-marquee>button{display:none}}.apple-navibar{--apple-navibar-height: 64px;position:relative;min-width:0;width:100%;color:var(--apple-text)}.apple-navibar--fixed{height:var(--apple-navibar-height)}.apple-navibar__bar{box-sizing:border-box;position:relative;z-index:70;height:var(--apple-navibar-height);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;padding-inline:30px;border-bottom:1px solid color-mix(in srgb,var(--apple-border) 50%,transparent);background:color-mix(in srgb,var(--apple-surface) 90%,transparent);-webkit-backdrop-filter:blur(2px) saturate(2);backdrop-filter:blur(2px) saturate(2)}.apple-navibar--fixed>.apple-navibar__bar{position:fixed;inset:0 0 auto}.apple-navibar__brand{min-width:0;font-size:20px;font-weight:650}.apple-navibar__brand a{color:inherit;text-decoration:none;overflow-wrap:anywhere}.apple-navibar__links{display:flex;align-self:stretch;align-items:stretch;gap:32px;min-width:0}.apple-navibar__item{display:flex;align-items:center;justify-content:center;gap:4px;min-height:44px;padding:1px 0 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--apple-secondary);font:inherit;font-size:13px;text-decoration:none;cursor:pointer;overflow-wrap:anywhere;transition:color var(--apple-fast)}.apple-navibar__item.is-active{color:var(--apple-text);border-bottom-color:var(--apple-text)}.apple-navibar__item:hover:not(:disabled):not([aria-disabled=true]){color:var(--apple-text)}.apple-navibar__item[aria-disabled=true]{opacity:.42;cursor:not-allowed}.apple-navibar__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;min-width:0}.apple-navibar__toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}.apple-navibar [hidden]{display:none}.apple-navibar :focus-visible{outline:3px solid var(--apple-accent);outline-offset:-3px}.apple-navibar.is-collapsed{--apple-navibar-height: 58px}.apple-navibar.is-collapsed .apple-navibar__bar{grid-template-columns:minmax(0,1fr) auto 44px;gap:4px;padding-inline:17px}.apple-navibar.is-collapsed .apple-navibar__brand{font-size:19px}.apple-navibar.is-collapsed .apple-navibar__links{position:absolute;inset:100% 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100dvh - var(--apple-navibar-height));overflow-y:auto;padding:10px 17px 16px;border-bottom:1px solid var(--apple-border);background:color-mix(in srgb,var(--apple-surface) 96%,transparent);-webkit-backdrop-filter:blur(2px) saturate(2);backdrop-filter:blur(2px) saturate(2)}.apple-navibar.is-collapsed .apple-navibar__links[hidden]{display:none}.apple-navibar.is-collapsed .apple-navibar__item{justify-content:flex-start;padding:10px 12px;border-bottom:0;text-align:left}.apple-navibar.is-collapsed .apple-navibar__item.is-active{font-weight:600}.apple-overlay-host{display:contents}.apple-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#00000061}.apple-modal{box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:min(100%,var(--apple-overlay-width, 480px));max-width:100%;max-height:calc(100dvh - 40px);color:var(--apple-text, #1d1d1f);background:var(--apple-surface, #fff);border:1px solid var(--apple-border, #d2d2d7);border-radius:var(--apple-radius, 8px);box-shadow:0 24px 90px #0000002e;overflow:hidden;outline:none;transition:width var(--apple-duration, .32s) var(--apple-ease, ease),background-color var(--apple-duration, .32s),color var(--apple-duration, .32s),border-color var(--apple-duration, .32s)}.apple-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-shrink:0;padding:24px 24px 12px}.apple-modal-heading{min-width:0;padding-top:5px}.apple-modal-heading h2{margin:0;font-size:22px;line-height:1.25;font-weight:650;overflow-wrap:anywhere}.apple-modal-body{min-height:0;padding:12px 24px 24px;overflow-y:auto;overscroll-behavior:contain;font-size:16px;line-height:1.6;overflow-wrap:anywhere}.apple-modal-body>:first-child{margin-top:0}.apple-modal-body>:last-child{margin-bottom:0}.apple-modal-body p{color:var(--apple-secondary, #6e6e73)}.apple-modal-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px 24px;flex-shrink:0}.apple-overlay-button{box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;max-width:100%;border:1px solid transparent;border-radius:999px;padding:10px 21px;font:inherit;font-size:14px;font-weight:550;line-height:1.4;text-align:center;white-space:normal;overflow-wrap:anywhere;background:var(--apple-accent, #0071e3);color:var(--apple-accent-text, #fff);cursor:pointer;transition:opacity var(--apple-duration, .22s),background-color var(--apple-duration, .22s)}.apple-overlay-button--secondary{color:var(--apple-accent, #0071e3);background:transparent;border-color:currentColor}.apple-overlay-button--danger{background:var(--apple-danger, #d93025);color:#fff}.apple-overlay-icon{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border:0;border-radius:50%;font:inherit;background:transparent;color:var(--apple-secondary, #6e6e73);cursor:pointer;transition:background-color var(--apple-fast, .12s),color var(--apple-fast, .12s)}.apple-overlay-icon:focus-visible,.apple-overlay-button:focus-visible,.apple-menu-item:focus-visible,.apple-action-sheet-item:focus-visible,.apple-action-sheet-cancel:focus-visible,.apple-snackbar-action:focus-visible{outline:3px solid var(--apple-accent, #0071e3);outline-offset:3px}.apple-overlay-button:disabled,.apple-overlay-icon:disabled,.apple-menu-item:disabled,.apple-action-sheet-item:disabled{opacity:.42;cursor:not-allowed}.apple-overlay-backdrop--drawer{justify-content:flex-end;padding:0}.apple-drawer{height:100dvh;max-height:100dvh;border-radius:0;border-block:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.apple-drawer--left{margin-right:auto;padding-left:env(safe-area-inset-left)}.apple-drawer--right{padding-right:env(safe-area-inset-right)}.apple-drawer .apple-modal-body{flex:1}.apple-overlay-backdrop--sheet{align-items:flex-end;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}.apple-sheet{width:min(100%,max(var(--apple-overlay-width, 540px),540px));max-height:calc(100dvh - max(20px,env(safe-area-inset-top)));border-radius:8px 8px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}.apple-sheet-handle{width:34px;height:4px;margin:10px auto 0;flex-shrink:0;border-radius:999px;background:var(--apple-border, #d2d2d7)}.apple-sheet .apple-modal-header{padding-top:12px}.apple-snackbar-stack{position:fixed;z-index:3000;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));width:min(420px,calc(100vw - 40px));max-height:calc(100dvh - 40px);pointer-events:none}.apple-snackbar-stack>.apple-auto-size{overflow:visible!important}.apple-modal-body .apple-auto-size__inner>:first-child{margin-top:0}.apple-modal-body .apple-auto-size__inner>:last-child{margin-bottom:0}.apple-snackbar-list{position:relative;display:flex;flex-direction:column;gap:10px}.apple-snackbar-position{min-width:0}.apple-snackbar{display:flex;align-items:center;gap:12px;box-sizing:border-box;padding:12px 12px 12px 16px;width:100%;border:1px solid var(--apple-border, #d2d2d7);border-radius:8px;background:var(--apple-surface, #fff);color:var(--apple-text, #1d1d1f);box-shadow:var(--apple-shadow, 0 4px 24px rgb(0 0 0 / 12%));pointer-events:auto}.apple-snackbar-symbol{flex-shrink:0;color:var(--apple-accent, #0071e3)}.apple-snackbar--success .apple-snackbar-symbol{color:var(--apple-success, #248a3d)}.apple-snackbar--warning .apple-snackbar-symbol{color:var(--apple-warning, #af7000)}.apple-snackbar--danger .apple-snackbar-symbol,.apple-snackbar--error .apple-snackbar-symbol{color:var(--apple-danger, #d93025)}.apple-snackbar-content{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;font-size:14px;line-height:1.45;overflow-wrap:anywhere}.apple-snackbar-content strong{font-weight:600}.apple-snackbar-action{flex-shrink:0;max-width:30%;min-height:44px;border:0;padding:8px;border-radius:8px;background:transparent;color:var(--apple-accent, #0071e3);font:inherit;font-size:14px;cursor:pointer;overflow-wrap:anywhere}.apple-popover-anchor{display:inline-flex;max-width:100%;vertical-align:middle}.apple-popover{box-sizing:border-box;position:fixed;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;padding:18px;border:1px solid color-mix(in srgb,var(--apple-border, #d2d2d7) 65%,transparent);border-radius:8px;color:var(--apple-text, #1d1d1f);background:color-mix(in srgb,var(--apple-surface, #fff) 82%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);box-shadow:0 12px 36px #00000024;font-size:14px;line-height:1.5;overflow-wrap:anywhere;outline:none;transition:width var(--apple-duration, .32s) var(--apple-ease, ease),background-color var(--apple-fast, .12s)}.apple-tooltip{max-width:min(280px,calc(100vw - 24px));padding:7px 11px;color:var(--apple-surface, #fff);background:var(--apple-text, #1d1d1f);border:0;font-size:12px;font-weight:500;pointer-events:auto}.apple-menu{padding:6px}.apple-menu-item{position:relative;overflow:hidden;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;min-height:44px;border:0;padding:10px 12px;border-radius:5px;color:var(--apple-text, #1d1d1f);background:transparent;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--apple-fast, .12s),color var(--apple-fast, .12s)}.apple-menu-item--danger{color:var(--apple-danger, #d93025)}.apple-menu-item svg{flex-shrink:0}.apple-menu-copy{display:flex;flex-direction:column;flex:1;min-width:0;overflow-wrap:anywhere}.apple-menu-copy small{color:var(--apple-secondary, #6e6e73);font-size:12px}.apple-action-sheet .apple-modal-body{padding:4px 16px 16px}.apple-action-sheet-message{margin:0 8px 16px;font-size:14px;text-align:center}.apple-action-sheet-items{display:flex;flex-direction:column}.apple-action-sheet-item{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:12px;min-height:56px;padding:12px;border:0;border-top:1px solid var(--apple-border, #d2d2d7);background:transparent;color:var(--apple-accent, #0071e3);font:inherit;text-align:center;cursor:pointer;overflow-wrap:anywhere;transition:background-color var(--apple-fast, .12s),color var(--apple-fast, .12s)}.apple-action-sheet-item span{min-width:0}.apple-action-sheet-item small{display:block;color:var(--apple-secondary, #6e6e73);font-size:12px}.apple-action-sheet-item--danger{color:var(--apple-danger, #d93025)}.apple-action-sheet-cancel{width:100%;margin-top:12px}.apple-image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;color:#fff;background:#000000eb;outline:0}.apple-viewer-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;touch-action:none}.apple-viewer-image{display:block;width:auto!important;height:auto!important;max-width:calc(100% - 64px);max-height:calc(100% - 160px);object-fit:contain;-webkit-user-select:none;user-select:none}.apple-viewer-title{position:absolute;top:max(20px,env(safe-area-inset-top));left:64px;right:64px;text-align:center;overflow-wrap:anywhere;pointer-events:none}.apple-viewer-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.apple-image-viewer .apple-overlay-icon{color:#fff;background:#202022cc}.apple-viewer-close{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));z-index:2}.apple-viewer-prev,.apple-viewer-next{position:absolute;top:calc(50% - 22px);z-index:2}.apple-viewer-prev{left:max(12px,env(safe-area-inset-left))}.apple-viewer-next{right:max(12px,env(safe-area-inset-right))}.apple-viewer-toolbar{display:flex;align-items:center;gap:6px;position:absolute;z-index:2;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);padding:6px;max-width:calc(100vw - 24px);border:1px solid rgb(255 255 255 / 14%);border-radius:999px;background:#202022e5}.apple-viewer-toolbar .apple-overlay-icon{background:transparent}.apple-viewer-count{white-space:nowrap;text-align:center;min-width:54px;font-size:12px;font-variant-numeric:tabular-nums}.apple-viewer-error,.apple-viewer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;color:#fff}.apple-viewer-empty{height:100%}.apple-overlay-spin{animation:apple-overlay-spin .8s linear infinite}@keyframes apple-overlay-spin{to{transform:rotate(360deg)}}.apple-modal-presence-enter-active,.apple-modal-presence-leave-active{transition:background-color var(--apple-overlay-duration, .32s) var(--apple-ease, ease)}.apple-modal-presence-enter-active .apple-modal,.apple-modal-presence-leave-active .apple-modal{transition:transform var(--apple-overlay-duration, .32s) var(--apple-ease, cubic-bezier(.2, .8, .2, 1));will-change:transform}.apple-modal-presence-enter-from,.apple-modal-presence-leave-to{background-color:transparent}.apple-modal-presence-enter-from .apple-dialog,.apple-modal-presence-leave-to .apple-dialog{transform:translateY(32px) scale(.97)}.apple-modal-presence-enter-from .apple-drawer--right,.apple-modal-presence-leave-to .apple-drawer--right{transform:translate(100%)}.apple-modal-presence-enter-from .apple-drawer--left,.apple-modal-presence-leave-to .apple-drawer--left{transform:translate(-100%)}.apple-modal-presence-enter-from .apple-sheet,.apple-modal-presence-leave-to .apple-sheet{transform:translateY(100%)}.apple-popover-presence-enter-active,.apple-popover-presence-leave-active{transition:transform var(--apple-overlay-duration, .32s) var(--apple-ease, ease),opacity var(--apple-overlay-duration, .32s) var(--apple-ease, ease)}.apple-popover-presence-enter-from,.apple-popover-presence-leave-to{transform:translateY(-10px);opacity:0}.apple-toast-enter-active,.apple-toast-leave-active{transition:transform var(--apple-overlay-duration, .32s) var(--apple-ease, cubic-bezier(.2, .8, .2, 1))}.apple-toast-enter-from,.apple-toast-leave-to{transform:translate(calc(100% + 48px))}.apple-toast-stack-move{transition:transform var(--apple-duration, .32s) var(--apple-ease, ease)}.apple-viewer-presence-enter-active,.apple-viewer-presence-leave-active{transition:opacity var(--apple-overlay-duration, .32s) var(--apple-ease, ease)}.apple-viewer-presence-enter-from,.apple-viewer-presence-leave-to{opacity:0}.apple-modal-presence-leave-active,.apple-popover-presence-leave-active,.apple-viewer-presence-leave-active,.apple-toast-leave-active{pointer-events:none}[data-apple-motion=reduced].apple-overlay-backdrop{transition-property:opacity}[data-apple-motion=reduced].apple-modal-presence-enter-from,[data-apple-motion=reduced].apple-modal-presence-leave-to{opacity:0;background:#00000061}[data-apple-motion=reduced].apple-overlay-backdrop .apple-modal,[data-apple-motion=reduced].apple-popover,[data-apple-motion=reduced].apple-snackbar{transform:none!important}[data-apple-motion=reduced].apple-toast-enter-active,[data-apple-motion=reduced].apple-toast-leave-active{transition-property:opacity}[data-apple-motion=reduced].apple-toast-enter-from,[data-apple-motion=reduced].apple-toast-leave-to{opacity:0}[data-apple-motion=none].apple-overlay-backdrop,[data-apple-motion=none] .apple-modal,[data-apple-motion=none].apple-snackbar,[data-apple-motion=none].apple-popover,[data-apple-motion=none].apple-image-viewer,[data-apple-motion=none] .apple-overlay-icon,[data-apple-motion=none] .apple-menu-item,[data-apple-motion=none] .apple-action-sheet-item,[data-apple-motion=none] .apple-overlay-spin,.apple-image-viewer[data-apple-motion=none] *,.apple-image-viewer[data-apple-motion=reduced] *{transition:none!important;animation:none!important}.apple-overlay-icon:not(:disabled):active,.apple-menu-item:not(:disabled):active,.apple-action-sheet-item:not(:disabled):active{background:color-mix(in srgb,var(--apple-text, #1d1d1f) 16%,var(--apple-surface, #fff))}@media(hover:hover)and (pointer:fine){.apple-overlay-icon:not(:disabled):hover,.apple-menu-item:not(:disabled):hover,.apple-action-sheet-item:not(:disabled):hover{background:color-mix(in srgb,var(--apple-text, #1d1d1f) 7%,transparent)}.apple-overlay-icon:not(:disabled):active,.apple-menu-item:not(:disabled):active,.apple-action-sheet-item:not(:disabled):active{background:color-mix(in srgb,var(--apple-text, #1d1d1f) 16%,var(--apple-surface, #fff))}.apple-overlay-button:not(:disabled):hover{opacity:.87}.apple-image-viewer .apple-overlay-icon:hover{background:#505054e5}.apple-image-viewer .apple-overlay-icon:active{background:#6a6a6ef2}}@media(max-width:600px){.apple-overlay-backdrop{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.apple-modal{max-height:calc(100dvh - 24px)}.apple-modal-header{gap:8px;padding:18px 18px 8px}.apple-modal-heading h2{font-size:20px}.apple-modal-body{padding:10px 18px 20px}.apple-modal-footer{padding:12px 18px 20px}.apple-modal-footer>.apple-button{flex:1}.apple-overlay-backdrop--drawer{padding:0}.apple-drawer{width:min(100%,var(--apple-overlay-width, 440px));max-height:100dvh}.apple-overlay-backdrop--sheet{padding:0}.apple-sheet{width:100%;max-height:calc(100dvh - max(24px,env(safe-area-inset-top)))}.apple-snackbar-stack{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px)}.apple-viewer-prev,.apple-viewer-next{width:40px;height:44px}}
|