dash-devtools-plus 0.1.1__tar.gz → 0.1.3__tar.gz
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.
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/PKG-INFO +38 -9
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/README.md +32 -8
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus/__init__.py +1 -1
- dash_devtools_plus-0.1.3/dash_devtools_plus/assets/dash_devtools_plus.css +2 -0
- dash_devtools_plus-0.1.3/dash_devtools_plus/assets/dash_devtools_plus.js +414 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus/hook_inventory.py +6 -1
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus/plugin.py +136 -3
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus.egg-info/PKG-INFO +38 -9
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus.egg-info/SOURCES.txt +1 -0
- dash_devtools_plus-0.1.3/dash_devtools_plus.egg-info/requires.txt +14 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/pyproject.toml +8 -1
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/tests/test_example_app.py +39 -4
- dash_devtools_plus-0.1.3/tests/test_fastapi_backend.py +138 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/tests/test_plugin.py +60 -0
- dash_devtools_plus-0.1.1/dash_devtools_plus/assets/dash_devtools_plus.css +0 -2
- dash_devtools_plus-0.1.1/dash_devtools_plus/assets/dash_devtools_plus.js +0 -412
- dash_devtools_plus-0.1.1/dash_devtools_plus.egg-info/requires.txt +0 -7
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/LICENSE +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus/server_metrics.py +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus.egg-info/dependency_links.txt +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus.egg-info/entry_points.txt +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/dash_devtools_plus.egg-info/top_level.txt +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/setup.cfg +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/tests/test_hook_inventory.py +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/tests/test_i18n.py +0 -0
- {dash_devtools_plus-0.1.1 → dash_devtools_plus-0.1.3}/tests/test_server_metrics.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dash-devtools-plus
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: A focused developer console for Dash applications, powered by Dash hooks.
|
|
5
5
|
Author: dash-devtools-plus contributors
|
|
6
6
|
License-Expression: MIT
|
|
@@ -14,15 +14,20 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
18
|
Requires-Python: >=3.9
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
License-File: LICENSE
|
|
20
21
|
Requires-Dist: dash>=3.4.0
|
|
22
|
+
Requires-Dist: importlib-metadata>=4.0; python_version < "3.10"
|
|
21
23
|
Requires-Dist: psutil>=5.9
|
|
22
24
|
Provides-Extra: dev
|
|
23
25
|
Requires-Dist: build>=1.2.2; extra == "dev"
|
|
26
|
+
Requires-Dist: httpx>=0.28; extra == "dev"
|
|
24
27
|
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
25
28
|
Requires-Dist: ruff>=0.9; extra == "dev"
|
|
29
|
+
Provides-Extra: fastapi
|
|
30
|
+
Requires-Dist: dash[fastapi]>=4.2; extra == "fastapi"
|
|
26
31
|
Dynamic: license-file
|
|
27
32
|
|
|
28
33
|
<p align="center">
|
|
@@ -31,6 +36,13 @@ Dynamic: license-file
|
|
|
31
36
|
|
|
32
37
|
<h1 align="center">Dash Devtools Plus</h1>
|
|
33
38
|
|
|
39
|
+
<p align="center">
|
|
40
|
+
<a href="https://pypi.org/project/dash-devtools-plus/"><img src="https://img.shields.io/pypi/v/dash-devtools-plus" alt="PyPI version"></a>
|
|
41
|
+
<a href="https://pypi.org/project/dash-devtools-plus/"><img src="https://img.shields.io/pypi/pyversions/dash-devtools-plus" alt="Python versions"></a>
|
|
42
|
+
<a href="https://github.com/CNFeffery/dash-devtools-plus/actions/workflows/ci.yml"><img src="https://github.com/CNFeffery/dash-devtools-plus/actions/workflows/ci.yml/badge.svg" alt="CI status"></a>
|
|
43
|
+
<a href="./LICENSE"><img src="https://img.shields.io/github/license/CNFeffery/dash-devtools-plus?color=0A7ECB" alt="MIT License"></a>
|
|
44
|
+
</p>
|
|
45
|
+
|
|
34
46
|
<p align="center">
|
|
35
47
|
A Dash development and debugging enhancement plugin ✨, powered by Dash Hooks.
|
|
36
48
|
</p>
|
|
@@ -39,7 +51,7 @@ Dynamic: license-file
|
|
|
39
51
|
English | <a href="./README-zh_CN.md">简体中文</a>
|
|
40
52
|
</p>
|
|
41
53
|
|
|
42
|
-
✨ Dash Devtools Plus adds a focused drawer to Dash's native Dev Tools: trace callbacks, inspect components, capture state, understand direct imports, watch server resources, and tailor the toolbar—all while keeping the running app in view. It is available only in an explicitly debug-enabled Dash session, so development metadata stays out of ordinary production use.
|
|
54
|
+
✨ Dash Devtools Plus adds a focused drawer to Dash's native Dev Tools: trace callbacks, inspect components, capture state, understand direct imports, watch server resources, collect runtime context, and tailor the toolbar—all while keeping the running app in view. It is available only in an explicitly debug-enabled Dash session, so development metadata stays out of ordinary production use.
|
|
43
55
|
|
|
44
56
|
## 🚀 Open Devtools Plus
|
|
45
57
|
|
|
@@ -53,11 +65,10 @@ Start a Dash application in debug mode, then select **Devtools Plus** from the n
|
|
|
53
65
|
pip install dash-devtools-plus -U
|
|
54
66
|
```
|
|
55
67
|
|
|
68
|
+
After installation, Dash automatically discovers and registers Devtools Plus through its `dash_hooks` entry point. No `dash_devtools_plus` import or `configure_devtools_plus()` call is needed when the default settings are sufficient.
|
|
69
|
+
|
|
56
70
|
```python
|
|
57
71
|
from dash import Dash, html
|
|
58
|
-
from dash_devtools_plus import configure_devtools_plus
|
|
59
|
-
|
|
60
|
-
configure_devtools_plus(default_locale="en")
|
|
61
72
|
|
|
62
73
|
app = Dash(__name__)
|
|
63
74
|
app.layout = html.Div("Hello, Dash Devtools Plus")
|
|
@@ -66,7 +77,7 @@ if __name__ == "__main__":
|
|
|
66
77
|
app.run(debug=True)
|
|
67
78
|
```
|
|
68
79
|
|
|
69
|
-
The
|
|
80
|
+
The panel appears only when debug mode and Dash's native Dev Tools UI are both enabled. To override the defaults, call `configure_devtools_plus()` before creating the `Dash` instance.
|
|
70
81
|
|
|
71
82
|
For full installation notes, see [Quick start](./docs/en/quick-start.md).
|
|
72
83
|
|
|
@@ -74,14 +85,17 @@ For full installation notes, see [Quick start](./docs/en/quick-start.md).
|
|
|
74
85
|
|
|
75
86
|
| Workspace | What it provides | Documentation |
|
|
76
87
|
| --- | --- | --- |
|
|
77
|
-
| Server resource monitor | Live CPU, memory, disk, and host/runtime information. | [Open guide](./docs/en/features/server-metrics.md) |
|
|
78
88
|
| Callback relationships | Searchable callback graph data, source locations, role lists, docstrings, and execution metadata. | [Open guide](./docs/en/features/callbacks.md) |
|
|
89
|
+
| Server resource monitor | Live CPU, memory, disk, and host/runtime information. | [Open guide](./docs/en/features/server-metrics.md) |
|
|
79
90
|
| Component inspector | Click a rendered page element and map it to its Dash component, layout path, and current props. | [Open guide](./docs/en/features/component-inspector.md) |
|
|
80
91
|
| State snapshots | Capture selected component props and restore them within the current browser tab. | [Open guide](./docs/en/features/state-snapshots.md) |
|
|
81
92
|
| Imported dependencies | Direct project imports grouped as standard library, Dash components, Dash Hooks, or other libraries. | [Open guide](./docs/en/features/dependencies.md) |
|
|
82
93
|
| Toolbar skins | Preview and apply native Dash Dev Tools toolbar and error-display themes. | [Open guide](./docs/en/features/toolbar-skins.md) |
|
|
94
|
+
| Runtime environment | Collect essential Python, system, browser, and third-party package versions, then copy an issue-ready report. | [Open guide](./docs/en/features/runtime-environment.md) |
|
|
83
95
|
|
|
84
|
-
## ⚙️
|
|
96
|
+
## ⚙️ Optional configuration
|
|
97
|
+
|
|
98
|
+
Use `configure_devtools_plus()` only when you need to override the defaults, such as the language, accent color, editor, or project roots.
|
|
85
99
|
|
|
86
100
|
```python
|
|
87
101
|
from pathlib import Path
|
|
@@ -107,16 +121,31 @@ See [Configuration](./docs/en/configuration.md) for behavior, validation rules,
|
|
|
107
121
|
|
|
108
122
|
## 🧪 Example applications
|
|
109
123
|
|
|
110
|
-
|
|
124
|
+
Four applications in [`examples/`](./examples/) cover increasingly complex use cases:
|
|
111
125
|
|
|
112
126
|
| Example | Focus | Run |
|
|
113
127
|
| --- | --- | --- |
|
|
114
128
|
| `simple` | One server callback and one clientside callback. | `python examples/simple/app.py` |
|
|
115
129
|
| `intermediate` | A travel-budget planner built with Dash core components. | `python examples/intermediate/app.py` |
|
|
116
130
|
| `comprehensive` | A large callback laboratory for acceptance testing all workspaces. | `python examples/comprehensive/app.py` |
|
|
131
|
+
| `fastapi` | A WebSocket-powered server-time stream with FastAPI APIs. | `python examples/fastapi/app.py` |
|
|
117
132
|
|
|
118
133
|
They share port `8050`; run one at a time. Read [Example applications](./docs/en/examples.md) before using the comprehensive callback laboratory.
|
|
119
134
|
|
|
135
|
+
## FastAPI backend
|
|
136
|
+
|
|
137
|
+
Dash's FastAPI backend requires Dash 4.2 or later. Install the optional extra,
|
|
138
|
+
then construct Dash with `backend="fastapi"` or provide an existing FastAPI
|
|
139
|
+
server:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pip install "dash-devtools-plus[fastapi]"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
See the [`fastapi` example](./examples/fastapi/app.py) for a small server-time
|
|
146
|
+
stream that uses `websocket_callbacks=True`, `ctx.websocket.get_prop`, and
|
|
147
|
+
`set_props`, alongside custom asynchronous FastAPI APIs.
|
|
148
|
+
|
|
120
149
|
## 🛠️ Development
|
|
121
150
|
|
|
122
151
|
Use the project environments described by the repository setup, then run:
|
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
<h1 align="center">Dash Devtools Plus</h1>
|
|
6
6
|
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://pypi.org/project/dash-devtools-plus/"><img src="https://img.shields.io/pypi/v/dash-devtools-plus" alt="PyPI version"></a>
|
|
9
|
+
<a href="https://pypi.org/project/dash-devtools-plus/"><img src="https://img.shields.io/pypi/pyversions/dash-devtools-plus" alt="Python versions"></a>
|
|
10
|
+
<a href="https://github.com/CNFeffery/dash-devtools-plus/actions/workflows/ci.yml"><img src="https://github.com/CNFeffery/dash-devtools-plus/actions/workflows/ci.yml/badge.svg" alt="CI status"></a>
|
|
11
|
+
<a href="./LICENSE"><img src="https://img.shields.io/github/license/CNFeffery/dash-devtools-plus?color=0A7ECB" alt="MIT License"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
7
14
|
<p align="center">
|
|
8
15
|
A Dash development and debugging enhancement plugin ✨, powered by Dash Hooks.
|
|
9
16
|
</p>
|
|
@@ -12,7 +19,7 @@
|
|
|
12
19
|
English | <a href="./README-zh_CN.md">简体中文</a>
|
|
13
20
|
</p>
|
|
14
21
|
|
|
15
|
-
✨ Dash Devtools Plus adds a focused drawer to Dash's native Dev Tools: trace callbacks, inspect components, capture state, understand direct imports, watch server resources, and tailor the toolbar—all while keeping the running app in view. It is available only in an explicitly debug-enabled Dash session, so development metadata stays out of ordinary production use.
|
|
22
|
+
✨ Dash Devtools Plus adds a focused drawer to Dash's native Dev Tools: trace callbacks, inspect components, capture state, understand direct imports, watch server resources, collect runtime context, and tailor the toolbar—all while keeping the running app in view. It is available only in an explicitly debug-enabled Dash session, so development metadata stays out of ordinary production use.
|
|
16
23
|
|
|
17
24
|
## 🚀 Open Devtools Plus
|
|
18
25
|
|
|
@@ -26,11 +33,10 @@ Start a Dash application in debug mode, then select **Devtools Plus** from the n
|
|
|
26
33
|
pip install dash-devtools-plus -U
|
|
27
34
|
```
|
|
28
35
|
|
|
36
|
+
After installation, Dash automatically discovers and registers Devtools Plus through its `dash_hooks` entry point. No `dash_devtools_plus` import or `configure_devtools_plus()` call is needed when the default settings are sufficient.
|
|
37
|
+
|
|
29
38
|
```python
|
|
30
39
|
from dash import Dash, html
|
|
31
|
-
from dash_devtools_plus import configure_devtools_plus
|
|
32
|
-
|
|
33
|
-
configure_devtools_plus(default_locale="en")
|
|
34
40
|
|
|
35
41
|
app = Dash(__name__)
|
|
36
42
|
app.layout = html.Div("Hello, Dash Devtools Plus")
|
|
@@ -39,7 +45,7 @@ if __name__ == "__main__":
|
|
|
39
45
|
app.run(debug=True)
|
|
40
46
|
```
|
|
41
47
|
|
|
42
|
-
The
|
|
48
|
+
The panel appears only when debug mode and Dash's native Dev Tools UI are both enabled. To override the defaults, call `configure_devtools_plus()` before creating the `Dash` instance.
|
|
43
49
|
|
|
44
50
|
For full installation notes, see [Quick start](./docs/en/quick-start.md).
|
|
45
51
|
|
|
@@ -47,14 +53,17 @@ For full installation notes, see [Quick start](./docs/en/quick-start.md).
|
|
|
47
53
|
|
|
48
54
|
| Workspace | What it provides | Documentation |
|
|
49
55
|
| --- | --- | --- |
|
|
50
|
-
| Server resource monitor | Live CPU, memory, disk, and host/runtime information. | [Open guide](./docs/en/features/server-metrics.md) |
|
|
51
56
|
| Callback relationships | Searchable callback graph data, source locations, role lists, docstrings, and execution metadata. | [Open guide](./docs/en/features/callbacks.md) |
|
|
57
|
+
| Server resource monitor | Live CPU, memory, disk, and host/runtime information. | [Open guide](./docs/en/features/server-metrics.md) |
|
|
52
58
|
| Component inspector | Click a rendered page element and map it to its Dash component, layout path, and current props. | [Open guide](./docs/en/features/component-inspector.md) |
|
|
53
59
|
| State snapshots | Capture selected component props and restore them within the current browser tab. | [Open guide](./docs/en/features/state-snapshots.md) |
|
|
54
60
|
| Imported dependencies | Direct project imports grouped as standard library, Dash components, Dash Hooks, or other libraries. | [Open guide](./docs/en/features/dependencies.md) |
|
|
55
61
|
| Toolbar skins | Preview and apply native Dash Dev Tools toolbar and error-display themes. | [Open guide](./docs/en/features/toolbar-skins.md) |
|
|
62
|
+
| Runtime environment | Collect essential Python, system, browser, and third-party package versions, then copy an issue-ready report. | [Open guide](./docs/en/features/runtime-environment.md) |
|
|
56
63
|
|
|
57
|
-
## ⚙️
|
|
64
|
+
## ⚙️ Optional configuration
|
|
65
|
+
|
|
66
|
+
Use `configure_devtools_plus()` only when you need to override the defaults, such as the language, accent color, editor, or project roots.
|
|
58
67
|
|
|
59
68
|
```python
|
|
60
69
|
from pathlib import Path
|
|
@@ -80,16 +89,31 @@ See [Configuration](./docs/en/configuration.md) for behavior, validation rules,
|
|
|
80
89
|
|
|
81
90
|
## 🧪 Example applications
|
|
82
91
|
|
|
83
|
-
|
|
92
|
+
Four applications in [`examples/`](./examples/) cover increasingly complex use cases:
|
|
84
93
|
|
|
85
94
|
| Example | Focus | Run |
|
|
86
95
|
| --- | --- | --- |
|
|
87
96
|
| `simple` | One server callback and one clientside callback. | `python examples/simple/app.py` |
|
|
88
97
|
| `intermediate` | A travel-budget planner built with Dash core components. | `python examples/intermediate/app.py` |
|
|
89
98
|
| `comprehensive` | A large callback laboratory for acceptance testing all workspaces. | `python examples/comprehensive/app.py` |
|
|
99
|
+
| `fastapi` | A WebSocket-powered server-time stream with FastAPI APIs. | `python examples/fastapi/app.py` |
|
|
90
100
|
|
|
91
101
|
They share port `8050`; run one at a time. Read [Example applications](./docs/en/examples.md) before using the comprehensive callback laboratory.
|
|
92
102
|
|
|
103
|
+
## FastAPI backend
|
|
104
|
+
|
|
105
|
+
Dash's FastAPI backend requires Dash 4.2 or later. Install the optional extra,
|
|
106
|
+
then construct Dash with `backend="fastapi"` or provide an existing FastAPI
|
|
107
|
+
server:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
pip install "dash-devtools-plus[fastapi]"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
See the [`fastapi` example](./examples/fastapi/app.py) for a small server-time
|
|
114
|
+
stream that uses `websocket_callbacks=True`, `ctx.websocket.get_prop`, and
|
|
115
|
+
`set_props`, alongside custom asynchronous FastAPI APIs.
|
|
116
|
+
|
|
93
117
|
## 🛠️ Development
|
|
94
118
|
|
|
95
119
|
Use the project environments described by the repository setup, then run:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from .plugin import configure_devtools_plus, register
|
|
4
4
|
|
|
5
|
-
__version__ = "0.1.
|
|
5
|
+
__version__ = "0.1.3"
|
|
6
6
|
|
|
7
7
|
# Loading the ``dash_hooks`` entry point imports this module. Registration is
|
|
8
8
|
# idempotent, so explicit imports and automatic discovery can safely coexist.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root{--ddp-primary:#119dff;--ddp-ink:#172b3f;--ddp-muted:#687d91;--ddp-canvas:#f4f7fa;--ddp-surface:#fff;--ddp-line:#dce5ed;--ddp-line-soft:#eaf0f4;--ddp-panel:#fff;--ddp-panel-soft:#f7f9fb;--ddp-control:#fffffff0;--ddp-hover:#f5faff;--ddp-code:#f4f7f9;--ddp-code-ink:#4f667c;--ddp-shadow:#23394d12;--ddp-scrollbar:#c5d0da;--ddp-font:"Aptos", "Noto Sans SC", "Segoe UI", sans-serif;--ddp-mono:"Cascadia Code", "SFMono-Regular", Consolas, monospace;--ddp-text-xs:12px;--ddp-text-sm:13px;--ddp-text-md:14px;--ddp-text-lg:20px}.ddp-ant-root,.ddp-drawer{font-family:var(--ddp-font)}.ddp-ant-root .ant-drawer-mask{-webkit-backdrop-filter:blur(5px)saturate(.9);backdrop-filter:blur(5px)saturate(.9);background:#42526352}.ddp-ant-root .ant-drawer-content-wrapper{box-shadow:20px 0 60px #1c304433,4px 0 14px #1c304414}.ddp-drawer{background:var(--ddp-surface);border-right:1px solid var(--ddp-line);overflow:hidden}.ddp-drawer .ant-drawer-header{background:var(--ddp-surface);border-bottom:1px solid var(--ddp-line-soft);padding:0}.ddp-drawer .ant-drawer-title{line-height:normal}.ddp-drawer .ant-drawer-body{flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.ddp-drawer,.ddp-drawer *{box-sizing:border-box}.ddp-drawer-header{justify-content:space-between;align-items:center;height:72px;padding:12px 18px 12px 20px;display:flex}.ddp-brand,.ddp-header-actions,.ddp-brand-title{align-items:center;display:flex}.ddp-brand{gap:12px;min-width:0}.ddp-brand>div{flex-direction:column;gap:2px;min-width:0;display:flex}.ddp-brand-title{gap:8px}.ddp-project-version{background:color-mix(in srgb, var(--ddp-primary) 10%, var(--ddp-surface));border:1px solid color-mix(in srgb, var(--ddp-primary) 22%, var(--ddp-line));color:var(--ddp-primary);font-family:var(--ddp-mono);letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-self:center;align-items:center;height:22px;padding:0 7px;font-size:11px;font-weight:650;line-height:normal;display:inline-flex}.ddp-brand strong{color:var(--ddp-ink);font-size:var(--ddp-text-lg);letter-spacing:-.025em;font-weight:680}.ddp-brand>div>span{color:var(--ddp-muted);font-size:var(--ddp-text-sm);font-weight:400;line-height:1.35}.ddp-brand-mark{box-shadow:0 3px 9px color-mix(in srgb, var(--ddp-primary) 22%, transparent);border-radius:11px;flex:none;align-items:center;width:42px;height:42px;display:inline-flex;overflow:hidden}.ddp-brand-logo{width:100%;height:100%;display:block}.ddp-header-actions{gap:8px}.ddp-header-actions .ant-btn{color:var(--ddp-muted);width:38px;height:38px;font-size:15px}.ddp-header-actions .ant-btn:hover{background:var(--ddp-hover);color:var(--ddp-ink)}.ddp-language-control{align-items:center;gap:6px;display:flex}.ddp-language-icon{color:var(--ddp-muted);font-size:14px}.ddp-language-segmented{border:1px solid var(--ddp-line);box-shadow:inset 0 1px 2px #1b314506}.ddp-language-segmented .ant-segmented-item{min-width:72px;transition:color .16s,background-color .16s}.ddp-language-segmented .ant-segmented-item-label{font-size:var(--ddp-text-xs);padding-inline:7px;font-weight:650;line-height:24px}.ddp-language-segmented .ant-segmented-item-selected{box-shadow:0 1px 4px #1930451f}.ddp-content{background:radial-gradient(circle at 2% 0%, color-mix(in srgb, var(--ddp-primary) 5%, transparent), transparent 28%), linear-gradient(180deg, var(--ddp-panel-soft) 0, var(--ddp-canvas) 180px);flex:auto;min-height:0;transition:background-color .18s,color .18s;animation:.22s cubic-bezier(.22,1,.36,1) ddp-panel-enter;overflow:hidden}.ddp-main-tabs{flex-direction:column;height:100%;min-height:0;display:flex}.ddp-main-tabs>.ant-tabs-nav{background:var(--ddp-surface);flex:none;min-height:50px;margin:0;padding:0 20px}.ddp-main-tabs>.ant-tabs-nav:before{border-bottom-color:var(--ddp-line-soft)}.ddp-main-tabs>.ant-tabs-nav .ant-tabs-tab{font-size:12px;font-weight:620}.ddp-main-tabs>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:22px}.ddp-main-tabs>.ant-tabs-nav .ant-tabs-ink-bar{border-radius:999px 999px 0 0;height:3px}.ddp-tab-label{align-items:center;gap:7px;display:inline-flex}.ddp-tab-label .anticon{font-size:15px}.ddp-main-tabs>.ant-tabs-body-holder{flex:auto;min-height:0}.ddp-main-tabs.has-pane-scroll,.ddp-main-tabs.has-pane-scroll>.ant-tabs-body-holder,.ddp-main-tabs.has-pane-scroll>.ant-tabs-body-holder>.ant-tabs-body,.ddp-main-tabs.has-pane-scroll>.ant-tabs-body-holder>.ant-tabs-body>.ant-tabs-content{overflow:hidden}.ddp-main-tabs.has-pane-scroll>.ant-tabs-body-holder>.ant-tabs-body,.ddp-main-tabs.has-pane-scroll>.ant-tabs-body-holder>.ant-tabs-body>.ant-tabs-content{height:100%;min-height:0}@keyframes ddp-panel-enter{0%{opacity:0;transform:translate(-7px)}to{opacity:1;transform:translate(0)}}.ddp-panel{flex-direction:column;height:100%;min-height:0;padding:20px;display:flex}.ddp-workspace-header{flex:none;justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.ddp-workspace-title,.ddp-workspace-actions{align-items:center;display:flex}.ddp-workspace-title{gap:11px}.ddp-workspace-icon{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 20%, var(--ddp-panel));color:var(--ddp-primary);border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:17px;display:inline-flex}.ddp-eyebrow{color:var(--ddp-muted);font-family:var(--ddp-mono);letter-spacing:.11em;text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:750;line-height:1.2}.ddp-workspace-title h2{color:var(--ddp-ink);letter-spacing:-.015em;margin:0;font-size:18px;font-weight:680;line-height:1.25}.ddp-workspace-actions{gap:13px}.ddp-count-line{background:color-mix(in srgb, var(--ddp-panel) 82%, transparent);border:1px solid var(--ddp-line-soft);color:var(--ddp-muted);font-size:var(--ddp-text-sm);border-radius:999px;align-items:center;gap:9px;min-height:34px;padding:5px 12px;display:flex}.ddp-count-line strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:var(--ddp-text-md);font-weight:700}.ddp-count-line i{background:var(--ddp-line);width:1px;height:14px;display:inline-block}.ddp-refresh-button.ant-btn{color:var(--ddp-muted);width:38px;height:38px}.ddp-commandbar{background:var(--ddp-control);border:1px solid var(--ddp-line);box-shadow:0 4px 14px var(--ddp-shadow);border-radius:12px;flex:none;grid-template-columns:42px minmax(260px,1fr) 174px 174px;align-items:center;gap:0;min-height:48px;margin-bottom:12px;padding:4px;transition:border-color .16s,box-shadow .16s;display:grid}.ddp-commandbar:focus-within{border-color:color-mix(in srgb, var(--ddp-primary) 38%, #d3dde6);box-shadow:0 0 0 3px color-mix(in srgb, var(--ddp-primary) 8%, transparent), 0 5px 16px #1f364b0d}.ddp-commandbar-icon{color:var(--ddp-muted);justify-content:center;align-items:center;font-size:15px;display:inline-flex}.ddp-commandbar .ant-input-affix-wrapper{min-height:38px;padding-inline:5px 10px}.ddp-commandbar .ant-input,.ddp-commandbar .ant-select-selection-item,.ddp-commandbar .ant-select-selection-placeholder{font-size:var(--ddp-text-md)}.ddp-commandbar .ant-input-prefix{color:var(--ddp-muted);margin-right:8px;font-size:15px}.ddp-commandbar .ant-select{border-left:1px solid var(--ddp-line-soft);width:100%;height:38px}.ddp-commandbar .ant-select-selector{padding-inline:14px 11px!important}.ddp-select-popup .ant-select-item-option-active:not(.ant-select-item-option-selected),.ant-select-dropdown.dash-devtools-plus .ant-select-item-option-active:not(.ant-select-item-option-selected){background:#f4faf8!important}.ddp-select-popup .ant-select-item-option-selected:not(.ant-select-item-option-disabled),.ant-select-dropdown.dash-devtools-plus .ant-select-item-option-selected:not(.ant-select-item-option-disabled){font-weight:650;color:#2d6f62!important;background:#e8f6f1!important}.ddp-select-popup .ant-select-item-option-selected.ant-select-item-option-active,.ant-select-dropdown.dash-devtools-plus .ant-select-item-option-selected.ant-select-item-option-active{background:#e1f2ec!important}.ant-select-dropdown.ddp-callback-select-popup .ant-select-item-option-active:not(.ant-select-item-option-selected){background:color-mix(in srgb, var(--ddp-primary) 7%, #fff)!important}.ant-select-dropdown.ddp-callback-select-popup .ant-select-item-option-selected:not(.ant-select-item-option-disabled){font-weight:650;background:color-mix(in srgb, var(--ddp-primary) 12%, #fff)!important;color:color-mix(in srgb, var(--ddp-primary) 72%, #17324a)!important}.ant-select-dropdown.ddp-callback-select-popup .ant-select-item-option-selected.ant-select-item-option-active{background:color-mix(in srgb, var(--ddp-primary) 17%, #fff)!important}.ddp-inline-alert{flex:none;margin-bottom:11px}.ddp-callback-panel{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-gutter:stable;scrollbar-width:thin;overflow-y:auto}.ddp-table-shell{background:var(--ddp-panel);border:1px solid var(--ddp-line);box-shadow:0 8px 24px var(--ddp-shadow);border-radius:13px;flex:none;min-height:0;overflow:hidden}.ddp-table-shell .ant-table-wrapper,.ddp-table-shell .ant-spin-container{height:auto}.ddp-table-shell .ant-table-wrapper{display:block}.ddp-table-shell .ant-table-wrapper>.ant-spin{min-height:0}.ddp-table-shell .ant-spin-container{display:block}.ddp-table-shell .ant-table{color:var(--ddp-ink);font-size:var(--ddp-text-sm)}.ddp-table-shell .ant-table-thead>tr>th{border-bottom-color:var(--ddp-line);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);letter-spacing:.025em;text-transform:none;font-weight:750}.ddp-table-shell .ant-table-thead>tr>th,.ddp-table-shell .ant-table-tbody>tr>td{line-height:1.5}.ddp-table-shell .ant-table-tbody>tr>td{border-bottom-color:var(--ddp-line-soft);vertical-align:top}.ddp-table-shell .ant-table-tbody>tr:hover>td{background:var(--ddp-hover)}.ddp-table-shell .ant-table-cell-fix-right.ddp-action-cell,.ddp-table-shell .ant-table-cell-fix-end.ddp-action-cell{background:var(--ddp-panel);border-left:1px solid var(--ddp-line-soft);padding-inline:8px}.ddp-table-shell .ant-table-thead .ant-table-cell-fix-right.ddp-action-cell,.ddp-table-shell .ant-table-thead .ant-table-cell-fix-end.ddp-action-cell{background:var(--ddp-panel-soft)}.ddp-table-shell .ant-table-tbody>tr:hover>.ant-table-cell-fix-right.ddp-action-cell,.ddp-table-shell .ant-table-tbody>tr:hover>.ant-table-cell-fix-end.ddp-action-cell{background:var(--ddp-hover)}.ddp-table-shell .ant-table-cell-fix-right-first:after,.ddp-table-shell .ant-table-cell-fix-end-shadow:after{box-shadow:inset -9px 0 9px -9px #1f374c29}.ddp-detail-button.ant-btn{color:var(--ddp-primary);font-size:var(--ddp-text-xs);border-radius:7px;gap:4px;height:24px;padding-inline:5px}.ddp-detail-button.ant-btn:hover{background:color-mix(in srgb, var(--ddp-primary) 10%, var(--ddp-panel));color:color-mix(in srgb, var(--ddp-primary) 76%, var(--ddp-ink))}.ddp-table-shell .ant-table-pagination.ant-pagination{background:var(--ddp-panel-soft);border-top:1px solid var(--ddp-line-soft);align-items:center;min-height:54px;margin:0;padding:9px 13px;margin-top:auto!important}.ddp-table-shell .ant-pagination-total-text{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);margin-right:auto}.ddp-table-shell .ant-pagination-item{border:1px solid #0000}.ddp-table-shell .ant-pagination-item-active{border-color:color-mix(in srgb, var(--ddp-primary) 28%, var(--ddp-panel))}.ddp-table-shell .ant-tag{font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);text-transform:uppercase;border:0;margin-inline-end:0;padding-inline:7px;font-weight:650;line-height:22px}.ddp-hidden-icon{color:var(--ddp-muted)}.ddp-source-location{font:inherit;text-align:left;background:0 0;border:0;border-radius:7px;flex-direction:column;gap:3px;width:100%;min-width:0;margin:-4px;padding:4px;text-decoration:none;transition:background-color .16s,box-shadow .16s;display:flex}.ddp-source-location.is-actionable{cursor:pointer}.ddp-source-location.is-actionable:hover,.ddp-source-location.is-actionable:focus-visible{background:color-mix(in srgb, var(--ddp-primary) 8%, var(--ddp-panel));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ddp-primary) 16%, transparent);outline:none}.ddp-source-location>code{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.ddp-source-location>span{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ddp-source-location>span>b{color:var(--ddp-primary);font-weight:750}.ddp-source-open-icon{color:var(--ddp-primary);opacity:.7;margin-left:6px;font-size:10px;transition:opacity .16s,transform .16s;display:inline-flex}.ddp-source-location.is-actionable:hover .ddp-source-open-icon,.ddp-source-location.is-actionable:focus-visible .ddp-source-open-icon{opacity:1;transform:translateY(1px)}.ddp-editor-dropdown .ant-dropdown-menu{border:1px solid var(--ddp-line);border-radius:11px;min-width:190px;padding:7px;box-shadow:0 12px 30px #1b304224,0 2px 7px #1b30420f}.ddp-editor-dropdown .ant-dropdown-menu-item{border-radius:7px;height:36px;line-height:normal;padding:0!important}.ddp-editor-dropdown .ant-dropdown-menu-item:not(.ant-dropdown-menu-item-disabled):hover{background:#f3f6f8!important}.ddp-editor-option{box-sizing:border-box;color:var(--ddp-ink);grid-template-columns:18px minmax(0,1fr);align-items:center;gap:9px;height:36px;padding:5px 8px;text-decoration:none;display:grid}.ddp-editor-option>.ddp-editor-logo{justify-content:center;align-items:center;width:18px;height:18px;display:flex}.ddp-editor-logo>svg{width:16px;height:16px;display:block}.ddp-editor-name{font-size:13px;font-weight:520;line-height:1.25}.ddp-editor-option.is-disabled{cursor:not-allowed}.ddp-editor-dropdown .ant-dropdown-menu-item-disabled .ddp-editor-option{filter:grayscale(.7);opacity:.38}.ddp-source-unavailable{color:var(--ddp-muted);font-size:var(--ddp-text-xs);line-height:1.45}.ddp-docstring-preview{background:linear-gradient(145deg, color-mix(in srgb, var(--ddp-primary) 4%, var(--ddp-panel)), var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 13%, var(--ddp-line));color:var(--ddp-code-ink);cursor:help;text-align:left;border-radius:8px;width:100%;min-height:50px;padding:6px 8px 7px;transition:background-color .16s,border-color .16s,box-shadow .16s;display:block}.ddp-docstring-preview:hover,.ddp-docstring-preview:focus-visible{border-color:color-mix(in srgb, var(--ddp-primary) 27%, var(--ddp-line));box-shadow:0 4px 12px color-mix(in srgb, var(--ddp-primary) 8%, transparent);outline:none}.ddp-docstring-preview>span{color:color-mix(in srgb, var(--ddp-primary) 72%, var(--ddp-ink));letter-spacing:.03em;align-items:center;gap:5px;margin-bottom:3px;font-size:10px;font-weight:700;display:flex}.ddp-docstring-preview pre{font:500 11px/1.55 var(--ddp-mono);tab-size:4;white-space:pre-wrap;max-height:34px;margin:0;overflow:hidden}.ddp-docstring-empty{color:color-mix(in srgb, var(--ddp-muted) 76%, var(--ddp-panel));font-size:var(--ddp-text-xs);align-items:center;gap:6px;line-height:1.45;display:flex}.ddp-docstring-empty .anticon{color:color-mix(in srgb, var(--ddp-muted) 52%, var(--ddp-panel))}.ddp-docstring-popover-root .ant-popover-inner{border:1px solid var(--ddp-line);border-radius:12px;padding:0;box-shadow:0 16px 42px #1b304229,0 3px 9px #1b30420f}.ddp-docstring-popover{min-width:340px;max-width:min(520px,100vw - 48px)}.ddp-docstring-popover-heading{background:linear-gradient(110deg, color-mix(in srgb, var(--ddp-primary) 8%, var(--ddp-panel)), var(--ddp-panel));border-bottom:1px solid var(--ddp-line-soft);align-items:center;gap:9px;padding:10px 12px;display:flex}.ddp-docstring-popover-heading>span{background:var(--ddp-panel);border:1px solid color-mix(in srgb, var(--ddp-primary) 18%, var(--ddp-line));color:var(--ddp-primary);border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.ddp-docstring-popover-heading>div{flex-direction:column;display:flex}.ddp-docstring-popover-heading strong{color:var(--ddp-ink);font-size:var(--ddp-text-sm)}.ddp-docstring-popover-heading small{color:var(--ddp-muted);font-size:10px}.ddp-docstring-popover>pre{color:var(--ddp-code-ink);font:500 12px/1.7 var(--ddp-mono);scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;tab-size:4;white-space:pre-wrap;max-height:360px;margin:0;padding:13px 14px 15px;overflow:auto}.ddp-role-preview{color:var(--ddp-code-ink);cursor:help;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;min-width:0;max-width:100%;padding:0;display:grid}.ddp-role-preview-icon{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-muted);border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.ddp-role-preview code{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;min-width:0;padding:3px 7px;line-height:1.55;transition:background .16s,border-color .16s,color .16s;display:block;overflow:hidden}.ddp-role-preview>b{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line);color:var(--ddp-muted);font-family:var(--ddp-mono);border-radius:999px;justify-content:center;align-items:center;min-width:25px;height:22px;padding-inline:5px;font-size:10px;font-weight:750;display:inline-flex}.ddp-role-preview:hover code,.ddp-role-preview:focus-visible code{border-color:color-mix(in srgb, var(--ddp-primary) 25%, var(--ddp-line));color:color-mix(in srgb, var(--ddp-primary) 68%, var(--ddp-ink))}.ddp-role-preview:hover .ddp-role-preview-icon,.ddp-role-preview:focus-visible .ddp-role-preview-icon{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 22%, var(--ddp-line));color:var(--ddp-primary)}.ddp-role-preview:focus-visible{outline:2px solid color-mix(in srgb, var(--ddp-primary) 30%, transparent);outline-offset:2px;border-radius:7px}.ddp-role-preview.is-output code{background:color-mix(in srgb, var(--ddp-primary) 7%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 17%, var(--ddp-line))}.ddp-no-output-role{background:color-mix(in srgb, #f59e0b 8%, var(--ddp-panel));border:1px solid color-mix(in srgb, #f59e0b 24%, var(--ddp-line));color:#a15c07;font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:6px 8px;font-weight:680;line-height:1;display:inline-flex}.ddp-role-popover-root{max-width:min(430px,100vw - 32px);z-index:100030!important}.ddp-role-popover-root .ant-popover-inner{border:1px solid var(--ddp-line);border-radius:12px;padding:0;overflow:hidden;box-shadow:0 18px 48px #1b31452e,0 2px 8px #1b314512}.ddp-role-popover{min-width:300px}.ddp-role-popover-heading{background:var(--ddp-panel-soft);border-bottom:1px solid var(--ddp-line-soft);grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 12px;display:grid}.ddp-role-popover-heading>span{background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);color:var(--ddp-primary);border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.ddp-role-popover-heading>div{flex-direction:column;min-width:0;display:flex}.ddp-role-popover-heading strong{color:var(--ddp-ink);font-size:var(--ddp-text-sm);line-height:1.35}.ddp-role-popover-heading small{color:var(--ddp-muted);font-size:11px}.ddp-role-popover-heading>b{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));color:var(--ddp-primary);font-family:var(--ddp-mono);border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;padding-inline:6px;font-size:11px;display:inline-flex}.ddp-role-popover-list{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;flex-direction:column;gap:6px;max-height:260px;padding:9px;display:flex;overflow-y:auto}.ddp-role-popover-list>div{grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;display:grid}.ddp-role-popover-list i{color:var(--ddp-muted);font-family:var(--ddp-mono);text-align:center;padding-top:5px;font-size:10px;font-style:normal}.ddp-role-popover-list code{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);overflow-wrap:anywhere;border-radius:7px;padding:5px 7px;font-size:11px}.ddp-muted{color:var(--ddp-muted);font-size:var(--ddp-text-xs)}.ddp-callback-detail-modal-root,.ddp-callback-detail-modal{font-family:var(--ddp-font)}.ddp-callback-detail-modal-root .ant-modal-mask{-webkit-backdrop-filter:blur(5px)saturate(.9);backdrop-filter:blur(5px)saturate(.9);background:#38495b57}.ddp-callback-detail-modal .ant-modal-content{border:1px solid var(--ddp-line);border-radius:16px;max-height:calc(100vh - 32px);padding:0;overflow:hidden;box-shadow:0 28px 80px #1b314533,0 4px 18px #1b314514}.ddp-callback-detail-modal .ant-modal-header{background:radial-gradient(circle at 8% 0, color-mix(in srgb, var(--ddp-primary) 10%, transparent), transparent 42%), var(--ddp-panel);border-bottom:1px solid var(--ddp-line-soft);margin:0;padding:19px 58px 17px 22px}.ddp-callback-detail-modal .ant-modal-close{color:var(--ddp-muted);top:17px;right:17px}.ddp-callback-detail-modal .ant-modal-close:hover{background:var(--ddp-hover);color:var(--ddp-ink)}.ddp-callback-detail-modal .ant-modal-body{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;max-height:calc(100vh - 116px);padding:18px 22px 22px;overflow-y:auto}.ddp-detail-modal-title{align-items:center;gap:12px;min-width:0;display:flex}.ddp-detail-title-mark{background:color-mix(in srgb, var(--ddp-primary) 10%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 22%, var(--ddp-panel));color:var(--ddp-primary);border-radius:11px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:18px;display:inline-flex}.ddp-detail-modal-title>div{flex-direction:column;min-width:0;display:flex}.ddp-detail-modal-title>div>span{color:var(--ddp-muted);font-family:var(--ddp-mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:750;line-height:1.2}.ddp-detail-modal-title strong{color:var(--ddp-ink);font-family:var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:720;line-height:1.45;overflow:hidden}.ddp-detail-intro{justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;display:flex}.ddp-detail-intro p{color:var(--ddp-muted);font-size:var(--ddp-text-md);margin:0;line-height:1.6}.ddp-detail-tags{flex:none;gap:7px;display:flex}.ddp-detail-tags .ant-tag{font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);text-transform:uppercase;border:0;margin:0;padding-inline:8px;font-weight:680;line-height:24px}.ddp-detail-role-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px;display:grid}.ddp-detail-role-summary>div{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);border-radius:11px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:9px 11px;display:grid}.ddp-detail-role-summary>div>span{background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);color:var(--ddp-muted);border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.ddp-detail-role-summary>div.is-output>span,.ddp-detail-role-summary>div.is-total>span{background:color-mix(in srgb, var(--ddp-primary) 8%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 20%, var(--ddp-line));color:var(--ddp-primary)}.ddp-detail-role-summary>div>div{flex-direction:column;min-width:0;display:flex}.ddp-detail-role-summary small{color:var(--ddp-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.ddp-detail-role-summary strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:16px;line-height:1.2}.ddp-detail-source-card{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line);border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:11px;margin-bottom:14px;padding:11px 13px;display:grid}.ddp-detail-source-icon{background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);color:var(--ddp-primary);border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;display:inline-flex}.ddp-detail-source-card>div{flex-direction:column;min-width:0;display:flex}.ddp-detail-source-card>div>span{color:var(--ddp-muted);font-size:var(--ddp-text-xs);font-weight:650}.ddp-detail-source-card>div>strong{color:var(--ddp-ink);font-size:var(--ddp-text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.ddp-detail-source-card>div code,.ddp-detail-function-name{font-family:var(--ddp-mono)}.ddp-detail-source-card>div b{color:var(--ddp-primary)}.ddp-detail-source-link{color:var(--ddp-ink);font-size:var(--ddp-text-sm);text-overflow:ellipsis;white-space:nowrap;border-radius:5px;font-weight:650;text-decoration:none;transition:color .16s;display:block;overflow:hidden}.ddp-detail-source-link:hover,.ddp-detail-source-link:focus-visible{color:var(--ddp-primary);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--ddp-primary) 38%, transparent);text-decoration-color:color-mix(in srgb, var(--ddp-primary) 38%, transparent);text-underline-offset:3px;outline:none}.ddp-detail-source-actions{align-items:center;gap:8px;flex-direction:row!important;display:flex!important}.ddp-open-editor-button.ant-btn{border-color:color-mix(in srgb, var(--ddp-primary) 24%, var(--ddp-line));color:var(--ddp-primary);font-size:var(--ddp-text-xs);font-weight:650}.ddp-open-editor-button.ant-btn:hover,.ddp-open-editor-button.ant-btn:focus-visible{background:color-mix(in srgb, var(--ddp-primary) 7%, var(--ddp-panel))}.ddp-detail-function-name{background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-size:var(--ddp-text-xs);text-overflow:ellipsis;white-space:nowrap;border-radius:7px;max-width:230px;padding:5px 8px;overflow:hidden}.ddp-detail-section{border:1px solid var(--ddp-line);border-radius:13px;margin-top:14px;padding:14px}.ddp-detail-section-heading{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.ddp-detail-section-heading>div{flex-direction:column;display:flex}.ddp-detail-section-heading span{color:var(--ddp-muted);font-family:var(--ddp-mono);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:750}.ddp-detail-section-heading h3{color:var(--ddp-ink);margin:2px 0 0;font-size:16px;font-weight:690}.ddp-detail-section-hint{color:var(--ddp-muted);align-items:center;gap:5px;margin-top:5px;display:inline-flex;font-family:var(--ddp-font)!important;letter-spacing:0!important;text-transform:none!important;font-size:11px!important;font-weight:500!important}.ddp-detail-flow{background:linear-gradient(var(--ddp-panel-soft), var(--ddp-panel-soft)) padding-box, repeating-linear-gradient(90deg, transparent 0 19px, color-mix(in srgb, var(--ddp-line) 44%, transparent) 20px) border-box;border:1px solid var(--ddp-line-soft);border-radius:12px;grid-template-columns:minmax(0,1.15fr) 54px minmax(170px,.72fr) 54px minmax(0,1fr);align-items:stretch;gap:0;padding:12px;display:grid;overflow:hidden}.ddp-detail-upstream{grid-template-rows:repeat(2,minmax(0,1fr));gap:9px;display:grid}.ddp-detail-dependency-group{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);border-radius:10px;min-width:0;overflow:hidden}.ddp-detail-dependency-group.is-output{background:color-mix(in srgb, var(--ddp-primary) 5%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 18%, var(--ddp-line))}.ddp-detail-dependency-heading{border-bottom:1px solid var(--ddp-line-soft);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.ddp-detail-dependency-heading span{color:var(--ddp-muted);font-size:var(--ddp-text-xs);text-transform:uppercase;align-items:center;gap:6px;font-weight:700;display:inline-flex}.ddp-detail-dependency-heading span i{color:var(--ddp-primary);align-items:center;font-size:11px;font-style:normal;display:inline-flex}.ddp-detail-dependency-heading b{background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);color:var(--ddp-ink);font-family:var(--ddp-mono);border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding-inline:5px;font-size:10px;display:inline-flex}.ddp-detail-dependency-list{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;flex-direction:column;gap:5px;min-height:38px;max-height:116px;padding:7px;display:flex;overflow-y:auto}.ddp-detail-dependency{grid-template-columns:23px minmax(0,1fr);align-items:center;gap:7px;min-width:0;display:grid}.ddp-detail-dependency i{color:var(--ddp-muted);font-family:var(--ddp-mono);text-align:center;font-size:9px;font-style:normal}.ddp-detail-dependency code{background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:4px 6px;font-size:11px;overflow:hidden}.ddp-detail-dependency-group.is-output .ddp-detail-dependency code{border-color:color-mix(in srgb, var(--ddp-primary) 18%, var(--ddp-line));color:color-mix(in srgb, var(--ddp-primary) 70%, var(--ddp-ink))}.ddp-detail-empty{color:var(--ddp-muted);align-items:center;min-height:30px;padding-inline:6px;font-size:11px;display:flex}.ddp-detail-flow-link{min-height:120px;position:relative}.ddp-detail-flow-link>b,.ddp-detail-flow-link>i{background:color-mix(in srgb, var(--ddp-primary) 34%, var(--ddp-line));display:block;position:absolute}.ddp-detail-flow-link>b{height:1px;top:50%;left:0;right:0}.ddp-detail-flow-link.is-merge>i{width:1px;height:25%;left:0}.ddp-detail-flow-link.is-merge>i:first-child{top:25%}.ddp-detail-flow-link.is-merge>i:nth-child(2){bottom:25%}.ddp-detail-flow-link.is-merge:before,.ddp-detail-flow-link.is-merge:after{background:color-mix(in srgb, var(--ddp-primary) 34%, var(--ddp-line));content:"";width:17px;height:1px;position:absolute;left:0}.ddp-detail-flow-link.is-merge:before{top:25%}.ddp-detail-flow-link.is-merge:after{bottom:25%}.ddp-detail-flow-link>.anticon{background:var(--ddp-panel-soft);color:var(--ddp-primary);z-index:1;align-items:center;padding:3px;font-size:13px;display:inline-flex;position:absolute;top:calc(50% - 10px);right:-1px}.ddp-detail-callback-node{background:radial-gradient(circle at 50% 5%, color-mix(in srgb, var(--ddp-primary) 13%, transparent), transparent 58%), var(--ddp-panel);border:1px solid color-mix(in srgb, var(--ddp-primary) 24%, var(--ddp-line));box-shadow:0 8px 24px var(--ddp-shadow);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:14px 10px;display:flex}.ddp-detail-callback-node>span{background:color-mix(in srgb, var(--ddp-primary) 10%, var(--ddp-panel));color:var(--ddp-primary);border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:8px;font-size:16px;display:inline-flex}.ddp-detail-callback-node small{color:var(--ddp-muted);letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:650}.ddp-detail-callback-node strong{color:var(--ddp-ink);font-family:var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:4px 0 8px;font-size:12px;overflow:hidden}.ddp-detail-callback-node code{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));color:var(--ddp-primary);font-family:var(--ddp-mono);letter-spacing:.08em;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:750}.ddp-detail-side-effect-node{background:radial-gradient(circle at 50% 0, #f59e0b1f, transparent 62%), var(--ddp-panel);border:1px solid color-mix(in srgb, #f59e0b 25%, var(--ddp-line));text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:13px 11px;display:flex}.ddp-detail-side-effect-node>span{background:color-mix(in srgb, #f59e0b 11%, var(--ddp-panel));color:#b66b08;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:7px;font-size:15px;display:inline-flex}.ddp-detail-side-effect-node small{color:var(--ddp-muted);letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:700}.ddp-detail-side-effect-node strong{color:#9a5a09;font-family:var(--ddp-mono);margin-top:4px;font-size:12px}.ddp-detail-side-effect-node p{color:var(--ddp-muted);max-width:150px;margin:6px 0 0;font-size:10px;line-height:1.45}.ddp-detail-behavior-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.ddp-detail-behavior-grid>div{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);border-radius:10px;flex-direction:column;min-width:0;padding:10px 11px;display:flex}.ddp-detail-behavior-grid>div.is-active{background:color-mix(in srgb, var(--ddp-primary) 5%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 17%, var(--ddp-line))}.ddp-detail-behavior-grid span{color:var(--ddp-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.ddp-detail-behavior-grid strong{color:var(--ddp-ink);font-size:var(--ddp-text-sm);margin-top:3px;font-weight:680}.ddp-detail-behavior-grid>div.is-active strong{color:color-mix(in srgb, var(--ddp-primary) 72%, var(--ddp-ink))}.ddp-detail-registration-grid{grid-template-columns:minmax(0,1.7fr) repeat(3,minmax(0,.7fr));gap:9px;display:grid}.ddp-detail-registration-grid>div{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);border-radius:10px;flex-direction:column;min-width:0;padding:10px 11px;display:flex}.ddp-detail-registration-grid span{color:var(--ddp-muted);font-size:11px}.ddp-detail-registration-grid strong,.ddp-detail-registration-grid code{color:var(--ddp-ink);font-size:var(--ddp-text-sm);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.ddp-detail-registration-grid code{color:var(--ddp-code-ink);font-family:var(--ddp-mono)}.ddp-detail-clientside-meta{grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:9px;margin-top:9px;display:grid}.ddp-detail-clientside-meta>div{background:color-mix(in srgb, #8b5cf6 5%, var(--ddp-panel));border:1px solid color-mix(in srgb, #8b5cf6 15%, var(--ddp-line));border-radius:10px;flex-direction:column;min-width:0;padding:10px 11px;display:flex}.ddp-detail-clientside-meta span{color:var(--ddp-muted);font-size:11px}.ddp-detail-clientside-meta code{color:var(--ddp-code-ink);font-family:var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.ddp-detail-running-list{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);border-radius:10px;flex-direction:column;gap:6px;margin-top:9px;padding:8px;display:flex}.ddp-detail-running-list>div{grid-template-columns:minmax(72px,auto) minmax(0,1fr) 16px auto;align-items:center;gap:8px;display:grid}.ddp-detail-running-list span{color:var(--ddp-muted);font-family:var(--ddp-mono);text-transform:uppercase;font-size:10px}.ddp-detail-running-list code{background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:4px 6px;font-size:11px;overflow:hidden}.ddp-detail-running-list .anticon{color:var(--ddp-primary);font-size:10px}.ddp-detail-running-list strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:11px}.ddp-library-toolbar{flex:none;grid-template-columns:minmax(260px,1fr);align-items:center;gap:12px;margin-bottom:14px;display:grid}.ddp-library-toolbar .ant-input-affix-wrapper{background:var(--ddp-control);border-radius:12px;min-height:46px;padding-inline:14px;box-shadow:0 4px 14px #1f364b0a}.ddp-library-toolbar .ant-input-prefix{color:var(--ddp-muted);margin-right:8px;font-size:15px}.ddp-library-scroll{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;flex:auto;min-height:0;padding:8px 8px 22px;scroll-padding:8px;overflow-y:auto}.ddp-library-scroll>.ant-spin-nested-loading,.ddp-library-scroll>.ant-spin-nested-loading>.ant-spin-container{min-height:100%}.ddp-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.ddp-library-card.ant-card{background:radial-gradient(circle at 100% 0, color-mix(in srgb, var(--ddp-primary) 5%, transparent), transparent 38%), var(--ddp-panel);border:1px solid var(--ddp-line);box-shadow:0 5px 18px var(--ddp-shadow);border-radius:13px;min-height:190px;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden}.ddp-library-card.ant-card:hover,.ddp-library-card.ant-card:focus-within{border-color:color-mix(in srgb, var(--ddp-primary) 25%, var(--ddp-line));box-shadow:0 12px 30px var(--ddp-shadow);z-index:1;transform:translateY(-2px)}.ddp-library-card-topline,.ddp-library-card-footer,.ddp-library-metrics{align-items:center;display:flex}.ddp-library-card-topline,.ddp-library-card-footer{justify-content:space-between}.ddp-library-mark{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 20%, var(--ddp-panel));color:var(--ddp-primary);border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:inline-flex}.ddp-version-tag.ant-tag{background:var(--ddp-code);color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);margin:0;padding-inline:9px;font-weight:700;line-height:25px}.ddp-library-identity{min-width:0;margin:15px 0 17px}.ddp-library-identity h3{color:var(--ddp-ink);letter-spacing:-.012em;text-overflow:ellipsis;white-space:nowrap;margin:0 0 5px;font-size:16px;font-weight:680;line-height:1.35;overflow:hidden}.ddp-library-identity code{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ddp-library-aliases{flex-wrap:wrap;align-items:center;gap:5px;margin-top:9px;display:flex}.ddp-library-aliases>span{color:var(--ddp-muted);margin-right:2px;font-size:11px;font-weight:650}.ddp-library-aliases>code{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);border-radius:5px;padding-inline:6px;font-size:11px;line-height:20px;display:inline-block}.ddp-library-card-footer{border-top:1px solid var(--ddp-line-soft);padding-top:12px}.ddp-library-card-footer>.ant-tag{border:0;margin:0;font-size:11px;font-weight:650}.ddp-library-metrics{color:var(--ddp-muted);font-family:var(--ddp-mono);gap:13px;font-size:11px}.ddp-library-metrics span{align-items:center;gap:4px;display:inline-flex}.ddp-library-empty{justify-content:center;align-items:center;min-height:330px;display:flex}.ddp-hook-summary-strip{background:color-mix(in srgb, var(--ddp-panel) 88%, transparent);border:1px solid var(--ddp-line-soft);border-radius:11px;flex:none;align-items:center;gap:4px;min-height:42px;margin-bottom:11px;padding:5px 7px;display:flex}.ddp-hook-summary-strip>div{border-right:1px solid var(--ddp-line-soft);color:var(--ddp-muted);font-size:var(--ddp-text-xs);align-items:center;gap:6px;padding:3px 12px;display:flex}.ddp-hook-summary-strip>div .anticon{color:color-mix(in srgb, var(--ddp-primary) 76%, var(--ddp-muted))}.ddp-hook-summary-strip strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:var(--ddp-text-sm)}.ddp-hook-dash-version{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);margin-left:auto;padding:3px 10px}.ddp-hook-toolbar{flex:none;grid-template-columns:minmax(260px,1fr) 180px;gap:10px;margin-bottom:11px;display:grid}.ddp-hook-toolbar .ant-input-affix-wrapper,.ddp-hook-toolbar .ant-select-selector{min-height:42px;background:var(--ddp-control)!important;border-radius:11px!important}.ddp-hook-toolbar .ant-input-affix-wrapper{box-shadow:0 3px 12px var(--ddp-shadow);padding-inline:13px}.ddp-hook-toolbar .ant-input-prefix{color:var(--ddp-muted);margin-right:8px}.ddp-hook-toolbar .ant-select,.ddp-hook-toolbar .ant-select-selector{height:42px}.ddp-hook-order-note{background:color-mix(in srgb, var(--ddp-primary) 6%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 17%, var(--ddp-line));color:var(--ddp-muted);font-size:var(--ddp-text-xs);border-radius:10px;flex:none;grid-template-columns:16px minmax(0,1fr) auto;align-items:flex-start;gap:8px;margin-bottom:11px;padding:9px 11px;line-height:1.55;display:grid}.ddp-hook-order-note>.anticon{color:var(--ddp-primary);margin-top:2px}.ddp-hook-order-note>div{flex-wrap:wrap;gap:5px;display:flex}.ddp-hook-order-note code,.ddp-hook-type-code{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);border-radius:5px;padding:2px 6px;font-size:11px}.ddp-hook-scroll{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;flex:auto;min-height:0;padding:8px 8px 22px;scroll-padding:8px;overflow-y:auto}.ddp-hook-scroll>.ant-spin-nested-loading,.ddp-hook-scroll>.ant-spin-nested-loading>.ant-spin-container{min-height:100%}.ddp-hook-list{flex-direction:column;gap:14px;display:flex}.ddp-hook-library-card{background:linear-gradient(90deg, color-mix(in srgb, var(--ddp-primary) 5%, transparent), transparent 18%), var(--ddp-panel);border:1px solid var(--ddp-line);box-shadow:0 5px 18px var(--ddp-shadow);border-radius:13px;padding:15px 16px 11px;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden}.ddp-hook-library-card:hover,.ddp-hook-library-card:focus-within{border-color:color-mix(in srgb, var(--ddp-primary) 22%, var(--ddp-line));box-shadow:0 12px 30px var(--ddp-shadow);z-index:1;transform:translateY(-2px)}.ddp-hook-library-main{grid-template-columns:38px minmax(0,1fr) auto;align-items:flex-start;gap:12px;display:grid}.ddp-hook-library-mark{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 20%, var(--ddp-panel));color:var(--ddp-primary);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:inline-flex}.ddp-hook-library-identity{min-width:0}.ddp-hook-library-title{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.ddp-hook-library-title h3{color:var(--ddp-ink);letter-spacing:-.015em;margin:0 3px 0 0;font-size:16px;font-weight:690}.ddp-hook-library-title .ant-tag{margin:0;font-size:11px;font-weight:650}.ddp-hook-entrypoints{flex-direction:column;gap:3px;margin-top:7px;display:flex}.ddp-hook-entrypoints>div{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);align-items:center;gap:7px;min-width:0;display:flex}.ddp-hook-entrypoints i{color:var(--ddp-primary);font-style:normal}.ddp-hook-entrypoints code,.ddp-hook-module{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ddp-hook-library-total{flex-direction:column;align-items:flex-end;min-width:75px;display:flex}.ddp-hook-library-total strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:21px;line-height:1.1}.ddp-hook-library-total span{color:var(--ddp-muted);margin-top:3px;font-size:11px}.ddp-hook-types{flex-wrap:wrap;gap:6px;margin:13px 0 2px 50px;display:flex}.ddp-hook-types>span{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);border-radius:7px;align-items:center;display:inline-flex;overflow:hidden}.ddp-hook-types code{color:var(--ddp-code-ink);font-family:var(--ddp-mono);padding:4px 7px;font-size:11px}.ddp-hook-types b{background:color-mix(in srgb, var(--ddp-primary) 10%, var(--ddp-panel));border-left:1px solid var(--ddp-line-soft);color:var(--ddp-primary);font-family:var(--ddp-mono);padding:4px 6px;font-size:11px}.ddp-hook-no-registration{color:var(--ddp-muted);font-size:var(--ddp-text-xs);margin:12px 0 2px 50px;display:block}.ddp-hook-collapse.ant-collapse{border-top:1px solid var(--ddp-line-soft);margin:12px -16px -11px}.ddp-hook-collapse .ant-collapse-header{font-size:var(--ddp-text-xs);font-weight:620;color:var(--ddp-muted)!important;padding:10px 16px!important}.ddp-hook-collapse .ant-collapse-content-box{padding:0!important}.ddp-hook-detail-table .ant-table{border-top:1px solid var(--ddp-line-soft);font-size:var(--ddp-text-xs)}.ddp-hook-detail-table .ant-table-thead>tr>th{font-family:var(--ddp-mono);letter-spacing:.035em;text-transform:uppercase;font-size:11px}.ddp-hook-callable{flex-direction:column;gap:2px;min-width:0;display:flex}.ddp-hook-callable code{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:11px}.ddp-hook-callable span{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:10px}.ddp-dependencies-panel{overflow:hidden}.ddp-dependency-summary{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:11px;display:grid}.ddp-dependency-summary button{background:color-mix(in srgb, var(--ddp-panel) 92%, transparent);border:1px solid var(--ddp-line-soft);color:var(--ddp-muted);cursor:pointer;text-align:left;border-radius:11px;align-items:center;gap:10px;min-height:54px;padding:7px 11px;transition:background-color .16s,border-color .16s,box-shadow .16s;display:flex}.ddp-dependency-summary button:hover,.ddp-dependency-summary button:focus-visible,.ddp-dependency-summary button.is-active{background:color-mix(in srgb, var(--ddp-primary) 7%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 28%, var(--ddp-line));box-shadow:0 4px 14px color-mix(in srgb, var(--ddp-primary) 8%, transparent);outline:none}.ddp-dependency-summary button>span{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:inline-flex}.ddp-dependency-summary button>div{flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.ddp-dependency-summary small{color:var(--ddp-muted);font-size:var(--ddp-text-xs);font-weight:620;line-height:1.25}.ddp-dependency-summary strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:17px}.ddp-dependency-toolbar{flex:none;grid-template-columns:minmax(280px,1fr) 190px;gap:10px;margin-bottom:11px;display:grid}.ddp-dependency-toolbar .ant-input-affix-wrapper,.ddp-dependency-toolbar .ant-select-selector{min-height:42px;background:var(--ddp-control)!important;border-radius:11px!important}.ddp-dependency-toolbar .ant-input-affix-wrapper{box-shadow:0 3px 12px var(--ddp-shadow);padding-inline:13px}.ddp-dependency-toolbar .ant-input-prefix{color:var(--ddp-muted);margin-right:8px}.ddp-dependency-toolbar .ant-select,.ddp-dependency-toolbar .ant-select-selector{height:42px}.ddp-dependency-order-note{margin-bottom:11px}.ddp-dependency-table-wrap{border:1px solid var(--ddp-line);box-shadow:0 8px 24px var(--ddp-shadow);border-radius:13px;flex:auto;min-height:0;overflow:hidden}.ddp-dependency-table .ant-table{color:var(--ddp-ink);font-size:var(--ddp-text-sm)}.ddp-dependency-table .ant-table-thead>tr>th{border-bottom-color:var(--ddp-line);color:var(--ddp-muted);font-family:var(--ddp-mono);letter-spacing:.025em;font-size:11px;font-weight:750}.ddp-dependency-table .ant-table-tbody>tr>td{border-bottom-color:var(--ddp-line-soft);vertical-align:middle}.ddp-dependency-expand-button{color:var(--ddp-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background-color .16s,color .16s;display:inline-flex}.ddp-dependency-expand-button:hover,.ddp-dependency-expand-button:focus-visible{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));color:var(--ddp-primary);outline:none}.ddp-dependency-expand-button .anticon{font-size:11px;transition:transform .18s;transform:rotate(0)}.ddp-dependency-expand-button.is-expanded .anticon{transform:rotate(90deg)}.ddp-dependency-table .ant-table-expanded-row>td{background:var(--ddp-panel-soft)!important;padding:0!important}.ddp-dependency-table .ant-pagination{border-top:1px solid var(--ddp-line-soft);min-height:52px;padding:9px 13px;margin:0!important}.ddp-dependency-table .ant-pagination-total-text{color:var(--ddp-muted);font-family:var(--ddp-mono);margin-right:auto;font-size:11px}.ddp-dependency-identity{grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.ddp-dependency-mark{background:color-mix(in srgb, var(--ddp-primary) 8%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 18%, var(--ddp-line));color:var(--ddp-primary);border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:inline-flex}.ddp-dependency-mark.is-standard{background:var(--ddp-code);border-color:var(--ddp-line);color:var(--ddp-muted)}.ddp-dependency-mark.is-dash-hook{color:#7650b8;background:#f5f0ff;border-color:#e5d8ff}.ddp-dependency-identity>div{min-width:0}.ddp-dependency-identity strong,.ddp-dependency-identity code{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ddp-dependency-identity strong{color:var(--ddp-ink);font-size:var(--ddp-text-md);font-weight:680}.ddp-dependency-identity code{color:var(--ddp-muted);font-family:var(--ddp-mono);margin-top:2px;font-size:10px}.ddp-dependency-category.ant-tag{border:0;margin:0;font-size:11px;font-weight:650}.ddp-dependency-version{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);border-radius:6px;padding:3px 7px;font-size:11px}.ddp-dependency-modules{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.ddp-dependency-modules code{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:11px}.ddp-dependency-modules span{background:var(--ddp-code);color:var(--ddp-muted);font-family:var(--ddp-mono);border-radius:999px;padding:2px 6px;font-size:10px}.ddp-dependency-loaded{color:var(--ddp-muted);white-space:nowrap;font-size:11px}.ddp-dependency-loaded strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:var(--ddp-text-sm)}.ddp-dependency-expanded{flex-direction:column;display:flex}.ddp-dependency-detail-section{background:linear-gradient(110deg, color-mix(in srgb, var(--ddp-primary) 4%, var(--ddp-panel)), var(--ddp-panel) 44%);padding:15px 18px 17px}.ddp-dependency-detail-section+.ddp-dependency-detail-section{border-top:1px solid var(--ddp-line)}.ddp-dependency-detail-heading{grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:13px;display:grid}.ddp-dependency-detail-heading>span{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 18%, var(--ddp-line));color:var(--ddp-primary);border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.ddp-dependency-detail-heading>div:nth-child(2){flex-direction:column;display:flex}.ddp-dependency-detail-heading strong{color:var(--ddp-ink);font-size:var(--ddp-text-sm)}.ddp-dependency-detail-heading small{color:var(--ddp-muted);font-size:11px}.ddp-dependency-facts{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:8px;display:grid}.ddp-dependency-facts>div{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);border-radius:8px;justify-content:space-between;align-items:center;min-width:0;min-height:38px;padding:6px 9px;display:flex}.ddp-dependency-facts span,.ddp-dependency-hook-grid>div>span,.ddp-dependency-alias-row>span{color:var(--ddp-muted);font-size:11px;font-weight:620}.ddp-dependency-facts code,.ddp-dependency-facts strong{color:var(--ddp-code-ink);font-family:var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.ddp-dependency-facts .ant-tag,.ddp-dependency-hook-tags .ant-tag{margin:0;font-size:10px}.ddp-dependency-alias-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.ddp-dependency-alias-row code,.ddp-dependency-hook-grid code{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);border-radius:6px;padding:3px 6px;font-size:10px}.ddp-dependency-alias-row em,.ddp-dependency-hook-grid em{color:var(--ddp-muted);font-size:11px;font-style:normal}.ddp-dependency-hook-tags{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;display:flex}.ddp-dependency-hook-grid{grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:10px;margin-bottom:12px;display:grid}.ddp-dependency-hook-grid>div{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);border-radius:9px;flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:46px;padding:8px 10px;display:flex}.ddp-dependency-hook-grid>div>span{flex-basis:100%}.ddp-dependency-hook-types{margin:0}.ddp-dependency-runtime-heading{color:var(--ddp-muted);margin:0 0 7px;font-size:11px;font-weight:650}@media (width<=780px){.ddp-dependency-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ddp-dependency-toolbar{grid-template-columns:1fr}.ddp-dependency-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.ddp-dependency-hook-grid{grid-template-columns:1fr}.ddp-dependency-detail-heading{grid-template-columns:34px minmax(0,1fr)}.ddp-dependency-hook-tags{grid-column:2;justify-content:flex-start}}.ddp-environment-panel{overflow:hidden}.ddp-environment-panel .ddp-eyebrow{font-size:12px}.ddp-environment-panel .ddp-workspace-title h2{font-size:20px}.ddp-environment-workspace-icon{background:color-mix(in srgb, #168b7c 10%, var(--ddp-panel));border-color:color-mix(in srgb, #168b7c 24%, var(--ddp-line));color:#168b7c}.ddp-environment-copy.ant-btn{box-shadow:0 5px 14px color-mix(in srgb, var(--ddp-primary) 18%, transparent);border-radius:9px;min-height:36px;font-size:13px;font-weight:680;transition:background-color .18s,border-color .18s,box-shadow .18s}.ddp-environment-copy.is-copied.ant-btn{background:#17866f;border-color:#17866f;box-shadow:0 5px 14px #17866f33}.ddp-environment-loading{background:var(--ddp-panel);border:1px solid var(--ddp-line);border-radius:13px;padding:22px}.ddp-environment-scroll{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-gutter:stable;flex-direction:column;flex:auto;gap:15px;min-height:0;padding-right:5px;display:flex;overflow-y:auto}.ddp-environment-intro{background:linear-gradient(112deg, color-mix(in srgb, #168b7c 8%, var(--ddp-panel)), var(--ddp-panel) 52%);border:1px solid color-mix(in srgb, #168b7c 20%, var(--ddp-line));border-radius:12px;justify-content:space-between;align-items:center;gap:20px;padding:15px 17px;display:flex}.ddp-environment-intro strong{color:var(--ddp-ink);margin-bottom:3px;font-size:15px;font-weight:720;display:block}.ddp-environment-intro p{color:var(--ddp-muted);max-width:690px;margin:0;font-size:13px;line-height:1.6}.ddp-environment-signal-grid{grid-template-columns:repeat(3,minmax(0,.95fr)) minmax(0,1.2fr);gap:12px;display:grid}.ddp-environment-signal{--ddp-signal:#607b94;background:var(--ddp-panel);border:1px solid var(--ddp-line-soft);box-shadow:0 5px 18px var(--ddp-shadow);border-radius:12px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;min-height:88px;padding:12px 13px;display:grid}.ddp-environment-signal.is-python{--ddp-signal:#36769b}.ddp-environment-signal.is-dash{--ddp-signal:var(--ddp-primary)}.ddp-environment-signal.is-server{--ddp-signal:#168b7c}.ddp-environment-signal.is-browser{--ddp-signal:#c07838}.ddp-environment-signal-icon{background:color-mix(in srgb, var(--ddp-signal) 10%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-signal) 20%, var(--ddp-line));color:var(--ddp-signal);border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:19px;display:inline-flex}.ddp-environment-signal>div{flex-direction:column;min-width:0;display:flex}.ddp-environment-signal small{color:var(--ddp-muted);font:700 11px/1.35 var(--ddp-mono);letter-spacing:.045em;text-transform:uppercase}.ddp-environment-signal strong,.ddp-environment-signal>div>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ddp-environment-signal strong{color:var(--ddp-ink);font:700 15px/1.5 var(--ddp-mono)}.ddp-environment-signal>div>span{color:var(--ddp-muted);font-size:12px}.ddp-environment-card{background:var(--ddp-panel);border:1px solid var(--ddp-line);box-shadow:0 7px 22px var(--ddp-shadow);border-radius:13px;min-width:0;padding:16px}.ddp-environment-section-heading{align-items:center;gap:9px;min-width:0;display:flex}.ddp-environment-section-heading>span{background:color-mix(in srgb, var(--ddp-primary) 8%, var(--ddp-panel));color:var(--ddp-primary);border-radius:8px;flex:0 0 36px;justify-content:center;align-items:center;height:36px;font-size:16px;display:inline-flex}.ddp-environment-section-heading>div{min-width:0}.ddp-environment-section-heading small{color:var(--ddp-muted);font:700 11px/1.25 var(--ddp-mono);letter-spacing:.08em;text-transform:uppercase;display:block}.ddp-environment-section-heading h3{color:var(--ddp-ink);margin:1px 0 0;font-size:15px;font-weight:720;line-height:1.35}.ddp-environment-dependencies{margin-bottom:2px}.ddp-environment-dependency-header{justify-content:space-between;align-items:center;display:flex}.ddp-environment-dependencies>p{color:var(--ddp-muted);margin:9px 0 13px 45px;font-size:12px;line-height:1.55}.ddp-environment-dependency-list{background:var(--ddp-panel-soft);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font:13px/1.8 var(--ddp-mono);scrollbar-color:var(--ddp-scrollbar) transparent;white-space:pre-wrap;border-radius:10px;max-height:185px;margin:0;padding:12px 14px;overflow-y:auto}@media (width<=940px){.ddp-environment-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.ddp-environment-intro{flex-direction:column;align-items:flex-start;gap:8px}.ddp-environment-signal-grid{grid-template-columns:1fr}.ddp-environment-copy.ant-btn>span:not(.ant-btn-icon){display:none}}.ddp-server-panel{overflow:hidden}.ddp-resource-workspace-icon{background:color-mix(in srgb, #36a3a3 10%, var(--ddp-panel));border-color:color-mix(in srgb, #36a3a3 22%, var(--ddp-panel));color:#27878a}.ddp-live-tag.ant-tag{color:#297d6d;font-family:var(--ddp-mono);background:#eaf7f3;margin:0;padding-inline:10px;font-size:11px;font-weight:700;line-height:28px}.ddp-last-updated{border:1px solid var(--ddp-line-soft);color:var(--ddp-muted);white-space:nowrap;background:#ffffffc2;border-radius:8px;align-items:center;gap:5px;height:30px;padding:0 9px;font-size:11px;display:inline-flex}.ddp-last-updated>.anticon{color:#7790a5;font-size:12px}.ddp-last-updated time{color:var(--ddp-ink);font-family:var(--ddp-mono);font-variant-numeric:tabular-nums;text-align:right;min-width:55px;font-size:11px;font-weight:680}.ddp-resource-loading{background:var(--ddp-panel);border:1px solid var(--ddp-line);border-radius:14px;padding:24px}.ddp-resource-scroll{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;flex:auto;min-height:0;padding:4px 7px 24px 3px;scroll-padding:8px;overflow-y:auto}.ddp-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:14px;display:grid}.ddp-metric-card,.ddp-resource-card{border:1px solid var(--ddp-line);background:#fffffff0;box-shadow:0 6px 20px #2740560e}.ddp-metric-card{border-radius:13px;min-width:0;padding:14px 15px 13px;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative}.ddp-metric-card:hover{border-color:color-mix(in srgb, var(--ddp-metric-color,var(--ddp-primary)) 28%, var(--ddp-line));transform:translateY(-2px);box-shadow:0 11px 25px #27405616}.ddp-metric-card-heading{color:var(--ddp-muted);font-size:var(--ddp-text-xs);align-items:center;gap:8px;font-weight:650;display:flex}.ddp-metric-icon{background:color-mix(in srgb, var(--ddp-metric-color) 11%, white);color:var(--ddp-metric-color);border-radius:8px;justify-content:center;align-items:center;width:29px;height:29px;font-size:14px;display:inline-flex}.ddp-metric-value{color:var(--ddp-ink);font-family:var(--ddp-mono);letter-spacing:-.035em;margin:9px 0 5px;font-size:22px;font-weight:720}.ddp-metric-card .ant-progress{margin:0;line-height:1}.ddp-metric-detail{color:var(--ddp-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:7px;font-size:11px;overflow:hidden}.ddp-resource-main-grid{grid-template-columns:minmax(0,1.7fr) minmax(275px,.8fr);gap:14px;margin-bottom:14px;display:grid}.ddp-resource-card{border-radius:14px;min-width:0;padding:18px 20px 16px;overflow:hidden}.ddp-resource-card-heading{justify-content:space-between;align-items:flex-start;display:flex}.ddp-resource-card-heading>div{flex-direction:column;display:flex}.ddp-resource-card-heading span,.ddp-resource-card-heading small{color:var(--ddp-muted);font-family:var(--ddp-mono);letter-spacing:.085em;text-transform:uppercase;font-size:10px;font-weight:700}.ddp-resource-card-heading h3{color:var(--ddp-ink);margin:3px 0 0;font-size:16px;font-weight:690}.ddp-resource-card-heading>.anticon{color:#36a3a3;margin-top:5px;font-size:19px}.ddp-chart-legend{border-bottom:1px solid var(--ddp-line-soft);justify-content:flex-end;align-items:center;gap:12px;min-height:32px;padding:7px 2px 8px;display:flex}.ddp-chart-legend span{color:var(--ddp-muted);font-family:var(--ddp-font);letter-spacing:0;text-transform:none;align-items:center;gap:5px;font-size:10px;display:inline-flex}.ddp-chart-legend span:before{content:"";background:#36a3a3;border-radius:999px;width:6px;height:6px}.ddp-chart-legend span.is-memory:before{background:#78b884}.ddp-resource-chart{min-width:0;height:248px;margin:5px 0 0;overflow:visible}.ddp-device-info{border-top:1px solid var(--ddp-line-soft);margin-top:14px;padding-top:4px}.ddp-device-info-row{border-bottom:1px solid var(--ddp-line-soft);grid-template-columns:minmax(90px,.75fr) minmax(0,1.25fr);align-items:center;gap:14px;min-height:34px;padding:6px 0;display:grid}.ddp-device-info-row:last-child{border-bottom:0}.ddp-device-info-row span{color:var(--ddp-muted);font-size:11px}.ddp-device-info-row strong{color:var(--ddp-ink);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;overflow:hidden}.ddp-device-info-row strong.is-mono{font-family:var(--ddp-mono)}.ddp-inspector-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:48px 24px 112px;display:flex;transform:translateY(-100px)}.ddp-inspector-orbit{width:116px;height:116px;margin-bottom:24px;position:relative}.ddp-inspector-orbit>i{border:1px solid color-mix(in srgb, var(--ddp-primary) 26%, transparent);border-radius:50%;animation:2.8s ease-out infinite ddp-inspector-ripple;position:absolute;inset:0}.ddp-inspector-orbit>i:first-child{animation-delay:-.12s}.ddp-inspector-orbit>i:nth-child(2){animation-delay:-1.05s;inset:13px}.ddp-inspector-orbit>i:nth-child(3){animation-delay:-1.98s;inset:26px}.ddp-inspector-orbit>span{background:linear-gradient(145deg, #fff, color-mix(in srgb, var(--ddp-primary) 10%, #f7fbfe));border:1px solid color-mix(in srgb, var(--ddp-primary) 24%, var(--ddp-line));box-shadow:0 18px 40px color-mix(in srgb, var(--ddp-primary) 13%, transparent), inset 0 1px #fff;color:var(--ddp-primary);border-radius:19px;justify-content:center;align-items:center;height:64px;font-size:27px;display:flex;position:absolute;inset:26px;transform:rotate(-4deg)}@keyframes ddp-inspector-ripple{0%{opacity:.78;transform:scale(.72)}70%,to{opacity:0;transform:scale(1.08)}}.ddp-inspector-empty h2{color:var(--ddp-ink);letter-spacing:-.03em;margin:4px 0 8px;font-size:24px;font-weight:700}.ddp-inspector-empty p{color:var(--ddp-muted);font-size:var(--ddp-text-md);max-width:520px;margin:0 0 22px;line-height:1.7}.ddp-inspector-start.ant-btn{box-shadow:0 10px 24px color-mix(in srgb, var(--ddp-primary) 24%, transparent);border-radius:11px;height:44px;padding-inline:21px;font-weight:680}.ddp-inspector-empty>small{color:#8da0b2;font-family:var(--ddp-mono);margin-top:14px;font-size:12px;line-height:1.5}.ddp-inspector-panel{--ddp-inspector-caption:12px;--ddp-inspector-code:12px;--ddp-inspector-value:13px;overflow:hidden}.ddp-inspector-panel .ddp-eyebrow{font-size:12px}.ddp-inspector-header-actions{align-items:center;gap:8px;display:flex}.ddp-inspector-workspace-icon{background:color-mix(in srgb, #35a9a2 9%, var(--ddp-panel));border-color:color-mix(in srgb, #35a9a2 22%, var(--ddp-line));color:#2b9590}.ddp-inspector-scroll{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;flex:auto;min-height:0;padding:4px 7px 26px 3px;overflow-y:auto}.ddp-inspector-trail{background:color-mix(in srgb, var(--ddp-primary) 4%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 14%, var(--ddp-line));border-radius:9px;align-items:center;min-height:34px;margin-bottom:10px;padding:5px 11px;display:flex}.ddp-inspector-trail .ant-breadcrumb{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-caption);line-height:1.5}.ddp-inspector-trail button{color:var(--ddp-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:2px 0}.ddp-inspector-trail button:hover{text-decoration:underline}.ddp-inspector-identity-card{background:radial-gradient(circle at 92% 10%, color-mix(in srgb, var(--ddp-primary) 10%, transparent), transparent 34%), linear-gradient(135deg, #fff, #fafdff);border:1px solid var(--ddp-line);border-radius:14px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;margin-bottom:12px;padding:15px 17px;display:grid;box-shadow:0 8px 24px #2740560f}.ddp-inspector-component-mark{background:color-mix(in srgb, var(--ddp-primary) 9%, white);border:1px solid color-mix(in srgb, var(--ddp-primary) 20%, white);color:var(--ddp-primary);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.ddp-inspector-component-name{grid-template-columns:auto minmax(0,1fr);gap:2px 8px;min-width:0;display:grid}.ddp-inspector-component-name>span{color:var(--ddp-muted);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-caption);grid-column:1/-1;line-height:1.45}.ddp-inspector-component-name>strong{color:var(--ddp-ink);font-size:19px;font-weight:710}.ddp-inspector-component-name>code{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-code);text-overflow:ellipsis;white-space:nowrap;align-self:center;overflow:hidden}.ddp-inspector-mapping{background:color-mix(in srgb, #35a9a2 5%, var(--ddp-panel));border:1px solid color-mix(in srgb, #35a9a2 18%, var(--ddp-line));border-radius:12px;grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:12px;padding:13px 14px;display:grid}.ddp-inspector-mapping>div{flex-direction:column;min-width:0;display:flex}.ddp-inspector-mapping span,.ddp-inspector-mapping small{color:var(--ddp-muted);font-size:var(--ddp-inspector-caption);line-height:1.5}.ddp-inspector-mapping strong{color:#277d79;font-family:var(--ddp-mono);font-size:var(--ddp-inspector-value);margin-top:4px;line-height:1.45}.ddp-inspector-mapping>b{color:#54aaa4;text-align:center;font-size:18px}.ddp-inspector-dom-token{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-code);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;line-height:1.45;display:block;overflow:hidden}.ddp-inspector-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.ddp-inspector-facts>div{border:1px solid var(--ddp-line-soft);background:#ffffffeb;border-radius:10px;flex-direction:column;min-width:0;padding:12px 13px;display:flex}.ddp-inspector-facts>div>span{color:var(--ddp-muted);font-size:var(--ddp-inspector-caption);margin-bottom:5px;line-height:1.45}.ddp-inspector-facts code,.ddp-inspector-facts strong{color:var(--ddp-ink);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-value);text-overflow:ellipsis;white-space:nowrap;line-height:1.45;overflow:hidden}.ddp-inspector-fact-root{grid-column:span 2}.ddp-inspector-fact-path{grid-column:1/-1;background:linear-gradient(90deg, color-mix(in srgb, var(--ddp-primary) 5%, transparent), transparent 44%), #fffffff0!important;border-color:color-mix(in srgb, var(--ddp-primary) 15%, var(--ddp-line-soft))!important;padding:9px 11px 10px!important}.ddp-inspector-path-heading{justify-content:space-between;align-items:center;min-height:24px;display:flex}.ddp-inspector-path-heading>span{color:var(--ddp-muted);font-size:var(--ddp-inspector-caption);line-height:1.45}.ddp-inspector-path-heading .ant-btn{color:var(--ddp-muted);min-width:24px;height:24px;padding-inline:5px}.ddp-inspector-path-heading .ant-btn:not(:disabled):hover{color:var(--ddp-primary)}.ddp-inspector-path-tokens{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-width:thin;flex-wrap:wrap;align-content:flex-start;align-items:center;gap:5px;max-height:136px;padding:3px 3px 3px 0;display:flex;overflow:auto}.ddp-inspector-path-tokens code{color:#416178;font:650 var(--ddp-inspector-code)/24px var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;background:#edf4f8;border:1px solid #dce8ef;border-radius:6px;flex:none;max-width:100%;padding:0 7px;overflow:hidden}.ddp-inspector-path-tokens code.is-structural{color:#91a0ad;background:#f4f6f8;border-color:#e6ebef;font-weight:560}.ddp-inspector-path-tokens code.is-index{background:color-mix(in srgb, var(--ddp-primary) 9%, white);border-color:color-mix(in srgb, var(--ddp-primary) 19%, var(--ddp-line));color:color-mix(in srgb, var(--ddp-primary) 75%, var(--ddp-ink))}.ddp-inspector-path-separator{color:#a8b6c1;font-family:var(--ddp-mono);flex:none;font-size:13px;line-height:24px}.ddp-inspector-path-root{background:#f2f6f8;border-radius:6px;width:fit-content;padding:3px 7px;display:inline-flex}.ddp-inspector-fact-path>small{color:#8a9bab;margin-top:7px;font-size:11px;line-height:1.5}.ddp-inspector-props-card{background:var(--ddp-panel);border:1px solid var(--ddp-line);border-radius:14px;overflow:hidden;box-shadow:0 7px 22px #2740560d}.ddp-inspector-props-heading{justify-content:space-between;align-items:center;gap:20px;padding:13px 15px;display:flex}.ddp-inspector-props-heading>div{align-items:center;gap:10px;display:flex}.ddp-inspector-props-heading>div>.anticon{color:var(--ddp-primary);font-size:17px}.ddp-inspector-props-heading>div>span{flex-direction:column;display:flex}.ddp-inspector-props-heading small{color:var(--ddp-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;line-height:1.4}.ddp-inspector-props-heading strong{color:var(--ddp-ink);font-size:var(--ddp-text-md)}.ddp-inspector-props-heading .ant-input-affix-wrapper{max-width:330px}.ddp-inspector-props-header,.ddp-inspector-prop-row{grid-template-columns:minmax(120px,.7fr) 90px minmax(0,2.3fr);gap:12px;display:grid}.ddp-inspector-props-header{border-block:1px solid var(--ddp-line-soft);color:var(--ddp-muted);font-family:var(--ddp-mono);letter-spacing:.05em;text-transform:uppercase;background:#f7f9fb;padding:9px 15px;font-size:11px;font-weight:720}.ddp-inspector-prop-row{border-bottom:1px solid var(--ddp-line-soft);align-items:start;min-height:54px;padding:12px 15px;transition:background-color .15s}.ddp-inspector-prop-row:last-child{border-bottom:0}.ddp-inspector-prop-row:hover{background:#fbfdfe}.ddp-inspector-prop-name{color:#256e9b;font-family:var(--ddp-mono);font-size:var(--ddp-inspector-value);text-overflow:ellipsis;white-space:nowrap;padding-top:4px;font-weight:700;line-height:1.45;overflow:hidden}.ddp-inspector-prop-row>.ant-tag{color:#5f7488;font-family:var(--ddp-mono);justify-self:start;margin:2px 0 0;font-size:11px;line-height:22px}.ddp-inspector-prop-value{min-width:0;overflow:auto}.ddp-inspector-copyable-value{grid-template-columns:minmax(0,1fr) 26px;align-items:start;gap:6px;min-width:0;display:grid}.ddp-inspector-copyable-content{align-items:center;min-width:0;min-height:26px;display:flex;overflow:auto}.ddp-inspector-copyable-content>.ddp-inspector-expanded-value{width:100%}.ddp-inspector-copy-value.ant-btn{color:#91a2b1;opacity:.62;width:26px;height:26px;padding:0;transition:background-color .15s,color .15s,opacity .15s}.ddp-inspector-prop-row:hover .ddp-inspector-copy-value.ant-btn,.ddp-inspector-copy-value.ant-btn:focus-visible{color:var(--ddp-primary);opacity:1}.ddp-inspector-copy-value.ant-btn.is-copied{color:#2d9d78;opacity:1;background:#2d9d7817}.ddp-inspector-component-value{flex-direction:column;gap:7px;display:flex}.ddp-inspector-component-targets{flex-direction:column;gap:6px;display:flex}.ddp-inspector-component-target{background:color-mix(in srgb, var(--ddp-primary) 5%, var(--ddp-panel));border:1px solid color-mix(in srgb, var(--ddp-primary) 18%, var(--ddp-line));color:var(--ddp-ink);cursor:pointer;text-align:left;border-radius:9px;grid-template-columns:28px minmax(100px,.8fr) minmax(70px,1fr) auto;align-items:center;gap:9px;width:100%;min-height:42px;padding:6px 9px;transition:background-color .15s,border-color .15s,box-shadow .15s;display:grid}.ddp-inspector-component-target:hover,.ddp-inspector-component-target:focus-visible{background:color-mix(in srgb, var(--ddp-primary) 9%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 34%, var(--ddp-line));box-shadow:0 3px 10px color-mix(in srgb, var(--ddp-primary) 10%, transparent);outline:none}.ddp-inspector-component-target-icon{background:color-mix(in srgb, var(--ddp-primary) 11%, white);color:var(--ddp-primary);border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.ddp-inspector-component-target-name{flex-direction:column;min-width:0;display:flex}.ddp-inspector-component-target-name small{color:var(--ddp-muted);font:11px/1.4 var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ddp-inspector-component-target-name strong{color:var(--ddp-ink);font-size:var(--ddp-inspector-value);line-height:1.4}.ddp-inspector-component-target>code{color:var(--ddp-code-ink);font:var(--ddp-inspector-code)/1.45 var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ddp-inspector-component-target-action{color:var(--ddp-primary);white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:650;display:flex}.ddp-inspector-component-target-action .anticon{font-size:10px}.ddp-inspector-component-hint{color:var(--ddp-muted);font-size:11px;line-height:1.5}.ddp-inspector-prop-value pre{background:var(--ddp-code);border:1px solid var(--ddp-line-soft);color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-code);white-space:pre-wrap;word-break:break-word;border-radius:7px;max-height:260px;margin:0;padding:8px 10px;line-height:1.65;overflow:auto}.ddp-inspector-value-toggle{background:color-mix(in srgb, var(--ddp-primary) 3%, var(--ddp-code));border:1px solid var(--ddp-line-soft);color:var(--ddp-muted);cursor:pointer;border-radius:7px;align-items:center;gap:8px;min-height:30px;padding:4px 9px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ddp-inspector-value-toggle:hover{background:color-mix(in srgb, var(--ddp-primary) 7%, var(--ddp-panel));border-color:color-mix(in srgb, var(--ddp-primary) 24%, var(--ddp-line));color:var(--ddp-primary)}.ddp-inspector-value-toggle code{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-code)}.ddp-inspector-value-toggle span{font-size:11px}.ddp-inspector-value-toggle .anticon{font-size:10px}.ddp-inspector-expanded-value>.ant-btn{height:28px;margin-top:2px;padding-inline:2px;font-size:11px}.ddp-inspector-string,.ddp-inspector-primitive{color:var(--ddp-code-ink);font-family:var(--ddp-mono);font-size:var(--ddp-inspector-value);overflow-wrap:anywhere;line-height:1.65}.ddp-component-probing body,.ddp-component-probing body *{cursor:crosshair!important}.ddp-probe-layer{pointer-events:none;z-index:2147483000;position:fixed;inset:0}.ddp-probe-highlight{background:color-mix(in srgb, var(--ddp-primary) 11%, transparent);border:2px solid var(--ddp-primary);box-shadow:0 0 0 1px #ffffffeb, 0 8px 28px color-mix(in srgb, var(--ddp-primary) 19%, transparent);border-radius:5px;transition:inset 80ms,width 80ms,height 80ms;position:fixed}.ddp-probe-highlight>span{background:var(--ddp-primary);box-shadow:0 5px 16px color-mix(in srgb, var(--ddp-primary) 22%, transparent);color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:5px 5px 5px 0;max-width:min(420px,80vw);padding:5px 8px;font-family:Cascadia Code,Consolas,monospace;font-size:11px;font-weight:700;position:absolute;bottom:calc(100% + 5px);left:-2px;overflow:hidden}.ddp-probe-hud{-webkit-backdrop-filter:blur(16px)saturate(1.15);backdrop-filter:blur(16px)saturate(1.15);background:#fffffff0;border:1px solid #bed0deeb;border-radius:14px;grid-template-columns:34px auto auto auto;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:9px 12px 9px 10px;display:grid;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 20px 55px #152a3d33,0 2px 8px #152a3d14}.ddp-probe-hud>span{background:color-mix(in srgb, var(--ddp-primary) 10%, white);color:var(--ddp-primary);border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:flex}.ddp-probe-hud>div{flex-direction:column;min-width:0;display:flex}.ddp-probe-hud strong{color:#172b3f;font:680 12px/1.35 Aptos,Noto Sans SC,sans-serif}.ddp-probe-hud small{color:#687d91;font:10px/1.45 Aptos,Noto Sans SC,sans-serif}.ddp-probe-hud kbd{color:#52687c;background:#f1f5f8;border:1px solid #d6e0e8;border-bottom-width:2px;border-radius:6px;height:20px;padding-inline:6px;font:700 9px/18px Cascadia Code,Consolas,monospace}.ddp-probe-hud em{color:#7a8fa2;white-space:nowrap;font:10px/1.4 Aptos,Noto Sans SC,sans-serif}.ddp-snapshots-panel{overflow:hidden}.ddp-snapshot-workspace-icon{color:#b97812;background:#fff8e8;border-color:#f2dfae}.ddp-snapshot-list,.ddp-snapshot-capture{animation:.22s both ddp-panel-enter}.ddp-snapshot-list-intro{background:linear-gradient(110deg,#fbfdfd 0%,#f3faf7 100%);border:1px solid #dfeae5;border-radius:12px;justify-content:space-between;align-items:center;min-height:50px;margin-bottom:13px;padding:9px 13px;display:flex}.ddp-snapshot-list-intro>div{color:var(--ddp-muted);align-items:center;gap:9px;font-size:12px;display:flex}.ddp-snapshot-list-intro>div>.anticon{color:#54a991;font-size:15px}.ddp-snapshot-list-intro>.ant-tag{color:#397e6d;background:#eaf7f2;margin:0}.ddp-snapshot-empty{background:radial-gradient(circle at 8% 50%, #119dff12, transparent 28%), var(--ddp-panel);border:1px solid var(--ddp-line);border-radius:15px;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:15px;min-height:128px;padding:24px;display:grid}.ddp-snapshot-empty-icon{color:var(--ddp-primary);background:linear-gradient(145deg,#eef9ff,#f8fcff);border:1px solid #cfe8f8;border-radius:17px;justify-content:center;align-items:center;width:58px;height:58px;font-size:24px;display:flex;box-shadow:0 8px 22px #119dff17}.ddp-snapshot-empty h3{color:var(--ddp-ink);margin:0;font-size:17px}.ddp-snapshot-empty p{color:var(--ddp-muted);margin:5px 0 0;font-size:12px}.ddp-snapshot-capture{background:var(--ddp-panel);border:1px solid var(--ddp-line);border-radius:15px;overflow:hidden;box-shadow:0 12px 34px #203a500e}.ddp-snapshot-capture-hero{border-bottom:1px solid var(--ddp-line-soft);background:radial-gradient(circle at 12% -30%,#119dff21,#0000 36%),linear-gradient(115deg,#f8fcff,#f6fbf9);justify-content:space-between;align-items:center;padding:17px 19px;display:flex}.ddp-snapshot-capture-hero>div{align-items:flex-start;gap:12px;display:flex}.ddp-snapshot-capture-hero>div>span{color:var(--ddp-primary);background:#fff;border:1px solid #cfe4ef;border-radius:11px;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.ddp-snapshot-capture-hero small{color:#7690a5;letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:760}.ddp-snapshot-capture-hero h3{color:var(--ddp-ink);margin:2px 0 0;font-size:17px;line-height:1.25}.ddp-snapshot-capture-hero p{color:var(--ddp-muted);margin:4px 0 0;font-size:11px}.ddp-snapshot-selection-summary{grid-template-columns:minmax(190px,.75fr) minmax(150px,.55fr) minmax(220px,1fr);align-items:center;gap:12px;padding:14px 18px 10px;display:grid}.ddp-snapshot-progress{align-items:center;gap:11px;display:flex}.ddp-snapshot-progress .ant-progress-text{color:var(--ddp-primary);font-family:var(--ddp-mono);font-size:13px;font-weight:750}.ddp-snapshot-progress>div:last-child{flex-direction:column;display:flex}.ddp-snapshot-progress strong{color:var(--ddp-ink);font-size:14px}.ddp-snapshot-progress span{color:var(--ddp-muted);font-size:10px}.ddp-snapshot-summary-stat,.ddp-snapshot-session-note{border:1px solid var(--ddp-line-soft);background:#f7fafc;border-radius:10px;align-items:center;gap:8px;min-height:48px;padding:9px 11px;display:flex}.ddp-snapshot-summary-stat>.anticon{color:#54a991}.ddp-snapshot-summary-stat>span{color:var(--ddp-ink);font:750 15px/1 var(--ddp-mono)}.ddp-snapshot-summary-stat>small{color:var(--ddp-muted);font-size:10px}.ddp-snapshot-session-note{color:#73899c;font-size:10px;line-height:1.4}.ddp-snapshot-session-note>.anticon{color:#8fa5b7}.ddp-snapshot-filters{align-items:center;gap:16px;margin:0 18px 10px;display:flex}.ddp-snapshot-search{flex:1;min-width:0}.ddp-snapshot-filters .ant-checkbox-wrapper{color:var(--ddp-muted);flex:none;font-size:11px}.ddp-snapshot-tree-shell{border:1px solid var(--ddp-line-soft);background:#fbfcfd;border-radius:11px;margin:0 18px;padding:6px;overflow:hidden}.ddp-snapshot-tree-shell .ant-tree{background:0 0}.ddp-snapshot-tree-shell .ant-tree-treenode{align-items:center;width:100%;min-height:34px;padding:1px 4px}.ddp-snapshot-tree-shell .ant-tree-node-content-wrapper{align-items:center;width:100%;min-width:0;min-height:30px;display:flex}.ddp-snapshot-tree-shell .ant-tree-title{width:100%;min-width:0}.ddp-snapshot-tree-group,.ddp-snapshot-tree-leaf{align-items:center;width:100%;min-width:0;display:flex}.ddp-snapshot-tree-group{gap:8px}.ddp-snapshot-tree-group>.anticon{color:#79a4be}.ddp-snapshot-tree-group strong{color:#405970;font-family:var(--ddp-mono);font-size:11px}.ddp-snapshot-tree-group .ant-tag{color:#71879a;background:#edf3f7;margin-left:auto;margin-right:6px}.ddp-snapshot-tree-leaf{gap:9px}.ddp-snapshot-type{color:var(--ddp-ink);text-overflow:ellipsis;white-space:nowrap;flex:0 0 180px;font-size:12px;font-weight:650;overflow:hidden}.ddp-snapshot-tree-leaf code{color:#587186;font:10px/24px var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;background:#eef5f8;border-radius:6px;flex:1;padding:0 7px;overflow:hidden}.ddp-snapshot-tree-leaf small{color:#8a9dad;text-align:right;flex:0 0 74px;font-size:9px}.ddp-snapshot-capture-footer{border-top:1px solid var(--ddp-line-soft);grid-template-columns:minmax(200px,1fr) auto auto;align-items:center;gap:9px;margin-top:12px;padding:12px 18px 15px;display:grid}.ddp-snapshot-table .ant-table{border:1px solid var(--ddp-line);border-radius:13px;overflow:hidden}.ddp-snapshot-table .ant-table-cell{vertical-align:middle}.ddp-snapshot-name-cell{align-items:center;gap:10px;min-width:0;display:flex}.ddp-snapshot-name-cell>span{color:var(--ddp-primary);background:#eef8fd;border-radius:9px;flex:0 0 34px;justify-content:center;align-items:center;height:34px;display:flex}.ddp-snapshot-name-cell>div{flex-direction:column;min-width:0;display:flex}.ddp-snapshot-name-cell strong{color:var(--ddp-ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ddp-snapshot-name-cell small{color:#91a1b0;font:9px/1.45 var(--ddp-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ddp-snapshot-time{color:var(--ddp-muted);font:10px/1.4 var(--ddp-mono);align-items:center;gap:6px;display:flex}.ddp-snapshot-counts{white-space:nowrap;align-items:center;gap:5px;display:flex}.ddp-snapshot-counts strong{color:var(--ddp-ink);font:750 12px/1 var(--ddp-mono)}.ddp-snapshot-counts span{color:var(--ddp-muted);font-size:9px}.ddp-snapshot-counts i{background:#dbe4eb;width:1px;height:12px;margin:0 3px}.ddp-snapshot-counts .ant-tag{color:#568071;font:9px/20px var(--ddp-mono);background:#f0f6f3;margin-left:4px}.ddp-snapshot-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}@media (width<=860px){.ddp-panel{padding:16px}.ddp-workspace-header{align-items:flex-start}.ddp-last-updated>span,.ddp-count-line{display:none}.ddp-commandbar{grid-template-columns:36px 1fr 1fr}.ddp-commandbar .ant-input-affix-wrapper{grid-column:2/-1}.ddp-commandbar .ant-select:first-of-type{border-left:0;grid-column:1/3;margin-left:36px}.ddp-brand>div>span{display:none}.ddp-language-control{gap:5px}.ddp-language-segmented .ant-segmented-item{min-width:68px}.ddp-language-segmented .ant-segmented-item-label{padding-inline:5px}.ddp-main-tabs>.ant-tabs-nav{padding:0 16px}.ddp-library-toolbar,.ddp-library-grid,.ddp-hook-toolbar{grid-template-columns:1fr}.ddp-hook-summary-strip>div:nth-child(2),.ddp-hook-summary-strip>div:nth-child(3){display:none}.ddp-hook-order-note{grid-template-columns:16px 1fr}.ddp-hook-order-note>div{grid-column:2}.ddp-callback-detail-modal .ant-modal-header{padding-left:16px}.ddp-callback-detail-modal .ant-modal-body{padding:15px 16px 18px}.ddp-detail-intro{flex-direction:column;align-items:flex-start;gap:9px}.ddp-detail-source-card{grid-template-columns:36px minmax(0,1fr)}.ddp-detail-function-name{display:none}.ddp-detail-role-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ddp-detail-flow{grid-template-columns:1fr}.ddp-detail-flow-link{min-height:34px}.ddp-detail-flow-link>b{width:1px;height:auto;inset:0 auto 0 50%}.ddp-detail-flow-link.is-merge>i,.ddp-detail-flow-link.is-merge:before,.ddp-detail-flow-link.is-merge:after{display:none}.ddp-detail-flow-link>.anticon{top:auto;bottom:-1px;right:calc(50% - 10px);transform:rotate(90deg)}.ddp-detail-upstream{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr))}.ddp-detail-behavior-grid,.ddp-detail-registration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ddp-detail-registration-grid>.is-signature{grid-column:1/-1}.ddp-detail-clientside-meta{grid-template-columns:1fr}.ddp-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ddp-resource-main-grid{grid-template-columns:1fr}.ddp-inspector-mapping{grid-template-columns:1fr 20px 1fr}.ddp-inspector-mapping>small{display:none}.ddp-inspector-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.ddp-inspector-fact-root{grid-column:auto}.ddp-inspector-fact-bounds{grid-column:1/-1}.ddp-inspector-props-heading{flex-direction:column;align-items:stretch;gap:10px}.ddp-inspector-props-heading .ant-input-affix-wrapper{max-width:none}.ddp-inspector-props-header,.ddp-inspector-prop-row{grid-template-columns:minmax(100px,.6fr) 76px minmax(0,1.7fr)}.ddp-snapshot-selection-summary{grid-template-columns:1fr 1fr}.ddp-snapshot-session-note{grid-column:1/-1}.ddp-snapshot-type{flex-basis:120px}}@media (prefers-reduced-motion:reduce){.ddp-drawer *,.ddp-ant-root *{transition-duration:.01ms!important;animation-duration:.01ms!important}.ddp-inspector-orbit>i{opacity:.26;transform:none;animation:none!important}}.ddp-appearance-panel{scrollbar-color:var(--ddp-scrollbar) transparent;scrollbar-gutter:stable;overflow-y:auto}.ddp-appearance-panel .ddp-workspace-header{margin-bottom:18px}.ddp-appearance-intro{background:linear-gradient(115deg,#f2f9ff,#f8fbfe 68%);border:1px solid #dcecf9;border-radius:13px;align-items:flex-start;gap:13px;margin-bottom:18px;padding:15px 17px;display:flex}.ddp-appearance-intro>span{color:var(--ddp-primary);background:#e2f2ff;border-radius:9px;flex:0 0 32px;justify-content:center;align-items:center;height:32px;font-size:16px;display:inline-flex}.ddp-appearance-intro strong{color:var(--ddp-ink);margin:1px 0 4px;font-size:13px;font-weight:700;display:block}.ddp-appearance-intro p,.ddp-toolbar-theme-card p{color:var(--ddp-muted);margin:0;font-size:13px;line-height:1.6}.ddp-toolbar-theme-list{flex-direction:column;gap:15px;width:100%;display:flex}.ddp-toolbar-theme-card{appearance:none;border:1px solid var(--ddp-line);color:inherit;cursor:pointer;text-align:left;background:#fff;border-radius:16px;flex-direction:column;gap:13px;width:100%;padding:16px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative;box-shadow:0 5px 18px #1f3b550b}.ddp-toolbar-theme-card:hover{border-color:#a9d9fa;transform:translateY(-2px);box-shadow:0 10px 28px #254f6f1a}.ddp-toolbar-theme-card:focus-visible{outline:3px solid color-mix(in srgb, var(--ddp-primary) 28%, transparent);outline-offset:3px}.ddp-toolbar-theme-card.is-selected{border-color:color-mix(in srgb, var(--ddp-primary) 58%, #b5d8f0);box-shadow:0 0 0 3px color-mix(in srgb, var(--ddp-primary) 8%, transparent), 0 10px 26px #23507413;border-width:2px}.ddp-toolbar-theme-card-heading{align-items:center;gap:12px;width:100%;display:flex}.ddp-toolbar-theme-card-icon{color:#64849d;background:#f1f7fb;border:1px solid #e3edf5;border-radius:11px;flex:0 0 40px;justify-content:center;align-items:center;height:40px;font-size:19px;display:inline-flex}.is-selected .ddp-toolbar-theme-card-icon{color:var(--ddp-primary);background:#eaf6ff;border-color:#cce8fc}.ddp-toolbar-theme-card-heading>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ddp-toolbar-theme-card-heading small{color:#8ba1b2;font-family:var(--ddp-mono);letter-spacing:.12em;font-size:10px;font-weight:750}.ddp-toolbar-theme-card-heading strong{color:var(--ddp-ink);font-size:16px;font-weight:720}.ddp-toolbar-theme-selection{color:#fff;border:1px solid #cbd9e4;border-radius:50%;flex:0 0 25px;justify-content:center;align-items:center;height:25px;font-size:12px;display:inline-flex}.is-selected .ddp-toolbar-theme-selection{background:var(--ddp-primary);border-color:var(--ddp-primary);box-shadow:0 3px 9px color-mix(in srgb, var(--ddp-primary) 24%, transparent)}.ddp-toolbar-theme-preview{background:#f3f7fa;border:1px solid #e7eef3;border-radius:10px;width:100%;height:116px;position:relative;overflow:hidden}.ddp-toolbar-preview-canvas{background:linear-gradient(120deg,#f8fafc,#eaf2f8);width:100%;height:100%;position:relative}.ddp-toolbar-preview-canvas>i{opacity:.65;background:#dbe6ee;border-radius:999px;width:85px;height:6px;position:absolute;top:24px;left:25px}.ddp-toolbar-preview-canvas>i:nth-child(2){width:155px;top:42px}.ddp-toolbar-preview-canvas>i:nth-child(3){background:#d1e0eb;width:165px;height:29px;top:62px}.ddp-toolbar-preview-dock{white-space:nowrap;align-items:center;gap:3px;display:flex;position:absolute;right:0}.ddp-toolbar-preview-dock>span{font-family:var(--ddp-font);flex:none;justify-content:center;align-items:center;height:24px;font-size:10px;line-height:1;display:inline-flex}.ddp-toolbar-preview-button{gap:5px;padding:0 5px}.ddp-toolbar-preview-button .anticon,.ddp-toolbar-preview-button svg{flex:none;width:11px;height:11px;font-size:11px}.ddp-toolbar-preview-button.is-cloud svg{color:#9ca3af}.ddp-toolbar-preview-dock>.ddp-toolbar-preview-divider{background:#d8dce6;flex:none;width:1px;height:18px;margin:0 3px}.ddp-toolbar-preview-version{font-family:var(--ddp-mono);font-variant-numeric:tabular-nums;padding:0 5px;font-size:9.5px!important}.ddp-toolbar-preview-status{gap:5px;padding:0 5px}.ddp-toolbar-preview-status .anticon{color:#15964a;font-size:11px}.ddp-toolbar-preview-status>svg{width:12px;height:12px}.ddp-toolbar-preview-toggle{color:inherit;width:24px;margin-left:1px;font-size:11px!important}.ddp-toolbar-preview-toggle .anticon{border:1px solid;border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;display:inline-flex}.ddp-toolbar-preview-toggle svg{width:8px;height:8px}.ddp-toolbar-preview-toggle>svg{width:15px;height:15px}.is-native .ddp-toolbar-preview-dock{color:#7f4bc4;background:#f5f6fa;border:1px solid #d7d9de;border-radius:5px 0 0;height:40px;padding:5px 7px;bottom:0}.is-native .ddp-toolbar-preview-status{color:#486a59}.is-luminous .ddp-toolbar-preview-dock{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#557188;background:#f8fcfff2;border:1px solid #c6e2f4;border-radius:12px;padding:7px 6px;bottom:12px;right:12px;box-shadow:0 9px 20px #1a44642e}.is-luminous .ddp-toolbar-preview-button{border-radius:6px}.is-luminous .ddp-toolbar-preview-button.is-plus{color:#168ee4;background:#e8f5ff}.is-luminous .ddp-toolbar-preview-divider{background:#dbe7ef}.is-luminous .ddp-toolbar-preview-version{color:#859caf;background:#f1f5f8;border-radius:5px}.is-luminous .ddp-toolbar-preview-status{color:#288263;background:#eaf8f4;border-radius:5px}.is-luminous .ddp-toolbar-preview-toggle{color:#168ee4;background:#e8f5ff;border-radius:7px;width:24px}.is-paper .ddp-toolbar-preview-canvas{background:linear-gradient(125deg,#fffdf8,#f2eadc)}.is-paper .ddp-toolbar-preview-canvas>i{background:#e1d5c3}.is-paper .ddp-toolbar-preview-dock{color:#695d4c;background:#fffdf8;border:1px solid #d8c9b3;border-radius:7px 0 0;height:40px;padding:5px 7px;bottom:0}.is-paper .ddp-toolbar-preview-button.is-plus,.is-paper .ddp-toolbar-preview-toggle{color:#a6652e;background:#f7ead6;border-radius:3px}.is-paper .ddp-toolbar-preview-version{color:#8d806c}.is-paper .ddp-toolbar-preview-status{color:#667b5b}.is-mint .ddp-toolbar-preview-canvas{background:linear-gradient(120deg,#f8fffc,#e5f6f0)}.is-mint .ddp-toolbar-preview-canvas>i{background:#d0e9e0}.is-mint .ddp-toolbar-preview-dock{color:#47746b;background:#fbfffdf7;border:1px solid #b9e4d7;border-radius:999px;padding:7px 8px;bottom:12px;right:12px;box-shadow:0 10px 20px #23655224}.is-mint .ddp-toolbar-preview-button.is-plus,.is-mint .ddp-toolbar-preview-toggle{color:#168e81;background:#e2f6ee;border-radius:999px}.is-mint .ddp-toolbar-preview-version{color:#698f82}.is-mint .ddp-toolbar-preview-status{color:#31805b;background:#e6f8ed;border-radius:999px}.is-coral .ddp-toolbar-preview-canvas{background:linear-gradient(120deg,snow,#fbe8e4)}.is-coral .ddp-toolbar-preview-canvas>i{background:#efd9d4}.is-coral .ddp-toolbar-preview-dock{color:#78665f;background:#fffbf9f7;border:1px solid #f1d5cc;border-radius:16px;padding:7px;bottom:11px;right:12px;box-shadow:0 10px 22px #814a4429}.is-coral .ddp-toolbar-preview-button.is-plus,.is-coral .ddp-toolbar-preview-toggle{color:#d66d63;background:#ffeae4;border-radius:9px}.is-coral .ddp-toolbar-preview-version{color:#9d8076;background:#f8eeea;border-radius:7px}.is-coral .ddp-toolbar-preview-status{color:#528566;background:#edf7ed;border-radius:8px}.ddp-toolbar-theme-features{flex-wrap:wrap;gap:7px;display:flex}.ddp-toolbar-theme-features>span{color:#68839a;background:#f5f9fc;border:1px solid #e6eef5;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:inline-flex}.ddp-toolbar-theme-features .anticon{color:#58a9df;font-size:10px}.ddp-appearance-footnote{color:#8da2b3;align-items:center;gap:8px;margin-top:15px;font-size:12px;display:flex}html[data-ddp-native-toolbar-theme] .dash-debug-menu__outer{-webkit-backdrop-filter:blur(18px)saturate(1.18);backdrop-filter:blur(18px)saturate(1.18);max-width:calc(100vw - 36px);border:1px solid color-mix(in srgb, var(--ddp-native-toolbar-accent,#119dff) 20%, #d1dee7)!important;background:#f8fcfff0!important;border-radius:16px!important;padding:8px!important;transition:width .26s,box-shadow .18s,transform .18s!important;bottom:18px!important;right:18px!important;box-shadow:0 18px 48px #18354c33,0 3px 10px #193b5217,inset 0 1px #ffffffd9!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__outer--expanded{height:54px!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__outer--collapsed{width:54px!important;max-width:54px!important;height:54px!important;padding:7px!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__popup:has(.dash-error-card--container){width:min(600px,100vw - 36px);max-width:calc(100vw - 36px)}html[data-ddp-native-toolbar-theme] .dash-debug-menu__popup:has(.dash-error-card--container) .dash-error-card--container{width:100%;max-width:100%}html[data-ddp-native-toolbar-theme] .dash-debug-menu__content{align-items:center!important;gap:3px!important;height:36px!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__button{box-shadow:none!important;color:#526d83!important;font-family:var(--ddp-font)!important;border-radius:9px!important;height:34px!important;padding:0 10px!important;font-size:12px!important;font-weight:650!important;transition:background-color .16s,color .16s,transform .16s!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__button .dash-debug-menu__icon{color:inherit!important;transition:color .16s!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__button:hover,html[data-ddp-native-toolbar-theme] .dash-debug-menu__button:focus-visible,html[data-ddp-native-toolbar-theme] .dash-debug-menu__button--selected,html[data-ddp-native-toolbar-theme] #dash-devtools-plus-button[aria-expanded=true]{background:color-mix(in srgb, var(--ddp-native-toolbar-accent,#119dff) 11%, #f5fbff)!important;color:var(--ddp-native-toolbar-accent,#119dff)!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__button:focus-visible,html[data-ddp-native-toolbar-theme] .dash-debug-menu__toggle:focus-visible{outline-offset:2px;outline:2px solid var(--ddp-native-toolbar-accent,#119dff)!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__button--error{color:#d35b67!important;background:#fff1f2!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__button:has(.dash-debug-menu__error-count){color:#a84755!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__button--selected:has(.dash-debug-menu__error-count){color:#a84755!important;background:#fff0f2!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__error-count{min-width:18px;color:#fff!important;font-family:var(--ddp-mono)!important;background:#d35b69!important;border-radius:6px!important;padding:4px 5px!important;font-size:10px!important;font-weight:750!important;box-shadow:0 2px 7px #c84a5938!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__divider{background:#dbe7ef!important;width:1px!important;height:18px!important;margin:0 5px!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__version{color:#7892a7!important;font-family:var(--ddp-mono)!important;background:#f0f5f8!important;border-radius:7px!important;padding:6px 8px!important;font-size:11px!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__status{color:#5d7486!important;background:#f1f5f8!important;border-radius:8px!important;padding:6px 8px!important;font-size:11px!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__status.dash-debug-menu__button--available{color:#287e60!important;background:#ecf9f3!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__status.dash-debug-menu__button--unavailable{color:#a94053!important;background:#fff0f2!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__status.dash-debug-menu__button--cold{color:#8c6b3b!important;background:#fff8ec!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__toggle{background:color-mix(in srgb, var(--ddp-native-toolbar-accent,#119dff) 10%, #f8fcff)!important;color:var(--ddp-native-toolbar-accent,#119dff)!important;border-radius:11px!important;justify-content:center!important;align-items:center!important;width:38px!important;height:38px!important;margin-left:3px!important;display:flex!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__toggle--collapsed{margin-left:0!important}html[data-ddp-native-toolbar-theme] .dash-debug-menu__toggle:hover{background:color-mix(in srgb, var(--ddp-native-toolbar-accent,#119dff) 17%, #f4faff)!important}html[data-ddp-native-toolbar-theme] .dash-error-card--container{-webkit-backdrop-filter:blur(18px)saturate(1.12);backdrop-filter:blur(18px)saturate(1.12);box-sizing:border-box;max-width:calc(100vw - 36px);color:#314e66!important;font-family:var(--ddp-font)!important;background:#f9fcfff7!important;border:1px solid #cfe3f1!important;border-radius:14px!important;padding:12px!important;box-shadow:0 20px 52px #17365038,0 4px 12px #1a405b1a!important}html[data-ddp-native-toolbar-theme] .dash-error-card__topbar{background:linear-gradient(110deg,#edf7ff,#f5fbff);border:1px solid #d8eaf6;border-radius:10px;align-items:center;min-height:42px;margin-bottom:10px;display:flex;padding:7px 10px!important}html[data-ddp-native-toolbar-theme] .dash-error-card__message{color:#2a536f!important;font-size:14px!important;font-weight:750!important}html[data-ddp-native-toolbar-theme] .dash-error-card__message:before{content:"";background:#d35b69;border-radius:50%;width:7px;height:7px;margin:0 10px 1px 3px;display:inline-block;box-shadow:0 0 0 4px #fbe8eb}html[data-ddp-native-toolbar-theme] .dash-fe-error__icon-x{border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;color:#68839a!important;font-size:21px!important}html[data-ddp-native-toolbar-theme] .dash-fe-error__icon-x:hover{background:#e3f1fb;color:#266fa6!important}html[data-ddp-native-toolbar-theme] .dash-error-card__list{scrollbar-color:#bfd5e4 transparent;max-height:min(70vh,660px);overflow-y:auto}html[data-ddp-native-toolbar-theme] .dash-error-card__content{overflow:hidden;background:#fff!important;border:1px solid #dceaf4!important;border-radius:10px!important}html[data-ddp-native-toolbar-theme] .dash-error-card__content+.dash-error-card__content{margin-top:8px}html[data-ddp-native-toolbar-theme] .dash-fe-error-item{cursor:pointer;gap:8px;min-height:42px;color:#38536b!important;background:#fff!important;border-radius:9px!important;padding:10px 12px!important;transition:background-color .15s!important}html[data-ddp-native-toolbar-theme] .dash-fe-error-item:hover{background:#f2f9fe!important}html[data-ddp-native-toolbar-theme] .dash-fe-error__title{color:#35536b!important;font-size:12px!important;font-weight:680!important}html[data-ddp-native-toolbar-theme] .dash-fe-error__timestamp{color:#819caf!important;font-family:var(--ddp-mono)!important;font-size:11px!important}html[data-ddp-native-toolbar-theme] .dash-fe-error__collapse path{stroke:#7b9db5}html[data-ddp-native-toolbar-theme] .dash-error-card .error-container{background:#fff;padding:0 10px 10px}html[data-ddp-native-toolbar-theme] .dash-fe-error__info{color:#526e84!important;font-family:var(--ddp-mono)!important;background:#f6fbff!important;border:1px solid #d8eaf6!important;border-radius:8px!important;padding:10px!important;font-size:11px!important}html[data-ddp-native-toolbar-theme] .dash-fe-error__info details[open]{scrollbar-color:#bed5e5 transparent;max-height:270px;overflow:auto}html[data-ddp-native-toolbar-theme] .dash-fe-error__info details summary{color:#427a9c;cursor:pointer;background:#f6fbff;line-height:1.5;position:sticky;top:0}html[data-ddp-native-toolbar-theme] .dash-fe-error__info details p{color:#526c82;overflow-wrap:anywhere;border-top:1px solid #e0ecf4;margin:7px 0 0;padding-top:7px;font-size:11px;line-height:1.55}html[data-ddp-native-toolbar-theme] .dash-be-error__st{border:1px solid #f0d3d7;border-radius:9px;width:100%;margin-top:8px;padding:8px;background:#fff5f6!important;display:block!important}html[data-ddp-native-toolbar-theme] .dash-backend-error{width:100%;padding:0!important}html[data-ddp-native-toolbar-theme] .dash-backend-error iframe{border-radius:7px;max-width:100%;display:block;background:#f8fbfe!important;border:0!important;width:100%!important}html[data-ddp-native-toolbar-theme=paper-atelier]{--ddp-skin-surface:#fffdf8;--ddp-skin-card:#fffefb;--ddp-skin-border:#dfd0bb;--ddp-skin-ink:#594d3c;--ddp-skin-muted:#8b7b67;--ddp-skin-active:#f8ead6;--ddp-skin-soft:#f7f0e5;--ddp-skin-info:#fcf5e9;--ddp-skin-error:#fff1eb;--ddp-skin-error-border:#edc9bc;--ddp-skin-danger:#b85751;--ddp-skin-success:#628063;--ddp-skin-success-bg:#edf5e9;--ddp-skin-cold-bg:#fff4dc;--ddp-skin-radius:7px;--ddp-skin-dock-radius:9px 0 0 0;--ddp-skin-bottom:0px;--ddp-skin-right:0px;--ddp-skin-shadow:0 13px 35px #52412b29, 0 2px 6px #52412b0f}html[data-ddp-native-toolbar-theme=mint-circuit]{--ddp-skin-surface:#fafffcf7;--ddp-skin-card:#fff;--ddp-skin-border:#bfe2d6;--ddp-skin-ink:#3d665d;--ddp-skin-muted:#71948b;--ddp-skin-active:#e1f6ec;--ddp-skin-soft:#eaf7f1;--ddp-skin-info:#f1faf6;--ddp-skin-error:#fff1ed;--ddp-skin-error-border:#f0c9bf;--ddp-skin-danger:#bb5f57;--ddp-skin-success:#217d60;--ddp-skin-success-bg:#e1f5e9;--ddp-skin-cold-bg:#fff8e8;--ddp-skin-radius:13px;--ddp-skin-dock-radius:999px;--ddp-skin-bottom:18px;--ddp-skin-right:18px;--ddp-skin-shadow:0 17px 42px #1f68502e, 0 2px 8px #1f685012}html[data-ddp-native-toolbar-theme=coral-studio]{--ddp-skin-surface:#fffbf9f7;--ddp-skin-card:#fffefd;--ddp-skin-border:#efd5cb;--ddp-skin-ink:#68554d;--ddp-skin-muted:#987f75;--ddp-skin-active:#ffe9e1;--ddp-skin-soft:#fbf0eb;--ddp-skin-info:#fff5f0;--ddp-skin-error:#fff0ed;--ddp-skin-error-border:#efc5bc;--ddp-skin-danger:#bb5956;--ddp-skin-success:#468568;--ddp-skin-success-bg:#eaf6ed;--ddp-skin-cold-bg:#fff5e6;--ddp-skin-radius:14px;--ddp-skin-dock-radius:19px;--ddp-skin-bottom:18px;--ddp-skin-right:18px;--ddp-skin-shadow:0 17px 42px #7e45382e, 0 2px 8px #7e453812}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__outer{-webkit-backdrop-filter:blur(12px)saturate(1.1);backdrop-filter:blur(12px)saturate(1.1);background:var(--ddp-skin-surface)!important;border-color:var(--ddp-skin-border)!important;border-radius:var(--ddp-skin-dock-radius)!important;bottom:var(--ddp-skin-bottom)!important;box-shadow:var(--ddp-skin-shadow)!important;right:var(--ddp-skin-right)!important}html[data-ddp-native-toolbar-theme=paper-atelier] .dash-debug-menu__outer{-webkit-backdrop-filter:none;backdrop-filter:none}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__button{border-radius:var(--ddp-skin-radius)!important;color:var(--ddp-skin-ink)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__button:hover,html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__button:focus-visible,html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__button--selected,html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) #dash-devtools-plus-button[aria-expanded=true]{background:var(--ddp-skin-active)!important;color:var(--ddp-native-toolbar-accent)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__divider{background:var(--ddp-skin-border)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__version,html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__status{background:var(--ddp-skin-soft)!important;border-radius:var(--ddp-skin-radius)!important;color:var(--ddp-skin-muted)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__status.dash-debug-menu__button--available{background:var(--ddp-skin-success-bg)!important;color:var(--ddp-skin-success)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__status.dash-debug-menu__button--unavailable{background:var(--ddp-skin-error)!important;color:var(--ddp-skin-danger)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__status.dash-debug-menu__button--cold{background:var(--ddp-skin-cold-bg)!important;color:#8c6b3b!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__toggle{background:var(--ddp-skin-active)!important;border-radius:var(--ddp-skin-radius)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__toggle:hover{background:color-mix(in srgb, var(--ddp-native-toolbar-accent) 17%, var(--ddp-skin-card))!important}:is(html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__button--error,html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__button--selected:has(.dash-debug-menu__error-count)){background:var(--ddp-skin-error)!important;color:var(--ddp-skin-danger)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__button:has(.dash-debug-menu__error-count){color:var(--ddp-skin-danger)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-debug-menu__error-count{background:var(--ddp-skin-danger)!important;border-radius:var(--ddp-skin-radius)!important;box-shadow:none!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-error-card--container{background:var(--ddp-skin-surface)!important;border-color:var(--ddp-skin-border)!important;border-radius:calc(var(--ddp-skin-radius) + 5px)!important;box-shadow:var(--ddp-skin-shadow)!important;color:var(--ddp-skin-ink)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-error-card__topbar{background:var(--ddp-skin-soft)!important;border-color:var(--ddp-skin-border)!important;border-radius:var(--ddp-skin-radius)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-error-card__message,html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__title{color:var(--ddp-skin-ink)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-error-card__message:before{background:var(--ddp-skin-danger)!important;box-shadow:0 0 0 4px var(--ddp-skin-error)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-error-card__content{background:var(--ddp-skin-card)!important;border-color:var(--ddp-skin-border)!important;border-radius:var(--ddp-skin-radius)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error-item{background:var(--ddp-skin-card)!important;border-radius:var(--ddp-skin-radius)!important;color:var(--ddp-skin-ink)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error-item:hover{background:var(--ddp-skin-soft)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__timestamp,html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__icon-x{color:var(--ddp-skin-muted)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__icon-x:hover{background:var(--ddp-skin-active)!important;color:var(--ddp-native-toolbar-accent)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__collapse path{stroke:var(--ddp-skin-muted)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-error-card .error-container{background:var(--ddp-skin-card)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__info{background:var(--ddp-skin-info)!important;border-color:var(--ddp-skin-border)!important;border-radius:var(--ddp-skin-radius)!important;color:var(--ddp-skin-muted)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__info details summary{background:var(--ddp-skin-info)!important;color:var(--ddp-native-toolbar-accent)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-fe-error__info details p{border-color:var(--ddp-skin-border)!important;color:var(--ddp-skin-muted)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-be-error__st{background:var(--ddp-skin-error)!important;border-color:var(--ddp-skin-error-border)!important;border-radius:var(--ddp-skin-radius)!important}html:is([data-ddp-native-toolbar-theme=paper-atelier],[data-ddp-native-toolbar-theme=mint-circuit],[data-ddp-native-toolbar-theme=coral-studio]) .dash-backend-error iframe{background:var(--ddp-skin-card)!important;border-radius:var(--ddp-skin-radius)!important}@media (width<=680px){.ddp-toolbar-theme-card{padding:13px}.ddp-toolbar-theme-preview{height:105px}.ddp-toolbar-preview-dock{transform-origin:100% 100%;transform:scale(.82)}html[data-ddp-native-toolbar-theme] .dash-debug-menu__outer{max-width:calc(100vw - 20px);bottom:10px!important;right:10px!important}html[data-ddp-native-toolbar-theme] .dash-error-card--container{max-width:calc(100vw - 20px)}}@media (width<=500px){.ddp-toolbar-preview-dock{transform:scale(.6)}}@media (width<=420px){.ddp-toolbar-preview-dock{transform:scale(.46)}}@media (prefers-reduced-motion:reduce){.ddp-toolbar-theme-card,html[data-ddp-native-toolbar-theme] .dash-debug-menu__outer,html[data-ddp-native-toolbar-theme] .dash-debug-menu__button,html[data-ddp-native-toolbar-theme] .dash-fe-error-item{transition:none!important}}
|
|
2
|
+
/*$vite$:1*/
|