@rubytech/taskmaster 1.0.36 → 1.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-reply/reply/dispatch-from-config.js +53 -1
- package/dist/auto-reply/reply/get-reply-run.js +2 -1
- package/dist/browser/chrome.js +26 -3
- package/dist/build-info.json +3 -3
- package/dist/cli/provision-cli.js +1 -1
- package/dist/control-ui/assets/index-Ceb3FTmS.css +1 -0
- package/dist/control-ui/assets/index-gQeHDI6a.js +2890 -0
- package/dist/control-ui/assets/index-gQeHDI6a.js.map +1 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/gateway/chat-sanitize.js +24 -7
- package/dist/gateway/server-methods/chat.js +100 -26
- package/dist/gateway/server-methods/memory.js +30 -1
- package/dist/gateway/server-methods/system.js +18 -43
- package/dist/gateway/server-methods.js +2 -0
- package/dist/hooks/bundled/conversation-archive/handler.js +15 -2
- package/dist/memory/audit.js +86 -0
- package/dist/memory/manager.js +40 -1
- package/dist/memory/memory-schema.js +18 -0
- package/package.json +1 -1
- package/taskmaster-docs/USER-GUIDE.md +10 -0
- package/templates/beagle/agents/admin/AGENTS.md +13 -0
- package/templates/customer/agents/admin/AGENTS.md +13 -0
- package/templates/taskmaster/agents/admin/AGENTS.md +23 -0
- package/templates/tradesupport/agents/admin/AGENTS.md +13 -0
- package/dist/control-ui/assets/index-BQEnHucA.css +0 -1
- package/dist/control-ui/assets/index-DgT0m3bj.js +0 -2856
- package/dist/control-ui/assets/index-DgT0m3bj.js.map +0 -1
|
@@ -144,6 +144,14 @@ After setup, you'll see a navigation bar at the top of the screen linking to all
|
|
|
144
144
|
|
|
145
145
|
You'll land on the Setup page by default. From there, the nav bar takes you anywhere.
|
|
146
146
|
|
|
147
|
+
### Data Safety Alert
|
|
148
|
+
|
|
149
|
+
A **shield icon** appears in the navigation bar whenever your assistant writes a file to the **public/** or **shared/** folders. These are the folders visible to other assistants or customers, so you'll want to check that the right information ended up in the right place.
|
|
150
|
+
|
|
151
|
+
Tap the shield to see a list of recent writes — each entry shows the file name, which folder it went to, and when it happened. Once you've reviewed them, tap **Mark All Reviewed** to clear the list. The shield disappears until the next write.
|
|
152
|
+
|
|
153
|
+
This check runs automatically — the badge updates on its own without needing to refresh the page.
|
|
154
|
+
|
|
147
155
|
---
|
|
148
156
|
|
|
149
157
|
## Security & PINs
|
|
@@ -485,6 +493,8 @@ All files are markdown (`.md`) — plain text with simple formatting. You can up
|
|
|
485
493
|
|
|
486
494
|
When you add or change a file, your assistant picks it up automatically — no restart needed. The status light on the Files page turns red when files have changed since the last index, so you can see at a glance whether a re-index is needed.
|
|
487
495
|
|
|
496
|
+
When your assistant writes to **public/** or **shared/**, a shield icon appears in the navigation bar so you can review what was written (see [Data Safety Alert](#data-safety-alert) above).
|
|
497
|
+
|
|
488
498
|
---
|
|
489
499
|
|
|
490
500
|
## Status Dashboard
|
|
@@ -39,6 +39,19 @@ memory/
|
|
|
39
39
|
└── groups/ # Virtual booking groups (you can see all)
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
### Data Classification
|
|
43
|
+
|
|
44
|
+
When saving information, choose the most restrictive folder that fits:
|
|
45
|
+
|
|
46
|
+
- **Sensitive or personal** (phone numbers, financial details, private strategy, passwords) — always `memory/admin/`
|
|
47
|
+
- **Operational business** (appointments, shared calendar, lessons learned, escalation rules) — `memory/shared/`
|
|
48
|
+
- **Customer-visible** (product info, FAQs, public business details) — `memory/public/`
|
|
49
|
+
- **Customer-specific** (their conversation history, preferences) — `memory/users/{phone}/`
|
|
50
|
+
|
|
51
|
+
When in doubt, prefer `admin/` over `shared/`, and `shared/` over `public/`. Writes to `shared/` and `public/` are audited — the business owner reviews them via a control panel alert. Ask before saving anything remotely sensitive to shared or public folders.
|
|
52
|
+
|
|
53
|
+
*"Default to admin if classifying during conversation — you can always move it to shared later after confirming with [OWNER_NAME]."*
|
|
54
|
+
|
|
42
55
|
---
|
|
43
56
|
|
|
44
57
|
## Stripe CLI Operations
|
|
@@ -100,6 +100,19 @@ memory/
|
|
|
100
100
|
└── users/ # Per-customer profiles (you can see all)
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
+
### Data Classification
|
|
104
|
+
|
|
105
|
+
When saving information, choose the most restrictive folder that fits:
|
|
106
|
+
|
|
107
|
+
- **Sensitive or personal** (phone numbers, financial details, private strategy, passwords) — always `memory/admin/`
|
|
108
|
+
- **Operational business** (appointments, shared calendar, lessons learned, escalation rules) — `memory/shared/`
|
|
109
|
+
- **Customer-visible** (product info, FAQs, public business details) — `memory/public/`
|
|
110
|
+
- **Customer-specific** (their conversation history, preferences) — `memory/users/{phone}/`
|
|
111
|
+
|
|
112
|
+
When in doubt, prefer `admin/` over `shared/`, and `shared/` over `public/`. Writes to `shared/` and `public/` are audited — the business owner reviews them via a control panel alert. Ask before saving anything remotely sensitive to shared or public folders.
|
|
113
|
+
|
|
114
|
+
*"Default to admin if classifying during conversation — you can always move it to shared later after confirming with [OWNER_NAME]."*
|
|
115
|
+
|
|
103
116
|
### Store Business Info
|
|
104
117
|
Proactively capture:
|
|
105
118
|
- Decisions made
|
|
@@ -67,6 +67,29 @@ memory/
|
|
|
67
67
|
└── users/ # Per-user profiles (you can see all)
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
+
### Data Classification — Folder Selection
|
|
71
|
+
|
|
72
|
+
Different memory folders have different visibility. The admin folder is private to you and [OWNER_NAME]. Shared and public folders are readable by the public agent and, through it, by customers and team members. Placing sensitive information in the wrong folder is a data breach.
|
|
73
|
+
|
|
74
|
+
**Classify by sensitivity, not by topic:**
|
|
75
|
+
|
|
76
|
+
| Data type | Folder | Why |
|
|
77
|
+
|-----------|--------|-----|
|
|
78
|
+
| Personal info (phone numbers, addresses, financial details) | `memory/admin/` | Only [OWNER_NAME] should see this |
|
|
79
|
+
| Private business strategy, deals, pricing negotiations | `memory/admin/` | Competitive/sensitive |
|
|
80
|
+
| Operational guidance (lessons learned, internal instructions) | `memory/shared/` | Helps the public agent serve customers better |
|
|
81
|
+
| Calendar events, appointments | `memory/shared/events/` | Shared scheduling |
|
|
82
|
+
| Product info, FAQs, public-facing content | `memory/public/` | Customers may see this via the public agent |
|
|
83
|
+
| Customer-specific data (profiles, preferences, history) | `memory/users/{phone}/` | Isolated per customer |
|
|
84
|
+
|
|
85
|
+
**When in doubt, choose the more restrictive folder.** `admin/` is safer than `shared/`, `shared/` is safer than `public/`. You can always move data to a less restrictive folder later — the reverse is a breach.
|
|
86
|
+
|
|
87
|
+
**Ask before writing to shared/ or public/** if the content contains anything that could be personal, financial, or strategically sensitive. [OWNER_NAME] can confirm whether it's appropriate to share.
|
|
88
|
+
|
|
89
|
+
Writes to `memory/shared/` and `memory/public/` are audited and flagged for [OWNER_NAME] to review in the control panel. This is a safety net, not a substitute for correct classification.
|
|
90
|
+
|
|
91
|
+
*"Default to admin if classifying during conversation — you can always move it to shared later after confirming with [OWNER_NAME]."*
|
|
92
|
+
|
|
70
93
|
### Store Business Info
|
|
71
94
|
Proactively capture:
|
|
72
95
|
- Decisions made
|
|
@@ -100,6 +100,19 @@ memory/
|
|
|
100
100
|
└── users/ # Per-customer profiles (you can see all)
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
+
### Data Classification
|
|
104
|
+
|
|
105
|
+
When saving information, choose the most restrictive folder that fits:
|
|
106
|
+
|
|
107
|
+
- **Sensitive or personal** (phone numbers, financial details, private strategy, passwords) — always `memory/admin/`
|
|
108
|
+
- **Operational business** (appointments, shared calendar, lessons learned, escalation rules) — `memory/shared/`
|
|
109
|
+
- **Customer-visible** (product info, FAQs, public business details) — `memory/public/`
|
|
110
|
+
- **Customer-specific** (their conversation history, preferences) — `memory/users/{phone}/`
|
|
111
|
+
|
|
112
|
+
When in doubt, prefer `admin/` over `shared/`, and `shared/` over `public/`. Writes to `shared/` and `public/` are audited — the business owner reviews them via a control panel alert. Ask before saving anything remotely sensitive to shared or public folders.
|
|
113
|
+
|
|
114
|
+
*"Default to admin if classifying during conversation — you can always move it to shared later after confirming with [OWNER_NAME]."*
|
|
115
|
+
|
|
103
116
|
### Store Business Info
|
|
104
117
|
Proactively capture:
|
|
105
118
|
- Decisions made
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg: #12141a;--bg-accent: #14161d;--bg-elevated: #1a1d25;--bg-hover: #262a35;--bg-muted: #262a35;--card: #181b22;--card-foreground: #f4f4f5;--card-highlight: rgba(255, 255, 255, .05);--popover: #181b22;--popover-foreground: #f4f4f5;--panel: #12141a;--panel-strong: #1a1d25;--panel-hover: #262a35;--chrome: rgba(18, 20, 26, .95);--chrome-strong: rgba(18, 20, 26, .98);--text: #e4e4e7;--text-strong: #fafafa;--chat-text: #e4e4e7;--muted: #71717a;--muted-strong: #52525b;--muted-foreground: #71717a;--border: #27272a;--border-strong: #3f3f46;--border-hover: #52525b;--input: #27272a;--ring: #00d4ff;--accent: #00d4ff;--accent-hover: #33dfff;--accent-muted: #00d4ff;--accent-subtle: rgba(0, 212, 255, .15);--accent-foreground: #fafafa;--accent-glow: rgba(0, 212, 255, .25);--primary: #00d4ff;--primary-foreground: #111111;--secondary: #1e2028;--secondary-foreground: #f4f4f5;--accent-2: #14b8a6;--accent-2-muted: rgba(20, 184, 166, .7);--accent-2-subtle: rgba(20, 184, 166, .15);--ok: #22c55e;--ok-muted: rgba(34, 197, 94, .75);--ok-subtle: rgba(34, 197, 94, .12);--destructive: #ef4444;--destructive-foreground: #fafafa;--warn: #f59e0b;--warn-muted: rgba(245, 158, 11, .75);--warn-subtle: rgba(245, 158, 11, .12);--danger: #ef4444;--danger-muted: rgba(239, 68, 68, .75);--danger-subtle: rgba(239, 68, 68, .12);--info: #3b82f6;--focus: rgba(0, 212, 255, .25);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--ring);--focus-glow: 0 0 0 2px var(--bg), 0 0 0 4px var(--ring), 0 0 20px var(--accent-glow);--grid-line: rgba(255, 255, 255, .04);--theme-switch-x: 50%;--theme-switch-y: 50%;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "DejaVu Sans", sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "DejaVu Sans", sans-serif;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .35), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .4), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-glow: 0 0 30px var(--accent-glow);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--radius: 8px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .35s;color-scheme:dark}:root[data-theme=light]{--bg: #fafafa;--bg-accent: #f5f5f5;--bg-elevated: #ffffff;--bg-hover: #f0f0f0;--bg-muted: #f0f0f0;--bg-content: #f5f5f5;--card: #ffffff;--card-foreground: #18181b;--card-highlight: rgba(0, 0, 0, .03);--popover: #ffffff;--popover-foreground: #18181b;--panel: #fafafa;--panel-strong: #f5f5f5;--panel-hover: #ebebeb;--chrome: rgba(250, 250, 250, .95);--chrome-strong: rgba(250, 250, 250, .98);--text: #3f3f46;--text-strong: #18181b;--chat-text: #3f3f46;--muted: #71717a;--muted-strong: #52525b;--muted-foreground: #71717a;--border: #e4e4e7;--border-strong: #d4d4d8;--border-hover: #a1a1aa;--input: #e4e4e7;--accent: #0891b2;--accent-hover: #06b6d4;--accent-muted: #0891b2;--accent-subtle: rgba(8, 145, 178, .12);--accent-foreground: #ffffff;--accent-glow: rgba(8, 145, 178, .15);--primary: #0891b2;--primary-foreground: #ffffff;--secondary: #f4f4f5;--secondary-foreground: #3f3f46;--accent-2: #0d9488;--accent-2-muted: rgba(13, 148, 136, .75);--accent-2-subtle: rgba(13, 148, 136, .12);--ok: #16a34a;--ok-muted: rgba(22, 163, 74, .75);--ok-subtle: rgba(22, 163, 74, .1);--destructive: #dc2626;--destructive-foreground: #fafafa;--warn: #d97706;--warn-muted: rgba(217, 119, 6, .75);--warn-subtle: rgba(217, 119, 6, .1);--danger: #dc2626;--danger-muted: rgba(220, 38, 38, .75);--danger-subtle: rgba(220, 38, 38, .1);--info: #2563eb;--focus: rgba(8, 145, 178, .2);--focus-glow: 0 0 0 2px var(--bg), 0 0 0 4px var(--ring), 0 0 16px var(--accent-glow);--grid-line: rgba(0, 0, 0, .05);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .12), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .15), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-glow: 0 0 24px var(--accent-glow);color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font:400 14px/1.55 var(--font-body);letter-spacing:-.02em;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes theme-circle-transition{0%{clip-path:circle(0% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%))}to{clip-path:circle(150% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%))}}html.theme-transition{view-transition-name:theme}html.theme-transition::view-transition-old(theme){mix-blend-mode:normal;animation:none;z-index:1}html.theme-transition::view-transition-new(theme){mix-blend-mode:normal;z-index:2;animation:theme-circle-transition .4s var(--ease-out) forwards}@media(prefers-reduced-motion:reduce){html.theme-transition::view-transition-old(theme),html.theme-transition::view-transition-new(theme){animation:none!important}}taskmaster-app{display:block;position:relative;z-index:1;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-subtle);color:var(--text-strong)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes dashboard-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.7}}@keyframes glow-pulse{0%,to{box-shadow:0 0 #00d4ff00}50%{box-shadow:0 0 20px var(--accent-glow)}}.stagger-1{animation-delay:0ms}.stagger-2{animation-delay:50ms}.stagger-3{animation-delay:.1s}.stagger-4{animation-delay:.15s}.stagger-5{animation-delay:.2s}.stagger-6{animation-delay:.25s}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.grid{display:grid;gap:20px}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.note-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.row{display:flex;gap:12px;align-items:center}.stack{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}@media(max-width:1100px){.grid-cols-2,.grid-cols-3,.table-head,.table-row,.list-item{grid-template-columns:1fr}}@media(max-width:600px){.card{padding:12px;border-radius:var(--radius-md)}.card-title{font-size:13px}.stat-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.stat{padding:10px;border-radius:var(--radius-md)}.stat-label{font-size:11px}.stat-value{font-size:18px}.note-grid{grid-template-columns:1fr;gap:8px}.form-grid{grid-template-columns:1fr;gap:10px}.field input,.field textarea,.field select{padding:8px 10px;border-radius:var(--radius-md);font-size:14px}.btn{padding:8px 12px;font-size:12px}.pill{padding:4px 10px;font-size:12px}.chat-header{flex-direction:column;align-items:stretch;gap:8px}.chat-header__left{flex-direction:column;align-items:stretch}.chat-header__right{justify-content:space-between}.chat-session{min-width:unset;width:100%}.chat-thread{margin-top:8px;padding:12px 8px}.chat-msg{max-width:90%}.chat-bubble{padding:8px 12px;border-radius:var(--radius-md)}.chat-compose{gap:8px}.chat-compose__field textarea{min-height:60px;padding:8px 10px;border-radius:var(--radius-md);font-size:14px}.log-stream{border-radius:var(--radius-md);max-height:380px}.log-row{grid-template-columns:1fr;gap:4px;padding:8px}.log-time{font-size:10px}.log-level{font-size:9px}.log-subsystem{font-size:11px}.log-message{font-size:12px}.list-item{padding:10px;border-radius:var(--radius-md)}.list-title{font-size:13px}.list-sub{font-size:11px}.code-block{padding:8px;border-radius:var(--radius-md);font-size:11px}.theme-toggle{--theme-item: 24px;--theme-gap: 2px;--theme-pad: 3px}.theme-icon{width:12px;height:12px}}@media(max-width:400px){.card{padding:10px}.stat{padding:8px}.stat-value{font-size:16px}.chat-bubble{padding:8px 10px}.chat-compose__field textarea{min-height:52px;padding:8px 10px;font-size:13px}.btn{padding:6px 10px;font-size:11px}.theme-toggle{--theme-item: 22px;--theme-gap: 2px;--theme-pad: 2px}.theme-icon{width:11px;height:11px}}.chat{position:relative;display:flex;flex-direction:column;flex:1 1 0;height:100%;min-height:0;overflow:hidden;background:transparent!important;border:none!important;box-shadow:none!important}.chat--dragover{outline:2px dashed var(--accent)!important;outline-offset:-2px;background:var(--accent-subtle)!important}.chat-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:nowrap;flex-shrink:0;padding-bottom:12px;margin-bottom:12px;background:transparent}.chat-header__left{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.chat-session{min-width:180px}.chat-thread{flex:1 1 0;overflow-y:auto;overflow-x:hidden;padding:12px 4px;margin:0 -4px;min-height:0;border-radius:12px;background:transparent}.chat-scroll-bottom{position:absolute;bottom:8px;left:50%;transform:translate(-50%);z-index:5;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 2px 8px #0000004d;transition:color .15s ease-out,background .15s ease-out,border-color .15s ease-out;animation:scroll-btn-enter .4s cubic-bezier(.34,1.56,.64,1)}@keyframes scroll-btn-enter{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.chat-scroll-bottom:hover{color:var(--text);background:var(--panel-strong);border-color:var(--border-strong, var(--border))}.chat-scroll-bottom svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;animation:chevron-bounce 2s ease-in-out infinite}@keyframes chevron-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}:root[data-theme=light] .chat-scroll-bottom{background:#fff;box-shadow:0 2px 8px #0000001f}:root[data-theme=light] .chat-scroll-bottom:hover{background:#f5f5f5}.chat-focus-exit{position:absolute;top:12px;right:12px;z-index:100;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out;box-shadow:0 4px 12px #0003}.chat-focus-exit:hover{background:var(--panel-strong);color:var(--text);border-color:var(--accent)}.chat-focus-exit svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chat-compose{position:sticky;bottom:0;flex-shrink:0;display:flex;flex-direction:column;gap:12px;margin-top:auto;padding:12px 4px 16px;background:linear-gradient(to bottom,transparent,var(--bg) 20%);z-index:10}.chat-attachments{display:inline-flex;flex-wrap:wrap;gap:8px;width:fit-content;max-width:100%;align-self:flex-start}.chat-attachment{position:relative;width:80px;height:80px;border-radius:6px;overflow:hidden;border:1px solid var(--border);background:var(--bg)}.chat-attachment__img{width:100%;height:100%;object-fit:contain}.chat-attachment__remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;background:#000000b3;color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease-out}.chat-attachment:hover .chat-attachment__remove{opacity:1}.chat-attachment__remove:hover{background:#dc2626e6}.chat-attachment__remove svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2px}.chat-attachment--file{width:auto;height:auto;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--border);max-width:220px}.chat-attachment__icon{flex-shrink:0;display:flex;color:var(--muted)}.chat-attachment__icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-attachment__name{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chat-attachment__remove--file{position:static;opacity:.6;flex-shrink:0;width:24px;height:24px;border-radius:50%;border:none;background:#ffffff14;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease-out,color .15s ease-out,background .15s ease-out}.chat-attachment__remove--file:hover{opacity:1;color:var(--danger, #dc2626);background:#dc262626}.chat-attachment__remove--file svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.5px}:root[data-theme=light] .chat-attachment{border-color:#10182826;background:#fff}:root[data-theme=light] .chat-attachment__remove{background:#0009}.chat-message-images{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.chat-message-image{max-width:300px;max-height:200px;border-radius:8px;object-fit:contain;cursor:pointer;transition:transform .15s ease-out}.chat-message-image:hover{transform:scale(1.02)}.chat-group.user .chat-message-images{justify-content:flex-end}.chat-compose__row{display:flex;align-items:stretch;gap:12px;flex:1}:root[data-theme=light] .chat-compose{background:linear-gradient(to bottom,transparent,var(--bg-content) 20%)}.chat-compose__field{flex:1 1 auto;min-width:0;display:flex;align-items:stretch}.chat-compose__field>span{display:none}.chat-compose .chat-compose__field textarea{width:100%;height:44px;min-height:44px;max-height:150px;padding:11px 16px;border-radius:8px;resize:none;overflow-y:hidden;white-space:pre-wrap;font-family:var(--font-body);font-size:15px;line-height:1.45;outline:none}.chat-compose .chat-compose__field textarea:focus,.chat-compose .chat-compose__field textarea:focus-visible,.field.chat-compose__field textarea:focus,.field.chat-compose__field textarea:focus-visible{outline:none!important;box-shadow:none!important;border-color:var(--border)}.chat-compose__field textarea:disabled{opacity:.7;cursor:not-allowed}.chat-compose__emoji{flex-shrink:0;align-self:flex-end;width:40px;height:40px;min-width:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:color .15s ease-out}.chat-compose__emoji:hover{color:var(--text)}.chat-compose__emoji.active{color:var(--accent)}.chat-compose__emoji svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.emoji-picker-popup{position:absolute;bottom:100%;left:0;margin-bottom:8px;z-index:50;border-radius:var(--radius-lg, 12px);overflow:hidden;box-shadow:0 4px 24px #0006;display:none}.emoji-picker-popup.active{display:block}emoji-picker{--background: var(--card);--border-color: var(--border);--indicator-color: var(--accent);--input-border-color: var(--border);--input-font-color: var(--text);--input-placeholder-color: var(--muted);--outline-color: var(--accent);--category-font-color: var(--muted);--button-active-background: var(--panel-strong);--button-hover-background: var(--panel);--num-columns: 8;height:320px}.chat-compose__send{flex-shrink:0;align-self:flex-end;width:40px;height:40px;min-width:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;border:none;cursor:pointer;transition:background .15s ease-out,opacity .15s ease-out}.chat-compose__send.primary{background:var(--accent);color:#fff}.chat-compose__send.primary:hover:not(:disabled){background:var(--accent-strong, var(--accent));opacity:.9}.chat-compose__send.primary:disabled{opacity:.4;cursor:not-allowed}.chat-compose__send:not(.primary){background:var(--panel-strong);color:var(--muted)}.chat-compose__send:not(.primary):hover{color:var(--text)}.chat-compose__send svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-compose__actions{flex-shrink:0;display:flex;align-items:stretch;gap:8px}.chat-compose .chat-compose__actions .btn{padding:0 16px;font-size:13px;height:40px;min-height:40px;max-height:40px;line-height:1;white-space:nowrap;box-sizing:border-box}.chat-controls{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.chat-controls__session{min-width:140px}.chat-controls__thinking{display:flex;align-items:center;gap:6px;font-size:13px}.btn--icon{padding:8px!important;min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#ffffff0f}.chat-controls__separator{color:#fff6;font-size:18px;margin:0 8px;font-weight:300}:root[data-theme=light] .chat-controls__separator{color:#1018284d}.btn--icon:hover{background:#ffffff1f;border-color:#fff3}:root[data-theme=light] .btn--icon{background:#fff;border-color:var(--border);box-shadow:0 1px 2px #1018280d;color:var(--muted)}:root[data-theme=light] .btn--icon:hover{background:#fff;border-color:var(--border-strong);color:var(--text)}.btn--icon svg{display:block;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-controls__session select{padding:6px 10px;font-size:13px}.chat-controls__thinking{display:flex;align-items:center;gap:4px;font-size:12px;padding:4px 10px;background:#ffffff0a;border-radius:6px;border:1px solid var(--border)}:root[data-theme=light] .chat-controls__thinking{background:#ffffffe6;border-color:#10182826}@media(max-width:640px){.chat-session{min-width:140px}.chat-compose{grid-template-columns:1fr}.chat-controls{flex-wrap:wrap;gap:8px}.chat-controls__session{min-width:120px}}.chat-model-bar{position:relative;display:flex;align-items:center;gap:8px;padding:6px 0 2px}.chat-model-bar__select{position:relative}.chat-model-bar__dropdown{appearance:none;-webkit-appearance:none;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:12px;padding:4px 22px 4px 8px;cursor:pointer;outline:none;transition:color .15s,border-color .15s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' fill='none' stroke-width='1.2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.chat-model-bar__dropdown:hover,.chat-model-bar__dropdown:focus{color:var(--text);border-color:var(--border-strong, var(--border))}.chat-model-bar__dropdown option{background:var(--card);color:var(--text)}:root[data-theme=light] .chat-model-bar__dropdown{border-color:var(--border);color:var(--muted);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23666' fill='none' stroke-width='1.2'/%3E%3C/svg%3E")}:root[data-theme=light] .chat-model-bar__dropdown:hover,:root[data-theme=light] .chat-model-bar__dropdown:focus{color:var(--text);border-color:var(--border-strong, var(--border))}:root[data-theme=light] .chat-model-bar__dropdown option{background:#fff;color:var(--text)}.chat-model-bar__dropdown:focus,.chat-model-bar__dropdown:focus-visible{outline:none;box-shadow:none}.chat-model-bar__settings-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:4px;padding:0;transition:color .15s,background .15s}.chat-model-bar__settings-btn:hover{color:var(--text);background:#ffffff14}.chat-model-bar__settings-btn:focus,.chat-model-bar__settings-btn:focus-visible{outline:none;box-shadow:none}:root[data-theme=light] .chat-model-bar__settings-btn:hover{background:#0000000f}.chat-model-bar__settings-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-settings-menu{display:none;position:absolute;bottom:calc(100% + 4px);right:0;z-index:60;min-width:180px;padding:6px 0;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000004d}.chat-settings-menu.active{display:block}.chat-settings-menu__item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text);transition:background .1s}.chat-settings-menu__item:hover{background:#ffffff0f}:root[data-theme=light] .chat-settings-menu__item:hover{background:#0000000a}.chat-settings-menu__item input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;flex-shrink:0}.chat-settings-menu__hint{margin-left:auto;font-size:11px;color:var(--muted)}:root[data-theme=light] .chat-settings-menu{background:#fff;box-shadow:0 4px 16px #0000001f}.chat-thinking{margin-bottom:10px;padding:10px 12px;border-radius:10px;border:1px dashed rgba(255,255,255,.18);background:#ffffff0a;color:var(--muted);font-size:12px;line-height:1.4}:root[data-theme=light] .chat-thinking{border-color:#10182840;background:#1018280a}.chat-text{font-size:14px;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word}.chat-text :where(p+p,p+ul,p+ol,p+pre,p+blockquote){margin-top:.75em}.chat-text :where(ul,ol){padding-left:1.5em}.chat-text :where(a){color:var(--accent);text-decoration:underline;text-underline-offset:2px}.chat-text :where(a:hover){opacity:.8}.chat-text :where(:not(pre)>code){background:#00000026;padding:.15em .4em;border-radius:4px}.chat-text :where(pre){background:#00000026;border-radius:6px;padding:10px 12px;overflow-x:auto}.chat-text :where(pre code){background:none;padding:0}.chat-text :where(blockquote){border-left:3px solid var(--border-strong);margin-left:0;color:var(--muted);background:#ffffff05;padding:8px 12px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.chat-text :where(blockquote blockquote){margin-top:8px;border-left-color:var(--border-hover);background:#ffffff08}.chat-text :where(blockquote blockquote blockquote){border-left-color:var(--muted-strong);background:#ffffff0a}:root[data-theme=light] .chat-text :where(blockquote){background:#00000008}:root[data-theme=light] .chat-text :where(blockquote blockquote){background:#0000000d}:root[data-theme=light] .chat-text :where(blockquote blockquote blockquote){background:#0000000a}:root[data-theme=light] .chat-text :where(:not(pre)>code){background:#00000014;border:1px solid rgba(0,0,0,.1)}:root[data-theme=light] .chat-text :where(pre){background:#0000000d;border:1px solid rgba(0,0,0,.1)}.chat-text :where(hr){border:none;border-top:1px solid var(--border);margin:1em 0}.chat-group{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;margin-left:44px;margin-right:44px}.chat-group.user{flex-direction:row-reverse;justify-content:flex-start}.chat-group-messages{display:flex;flex-direction:column;gap:2px;max-width:100%}.chat-group.user .chat-group-messages{align-items:flex-end;max-width:85%}.chat-group.user .chat-group-footer{justify-content:flex-end}.chat-group-footer{display:flex;gap:8px;align-items:baseline;margin-top:6px}.chat-sender-name{font-weight:500;font-size:12px;color:var(--muted)}.chat-group-timestamp{font-size:11px;color:var(--muted);opacity:.7}.chat-avatar{width:40px;height:40px;border-radius:8px;background:var(--panel-strong);display:grid;place-items:center;font-weight:600;font-size:14px;flex-shrink:0;align-self:flex-end;margin-bottom:4px}.chat-avatar.user{background:var(--accent-subtle);color:var(--accent)}.chat-avatar.assistant,.chat-avatar.other,.chat-avatar.tool{background:var(--secondary);color:var(--muted)}img.chat-avatar{display:block;object-fit:cover;object-position:center}.chat-bubble{position:relative;display:inline-block;border:1px solid transparent;background:var(--card);border-radius:var(--radius-lg);padding:10px 14px;box-shadow:none;transition:background .15s ease-out,border-color .15s ease-out;max-width:100%;word-wrap:break-word}.chat-copy-btn{position:absolute;top:6px;border:1px solid var(--border);background:var(--bg);color:var(--muted);border-radius:var(--radius-md);padding:4px 6px;font-size:14px;line-height:1;cursor:pointer;opacity:.5;transition:opacity .12s ease-out,background .12s ease-out}.chat-group.assistant .chat-copy-btn,.chat-group.other .chat-copy-btn{left:-40px}.chat-group.user .chat-copy-btn{right:-40px}.chat-copy-btn__icon{display:inline-flex;width:14px;height:14px;position:relative}.chat-copy-btn__icon svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-copy-btn__icon-copy,.chat-copy-btn__icon-check{position:absolute;top:0;left:0;transition:opacity .15s ease}.chat-copy-btn__icon-check,.chat-copy-btn[data-copied="1"] .chat-copy-btn__icon-copy{opacity:0}.chat-copy-btn[data-copied="1"] .chat-copy-btn__icon-check{opacity:1}.chat-copy-btn:hover{opacity:1;background:var(--bg-hover)}.chat-copy-btn[data-copying="1"]{opacity:.3;pointer-events:none}.chat-copy-btn[data-error="1"]{opacity:1;pointer-events:auto;border-color:var(--danger-subtle);background:var(--danger-subtle);color:var(--danger)}.chat-copy-btn[data-copied="1"]{opacity:1;pointer-events:auto;border-color:var(--ok-subtle);background:var(--ok-subtle);color:var(--ok)}.chat-copy-btn:focus-visible{opacity:1;pointer-events:auto;outline:2px solid var(--accent);outline-offset:2px}.chat-group.assistant .chat-bubble,.chat-group.other .chat-bubble{display:block;background:transparent;border-color:transparent;padding:4px 0;box-shadow:none}.chat-group.assistant .chat-bubble:hover,.chat-group.other .chat-bubble:hover{background:transparent}:root[data-theme=light] .chat-group.assistant .chat-bubble,:root[data-theme=light] .chat-group.other .chat-bubble{background:transparent;border-color:transparent;box-shadow:none}.chat-group.user .chat-bubble{background:var(--accent-subtle);border-color:transparent}:root[data-theme=light] .chat-group.user .chat-bubble{border-color:#ea580c33;background:#fb923c1f}.chat-bubble.streaming{border-left:2px solid var(--accent);padding-left:12px;animation:pulsing-accent 1.5s ease-out infinite}@keyframes pulsing-accent{0%,to{border-left-color:var(--accent);opacity:1}50%{border-left-color:var(--accent);opacity:.4}}.chat-bubble.fade-in{animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-tool-card{border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:8px;background:var(--card);box-shadow:inset 0 1px 0 var(--card-highlight);transition:border-color .15s ease-out,background .15s ease-out;max-height:120px;overflow:hidden}.chat-tool-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.chat-tool-card:first-child{margin-top:0}.chat-tool-card--clickable{cursor:pointer}.chat-tool-card--clickable:focus{outline:2px solid var(--accent);outline-offset:2px}.chat-tool-card__header{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-tool-card__title{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;line-height:1.2}.chat-tool-card__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.chat-tool-card__icon svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-tool-card__action{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent);opacity:.8;transition:opacity .15s ease-out}.chat-tool-card__action svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-tool-card--clickable:hover .chat-tool-card__action{opacity:1}.chat-tool-card__status{display:inline-flex;align-items:center;color:var(--ok)}.chat-tool-card__status svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chat-tool-card__status-text{font-size:11px;margin-top:4px}.chat-tool-card__detail{font-size:12px;color:var(--muted);margin-top:4px}.chat-tool-card__preview{font-size:11px;color:var(--muted);margin-top:8px;padding:8px 10px;background:var(--secondary);border-radius:var(--radius-md);white-space:pre-wrap;overflow:hidden;max-height:44px;line-height:1.4;border:1px solid var(--border)}.chat-tool-card--clickable:hover .chat-tool-card__preview{background:var(--bg-hover);border-color:var(--border-strong)}.chat-tool-card__inline{font-size:11px;color:var(--text);margin-top:6px;padding:6px 8px;background:var(--secondary);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word}.chat-reading-indicator{background:transparent;border:1px solid var(--border);padding:12px;display:inline-flex}.chat-reading-indicator__dots{display:flex;gap:6px;align-items:center}.chat-reading-indicator__dots span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:reading-pulse 1.4s ease-in-out infinite}.chat-reading-indicator__dots span:nth-child(1){animation-delay:0s}.chat-reading-indicator__dots span:nth-child(2){animation-delay:.2s}.chat-reading-indicator__dots span:nth-child(3){animation-delay:.4s}@keyframes reading-pulse{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-split-container{display:flex;gap:0;flex:1;min-height:0;height:100%}.chat-main{position:relative;min-width:400px;display:flex;flex-direction:column;overflow:hidden;transition:flex .25s ease-out}.chat-sidebar{flex:1;min-width:300px;border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;animation:slide-in .2s ease-out}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.sidebar-panel{display:flex;flex-direction:column;height:100%;background:var(--panel)}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;z-index:10;background:var(--panel)}.sidebar-header .btn{padding:4px 8px;font-size:14px;min-width:auto;line-height:1}.sidebar-title{font-weight:600;font-size:14px}.sidebar-content{flex:1;overflow:auto;padding:16px}.sidebar-markdown{font-size:14px;line-height:1.5}.sidebar-markdown pre{background:#0000001f;border-radius:4px;padding:12px;overflow-x:auto}.sidebar-markdown code{font-family:var(--mono);font-size:13px}@media(max-width:768px){.chat-split-container--open{position:fixed;inset:0;z-index:1000}.chat-split-container--open .chat-main{display:none}.chat-split-container--open .chat-sidebar{width:100%;min-width:0;border-left:none}}.card{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-lg);padding:20px;animation:rise .35s var(--ease-out) backwards;transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--card-highlight)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md),inset 0 1px 0 var(--card-highlight)}.card-title{font-size:15px;font-weight:600;letter-spacing:-.02em;color:var(--text-strong)}.card-sub{color:var(--muted);font-size:13px;margin-top:6px;line-height:1.5}.stat{background:var(--card);border-radius:var(--radius-md);padding:14px 16px;border:1px solid var(--border);transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out);box-shadow:inset 0 1px 0 var(--card-highlight)}.stat:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--card-highlight)}.stat-label{color:var(--muted);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:24px;font-weight:700;margin-top:6px;letter-spacing:-.03em;line-height:1.1}.stat-value.ok{color:var(--ok)}.stat-value.warn{color:var(--warn)}.stat-card{display:grid;gap:6px}.note-title{font-weight:600;letter-spacing:-.01em}.status-list{display:grid;gap:8px}.status-list div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.status-list div:last-child{border-bottom:none}.account-count{margin-top:10px;font-size:12px;font-weight:500;color:var(--muted)}.account-card-list{margin-top:16px;display:grid;gap:12px}.account-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;background:var(--bg-elevated);transition:border-color var(--duration-fast) ease}.account-card:hover{border-color:var(--border-strong)}.account-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.account-card-title{font-weight:500}.account-card-id{font-family:var(--mono);font-size:12px;color:var(--muted)}.account-card-status{margin-top:10px;font-size:13px}.account-card-status div{padding:4px 0}.account-card-error{margin-top:8px;color:var(--danger);font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;line-height:1.4}.badge-baileys{background:#25d36626;color:#25d366}.badge-cloud{background:#007aff26;color:#007aff}.label{color:var(--muted);font-size:12px;font-weight:500}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-full);background:var(--secondary);font-size:13px;font-weight:500;transition:border-color var(--duration-fast) ease}.pill:hover{border-color:var(--border-strong)}.pill.danger{border-color:var(--danger-subtle);background:var(--danger-subtle);color:var(--danger)}.theme-toggle{--theme-item: 28px;--theme-gap: 2px;--theme-pad: 4px;position:relative}.theme-toggle__track{position:relative;display:grid;grid-template-columns:repeat(3,var(--theme-item));gap:var(--theme-gap);padding:var(--theme-pad);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--secondary)}.theme-toggle__indicator{position:absolute;top:50%;left:var(--theme-pad);width:var(--theme-item);height:var(--theme-item);border-radius:var(--radius-full);transform:translateY(-50%) translate(calc(var(--theme-index, 0) * (var(--theme-item) + var(--theme-gap))));background:var(--accent);transition:transform var(--duration-normal) var(--ease-out);z-index:0}.theme-toggle__button{height:var(--theme-item);width:var(--theme-item);display:grid;place-items:center;border:0;border-radius:var(--radius-full);background:transparent;color:var(--muted);cursor:pointer;position:relative;z-index:1;transition:color var(--duration-fast) ease}.theme-toggle__button:hover{color:var(--text)}.theme-toggle__button.active{color:var(--accent-foreground)}.theme-toggle__button.active .theme-icon{stroke:var(--accent-foreground)}.theme-icon{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.statusDot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--danger);box-shadow:0 0 8px #ef444480;animation:pulse-subtle 2s ease-in-out infinite}.statusDot.ok{background:var(--ok);box-shadow:0 0 8px #22c55e80;animation:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);background:var(--bg-elevated);padding:9px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;letter-spacing:-.01em;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active{background:var(--secondary);transform:translateY(0);box-shadow:none}.btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.btn.primary{border-color:var(--accent);background:var(--accent);color:var(--primary-foreground);box-shadow:0 1px 2px #0003}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-md),0 0 20px var(--accent-glow)}.btn-kbd{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:2px 5px;font-family:var(--mono);font-size:11px;font-weight:500;line-height:1;border-radius:4px;background:#ffffff26;color:inherit;opacity:.8}.btn.primary .btn-kbd{background:#fff3}:root[data-theme=light] .btn-kbd{background:#00000014}:root[data-theme=light] .btn.primary .btn-kbd{background:#ffffff40}.btn.active{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.btn.danger{border-color:transparent;background:var(--danger-subtle);color:var(--danger)}.btn.danger:hover{background:#ef444426}.btn--sm{padding:6px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:grid;gap:6px}.field.full{grid-column:1 / -1}.field span{color:var(--muted);font-size:13px;font-weight:500}.field input,.field textarea,.field select{border:1px solid var(--input);background:var(--card);border-radius:var(--radius-md);padding:8px 12px;outline:none;box-shadow:inset 0 1px 0 var(--card-highlight);transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ring);box-shadow:var(--focus-ring)}.field select{appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.field textarea{font-family:var(--mono);min-height:160px;resize:vertical;white-space:pre;line-height:1.5}.field.checkbox{grid-template-columns:auto 1fr;align-items:center}.config-form .field.checkbox{grid-template-columns:18px minmax(0,1fr);column-gap:10px}.config-form .field.checkbox input[type=checkbox]{margin:0;width:16px;height:16px;accent-color:var(--accent)}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}:root[data-theme=light] .field input,:root[data-theme=light] .field textarea,:root[data-theme=light] .field select{background:var(--card);border-color:var(--input)}:root[data-theme=light] .btn{background:var(--bg);border-color:var(--input)}:root[data-theme=light] .btn:hover{background:var(--bg-hover)}:root[data-theme=light] .btn.primary{background:var(--accent);border-color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.callout{padding:14px 16px;border-radius:var(--radius-md);background:var(--secondary);border:1px solid var(--border);font-size:13px;line-height:1.5;position:relative}.callout.danger{border-color:#ef444440;background:linear-gradient(135deg,#ef444414,#ef44440a);color:var(--danger)}.callout.info{border-color:#3b82f640;background:linear-gradient(135deg,#3b82f614,#3b82f60a);color:var(--info)}.callout.success{border-color:#22c55e40;background:linear-gradient(135deg,#22c55e14,#22c55e0a);color:var(--ok)}.compaction-indicator{font-size:13px;padding:10px 12px;margin-bottom:8px;animation:fade-in .2s var(--ease-out)}.compaction-indicator--active{animation:compaction-pulse 1.5s ease-in-out infinite}.compaction-indicator--complete{animation:fade-in .2s var(--ease-out)}@keyframes compaction-pulse{0%,to{opacity:.7}50%{opacity:1}}.code-block{font-family:var(--mono);font-size:13px;line-height:1.5;background:var(--secondary);padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);max-height:360px;overflow:auto;max-width:100%}:root[data-theme=light] .code-block,:root[data-theme=light] .list-item,:root[data-theme=light] .table-row,:root[data-theme=light] .chip{background:var(--bg)}.list{display:grid;gap:8px;container-type:inline-size}.list-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,260px);gap:16px;align-items:start;border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;background:var(--card);transition:border-color var(--duration-fast) ease}.list-item-clickable{cursor:pointer}.list-item-clickable:hover{border-color:var(--border-strong)}.list-item-selected{border-color:var(--accent);box-shadow:var(--focus-ring)}.list-main{display:grid;gap:4px;min-width:0}.list-title{font-weight:500}.list-sub{color:var(--muted);font-size:12px}.list-meta{text-align:right;color:var(--muted);font-size:12px;display:grid;gap:4px;min-width:200px}.list-meta .btn{padding:6px 10px}.list-meta .field input,.list-meta .field textarea,.list-meta .field select{width:100%}@container (max-width: 560px){.list-item{grid-template-columns:1fr}.list-meta{min-width:0;text-align:left}}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:12px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-full);padding:5px 12px;color:var(--muted);background:var(--secondary);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.chip:hover{border-color:var(--border-strong);transform:translateY(-1px)}.chip input{margin-right:6px}.chip-ok{color:var(--ok);border-color:#22c55e4d;background:var(--ok-subtle)}.chip-warn{color:var(--warn);border-color:#f59e0b4d;background:var(--warn-subtle)}.table{display:grid;gap:6px}.table-head,.table-row{display:grid;grid-template-columns:1.4fr 1fr .8fr .7fr .8fr .8fr .8fr .8fr .6fr;gap:12px;align-items:center}.table-head{font-size:12px;font-weight:500;color:var(--muted);padding:0 12px}.table-row{border:1px solid var(--border);padding:10px 12px;border-radius:var(--radius-md);background:var(--card);transition:border-color var(--duration-fast) ease}.table-row:hover{border-color:var(--border-strong)}.session-link{text-decoration:none;color:var(--accent);font-weight:500}.session-link:hover{text-decoration:underline}.log-stream{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);max-height:500px;overflow:auto;container-type:inline-size}.log-row{display:flex;flex-direction:column;gap:4px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;transition:background var(--duration-fast) ease}.log-row:hover{background:var(--bg-hover)}.log-row:last-child{border-bottom:none}.log-row-header{display:flex;align-items:center;gap:8px}.log-time{color:var(--muted);font-family:var(--mono)}.log-level{font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 6px;width:fit-content}.log-level.trace,.log-level.debug{color:var(--muted)}.log-level.info{color:var(--info);border-color:#3b82f64d}.log-level.warn{color:var(--warn);border-color:var(--warn-subtle)}.log-level.error,.log-level.fatal{color:var(--danger);border-color:var(--danger-subtle)}.log-chip.trace,.log-chip.debug{color:var(--muted)}.log-chip.info{color:var(--info);border-color:#3b82f64d}.log-chip.warn{color:var(--warn);border-color:var(--warn-subtle)}.log-chip.error,.log-chip.fatal{color:var(--danger);border-color:var(--danger-subtle)}.log-subsystem{color:var(--muted);font-family:var(--mono)}.log-message{white-space:pre-wrap;word-break:break-word;font-family:var(--mono)}@container (max-width: 620px){.log-subsystem{display:none}.log-row-header{flex-wrap:wrap}}.session-log-type{font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 6px;width:fit-content}.session-log-type.user{color:var(--success);border-color:var(--success-subtle)}.session-log-type.assistant{color:var(--info);border-color:#3b82f64d}.session-log-type.tool{color:var(--warn);border-color:var(--warn-subtle)}.session-log-type.thinking{color:var(--muted);border-color:var(--border)}.session-log-type.error{color:var(--danger);border-color:var(--danger-subtle)}.session-log-type.system{color:var(--muted);border-color:var(--border)}.session-log-chip.user{color:var(--success);border-color:var(--success-subtle)}.session-log-chip.assistant{color:var(--info);border-color:#3b82f64d}.session-log-chip.tool{color:var(--warn);border-color:var(--warn-subtle)}.session-log-chip.thinking{color:var(--muted)}.session-log-chip.error{color:var(--danger);border-color:var(--danger-subtle)}.session-label{color:var(--muted);font-family:var(--mono)}.session-tool,.session-model{color:var(--muted);font-family:var(--mono);font-size:11px}.chat{display:flex;flex-direction:column;min-height:0}.shell--chat .chat{flex:1}.chat-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.chat-header__left{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;min-width:0}.chat-header__right{display:flex;align-items:center;gap:8px}.chat-session{min-width:240px}.chat-thread{margin-top:16px;display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px 12px;min-width:0;border-radius:0;border:none;background:transparent}.chat-queue{margin-top:12px;padding:12px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--card);display:grid;gap:8px}.chat-queue__title{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--muted)}.chat-queue__list{display:grid;gap:8px}.chat-queue__item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 12px;border-radius:var(--radius-md);border:1px dashed var(--border-strong);background:var(--secondary)}.chat-queue__text{color:var(--chat-text);font-size:13px;line-height:1.45;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.chat-queue__remove{align-self:start;padding:4px 10px;font-size:12px;line-height:1}.chat-line{display:flex}.chat-line.user{justify-content:flex-end}.chat-line.assistant,.chat-line.other{justify-content:flex-start}.chat-msg{display:grid;gap:6px;max-width:min(700px,82%)}.chat-line.user .chat-msg{justify-items:end}.chat-bubble{border:1px solid transparent;background:var(--card);border-radius:var(--radius-lg);padding:10px 14px;min-width:0}:root[data-theme=light] .chat-bubble{border-color:var(--border);background:var(--bg)}.chat-line.user .chat-bubble{border-color:transparent;background:var(--accent-subtle)}:root[data-theme=light] .chat-line.user .chat-bubble{border-color:#ea580c33;background:#fb923c1f}.chat-line.assistant .chat-bubble{border-color:transparent;background:var(--secondary)}:root[data-theme=light] .chat-line.assistant .chat-bubble{border-color:var(--border);background:var(--bg-muted)}@keyframes chatStreamPulse{0%,to{border-color:var(--border)}50%{border-color:var(--accent)}}.chat-bubble.streaming{animation:chatStreamPulse 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.chat-bubble.streaming{animation:none;border-color:var(--accent)}}.chat-bubble.chat-reading-indicator{width:fit-content;padding:10px 16px}.chat-reading-indicator__dots{display:inline-flex;align-items:center;gap:4px;height:12px}.chat-reading-indicator__dots>span{display:inline-block;width:6px;height:6px;border-radius:var(--radius-full);background:var(--muted);opacity:.6;transform:translateY(0);animation:chatReadingDot 1.2s ease-in-out infinite;will-change:transform,opacity}.chat-reading-indicator__dots>span:nth-child(2){animation-delay:.15s}.chat-reading-indicator__dots>span:nth-child(3){animation-delay:.3s}@keyframes chatReadingDot{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.chat-reading-indicator__dots>span{animation:none;opacity:.6}}.chat-text{overflow-wrap:anywhere;word-break:break-word;color:var(--chat-text);line-height:1.5}.chat-text :where(p,ul,ol,pre,blockquote,table){margin:0}.chat-text :where(p+p,p+ul,p+ol,p+pre,p+blockquote,p+table){margin-top:.75em}.chat-text :where(ul,ol){padding-left:1.2em}.chat-text :where(li+li){margin-top:.25em}.chat-text :where(a){color:var(--accent)}.chat-text :where(a:hover){text-decoration:underline}.chat-text :where(blockquote){border-left:2px solid var(--border-strong);padding-left:12px;color:var(--muted)}.chat-text :where(hr){border:0;border-top:1px solid var(--border);margin:1em 0}.chat-text :where(code){font-family:var(--mono);font-size:.9em}.chat-text :where(:not(pre)>code){padding:.15em .35em;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--secondary)}:root[data-theme=light] .chat-text :where(:not(pre)>code){background:var(--bg-muted)}.chat-text :where(pre){margin-top:.75em;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--secondary);overflow:auto}:root[data-theme=light] .chat-text :where(pre){background:var(--bg-muted)}.chat-text :where(pre code){font-size:12px;white-space:pre}.chat-text :where(table){margin-top:.75em;border-collapse:collapse;width:100%;font-size:13px}.chat-text :where(th,td){border:1px solid var(--border);padding:6px 10px;vertical-align:top}.chat-text :where(th){font-family:var(--mono);font-weight:500;color:var(--muted);background:var(--secondary)}.chat-tool-card{margin-top:8px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--secondary);display:grid;gap:4px}:root[data-theme=light] .chat-tool-card{background:var(--bg-muted)}.chat-tool-card__title{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--text)}.chat-tool-card__detail{font-family:var(--mono);font-size:11px;color:var(--muted)}.chat-tool-card__details{margin-top:6px}.chat-tool-card__summary{font-family:var(--mono);font-size:11px;color:var(--muted);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px}.chat-tool-card__summary::-webkit-details-marker{display:none}.chat-tool-card__summary-meta{color:var(--muted);opacity:.7}.chat-tool-card__details[open] .chat-tool-card__summary{color:var(--text)}.chat-tool-card__output{margin-top:8px;font-family:var(--mono);font-size:11px;line-height:1.5;white-space:pre-wrap;color:var(--chat-text);padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card)}:root[data-theme=light] .chat-tool-card__output{background:var(--bg)}.chat-stamp{font-size:11px;color:var(--muted)}.chat-line.user .chat-stamp{text-align:right}.chat-compose{margin-top:12px;display:flex;flex-direction:column;gap:10px}.shell--chat .chat-compose{position:sticky;bottom:0;z-index:5;margin-top:0;padding-top:12px;background:linear-gradient(180deg,transparent 0%,var(--bg) 40%)}.shell--chat-focus .chat-compose{bottom:calc(var(--shell-pad) + 8px);padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.chat-compose__field{gap:4px}.chat-compose__field textarea{min-height:72px;padding:10px 14px;border-radius:var(--radius-lg);resize:vertical;white-space:pre-wrap;font-family:var(--font-body);line-height:1.5;border:1px solid var(--input);background:var(--card);box-shadow:inset 0 1px 0 var(--card-highlight);transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.chat-compose__field textarea:focus{border-color:var(--ring);box-shadow:var(--focus-ring)}.chat-compose__field textarea:disabled{opacity:.5;cursor:not-allowed}.chat-compose__actions{justify-content:flex-end;align-self:end}@media(max-width:900px){.chat-session{min-width:180px}.chat-compose{grid-template-columns:1fr}}.qr-wrap{margin-top:16px;border-radius:var(--radius-md);background:var(--card);border:1px dashed var(--border-strong);padding:16px;display:inline-flex}.qr-wrap img{width:160px;height:160px;border-radius:var(--radius-sm);image-rendering:pixelated}.exec-approval-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:200}.exec-approval-card{width:min(540px,100%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;animation:scale-in .2s var(--ease-out)}.exec-approval-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.exec-approval-title{font-size:14px;font-weight:600}.exec-approval-sub{color:var(--muted);font-size:13px;margin-top:4px}.exec-approval-queue{font-size:11px;font-weight:500;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-full);padding:4px 10px}.exec-approval-command{margin-top:12px;padding:10px 12px;background:var(--secondary);border:1px solid var(--border);border-radius:var(--radius-md);word-break:break-word;white-space:pre-wrap;font-family:var(--mono);font-size:13px}.exec-approval-meta{margin-top:12px;display:grid;gap:6px;font-size:13px;color:var(--muted)}.exec-approval-meta-row{display:flex;justify-content:space-between;gap:12px}.exec-approval-meta-row span:last-child{color:var(--text);font-family:var(--mono)}.exec-approval-error{margin-top:10px;font-size:13px;color:var(--danger)}.exec-approval-actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}.event-status-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.event-status-bar__info{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);flex-wrap:wrap}.event-status-bar__info .statusDot{flex-shrink:0}.event-status-bar__sep{color:var(--border-strong);-webkit-user-select:none;user-select:none}.event-grid{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}@media(max-width:960px){.event-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.event-grid{grid-template-columns:1fr}}.event-card{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-md);padding:14px;cursor:pointer;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,transform var(--duration-fast) ease;box-shadow:var(--shadow-sm),inset 0 1px 0 var(--card-highlight);display:flex;flex-direction:column;gap:8px}.event-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md),inset 0 1px 0 var(--card-highlight);transform:translateY(-1px)}.event-card.disabled{opacity:.6}.event-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.event-card__name{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.event-card__schedule{color:var(--muted);font-size:12px;line-height:1.4}.event-card__agent{color:var(--muted);font-size:11px;font-family:var(--mono)}.event-card__footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto}.event-card__status{display:flex;align-items:center;gap:6px}.event-card__actions{display:flex;align-items:center;gap:4px}.event-card__actions .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;transition:color var(--duration-fast) ease,background var(--duration-fast) ease,border-color var(--duration-fast) ease}.event-card__actions .btn-icon:hover{color:var(--text);background:var(--bg-hover);border-color:var(--border)}.event-card__actions .btn-icon.danger:hover{color:var(--danger);background:var(--danger-subtle);border-color:var(--danger-subtle)}.event-card__actions .btn-icon svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.event-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:200;animation:fade-in .15s var(--ease-out)}.event-modal-overlay *:focus,.event-modal-overlay *:focus-visible{outline:none!important;box-shadow:none}.event-modal{width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-xl);animation:scale-in .2s var(--ease-out)}.event-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.event-modal__title{font-size:16px;font-weight:600;letter-spacing:-.02em}.event-modal__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;transition:color var(--duration-fast) ease,background var(--duration-fast) ease;flex-shrink:0}.event-modal__close:hover{color:var(--text);background:var(--bg-hover)}.event-modal__close svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.event-detail-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.event-detail-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.event-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0}.event-detail-label{color:var(--muted);font-size:13px;font-weight:500;flex-shrink:0}.event-detail-value{font-size:13px;text-align:right;word-break:break-word}.config-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:0;height:calc(100vh - 160px);margin:-16px;border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--border);background:var(--panel)}.config-sidebar{display:flex;flex-direction:column;background:var(--bg-accent);border-right:1px solid var(--border);min-height:0;overflow:hidden}:root[data-theme=light] .config-sidebar{background:var(--bg-hover)}.config-sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--border)}.config-sidebar__title{font-weight:600;font-size:14px;letter-spacing:-.01em}.config-sidebar__footer{margin-top:auto;padding:14px;border-top:1px solid var(--border)}.config-search{position:relative;padding:14px;border-bottom:1px solid var(--border)}.config-search__icon{position:absolute;left:28px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}.config-search__input{width:100%;padding:11px 36px 11px 42px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);font-size:13px;outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,background var(--duration-fast) ease}.config-search__input::placeholder{color:var(--muted)}.config-search__input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);background:var(--bg-hover)}:root[data-theme=light] .config-search__input{background:#fff}:root[data-theme=light] .config-search__input:focus{background:#fff}.config-search__clear{position:absolute;right:22px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;border-radius:var(--radius-full);background:var(--bg-hover);color:var(--muted);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.config-search__clear:hover{background:var(--border-strong);color:var(--text)}.config-nav{flex:1;overflow-y:auto;padding:10px}.config-nav__item{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.config-nav__item:hover{background:var(--bg-hover);color:var(--text)}:root[data-theme=light] .config-nav__item:hover{background:#0000000a}.config-nav__item.active{background:var(--accent-subtle);color:var(--accent)}.config-nav__icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:15px;opacity:.7}.config-nav__item:hover .config-nav__icon,.config-nav__item.active .config-nav__icon{opacity:1}.config-nav__icon svg{width:18px;height:18px;stroke:currentColor;fill:none}.config-nav__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-mode-toggle{display:flex;padding:4px;background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}:root[data-theme=light] .config-mode-toggle{background:#fff}.config-mode-toggle__btn{flex:1;padding:9px 14px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.config-mode-toggle__btn:hover{color:var(--text)}.config-mode-toggle__btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.config-main{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--panel);overflow:hidden}.config-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 22px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .config-actions{background:var(--bg-hover)}.config-actions__left,.config-actions__right{display:flex;align-items:center;gap:10px}.config-changes-badge{padding:6px 14px;border-radius:var(--radius-full);background:var(--accent-subtle);border:1px solid rgba(255,77,77,.3);color:var(--accent);font-size:12px;font-weight:600}.config-status{font-size:13px;color:var(--muted)}.config-diff{margin:18px 22px 0;border:1px solid rgba(255,77,77,.25);border-radius:var(--radius-lg);background:var(--accent-subtle);overflow:hidden}.config-diff__summary{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;font-size:13px;font-weight:600;color:var(--accent);list-style:none}.config-diff__summary::-webkit-details-marker{display:none}.config-diff__chevron{width:16px;height:16px;transition:transform var(--duration-normal) var(--ease-out)}.config-diff__chevron svg{width:100%;height:100%}.config-diff[open] .config-diff__chevron{transform:rotate(180deg)}.config-diff__content{padding:0 18px 18px;display:grid;gap:10px}.config-diff__item{display:flex;align-items:baseline;gap:14px;padding:10px 14px;border-radius:var(--radius-md);background:var(--bg-elevated);font-size:12px;font-family:var(--mono)}:root[data-theme=light] .config-diff__item{background:#fff}.config-diff__path{font-weight:600;color:var(--text);flex-shrink:0}.config-diff__values{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}.config-diff__from{color:var(--danger);opacity:.85}.config-diff__arrow{color:var(--muted)}.config-diff__to{color:var(--ok)}.config-section-hero{display:flex;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid var(--border);background:var(--bg-accent)}:root[data-theme=light] .config-section-hero{background:var(--bg-hover)}.config-section-hero__icon{width:30px;height:30px;color:var(--accent);display:flex;align-items:center;justify-content:center}.config-section-hero__icon svg{width:100%;height:100%;stroke:currentColor;fill:none}.config-section-hero__text{display:grid;gap:3px;min-width:0}.config-section-hero__title{font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-section-hero__desc{font-size:13px;color:var(--muted)}.config-subnav{display:flex;gap:8px;padding:12px 22px 14px;border-bottom:1px solid var(--border);background:var(--bg-accent);overflow-x:auto}:root[data-theme=light] .config-subnav{background:var(--bg-hover)}.config-subnav__item{border:1px solid transparent;border-radius:var(--radius-full);padding:7px 14px;font-size:12px;font-weight:600;color:var(--muted);background:var(--bg-elevated);cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease,border-color var(--duration-fast) ease;white-space:nowrap}:root[data-theme=light] .config-subnav__item{background:#fff}.config-subnav__item:hover{color:var(--text);border-color:var(--border)}.config-subnav__item.active{color:var(--accent);border-color:#ff4d4d66;background:var(--accent-subtle)}.config-content{flex:1;overflow-y:auto;padding:22px}.config-raw-field textarea{min-height:500px;font-family:var(--mono);font-size:13px;line-height:1.55}.config-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:80px 24px;color:var(--muted)}.config-loading__spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:var(--radius-full);animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.config-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:80px 24px;text-align:center}.config-empty__icon{font-size:56px;opacity:.35}.config-empty__text{color:var(--muted);font-size:15px}.config-form--modern{display:grid;gap:26px}.config-section-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);overflow:hidden;transition:border-color var(--duration-fast) ease}.config-section-card:hover{border-color:var(--border-strong)}:root[data-theme=light] .config-section-card{background:#fff}.config-section-card__header{display:flex;align-items:flex-start;gap:16px;padding:20px 22px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .config-section-card__header{background:var(--bg-hover)}.config-section-card__icon{width:34px;height:34px;color:var(--accent);flex-shrink:0}.config-section-card__icon svg{width:100%;height:100%}.config-section-card__titles{flex:1;min-width:0}.config-section-card__title{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-section-card__desc{margin:5px 0 0;font-size:13px;color:var(--muted);line-height:1.45}.config-section-card__content{padding:22px}.cfg-fields{display:grid;gap:22px}.cfg-field{display:grid;gap:8px}.cfg-field--error{padding:14px;border-radius:var(--radius-md);background:var(--danger-subtle);border:1px solid rgba(239,68,68,.3)}.cfg-field__label{font-size:13px;font-weight:600;color:var(--text)}.cfg-field__help{font-size:12px;color:var(--muted);line-height:1.45}.cfg-field__error{font-size:12px;color:var(--danger)}.cfg-input-wrap{display:flex;gap:10px}.cfg-input{flex:1;padding:11px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-accent);font-size:14px;outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,background var(--duration-fast) ease}.cfg-input::placeholder{color:var(--muted);opacity:.7}.cfg-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);background:var(--bg-hover)}:root[data-theme=light] .cfg-input{background:#fff}:root[data-theme=light] .cfg-input:focus{background:#fff}.cfg-input--sm{padding:9px 12px;font-size:13px}.cfg-input__reset{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--muted);font-size:14px;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.cfg-input__reset:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.cfg-input__reset:disabled{opacity:.5;cursor:not-allowed}.cfg-textarea{width:100%;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-accent);font-family:var(--mono);font-size:13px;line-height:1.55;resize:vertical;outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.cfg-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}:root[data-theme=light] .cfg-textarea{background:#fff}.cfg-textarea--sm{padding:10px 12px;font-size:12px}.cfg-number{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-accent)}:root[data-theme=light] .cfg-number{background:#fff}.cfg-number__btn{width:44px;border:none;background:var(--bg-elevated);color:var(--text);font-size:18px;font-weight:300;cursor:pointer;transition:background var(--duration-fast) ease}.cfg-number__btn:hover:not(:disabled){background:var(--bg-hover)}.cfg-number__btn:disabled{opacity:.4;cursor:not-allowed}:root[data-theme=light] .cfg-number__btn{background:var(--bg-hover)}:root[data-theme=light] .cfg-number__btn:hover:not(:disabled){background:var(--border)}.cfg-number__input{width:85px;padding:11px;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:transparent;font-size:14px;text-align:center;outline:none;-moz-appearance:textfield}.cfg-number__input::-webkit-outer-spin-button,.cfg-number__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cfg-select{padding:11px 40px 11px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background-color:var(--bg-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;font-size:14px;cursor:pointer;outline:none;appearance:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.cfg-select:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}:root[data-theme=light] .cfg-select{background-color:#fff}.cfg-segmented{display:inline-flex;padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-accent)}:root[data-theme=light] .cfg-segmented{background:var(--bg-hover)}.cfg-segmented__btn{padding:9px 18px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.cfg-segmented__btn:hover:not(:disabled):not(.active){color:var(--text)}.cfg-segmented__btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.cfg-segmented__btn:disabled{opacity:.5;cursor:not-allowed}.cfg-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-accent);cursor:pointer;transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease}.cfg-toggle-row:hover:not(.disabled){background:var(--bg-hover);border-color:var(--border-strong)}.cfg-toggle-row.disabled{opacity:.55;cursor:not-allowed}:root[data-theme=light] .cfg-toggle-row{background:#fff}:root[data-theme=light] .cfg-toggle-row:hover:not(.disabled){background:var(--bg-hover)}.cfg-toggle-row__content{flex:1;min-width:0}.cfg-toggle-row__label{display:block;font-size:14px;font-weight:500;color:var(--text)}.cfg-toggle-row__help{display:block;margin-top:3px;font-size:12px;color:var(--muted);line-height:1.45}.cfg-toggle{position:relative;flex-shrink:0}.cfg-toggle input{position:absolute;opacity:0;width:0;height:0}.cfg-toggle__track{display:block;width:50px;height:28px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-full);position:relative;transition:background var(--duration-normal) ease,border-color var(--duration-normal) ease}:root[data-theme=light] .cfg-toggle__track{background:var(--border)}.cfg-toggle__track:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--text);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-out),background var(--duration-normal) ease}.cfg-toggle input:checked+.cfg-toggle__track{background:var(--ok-subtle);border-color:#22c55e66}.cfg-toggle input:checked+.cfg-toggle__track:after{transform:translate(22px);background:var(--ok)}.cfg-toggle input:focus+.cfg-toggle__track{box-shadow:var(--focus-ring)}.cfg-object{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-accent);overflow:hidden}:root[data-theme=light] .cfg-object{background:#fff}.cfg-object__header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;list-style:none;transition:background var(--duration-fast) ease}.cfg-object__header:hover{background:var(--bg-hover)}.cfg-object__header::-webkit-details-marker{display:none}.cfg-object__title{font-size:14px;font-weight:600;color:var(--text)}.cfg-object__chevron{width:18px;height:18px;color:var(--muted);transition:transform var(--duration-normal) var(--ease-out)}.cfg-object__chevron svg{width:100%;height:100%}.cfg-object[open] .cfg-object__chevron{transform:rotate(180deg)}.cfg-object__help{padding:0 18px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}.cfg-object__content{padding:18px;display:grid;gap:18px}.cfg-array{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.cfg-array__header{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .cfg-array__header{background:var(--bg-hover)}.cfg-array__label{flex:1;font-size:14px;font-weight:600;color:var(--text)}.cfg-array__count{font-size:12px;color:var(--muted);padding:4px 10px;background:var(--bg-elevated);border-radius:var(--radius-full)}:root[data-theme=light] .cfg-array__count{background:#fff}.cfg-array__add{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--duration-fast) ease}.cfg-array__add:hover:not(:disabled){background:var(--bg-hover)}.cfg-array__add:disabled{opacity:.5;cursor:not-allowed}.cfg-array__add-icon{width:14px;height:14px}.cfg-array__add-icon svg{width:100%;height:100%}.cfg-array__help{padding:12px 18px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}.cfg-array__empty{padding:36px 18px;text-align:center;color:var(--muted);font-size:13px}.cfg-array__items{display:grid;gap:1px;background:var(--border)}.cfg-array__item{background:var(--panel)}.cfg-array__item-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .cfg-array__item-header{background:var(--bg-hover)}.cfg-array__item-index{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.cfg-array__item-remove{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.cfg-array__item-remove svg{width:16px;height:16px}.cfg-array__item-remove:hover:not(:disabled){background:var(--danger-subtle);color:var(--danger)}.cfg-array__item-remove:disabled{opacity:.4;cursor:not-allowed}.cfg-array__item-content{padding:18px}.cfg-map{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.cfg-map__header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .cfg-map__header{background:var(--bg-hover)}.cfg-map__label{font-size:13px;font-weight:600;color:var(--muted)}.cfg-map__add{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--duration-fast) ease}.cfg-map__add:hover:not(:disabled){background:var(--bg-hover)}.cfg-map__add-icon{width:14px;height:14px}.cfg-map__add-icon svg{width:100%;height:100%}.cfg-map__empty{padding:28px 18px;text-align:center;color:var(--muted);font-size:13px}.cfg-map__items{display:grid;gap:10px;padding:14px}.cfg-map__item{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:start}.cfg-map__item-key,.cfg-map__item-value{min-width:0}.cfg-map__item-remove{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.cfg-map__item-remove svg{width:16px;height:16px}.cfg-map__item-remove:hover:not(:disabled){background:var(--danger-subtle);color:var(--danger)}.pill--sm{padding:5px 12px;font-size:11px}.pill--ok{border-color:#22c55e59;color:var(--ok)}.pill--danger{border-color:#ef444459;color:var(--danger)}@media(max-width:768px){.config-layout{grid-template-columns:1fr}.config-sidebar{border-right:none;border-bottom:1px solid var(--border)}.config-sidebar__header{padding:14px 16px}.config-nav{display:flex;flex-wrap:nowrap;gap:6px;padding:10px 14px;overflow-x:auto;-webkit-overflow-scrolling:touch}.config-nav__item{flex:0 0 auto;padding:9px 14px;white-space:nowrap}.config-nav__label{display:inline}.config-sidebar__footer{display:none}.config-actions{flex-wrap:wrap;padding:14px 16px}.config-actions__left,.config-actions__right{width:100%;justify-content:center}.config-section-hero{padding:14px 16px}.config-subnav{padding:10px 16px 12px}.config-content{padding:18px}.config-section-card__header{padding:16px 18px}.config-section-card__content{padding:18px}.cfg-toggle-row{padding:14px 16px}.cfg-map__item{grid-template-columns:1fr;gap:10px}.cfg-map__item-remove{justify-self:end}}@media(max-width:480px){.config-nav__icon{width:26px;height:26px;font-size:17px}.config-nav__label{display:none}.config-section-card__icon{width:30px;height:30px}.config-section-card__title{font-size:16px}.cfg-segmented{flex-wrap:wrap}.cfg-segmented__btn{flex:1 0 auto;min-width:70px}}.setup-container{--tasker-black: #1a1a1a;--tasker-charcoal: #2d2d2d;--tasker-orange: var(--accent, #00d4ff);--tasker-orange-hover: var(--accent-hover, #00b8e0);--tasker-orange-glow: var(--accent-glow, rgba(0, 212, 255, .3));--tasker-white: #ffffff;--tasker-text-grey: #b0b0b0;--tasker-muted-grey: #888888;min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(170deg,#1a1a1a,#111);padding:80px 20px 40px;position:relative;overflow-y:auto}.setup-container:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,107,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,107,0,.03) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}.setup-card{background:var(--tasker-charcoal);border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:32px 28px;text-align:center;max-width:420px;width:100%;box-shadow:0 24px 80px #00000080,0 0 0 1.5px #ffffff1a;position:relative;z-index:1;margin:auto 0}.setup-card h1{margin:0 0 12px;font-size:28px;font-weight:800;color:var(--tasker-white);letter-spacing:-.02em}.setup-card p{margin:0 0 24px;color:var(--tasker-text-grey);font-size:15px;line-height:1.6}.setup-qr{background:var(--tasker-white);padding:20px;border-radius:12px;display:inline-block;margin:24px 0;box-shadow:0 8px 32px #ff6b0024,0 0 60px #ff6b000f}.setup-qr img{display:block;width:256px;height:256px;image-rendering:pixelated}.setup-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--tasker-orange);border-radius:50%;animation:setup-spin .8s linear infinite;margin:0 auto 24px}@keyframes setup-spin{to{transform:rotate(360deg)}}.setup-success{border:2px solid var(--tasker-orange);box-shadow:0 0 40px #ff6b0026}.setup-success .setup-icon{width:72px;height:72px;background:var(--tasker-orange);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:36px;color:var(--tasker-white);box-shadow:0 4px 20px var(--tasker-orange-glow)}.setup-waiting{color:var(--tasker-orange);font-weight:600;font-size:14px}.setup-error{color:#ef4444;background:#ef44441a;padding:12px 16px;border-radius:8px;border:1px solid rgba(239,68,68,.2)}.setup-hint{font-size:13px;color:var(--tasker-muted-grey);margin-top:8px}.setup-logo{height:72px;width:auto;margin-bottom:32px}.setup-steps{display:flex;justify-content:center;gap:32px;margin-bottom:32px}.setup-step{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tasker-muted-grey)}.setup-step.active{color:var(--tasker-orange)}.setup-step.completed{color:var(--tasker-text-grey)}.setup-step-dot{width:12px;height:12px;border-radius:50%;border:2px solid currentColor;background:transparent}.setup-step.active .setup-step-dot{background:var(--tasker-orange);border-color:var(--tasker-orange);box-shadow:0 0 10px var(--tasker-orange-glow)}.setup-step.completed .setup-step-dot{background:var(--tasker-orange);border-color:var(--tasker-orange)}.setup-button{display:inline-block;padding:14px 28px;font-size:15px;font-weight:600;border-radius:10px;cursor:pointer;border:none;transition:all .2s ease;text-decoration:none;font-family:inherit}.setup-button.primary{background:var(--tasker-orange);color:var(--tasker-white);box-shadow:0 4px 14px var(--tasker-orange-glow)}.setup-button.primary:hover{background:var(--tasker-orange-hover);transform:translateY(-1px);box-shadow:0 6px 20px var(--tasker-orange-glow)}.setup-button:not(.primary){background:#ffffff1a;color:var(--tasker-white);border:1px solid rgba(255,255,255,.15)}.setup-button:not(.primary):hover{background:#ffffff26}.setup-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.setup-divider{display:flex;align-items:center;margin:24px 0;color:var(--tasker-muted-grey);font-size:13px}.setup-divider:before,.setup-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.setup-divider span{padding:0 16px}.setup-code-input{display:flex;gap:12px;margin-top:16px}.setup-code-input input{flex:1;padding:14px 16px;font-size:15px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:var(--tasker-white);font-family:inherit;outline:none;transition:border-color .2s ease}.setup-code-input input:focus{border-color:var(--tasker-orange)}.setup-code-input input::placeholder{color:var(--tasker-muted-grey)}.setup-device-id{margin:16px 0 8px;padding:12px 16px;border-radius:10px;background:#0000004d;border:1px solid rgba(255,255,255,.1)}.setup-device-id-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--tasker-muted-grey);margin-bottom:4px}.setup-device-id-row{display:flex;align-items:center;gap:8px}.setup-device-id-value{flex:1;font-size:13px;font-family:SF Mono,Fira Code,Consolas,monospace;color:var(--tasker-orange);word-break:break-all;-webkit-user-select:all;user-select:all;cursor:text}.setup-device-id-copy{flex-shrink:0;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--tasker-text-grey);font-size:11px;padding:4px 10px;cursor:pointer;transition:all .15s ease}.setup-device-id-copy:hover{background:#ffffff24;color:var(--tasker-white)}.setup-hint a.setup-link-danger{color:#ef4444;text-decoration:none;font-size:12px;opacity:.7;transition:opacity .15s ease}.setup-hint a.setup-link-danger:hover{color:#ef4444;opacity:1;text-decoration:underline}.setup-license-remove-confirm{margin-top:16px;padding:16px;border-radius:10px;background:#ef444414;border:1px solid rgba(239,68,68,.25)}.setup-license-remove-warning{font-size:14px;color:#ef4444;margin:0 0 14px;line-height:1.5}.setup-license-remove-actions{display:flex;gap:10px;justify-content:center}.setup-hint a{color:var(--tasker-orange);text-decoration:none}.setup-hint a:hover{text-decoration:underline}.setup-status-light{width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0;box-shadow:0 0 8px currentColor}.setup-status-row{display:flex;align-items:center;justify-content:center;gap:12px;font-size:22px;font-weight:700;color:var(--tasker-white);margin-bottom:16px}.setup-status-dashboard{display:flex;flex-direction:column;gap:8px;margin:16px 0;padding:12px;background:#0003;border-radius:12px;border:1px solid rgba(255,255,255,.08)}.setup-status-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#0003;border-radius:8px}.setup-status-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1}.setup-status-info strong{font-size:15px;color:var(--tasker-white);font-weight:600}.setup-status-info span{font-size:13px;color:var(--tasker-text-grey)}.setup-model-select{background:#0000004d;color:var(--tasker-text-grey);border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:3px 6px;font-size:12px;cursor:pointer;outline:none}.setup-model-select:focus,.setup-model-select:focus-visible{border-color:#fff3;box-shadow:none}.setup-link-btn{background:transparent;border:none;color:var(--accent, #00d4ff);font-size:13px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:opacity .15s ease;white-space:nowrap}.setup-link-btn:hover{opacity:.8}.setup-link-btn:focus,.setup-link-btn:focus-visible{outline:none}.setup-status-action{background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--tasker-text-grey);padding:8px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.setup-status-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.setup-status-action:hover:not(:disabled){background:#ffffff14;border-color:#ffffff40;color:var(--tasker-white)}.setup-status-action:disabled{opacity:.5;cursor:not-allowed}.setup-status-action.spinning svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.setup-success-message{font-size:18px;font-weight:600;color:#22c55e!important;margin-top:8px!important}.setup-warning{color:#eab308!important;background:#eab3081a;padding:12px 16px;border-radius:8px;border:1px solid rgba(234,179,8,.2);margin-bottom:16px}.setup-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.setup-button.secondary{background:transparent;color:var(--tasker-text-grey);border:1px solid rgba(255,255,255,.15)}.setup-button.secondary:hover{background:#ffffff0d;color:var(--tasker-white)}.setup-button.danger{background:transparent;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.setup-button.danger:hover{background:#ef44441a}.setup-add-account{margin-top:12px;padding:16px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);text-align:left}.setup-add-account strong{font-size:14px;color:var(--tasker-white)}.setup-add-account-input{display:block;width:100%;margin-top:10px;padding:12px 14px;font-size:14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:var(--tasker-white);font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .2s ease}.setup-add-account-input:focus{border-color:var(--tasker-orange);outline:none}.setup-add-account-input::placeholder{color:var(--tasker-muted-grey)}.setup-add-account-actions{display:flex;gap:8px;margin-top:10px}.setup-add-account-actions .setup-button{padding:10px 20px;font-size:14px}.setup-page{min-height:100vh;background:linear-gradient(170deg,#1a1a1a,#111)}.setup-button.small{padding:8px 14px;font-size:13px}.sp-card{background:var(--tasker-charcoal);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:24px;margin-top:24px}.sp-card-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}.sp-card-header h2{margin:0;font-size:18px;font-weight:600;color:var(--tasker-white)}.sp-form-row{display:flex;gap:12px;margin:16px 0}.sp-input{flex:1;padding:12px 14px;font-size:14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:var(--tasker-white);font-family:inherit;outline:none;transition:border-color .2s ease}.sp-input:focus{border-color:var(--tasker-orange)}.sp-input::placeholder{color:var(--tasker-muted-grey)}.sp-input:disabled{opacity:.5}.sp-list{margin-top:16px;background:#0003;border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden}.sp-list-empty{padding:24px;text-align:center;color:var(--tasker-muted-grey);font-size:14px}.sp-list-item{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.sp-list-item:last-child{border-bottom:none}.sp-list-item-main{flex:1;min-width:0}.sp-list-item-title{font-size:15px;font-weight:500;color:var(--tasker-white);font-family:SF Mono,Fira Code,monospace}.sp-list-item-sub{font-size:13px;color:var(--tasker-muted-grey);margin-top:2px}.sp-callout{margin-top:20px;padding:14px 16px;background:#0003;border:1px solid rgba(255,255,255,.08);border-radius:8px;font-size:13px;line-height:1.5;color:var(--tasker-text-grey)}.sp-callout code{background:#ffffff1a;padding:2px 6px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:12px;color:var(--tasker-orange)}.sp-error{color:#ef4444;background:#ef44441a;padding:12px 16px;border-radius:8px;border:1px solid rgba(239,68,68,.2);font-size:14px}.sp-card-wide{max-width:720px}.sp-toolbar{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.sp-file-tree{margin-top:16px;background:#0003;border:1px solid rgba(255,255,255,.08);border-radius:10px;max-height:340px;overflow-y:auto;text-align:left}.sp-tree-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;color:var(--tasker-text-grey);cursor:pointer;transition:background .12s ease;border-bottom:1px solid rgba(255,255,255,.04);-webkit-user-select:none;user-select:none}.sp-tree-item:last-child{border-bottom:none}.sp-tree-item:hover{background:#ffffff0a}.sp-tree-item.selected{background:#00d4ff14;color:var(--tasker-white)}.sp-tree-dir{color:var(--tasker-white);font-weight:500}.sp-tree-chevron{width:16px;text-align:center;font-size:13px;color:var(--tasker-muted-grey);flex-shrink:0}.sp-tree-icon{flex-shrink:0;display:flex;align-items:center}.sp-tree-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sp-tree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-tree-size{font-size:12px;color:var(--tasker-muted-grey);flex-shrink:0;margin-left:auto}.sp-badge{font-size:10px;padding:1px 6px;border-radius:4px;background:#ffffff14;color:var(--tasker-muted-grey);flex-shrink:0}.sp-tree-file[draggable=true]{cursor:grab}.sp-tree-file[draggable=true]:active{cursor:grabbing}.sp-drop-target{background:#00d4ff14!important;outline:2px dashed var(--tasker-orange);outline-offset:-2px}.sp-bulk-actions{margin-top:12px;display:flex;align-items:center;gap:12px;padding:10px 16px;background:#0003;border:1px solid rgba(255,255,255,.08);border-radius:10px}.sp-file-preview{margin-top:16px;background:#0003;border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden;text-align:left}.sp-file-preview-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.sp-file-preview-header strong{color:var(--tasker-white);font-size:14px}.sp-file-preview-meta{font-size:12px;color:var(--tasker-muted-grey);margin-top:2px}.sp-file-actions{display:flex;gap:8px;flex-shrink:0}.sp-file-preview-body{padding:16px;max-height:300px;overflow:auto}.sp-file-code{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:13px;line-height:1.5;color:var(--tasker-text-grey);white-space:pre-wrap;word-break:break-all;margin:0}.sp-canvas-area{text-align:center}.sp-canvas-wrap{position:relative;display:inline-block;border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden;background:#000}.sp-canvas-wrap.sp-input-active{border-color:var(--tasker-orange);box-shadow:0 0 16px var(--tasker-orange-glow)}.sp-canvas{display:block;max-width:100%;height:auto;cursor:default}.sp-canvas-wrap.sp-input-active .sp-canvas{cursor:crosshair}.sp-canvas-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 24px;background:#0003;border:1px solid rgba(255,255,255,.08);border-radius:10px}.sp-canvas-placeholder p{margin:0;font-size:14px;color:var(--tasker-muted-grey)}.sp-canvas-placeholder-icon{color:var(--tasker-muted-grey);opacity:.5}.sp-canvas-placeholder-icon svg{width:48px;height:48px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.sp-page-nav{display:flex;justify-content:center;gap:24px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.sp-page-nav a,.sp-page-nav-fixed a,.setup-header-nav a{color:var(--tasker-muted-grey);text-decoration:none;font-size:13px;transition:color .15s ease}.sp-page-nav a:hover,.sp-page-nav-fixed a:hover,.setup-header-nav a:hover{color:var(--tasker-orange)}.sp-page-nav-current{font-size:13px;color:var(--tasker-white);font-weight:600}.setup-header{position:fixed;top:0;left:0;right:0;background:#1a1a1aeb;border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.setup-header-inner{position:relative;z-index:11;display:flex;align-items:center;justify-content:space-between;max-width:1060px;margin:0 auto;padding:10px 20px}.setup-header-logo{height:28px;width:auto}.setup-header-nav{display:flex;gap:20px;align-items:center;margin-left:24px}.setup-header-nav a{color:var(--tasker-muted-grey);text-decoration:none;font-size:13px}.setup-header-nav a:hover{color:var(--tasker-orange)}.setup-header-nav .sp-page-nav-current{color:var(--tasker-white)}.setup-header-right{display:flex;align-items:center;gap:12px;margin-left:auto}.nav-logout-btn{background:none;border:1px solid rgba(255,255,255,.15);color:#fff9;cursor:pointer;padding:6px 8px;border-radius:6px;display:flex;align-items:center;transition:color .2s,border-color .2s}.nav-logout-btn:hover{color:#fff;border-color:#ffffff4d}.sp-workspace-selector{appearance:none;-webkit-appearance:none;background:#ffffff14;color:var(--tasker-white);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:5px 28px 5px 10px;font-size:13px;font-family:inherit;cursor:pointer;outline:none;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:10px;transition:border-color .15s}.sp-workspace-selector:hover{border-color:#ffffff4d}.sp-workspace-selector:focus,.sp-workspace-selector:focus-visible,.sp-workspace-selector:focus-within{border-color:#ffffff4d;outline:none!important;outline-color:transparent!important;box-shadow:none!important;-webkit-focus-ring-color:transparent}.sp-workspace-selector option{background:#1e1e2e;color:var(--tasker-white)}.nav-burger-checkbox{display:none}.nav-burger-button{display:none;cursor:pointer;padding:8px;margin:-8px;-webkit-tap-highlight-color:transparent}.nav-burger-icon{display:block;width:20px;height:2px;background:#fff;border-radius:1px;position:relative;transition:background .2s}.nav-burger-icon:before,.nav-burger-icon:after{content:"";display:block;width:20px;height:2px;background:#fff;border-radius:1px;position:absolute;left:0;transition:transform .25s ease,top .25s ease}.nav-burger-icon:before{top:-6px}.nav-burger-icon:after{top:6px}.nav-burger-checkbox:checked~.setup-header-inner .nav-burger-icon{background:transparent}.nav-burger-checkbox:checked~.setup-header-inner .nav-burger-icon:before{top:0;transform:rotate(45deg)}.nav-burger-checkbox:checked~.setup-header-inner .nav-burger-icon:after{top:0;transform:rotate(-45deg)}.setup-header-dropdown{position:relative;z-index:11;display:none;flex-direction:column;gap:4px;padding:8px 20px 16px;max-width:1060px;margin:0 auto}.setup-header-dropdown a,.setup-header-dropdown .sp-page-nav-current{display:block;padding:10px 0;font-size:14px;border-bottom:1px solid rgba(255,255,255,.06)}.setup-header-dropdown a{color:#888;text-decoration:none}.setup-header-dropdown a:hover{color:var(--accent, #00d4ff)}.setup-header-dropdown .sp-page-nav-current{color:#fff;font-weight:600}.nav-selector-inline{display:inline-flex}.nav-selector-mobile{display:none}@media(max-width:768px){.setup-header-nav,.nav-selector-inline{display:none}.nav-selector-mobile{display:block;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.nav-selector-mobile .sp-workspace-selector{width:100%;max-width:none}.nav-burger-button{display:block}.nav-burger-checkbox:checked~.setup-header-inner+.setup-header-dropdown{display:flex}}.setup-container--full{padding-top:88px;padding-bottom:0;min-height:100vh;align-items:stretch}.chat-viewport{width:100%;max-width:900px;flex:1;display:flex;flex-direction:column;min-height:0;margin:0 auto;padding:0 16px;text-align:left}.chat-viewport>.card.chat{border:none;background:transparent;padding:0;box-shadow:none;animation:none}.chat-viewport>.card.chat:hover{border-color:transparent;box-shadow:none}.chat-page{padding-bottom:0}.sp-card-advanced{max-width:1060px;width:100%;text-align:left;z-index:auto}.sp-card-advanced .table{overflow-x:auto}.sp-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:12px}.sp-tab{padding:8px 16px;border:none;background:transparent;color:var(--tasker-muted-grey);font-size:14px;font-weight:500;cursor:pointer;border-radius:6px 6px 0 0;transition:color .15s ease,background .15s ease}.sp-tab:hover{color:var(--tasker-white);background:#ffffff0d}.sp-tab.active{color:var(--tasker-orange);border-bottom:2px solid var(--tasker-orange)}.setup-info-btn{background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:var(--tasker-muted-grey);width:22px;height:22px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0;padding:0}.setup-info-btn:hover{background:#ffffff14;border-color:#ffffff40;color:var(--tasker-white)}.setup-info-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.setup-info-overlay{position:fixed;inset:0;background:#0009;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.setup-info-card{background:var(--tasker-charcoal, #2d2d2d);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:24px;max-width:380px;width:100%;box-shadow:0 24px 80px #00000080}.setup-info-card h3{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--tasker-white, #fff)}.setup-info-row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06);gap:12px}.setup-info-row:last-of-type{border-bottom:none}.setup-info-label{font-size:13px;color:var(--tasker-muted-grey, #888);flex-shrink:0}.setup-info-value{font-size:13px;color:var(--tasker-white, #fff);text-align:right;word-break:break-all}@media(max-width:480px){.setup-card{padding:32px 24px}.setup-qr img{width:200px;height:200px}.setup-card h1{font-size:24px}.setup-steps{gap:16px}.setup-step-label{display:none}.setup-code-input{flex-direction:column}}.login-overlay *:focus,.login-overlay *:focus-visible,.setup-info-overlay *:focus,.setup-info-overlay *:focus-visible{outline:none!important;-webkit-focus-ring-color:transparent;box-shadow:none}.login-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#111}.login-card{display:flex;flex-direction:column;align-items:center;padding:48px 40px;max-width:360px;width:100%}.login-logo{width:56px;height:56px;margin-bottom:16px}.login-title{color:#fff;font-size:22px;font-weight:600;margin:0 0 4px}.login-subtitle{color:#888;font-size:14px;margin:0 0 28px;text-align:center}.login-form{display:flex;flex-direction:column;gap:12px;width:100%}.login-pin-input{width:100%;padding:14px 16px;font-size:20px;letter-spacing:8px;text-align:center;background:#1a1a1a;border:1px solid #333333;border-radius:8px;color:#fff;outline:none;transition:border-color .2s;box-sizing:border-box}.login-pin-input:focus{border-color:#555}.login-pin-input::placeholder{font-size:14px;letter-spacing:normal;color:#555}.login-error{color:#f44;font-size:13px;text-align:center;margin:0}.login-submit{width:100%;padding:14px;font-size:16px;font-weight:600;color:#000;background:var(--accent, #00d4ff);border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.login-submit:hover{opacity:.9}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:setup-spin .8s linear infinite;vertical-align:middle}.setup-button .login-spinner{border-color:#fff3;border-top-color:#fff}.login-account-select{width:100%;padding:12px 14px;font-size:15px;background:#1a1a1a;border:1px solid #333333;border-radius:8px;color:#fff;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:10px;transition:border-color .2s;box-sizing:border-box}.login-account-select:focus{border-color:#555}.login-account-select option{background:#1a1a1a;color:#fff}.login-success{color:#22c55e;font-size:13px;text-align:center;margin:0}.login-link{color:var(--accent, #00d4ff);text-decoration:none;cursor:pointer}.login-link:hover{text-decoration:underline}.login-hint{color:#666;font-size:12px;text-align:center;margin:20px 0 0;line-height:1.5}.setup-apikey-list{padding:8px 0 16px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 200px);overflow-y:auto;-webkit-overflow-scrolling:touch}.setup-apikey-row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#ffffff08;border-radius:6px}.setup-apikey-info{display:flex;align-items:center;gap:8px}.setup-apikey-info strong{font-size:.9rem;color:#fff}.setup-apikey-category{font-size:.75rem;color:var(--tasker-muted-grey);background:#ffffff0f;padding:2px 8px;border-radius:3px}.setup-apikey-input{display:flex;align-items:center;gap:6px}.setup-apikey-input input{flex:1;min-width:0;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff;font-size:.85rem;padding:6px 10px;outline:none}.setup-apikey-input input:focus{border-color:var(--tasker-orange)}.setup-apikey-input input::placeholder{color:#555}.setup-apikey-save{padding:6px 10px;font-size:.8rem;min-width:50px}.setup-apikey-icon-btn{background:none;border:none;cursor:pointer;padding:4px;color:#ffffff59;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.setup-apikey-icon-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.setup-apikey-icon-btn:hover{color:#ffffffb3}.setup-apikey-icon-btn.active{color:var(--tasker-orange)}.setup-apikey-icon-btn.danger:hover{color:#ef4444}.setup-update-progress{margin:12px 0 4px;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;font-size:13px;line-height:1.5;max-height:300px;overflow-y:auto}.setup-update-step{display:flex;align-items:center;gap:8px;padding:2px 0;color:#ffffff80}.setup-update-step.done{color:#ffffffb3}.setup-update-step.failed{color:#ef4444}.setup-update-step.running{color:var(--tasker-white)}.setup-update-step-icon{width:16px;text-align:center;flex-shrink:0}.setup-update-check{color:#22c55e}.setup-update-cross{color:#ef4444}.setup-update-spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--tasker-white);border-radius:50%;animation:spin .8s linear infinite}.setup-update-step-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-update-step-time{color:#ffffff59;font-size:12px;flex-shrink:0}.setup-update-status{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06);color:#fff9;font-size:12px}.customers-search{display:flex;gap:12px;align-items:stretch}.customers-search input{flex:1;padding:10px 14px;font-size:14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:var(--tasker-white);font-family:inherit}.customers-search input::placeholder{color:#ffffff59}.customers-record{border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:8px;overflow:hidden}.customers-record-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;transition:background .15s}.customers-record-header:hover{background:#ffffff0a}.customers-record-info{min-width:0;overflow:hidden}.customers-record-name{font-weight:600;color:var(--tasker-white);font-size:14px}.customers-record-phone{font-size:13px;color:#ffffff80;margin-left:8px}.customers-record-meta{font-size:12px;color:#ffffff59}.customers-record-fields{padding:0 16px 16px;border-top:1px solid rgba(255,255,255,.06)}.customers-field-row{display:flex;gap:8px;align-items:center;margin-top:8px}.customers-field-row input{padding:8px 12px;font-size:13px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#0000004d;color:var(--tasker-white);font-family:inherit}.customers-field-row .field-key{width:140px;flex-shrink:0}.customers-field-row .field-value{flex:1}.customers-field-row .field-delete{padding:6px 10px;font-size:12px;flex-shrink:0}.customers-record-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.customers-add-form{display:flex;flex-direction:column;gap:12px;padding:16px;background:#0003;border-radius:8px;margin-top:16px}.customers-add-form input{padding:10px 14px;font-size:14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:var(--tasker-white);font-family:inherit}.customers-add-form input::placeholder{color:#ffffff59}.customers-add-form-buttons{display:flex;gap:8px}.customers-empty{text-align:center;color:#fff6;padding:32px 16px;font-size:14px}@media(max-width:520px){.customers-record-header{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}.customers-record-phone{margin-left:0;font-size:12px}.customers-record-meta{font-size:11px}.customers-field-row{flex-wrap:wrap}.customers-field-row .field-key{width:100%;flex-shrink:1}.customers-field-row .field-value{flex:1;min-width:0}.customers-record-fields{padding:0 12px 12px}.customers-record-actions{flex-wrap:wrap}.customers-search{flex-direction:column}.sp-toolbar{flex-wrap:wrap}}
|