@co0ontty/wand 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.js +0 -40
- package/dist/resume-policy.d.ts +0 -77
- package/dist/resume-policy.js +0 -162
- package/dist/server.js +27 -35
- package/dist/storage.js +38 -112
- package/dist/types.d.ts +0 -17
- package/dist/web-ui/content/scripts.js +817 -725
- package/dist/web-ui/content/styles.css +568 -758
- package/dist/web-ui/scripts.js +3 -6
- package/package.json +1 -1
|
@@ -100,6 +100,7 @@
|
|
|
100
100
|
/* ===== 布局尺寸 ===== */
|
|
101
101
|
--sidebar-width: 300px;
|
|
102
102
|
--file-panel-width: 320px;
|
|
103
|
+
--safe-bottom: 0px;
|
|
103
104
|
|
|
104
105
|
/* ===== 高级缓动函数 ===== */
|
|
105
106
|
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
@@ -122,13 +123,12 @@
|
|
|
122
123
|
|
|
123
124
|
/* ===== PWA 独立窗口模式 ===== */
|
|
124
125
|
@media (display-mode: standalone) {
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
:root {
|
|
127
|
+
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
|
127
128
|
}
|
|
128
129
|
.app-container {
|
|
129
130
|
--pwa-top-inset: env(safe-area-inset-top, 0px);
|
|
130
131
|
padding-top: env(safe-area-inset-top, 0px);
|
|
131
|
-
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
132
132
|
}
|
|
133
133
|
.sidebar-header {
|
|
134
134
|
padding-top: calc(14px + env(safe-area-inset-top, 0px));
|
|
@@ -139,25 +139,18 @@
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
/* iOS Safari PWA fallback (navigator.standalone adds .is-pwa via JS) */
|
|
142
|
-
.is-pwa
|
|
143
|
-
|
|
142
|
+
.is-pwa {
|
|
143
|
+
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
|
144
144
|
}
|
|
145
145
|
.is-pwa .app-container {
|
|
146
146
|
--pwa-top-inset: env(safe-area-inset-top, 0px);
|
|
147
147
|
padding-top: env(safe-area-inset-top, 0px);
|
|
148
|
-
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
149
148
|
}
|
|
150
149
|
.is-pwa .sidebar-header {
|
|
151
150
|
padding-top: calc(14px + env(safe-area-inset-top, 0px));
|
|
152
151
|
}
|
|
153
152
|
|
|
154
153
|
/* ===== PWA 窗口控件覆盖模式 (Window Controls Overlay) ===== */
|
|
155
|
-
@media (display-mode: window-controls-overlay) {
|
|
156
|
-
.floating-sidebar-toggle {
|
|
157
|
-
top: max(10px, env(titlebar-area-y, 10px));
|
|
158
|
-
left: max(10px, env(titlebar-area-x, 10px));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
154
|
|
|
162
155
|
/* ===== 首帧过渡抑制 ===== */
|
|
163
156
|
html.no-transition,
|
|
@@ -242,18 +235,17 @@
|
|
|
242
235
|
overflow: hidden;
|
|
243
236
|
}
|
|
244
237
|
|
|
245
|
-
/* =====
|
|
238
|
+
/* ===== 侧栏切换按钮 ===== */
|
|
246
239
|
.floating-sidebar-toggle {
|
|
247
|
-
position:
|
|
248
|
-
|
|
249
|
-
left: 10px;
|
|
250
|
-
z-index: 200;
|
|
240
|
+
position: relative;
|
|
241
|
+
z-index: 1;
|
|
251
242
|
width: 34px;
|
|
252
243
|
height: 34px;
|
|
253
244
|
padding: 0;
|
|
254
|
-
display: flex;
|
|
245
|
+
display: inline-flex;
|
|
255
246
|
align-items: center;
|
|
256
247
|
justify-content: center;
|
|
248
|
+
flex-shrink: 0;
|
|
257
249
|
background: rgba(255, 251, 245, 0.85);
|
|
258
250
|
border: 1px solid var(--border-subtle);
|
|
259
251
|
border-radius: var(--radius-sm);
|
|
@@ -263,6 +255,42 @@
|
|
|
263
255
|
transition: all var(--transition-fast);
|
|
264
256
|
}
|
|
265
257
|
|
|
258
|
+
.main-header-row .floating-sidebar-toggle {
|
|
259
|
+
margin-right: 2px;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.main-header-row .floating-sidebar-toggle.active {
|
|
263
|
+
opacity: 1;
|
|
264
|
+
pointer-events: auto;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.main-header-row .floating-sidebar-toggle.active .hamburger-icon span:nth-child(1) {
|
|
268
|
+
transform: translateY(5px) rotate(45deg);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.main-header-row .floating-sidebar-toggle.active .hamburger-icon span:nth-child(2) {
|
|
272
|
+
opacity: 0;
|
|
273
|
+
transform: scaleX(0);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.main-header-row .floating-sidebar-toggle.active .hamburger-icon span:nth-child(3) {
|
|
277
|
+
transform: translateY(-5px) rotate(-45deg);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.main-header-row .floating-sidebar-toggle:hover {
|
|
281
|
+
background: rgba(255, 251, 245, 0.95);
|
|
282
|
+
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.main-header-row .floating-sidebar-toggle:active {
|
|
286
|
+
transform: scale(0.92);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.main-header-row .floating-sidebar-toggle.active:hover .hamburger-icon span,
|
|
290
|
+
.main-header-row .floating-sidebar-toggle:hover .hamburger-icon span {
|
|
291
|
+
background: var(--text-primary);
|
|
292
|
+
}
|
|
293
|
+
|
|
266
294
|
.floating-sidebar-toggle:hover {
|
|
267
295
|
background: rgba(255, 251, 245, 0.95);
|
|
268
296
|
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
|
|
@@ -1795,6 +1823,12 @@
|
|
|
1795
1823
|
.topbar-btn:active {
|
|
1796
1824
|
transform: scale(0.95);
|
|
1797
1825
|
}
|
|
1826
|
+
.topbar-btn.active {
|
|
1827
|
+
background: rgba(255, 255, 255, 0.7);
|
|
1828
|
+
color: var(--text-primary);
|
|
1829
|
+
font-weight: 600;
|
|
1830
|
+
box-shadow: 0 1px 4px rgba(89, 58, 32, 0.1);
|
|
1831
|
+
}
|
|
1798
1832
|
|
|
1799
1833
|
/* Square icon variant — exactly 32×32px */
|
|
1800
1834
|
.topbar-btn.square {
|
|
@@ -1998,8 +2032,6 @@
|
|
|
1998
2032
|
overflow: hidden;
|
|
1999
2033
|
background: transparent;
|
|
2000
2034
|
position: relative;
|
|
2001
|
-
padding: 8px 6px 6px;
|
|
2002
|
-
gap: 0;
|
|
2003
2035
|
}
|
|
2004
2036
|
|
|
2005
2037
|
.main-content.file-panel-open {
|
|
@@ -2007,173 +2039,20 @@
|
|
|
2007
2039
|
transition: margin-right 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
2008
2040
|
}
|
|
2009
2041
|
|
|
2010
|
-
.
|
|
2011
|
-
display: flex;
|
|
2012
|
-
align-items: center;
|
|
2013
|
-
justify-content: space-between;
|
|
2014
|
-
gap: 12px;
|
|
2015
|
-
min-height: 44px;
|
|
2016
|
-
padding: 6px 10px 8px;
|
|
2017
|
-
border: 1px solid rgba(140, 110, 85, 0.14);
|
|
2018
|
-
border-bottom: none;
|
|
2019
|
-
border-radius: 16px 16px 0 0;
|
|
2020
|
-
background: rgba(255, 252, 248, 0.94);
|
|
2021
|
-
backdrop-filter: blur(14px);
|
|
2022
|
-
box-shadow:
|
|
2023
|
-
0 8px 20px rgba(89, 58, 32, 0.06),
|
|
2024
|
-
inset 0 -1px 0 rgba(255, 255, 255, 0.5);
|
|
2025
|
-
flex-shrink: 0;
|
|
2026
|
-
position: relative;
|
|
2027
|
-
z-index: 2;
|
|
2028
|
-
}
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
.main-content-header-left,
|
|
2032
|
-
.main-content-header-center,
|
|
2033
|
-
.main-content-header-right {
|
|
2034
|
-
display: flex;
|
|
2035
|
-
align-items: center;
|
|
2036
|
-
gap: 8px;
|
|
2037
|
-
min-width: 0;
|
|
2038
|
-
}
|
|
2039
|
-
|
|
2040
|
-
.main-content-header-left,
|
|
2041
|
-
.main-content-header-right {
|
|
2042
|
-
flex: 1;
|
|
2043
|
-
}
|
|
2044
|
-
|
|
2045
|
-
.main-content-header-center {
|
|
2046
|
-
justify-content: center;
|
|
2047
|
-
flex: 0 1 auto;
|
|
2048
|
-
}
|
|
2049
|
-
|
|
2050
|
-
.main-content-header-right {
|
|
2051
|
-
justify-content: flex-end;
|
|
2052
|
-
flex-wrap: wrap;
|
|
2053
|
-
}
|
|
2042
|
+
.terminal-info { font-size: 0.625rem; color: var(--text-muted); font-weight: 500; }
|
|
2054
2043
|
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
min-height: 0;
|
|
2044
|
+
/* ===== 主内容区顶部行 ===== */
|
|
2045
|
+
.main-header-row {
|
|
2058
2046
|
display: flex;
|
|
2059
|
-
flex-direction: column;
|
|
2060
|
-
position: relative;
|
|
2061
|
-
overflow: hidden;
|
|
2062
|
-
border-radius: 0 0 14px 14px;
|
|
2063
|
-
margin-top: -1px;
|
|
2064
|
-
}
|
|
2065
|
-
|
|
2066
|
-
.main-content-body::before {
|
|
2067
|
-
content: "";
|
|
2068
|
-
position: absolute;
|
|
2069
|
-
top: 0;
|
|
2070
|
-
left: 14px;
|
|
2071
|
-
right: 14px;
|
|
2072
|
-
height: 8px;
|
|
2073
|
-
background: linear-gradient(180deg, rgba(255, 255, 255, 0.09) 0%, rgba(255, 255, 255, 0) 100%);
|
|
2074
|
-
pointer-events: none;
|
|
2075
|
-
z-index: 1;
|
|
2076
|
-
}
|
|
2077
|
-
|
|
2078
|
-
.main-content-body > .terminal-container,
|
|
2079
|
-
.main-content-body > .chat-container,
|
|
2080
|
-
.main-content-body > .blank-chat {
|
|
2081
|
-
border-top-color: transparent;
|
|
2082
|
-
}
|
|
2083
|
-
|
|
2084
|
-
.main-header-controls {
|
|
2085
|
-
display: inline-flex;
|
|
2086
2047
|
align-items: center;
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
flex-wrap: wrap;
|
|
2090
|
-
}
|
|
2091
|
-
|
|
2092
|
-
.main-header-btn,
|
|
2093
|
-
.main-header-label {
|
|
2094
|
-
height: 32px;
|
|
2095
|
-
border-radius: 10px;
|
|
2048
|
+
justify-content: flex-start;
|
|
2049
|
+
padding: 4px 10px;
|
|
2096
2050
|
flex-shrink: 0;
|
|
2051
|
+
min-height: 0;
|
|
2052
|
+
gap: 8px;
|
|
2097
2053
|
}
|
|
2098
2054
|
|
|
2099
|
-
|
|
2100
|
-
display: inline-flex;
|
|
2101
|
-
align-items: center;
|
|
2102
|
-
justify-content: center;
|
|
2103
|
-
gap: 6px;
|
|
2104
|
-
padding: 0 10px;
|
|
2105
|
-
border: 1px solid rgba(125, 91, 57, 0.12);
|
|
2106
|
-
background: rgba(255, 255, 255, 0.7);
|
|
2107
|
-
color: var(--text-secondary);
|
|
2108
|
-
font-size: 0.75rem;
|
|
2109
|
-
font-weight: 500;
|
|
2110
|
-
font-family: var(--font-sans);
|
|
2111
|
-
cursor: pointer;
|
|
2112
|
-
transition: all var(--transition-fast);
|
|
2113
|
-
white-space: nowrap;
|
|
2114
|
-
}
|
|
2115
|
-
|
|
2116
|
-
.main-header-btn:hover {
|
|
2117
|
-
background: rgba(255, 255, 255, 0.95);
|
|
2118
|
-
border-color: rgba(197, 101, 61, 0.22);
|
|
2119
|
-
color: var(--text-primary);
|
|
2120
|
-
}
|
|
2121
|
-
|
|
2122
|
-
.main-header-btn:active {
|
|
2123
|
-
transform: translateY(1px);
|
|
2124
|
-
}
|
|
2125
|
-
|
|
2126
|
-
.main-header-label {
|
|
2127
|
-
display: inline-flex;
|
|
2128
|
-
align-items: center;
|
|
2129
|
-
justify-content: center;
|
|
2130
|
-
padding: 0 10px;
|
|
2131
|
-
background: rgba(240, 229, 215, 0.55);
|
|
2132
|
-
border: 1px solid rgba(125, 91, 57, 0.08);
|
|
2133
|
-
color: var(--text-muted);
|
|
2134
|
-
font-size: 0.6875rem;
|
|
2135
|
-
font-weight: 600;
|
|
2136
|
-
white-space: nowrap;
|
|
2137
|
-
}
|
|
2138
|
-
|
|
2139
|
-
.menu-toggle-btn {
|
|
2140
|
-
padding: 0 12px;
|
|
2141
|
-
min-width: 40px;
|
|
2142
|
-
}
|
|
2143
|
-
|
|
2144
|
-
.menu-toggle-btn.active {
|
|
2145
|
-
background: var(--accent-muted);
|
|
2146
|
-
border-color: rgba(197, 101, 61, 0.22);
|
|
2147
|
-
color: var(--accent);
|
|
2148
|
-
}
|
|
2149
|
-
|
|
2150
|
-
.jump-latest-btn {
|
|
2151
|
-
opacity: 0;
|
|
2152
|
-
transform: translateY(4px);
|
|
2153
|
-
pointer-events: none;
|
|
2154
|
-
}
|
|
2155
|
-
|
|
2156
|
-
.jump-latest-btn.visible {
|
|
2157
|
-
opacity: 1;
|
|
2158
|
-
transform: translateY(0);
|
|
2159
|
-
pointer-events: auto;
|
|
2160
|
-
}
|
|
2161
|
-
|
|
2162
|
-
.main-header-new-session {
|
|
2163
|
-
background: rgba(197, 101, 61, 0.12);
|
|
2164
|
-
border-color: rgba(197, 101, 61, 0.18);
|
|
2165
|
-
color: var(--accent);
|
|
2166
|
-
font-weight: 600;
|
|
2167
|
-
}
|
|
2168
|
-
|
|
2169
|
-
.main-header-new-session:hover {
|
|
2170
|
-
background: rgba(197, 101, 61, 0.18);
|
|
2171
|
-
border-color: rgba(197, 101, 61, 0.28);
|
|
2172
|
-
}
|
|
2173
|
-
|
|
2174
|
-
.terminal-info { font-size: 0.625rem; color: var(--text-muted); font-weight: 500; }
|
|
2175
|
-
|
|
2176
|
-
/* Current task indicator in terminal header */
|
|
2055
|
+
/* Current task indicator */
|
|
2177
2056
|
.current-task {
|
|
2178
2057
|
display: flex;
|
|
2179
2058
|
align-items: center;
|
|
@@ -2186,7 +2065,9 @@
|
|
|
2186
2065
|
padding: 2px 8px 2px 5px;
|
|
2187
2066
|
font-weight: 500;
|
|
2188
2067
|
max-width: 280px;
|
|
2068
|
+
min-width: 0;
|
|
2189
2069
|
overflow: hidden;
|
|
2070
|
+
flex-shrink: 1;
|
|
2190
2071
|
text-overflow: ellipsis;
|
|
2191
2072
|
white-space: nowrap;
|
|
2192
2073
|
}
|
|
@@ -2221,8 +2102,8 @@
|
|
|
2221
2102
|
padding: 10px;
|
|
2222
2103
|
overflow: hidden;
|
|
2223
2104
|
min-height: 0;
|
|
2224
|
-
margin: 0;
|
|
2225
|
-
border-radius:
|
|
2105
|
+
margin: 0 6px 6px;
|
|
2106
|
+
border-radius: var(--radius-md);
|
|
2226
2107
|
border: 1px solid rgba(140, 110, 85, 0.35);
|
|
2227
2108
|
box-shadow:
|
|
2228
2109
|
inset 0 1px 0 rgba(255, 255, 255, 0.06),
|
|
@@ -2232,13 +2113,6 @@
|
|
|
2232
2113
|
transition: border-color var(--transition-normal), box-shadow var(--transition-normal);
|
|
2233
2114
|
}
|
|
2234
2115
|
|
|
2235
|
-
.terminal-container.hidden,
|
|
2236
|
-
.chat-container.hidden,
|
|
2237
|
-
.blank-chat.hidden,
|
|
2238
|
-
.input-panel.hidden {
|
|
2239
|
-
display: none !important;
|
|
2240
|
-
}
|
|
2241
|
-
|
|
2242
2116
|
.terminal-container.active {
|
|
2243
2117
|
display: flex;
|
|
2244
2118
|
align-items: stretch;
|
|
@@ -2410,6 +2284,25 @@
|
|
|
2410
2284
|
50% { opacity: 1; }
|
|
2411
2285
|
}
|
|
2412
2286
|
|
|
2287
|
+
/* 容器底部渐变 — 为 jump-to-bottom 按钮提供视觉承托 */
|
|
2288
|
+
.terminal-container::after {
|
|
2289
|
+
content: "";
|
|
2290
|
+
position: absolute;
|
|
2291
|
+
bottom: 0;
|
|
2292
|
+
left: 0;
|
|
2293
|
+
right: 0;
|
|
2294
|
+
height: 48px;
|
|
2295
|
+
background: linear-gradient(to top, rgba(26, 22, 19, 0.5), transparent);
|
|
2296
|
+
pointer-events: none;
|
|
2297
|
+
opacity: 0;
|
|
2298
|
+
transition: opacity 0.3s ease;
|
|
2299
|
+
z-index: 12;
|
|
2300
|
+
border-radius: 0 0 var(--radius-md) var(--radius-md);
|
|
2301
|
+
}
|
|
2302
|
+
.terminal-container.has-jump-btn::after {
|
|
2303
|
+
opacity: 1;
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2413
2306
|
/* Chat View — matches topbar-btn height (32px) */
|
|
2414
2307
|
.view-toggle {
|
|
2415
2308
|
display: flex;
|
|
@@ -2464,127 +2357,100 @@
|
|
|
2464
2357
|
text-align: center;
|
|
2465
2358
|
padding: 0 2px;
|
|
2466
2359
|
}
|
|
2467
|
-
.terminal-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
border
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2360
|
+
.terminal-scale-overlay {
|
|
2361
|
+
position: absolute;
|
|
2362
|
+
top: 8px;
|
|
2363
|
+
right: 8px;
|
|
2364
|
+
display: inline-flex;
|
|
2365
|
+
align-items: center;
|
|
2366
|
+
gap: 1px;
|
|
2367
|
+
padding: 2px;
|
|
2368
|
+
border-radius: 7px;
|
|
2369
|
+
border: 1px solid rgba(255, 255, 255, 0.06);
|
|
2370
|
+
background: rgba(24, 20, 17, 0.38);
|
|
2371
|
+
backdrop-filter: blur(8px);
|
|
2372
|
+
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
|
|
2373
|
+
opacity: 0.72;
|
|
2374
|
+
transition: opacity 0.18s ease, background 0.18s ease, border-color 0.18s ease;
|
|
2375
|
+
z-index: 12;
|
|
2376
|
+
pointer-events: auto;
|
|
2480
2377
|
}
|
|
2481
|
-
|
|
2482
|
-
.terminal-scale-
|
|
2483
|
-
|
|
2484
|
-
|
|
2378
|
+
.terminal-container:hover .terminal-scale-overlay,
|
|
2379
|
+
.terminal-scale-overlay:focus-within {
|
|
2380
|
+
opacity: 1;
|
|
2381
|
+
background: rgba(24, 20, 17, 0.56);
|
|
2382
|
+
border-color: rgba(255, 255, 255, 0.1);
|
|
2485
2383
|
}
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2384
|
+
.terminal-scale-overlay-btn {
|
|
2385
|
+
min-width: 22px;
|
|
2386
|
+
height: 22px;
|
|
2387
|
+
padding: 0 3px;
|
|
2388
|
+
color: rgba(245, 234, 220, 0.88);
|
|
2389
|
+
background: transparent;
|
|
2390
|
+
border: none;
|
|
2391
|
+
border-radius: 5px;
|
|
2392
|
+
transition: background 0.18s ease, color 0.18s ease;
|
|
2489
2393
|
}
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
background: rgba(36, 28, 22, 0.88);
|
|
2494
|
-
color: rgba(245, 234, 220, 0.9);
|
|
2495
|
-
border-color: rgba(255, 255, 255, 0.1);
|
|
2394
|
+
.terminal-scale-overlay-btn:hover {
|
|
2395
|
+
background: rgba(214, 123, 82, 0.18);
|
|
2396
|
+
color: rgba(255, 247, 239, 0.96);
|
|
2496
2397
|
}
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2398
|
+
.terminal-scale-overlay-label {
|
|
2399
|
+
font-size: 0.625rem;
|
|
2400
|
+
color: rgba(245, 234, 220, 0.66);
|
|
2401
|
+
min-width: 34px;
|
|
2402
|
+
text-align: center;
|
|
2403
|
+
padding: 0 3px;
|
|
2501
2404
|
}
|
|
2502
2405
|
|
|
2503
|
-
|
|
2504
|
-
|
|
2406
|
+
.terminal-scale-overlay-divider {
|
|
2407
|
+
width: 1px;
|
|
2408
|
+
height: 14px;
|
|
2409
|
+
background: rgba(245, 234, 220, 0.2);
|
|
2410
|
+
margin: 0 2px;
|
|
2505
2411
|
}
|
|
2506
2412
|
|
|
2507
|
-
|
|
2508
|
-
|
|
2413
|
+
.terminal-jump-bottom {
|
|
2414
|
+
position: absolute;
|
|
2415
|
+
right: 14px;
|
|
2416
|
+
bottom: 18px;
|
|
2417
|
+
display: inline-flex;
|
|
2418
|
+
align-items: center;
|
|
2419
|
+
justify-content: center;
|
|
2420
|
+
gap: 6px;
|
|
2421
|
+
min-width: 78px;
|
|
2422
|
+
height: 32px;
|
|
2423
|
+
padding: 0 12px;
|
|
2424
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
2425
|
+
border-radius: 999px;
|
|
2426
|
+
background: rgba(24, 20, 17, 0.72);
|
|
2427
|
+
color: rgba(255, 247, 239, 0.92);
|
|
2428
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
|
|
2429
|
+
backdrop-filter: blur(10px);
|
|
2430
|
+
cursor: pointer;
|
|
2431
|
+
z-index: 13;
|
|
2432
|
+
opacity: 0;
|
|
2433
|
+
transform: translateY(12px) scale(0.92);
|
|
2434
|
+
pointer-events: none;
|
|
2435
|
+
transition: opacity 0.28s var(--ease-out-expo), transform 0.28s var(--ease-out-expo), background 0.18s ease, border-color 0.18s ease;
|
|
2509
2436
|
}
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2437
|
+
.terminal-jump-bottom.visible {
|
|
2438
|
+
opacity: 1;
|
|
2439
|
+
transform: translateY(0) scale(1);
|
|
2440
|
+
pointer-events: auto;
|
|
2513
2441
|
}
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2442
|
+
.terminal-jump-bottom:hover {
|
|
2443
|
+
background: rgba(38, 30, 24, 0.84);
|
|
2444
|
+
border-color: rgba(214, 123, 82, 0.28);
|
|
2517
2445
|
}
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
background: rgba(255, 255, 255, 0.92);
|
|
2446
|
+
.terminal-jump-bottom:active {
|
|
2447
|
+
transform: translateY(1px) scale(0.97);
|
|
2521
2448
|
}
|
|
2522
2449
|
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
#chat-header-controls .chat-jump-bottom {
|
|
2528
|
-
background: rgba(255, 250, 242, 0.92);
|
|
2529
|
-
color: var(--text-primary);
|
|
2530
|
-
border-color: rgba(125, 91, 57, 0.16);
|
|
2531
|
-
box-shadow: 0 8px 18px rgba(89, 58, 32, 0.12);
|
|
2532
|
-
transition: opacity 0.18s ease, transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
|
|
2533
|
-
}
|
|
2534
|
-
|
|
2535
|
-
#chat-header-controls .chat-jump-bottom:hover {
|
|
2536
|
-
background: rgba(255, 255, 255, 0.98);
|
|
2537
|
-
border-color: rgba(197, 101, 61, 0.24);
|
|
2538
|
-
}
|
|
2539
|
-
|
|
2540
|
-
#chat-header-controls .chat-jump-bottom:active {
|
|
2541
|
-
transform: translateY(1px);
|
|
2542
|
-
}
|
|
2543
|
-
|
|
2544
|
-
.terminal-scale-overlay,
|
|
2545
|
-
.terminal-scale-overlay-btn,
|
|
2546
|
-
.terminal-scale-overlay-label,
|
|
2547
|
-
.terminal-scale-overlay-divider,
|
|
2548
|
-
.chat-overlay-controls {
|
|
2549
|
-
display: none !important;
|
|
2550
|
-
}
|
|
2551
|
-
|
|
2552
|
-
.terminal-jump-bottom,
|
|
2553
|
-
.chat-jump-bottom {
|
|
2554
|
-
position: static;
|
|
2555
|
-
right: auto;
|
|
2556
|
-
bottom: auto;
|
|
2557
|
-
min-width: 78px;
|
|
2558
|
-
height: 32px;
|
|
2559
|
-
padding: 0 12px;
|
|
2560
|
-
border-radius: 999px;
|
|
2561
|
-
cursor: pointer;
|
|
2562
|
-
z-index: auto;
|
|
2563
|
-
}
|
|
2564
|
-
|
|
2565
|
-
.chat-jump-bottom.visible,
|
|
2566
|
-
.terminal-jump-bottom.visible {
|
|
2567
|
-
opacity: 1;
|
|
2568
|
-
transform: translateY(0);
|
|
2569
|
-
pointer-events: auto;
|
|
2570
|
-
}
|
|
2571
|
-
|
|
2572
|
-
.chat-jump-bottom {
|
|
2573
|
-
opacity: 0;
|
|
2574
|
-
transform: translateY(4px);
|
|
2575
|
-
pointer-events: none;
|
|
2576
|
-
}
|
|
2577
|
-
|
|
2578
|
-
.chat-jump-bottom.visible {
|
|
2579
|
-
opacity: 1;
|
|
2580
|
-
}
|
|
2581
|
-
|
|
2582
|
-
.chat-container.active { display: flex; }
|
|
2583
|
-
|
|
2584
|
-
/* Terminal interactive mode indicator */
|
|
2585
|
-
.terminal-container.interactive {
|
|
2586
|
-
border-color: rgba(79, 122, 88, 0.5);
|
|
2587
|
-
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 0 0 2px rgba(79, 122, 88, 0.25), var(--shadow-soft);
|
|
2450
|
+
/* Terminal interactive mode indicator */
|
|
2451
|
+
.terminal-container.interactive {
|
|
2452
|
+
border-color: rgba(79, 122, 88, 0.5);
|
|
2453
|
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 0 0 2px rgba(79, 122, 88, 0.25), var(--shadow-soft);
|
|
2588
2454
|
}
|
|
2589
2455
|
|
|
2590
2456
|
/* Mini keyboard FAB button */
|
|
@@ -2859,7 +2725,32 @@
|
|
|
2859
2725
|
overflow: hidden;
|
|
2860
2726
|
padding: 0 20px 16px;
|
|
2861
2727
|
background: linear-gradient(180deg, rgba(255, 252, 248, 0.5) 0%, transparent 100%);
|
|
2862
|
-
|
|
2728
|
+
}
|
|
2729
|
+
|
|
2730
|
+
.chat-overlay-controls {
|
|
2731
|
+
position: absolute;
|
|
2732
|
+
top: 8px;
|
|
2733
|
+
right: 8px;
|
|
2734
|
+
display: inline-flex;
|
|
2735
|
+
align-items: center;
|
|
2736
|
+
gap: 6px;
|
|
2737
|
+
padding: 2px;
|
|
2738
|
+
border-radius: 7px;
|
|
2739
|
+
border: 1px solid rgba(125, 91, 57, 0.12);
|
|
2740
|
+
background: rgba(255, 250, 242, 0.72);
|
|
2741
|
+
backdrop-filter: blur(8px);
|
|
2742
|
+
box-shadow: 0 6px 18px rgba(89, 58, 32, 0.12);
|
|
2743
|
+
opacity: 0.84;
|
|
2744
|
+
transition: opacity 0.18s ease, background 0.18s ease, border-color 0.18s ease;
|
|
2745
|
+
z-index: 12;
|
|
2746
|
+
pointer-events: auto;
|
|
2747
|
+
}
|
|
2748
|
+
|
|
2749
|
+
.chat-container:hover .chat-overlay-controls,
|
|
2750
|
+
.chat-overlay-controls:focus-within {
|
|
2751
|
+
opacity: 1;
|
|
2752
|
+
background: rgba(255, 250, 242, 0.88);
|
|
2753
|
+
border-color: rgba(197, 101, 61, 0.16);
|
|
2863
2754
|
}
|
|
2864
2755
|
|
|
2865
2756
|
.chat-follow-toggle {
|
|
@@ -2885,6 +2776,64 @@
|
|
|
2885
2776
|
background: rgba(197, 101, 61, 0.18);
|
|
2886
2777
|
}
|
|
2887
2778
|
|
|
2779
|
+
.chat-jump-bottom {
|
|
2780
|
+
position: absolute;
|
|
2781
|
+
right: 14px;
|
|
2782
|
+
bottom: 18px;
|
|
2783
|
+
display: inline-flex;
|
|
2784
|
+
align-items: center;
|
|
2785
|
+
justify-content: center;
|
|
2786
|
+
gap: 6px;
|
|
2787
|
+
min-width: 78px;
|
|
2788
|
+
height: 32px;
|
|
2789
|
+
padding: 0 12px;
|
|
2790
|
+
border: 1px solid rgba(125, 91, 57, 0.16);
|
|
2791
|
+
border-radius: 999px;
|
|
2792
|
+
background: rgba(255, 250, 242, 0.9);
|
|
2793
|
+
color: var(--text-primary);
|
|
2794
|
+
box-shadow: 0 4px 12px rgba(89, 58, 32, 0.10);
|
|
2795
|
+
backdrop-filter: blur(10px);
|
|
2796
|
+
cursor: pointer;
|
|
2797
|
+
z-index: 13;
|
|
2798
|
+
opacity: 0;
|
|
2799
|
+
transform: translateY(12px) scale(0.92);
|
|
2800
|
+
pointer-events: none;
|
|
2801
|
+
transition: opacity 0.28s var(--ease-out-expo), transform 0.28s var(--ease-out-expo), background 0.18s ease, border-color 0.18s ease;
|
|
2802
|
+
}
|
|
2803
|
+
|
|
2804
|
+
.chat-jump-bottom.visible {
|
|
2805
|
+
opacity: 1;
|
|
2806
|
+
transform: translateY(0) scale(1);
|
|
2807
|
+
pointer-events: auto;
|
|
2808
|
+
}
|
|
2809
|
+
|
|
2810
|
+
.chat-jump-bottom:hover {
|
|
2811
|
+
background: rgba(255, 255, 255, 0.98);
|
|
2812
|
+
border-color: rgba(197, 101, 61, 0.24);
|
|
2813
|
+
}
|
|
2814
|
+
|
|
2815
|
+
.chat-jump-bottom:active {
|
|
2816
|
+
transform: translateY(1px);
|
|
2817
|
+
}
|
|
2818
|
+
|
|
2819
|
+
.chat-container.active { display: flex; }
|
|
2820
|
+
|
|
2821
|
+
.chat-container::after {
|
|
2822
|
+
content: "";
|
|
2823
|
+
position: absolute;
|
|
2824
|
+
bottom: 0;
|
|
2825
|
+
left: 0;
|
|
2826
|
+
right: 0;
|
|
2827
|
+
height: 48px;
|
|
2828
|
+
background: linear-gradient(to top, rgba(255, 252, 248, 0.6), transparent);
|
|
2829
|
+
pointer-events: none;
|
|
2830
|
+
opacity: 0;
|
|
2831
|
+
transition: opacity 0.3s ease;
|
|
2832
|
+
z-index: 12;
|
|
2833
|
+
}
|
|
2834
|
+
.chat-container.has-jump-btn::after {
|
|
2835
|
+
opacity: 1;
|
|
2836
|
+
}
|
|
2888
2837
|
|
|
2889
2838
|
/* ===== 聊天消息列表 ===== */
|
|
2890
2839
|
.chat-messages {
|
|
@@ -3509,8 +3458,8 @@
|
|
|
3509
3458
|
}
|
|
3510
3459
|
.ask-user-option {
|
|
3511
3460
|
display: flex;
|
|
3512
|
-
align-items:
|
|
3513
|
-
gap:
|
|
3461
|
+
align-items: center;
|
|
3462
|
+
gap: 10px;
|
|
3514
3463
|
padding: 8px 12px;
|
|
3515
3464
|
border: 1px solid var(--border-default);
|
|
3516
3465
|
border-radius: var(--radius-sm);
|
|
@@ -3519,15 +3468,119 @@
|
|
|
3519
3468
|
transition: all var(--transition-fast);
|
|
3520
3469
|
text-align: left;
|
|
3521
3470
|
}
|
|
3522
|
-
.ask-user-option:hover {
|
|
3471
|
+
.ask-user-option:hover:not(:disabled) {
|
|
3523
3472
|
border-color: var(--accent);
|
|
3524
3473
|
background: rgba(197, 101, 61, 0.06);
|
|
3525
3474
|
}
|
|
3475
|
+
.ask-user-option:disabled {
|
|
3476
|
+
opacity: 0.5;
|
|
3477
|
+
cursor: not-allowed;
|
|
3478
|
+
}
|
|
3479
|
+
.ask-user-option.selected {
|
|
3480
|
+
border-color: var(--accent);
|
|
3481
|
+
background: rgba(197, 101, 61, 0.08);
|
|
3482
|
+
}
|
|
3483
|
+
/* Radio / Checkbox indicator */
|
|
3484
|
+
.ask-user-indicator {
|
|
3485
|
+
width: 16px;
|
|
3486
|
+
height: 16px;
|
|
3487
|
+
flex-shrink: 0;
|
|
3488
|
+
border: 2px solid var(--border-default);
|
|
3489
|
+
border-radius: 50%;
|
|
3490
|
+
transition: all var(--transition-fast);
|
|
3491
|
+
position: relative;
|
|
3492
|
+
display: flex;
|
|
3493
|
+
align-items: center;
|
|
3494
|
+
justify-content: center;
|
|
3495
|
+
}
|
|
3496
|
+
.ask-user-options[data-multi-select="true"] .ask-user-indicator {
|
|
3497
|
+
border-radius: 3px;
|
|
3498
|
+
}
|
|
3499
|
+
.ask-user-option.selected .ask-user-indicator {
|
|
3500
|
+
border-color: var(--accent);
|
|
3501
|
+
background: var(--accent);
|
|
3502
|
+
}
|
|
3503
|
+
.ask-user-option.selected .ask-user-indicator::after {
|
|
3504
|
+
content: "";
|
|
3505
|
+
width: 6px;
|
|
3506
|
+
height: 6px;
|
|
3507
|
+
background: white;
|
|
3508
|
+
border-radius: 50%;
|
|
3509
|
+
}
|
|
3510
|
+
.ask-user-options[data-multi-select="true"] .ask-user-option.selected .ask-user-indicator::after {
|
|
3511
|
+
width: 4px;
|
|
3512
|
+
height: 8px;
|
|
3513
|
+
border: solid white;
|
|
3514
|
+
border-width: 0 2px 2px 0;
|
|
3515
|
+
border-radius: 0;
|
|
3516
|
+
background: none;
|
|
3517
|
+
transform: rotate(45deg);
|
|
3518
|
+
margin-bottom: 2px;
|
|
3519
|
+
}
|
|
3520
|
+
/* Option content: label + description */
|
|
3521
|
+
.ask-user-option-content {
|
|
3522
|
+
flex: 1;
|
|
3523
|
+
min-width: 0;
|
|
3524
|
+
}
|
|
3526
3525
|
.ask-user-option-label {
|
|
3527
3526
|
font-size: 0.8125rem;
|
|
3528
3527
|
font-weight: 500;
|
|
3529
3528
|
color: var(--text-primary);
|
|
3530
3529
|
}
|
|
3530
|
+
.ask-user-option-desc {
|
|
3531
|
+
font-size: 0.75rem;
|
|
3532
|
+
color: var(--text-secondary);
|
|
3533
|
+
margin-top: 2px;
|
|
3534
|
+
line-height: 1.4;
|
|
3535
|
+
}
|
|
3536
|
+
/* Submit button */
|
|
3537
|
+
.ask-user-actions {
|
|
3538
|
+
margin-top: 10px;
|
|
3539
|
+
display: flex;
|
|
3540
|
+
justify-content: flex-end;
|
|
3541
|
+
}
|
|
3542
|
+
.ask-user-submit {
|
|
3543
|
+
padding: 6px 16px;
|
|
3544
|
+
border: 1px solid var(--accent);
|
|
3545
|
+
border-radius: var(--radius-sm);
|
|
3546
|
+
background: var(--accent);
|
|
3547
|
+
color: white;
|
|
3548
|
+
font-size: 0.8125rem;
|
|
3549
|
+
font-weight: 500;
|
|
3550
|
+
cursor: pointer;
|
|
3551
|
+
transition: all var(--transition-fast);
|
|
3552
|
+
}
|
|
3553
|
+
.ask-user-submit:hover:not(:disabled) {
|
|
3554
|
+
filter: brightness(1.1);
|
|
3555
|
+
}
|
|
3556
|
+
.ask-user-submit:disabled {
|
|
3557
|
+
opacity: 0.4;
|
|
3558
|
+
cursor: not-allowed;
|
|
3559
|
+
}
|
|
3560
|
+
.ask-user-submit.ask-user-submitted {
|
|
3561
|
+
background: var(--bg-secondary);
|
|
3562
|
+
border-color: var(--border-default);
|
|
3563
|
+
color: var(--text-muted);
|
|
3564
|
+
pointer-events: none;
|
|
3565
|
+
}
|
|
3566
|
+
/* Answered (read-only) state */
|
|
3567
|
+
.ask-user-answered .ask-user-option {
|
|
3568
|
+
cursor: default;
|
|
3569
|
+
pointer-events: none;
|
|
3570
|
+
opacity: 0.6;
|
|
3571
|
+
}
|
|
3572
|
+
.ask-user-answered .ask-user-option.ask-user-option-chosen {
|
|
3573
|
+
opacity: 1;
|
|
3574
|
+
border-color: var(--success);
|
|
3575
|
+
background: rgba(79, 122, 88, 0.06);
|
|
3576
|
+
}
|
|
3577
|
+
.ask-user-answered .ask-user-option.ask-user-option-chosen .ask-user-indicator {
|
|
3578
|
+
border-color: var(--success);
|
|
3579
|
+
background: var(--success);
|
|
3580
|
+
}
|
|
3581
|
+
.ask-user-option-readonly {
|
|
3582
|
+
pointer-events: none;
|
|
3583
|
+
}
|
|
3531
3584
|
.ask-user-answer-sent {
|
|
3532
3585
|
padding: 8px 12px;
|
|
3533
3586
|
background: rgba(79, 122, 88, 0.08);
|
|
@@ -4222,11 +4275,12 @@
|
|
|
4222
4275
|
|
|
4223
4276
|
.input-panel {
|
|
4224
4277
|
padding: 6px 10px;
|
|
4278
|
+
padding-bottom: calc(6px + var(--safe-bottom, 0px));
|
|
4225
4279
|
flex-shrink: 0;
|
|
4226
4280
|
z-index: 26;
|
|
4227
4281
|
overscroll-behavior: contain;
|
|
4228
4282
|
touch-action: pan-y;
|
|
4229
|
-
border-
|
|
4283
|
+
border-top: 1px solid var(--border-subtle);
|
|
4230
4284
|
}
|
|
4231
4285
|
|
|
4232
4286
|
.input-composer {
|
|
@@ -5902,6 +5956,16 @@
|
|
|
5902
5956
|
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
5903
5957
|
button:focus-visible { outline-offset: 0; }
|
|
5904
5958
|
|
|
5959
|
+
/*
|
|
5960
|
+
* ===== 响应式断点级联 =====
|
|
5961
|
+
* max-width: 768px → 平板: 触摸优化, 侧栏覆盖
|
|
5962
|
+
* max-width: 640px → 手机: 紧凑布局, safe-area 底部, 欢迎页适配
|
|
5963
|
+
* ├─ 391-420px → iPhone 14/15: 微调 padding (继承 640px)
|
|
5964
|
+
* └─ max-width: 390px → iPhone SE: 超紧凑 (继承 640px)
|
|
5965
|
+
* 641-768px → iPad Mini: 触摸目标加大 (继承 768px)
|
|
5966
|
+
* max-height: 420px → 横屏: 水平布局
|
|
5967
|
+
*/
|
|
5968
|
+
|
|
5905
5969
|
/* 平板适配 */
|
|
5906
5970
|
@media (max-width: 768px) {
|
|
5907
5971
|
.app-container {
|
|
@@ -5963,190 +6027,80 @@
|
|
|
5963
6027
|
overflow: hidden;
|
|
5964
6028
|
}
|
|
5965
6029
|
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
5970
|
-
|
|
6030
|
+
/* 移动端浮动按钮 */
|
|
6031
|
+
.floating-sidebar-toggle {
|
|
6032
|
+
width: 30px;
|
|
6033
|
+
height: 30px;
|
|
6034
|
+
border-radius: 6px;
|
|
5971
6035
|
}
|
|
6036
|
+
.floating-sidebar-toggle .hamburger-icon { width: 13px; height: 9px; }
|
|
5972
6037
|
|
|
5973
|
-
.
|
|
5974
|
-
min-height: 40px;
|
|
5975
|
-
padding: 6px 8px 7px;
|
|
5976
|
-
gap: 8px;
|
|
5977
|
-
}
|
|
6038
|
+
.sidebar { top: 0; }
|
|
5978
6039
|
|
|
5979
|
-
|
|
5980
|
-
.
|
|
5981
|
-
|
|
5982
|
-
|
|
6040
|
+
/* 移动端终端顶栏 - 紧凑 */
|
|
6041
|
+
.terminal-header { padding: 5px 8px; min-height: 32px; }
|
|
6042
|
+
.terminal-header-actions { gap: 4px; }
|
|
6043
|
+
.terminal-header-actions .btn-sm,
|
|
6044
|
+
.terminal-header-actions .btn-icon,
|
|
6045
|
+
.terminal-header-actions .topbar-btn {
|
|
6046
|
+
height: 28px;
|
|
6047
|
+
min-height: 28px;
|
|
6048
|
+
min-width: 28px;
|
|
6049
|
+
font-size: 0.625rem;
|
|
6050
|
+
border-radius: 5px;
|
|
5983
6051
|
}
|
|
6052
|
+
.terminal-title { gap: 4px; font-size: 0.6875rem; }
|
|
6053
|
+
.terminal-title-text { font-size: 0.75rem; }
|
|
6054
|
+
.terminal-info { font-size: 0.5625rem; }
|
|
6055
|
+
.current-task { font-size: 0.5625rem; padding: 1px 6px 1px 4px; gap: 3px; }
|
|
5984
6056
|
|
|
5985
|
-
.main-
|
|
5986
|
-
box-shadow: 5px 5px 0 0 rgba(255, 252, 248, 0.94);
|
|
5987
|
-
}
|
|
6057
|
+
.main-header-row { padding: 2px 6px; gap: 4px; }
|
|
5988
6058
|
|
|
5989
|
-
|
|
5990
|
-
|
|
5991
|
-
}
|
|
6059
|
+
/* 视图切换按钮 - 紧凑 */
|
|
6060
|
+
.view-toggle { height: 28px; padding: 2px; gap: 1px; }
|
|
6061
|
+
.view-toggle-btn { height: 24px; min-height: 24px; padding: 0 6px; font-size: 0.625rem; gap: 2px; border-radius: 4px; }
|
|
5992
6062
|
|
|
5993
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
6063
|
+
/* 移动端终端内缩放浮层 */
|
|
6064
|
+
.terminal-scale-overlay {
|
|
6065
|
+
top: 6px;
|
|
6066
|
+
right: 6px;
|
|
6067
|
+
padding: 2px;
|
|
6068
|
+
gap: 1px;
|
|
5997
6069
|
}
|
|
5998
|
-
|
|
5999
|
-
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
gap: 6px;
|
|
6070
|
+
.terminal-scale-overlay-btn {
|
|
6071
|
+
min-width: 20px;
|
|
6072
|
+
height: 20px;
|
|
6073
|
+
font-size: 0.75rem;
|
|
6003
6074
|
}
|
|
6004
|
-
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
|
|
6008
|
-
scrollbar-width: none;
|
|
6075
|
+
.terminal-scale-overlay-label {
|
|
6076
|
+
min-width: 28px;
|
|
6077
|
+
font-size: 0.5625rem;
|
|
6078
|
+
padding: 0 2px;
|
|
6009
6079
|
}
|
|
6010
6080
|
|
|
6011
|
-
|
|
6012
|
-
|
|
6081
|
+
/* 移动端简化交互模式按钮 */
|
|
6082
|
+
.terminal-tool-btn {
|
|
6083
|
+
padding: 0 8px;
|
|
6084
|
+
font-size: 0.625rem;
|
|
6013
6085
|
}
|
|
6014
6086
|
|
|
6015
|
-
|
|
6016
|
-
|
|
6017
|
-
flex-wrap: nowrap;
|
|
6018
|
-
}
|
|
6087
|
+
/* 文件面板按钮保持可见 */
|
|
6088
|
+
.file-panel-toggle { display: flex; }
|
|
6019
6089
|
|
|
6020
|
-
.main-
|
|
6021
|
-
|
|
6022
|
-
|
|
6023
|
-
height:
|
|
6024
|
-
|
|
6025
|
-
|
|
6026
|
-
|
|
6090
|
+
.main-layout {
|
|
6091
|
+
flex-direction: column;
|
|
6092
|
+
flex: 1;
|
|
6093
|
+
min-height: 0;
|
|
6094
|
+
height: 100%;
|
|
6095
|
+
overflow: hidden;
|
|
6096
|
+
padding-left: 0;
|
|
6027
6097
|
}
|
|
6028
6098
|
|
|
6029
|
-
.
|
|
6030
|
-
|
|
6031
|
-
|
|
6032
|
-
|
|
6033
|
-
|
|
6034
|
-
.menu-toggle-btn .hamburger-icon {
|
|
6035
|
-
width: 13px;
|
|
6036
|
-
height: 9px;
|
|
6037
|
-
}
|
|
6038
|
-
|
|
6039
|
-
.main-header-label {
|
|
6040
|
-
padding: 0 8px;
|
|
6041
|
-
}
|
|
6042
|
-
|
|
6043
|
-
.main-header-new-session {
|
|
6044
|
-
padding: 0 10px;
|
|
6045
|
-
}
|
|
6046
|
-
|
|
6047
|
-
.main-content-header-left,
|
|
6048
|
-
.main-content-header-center,
|
|
6049
|
-
.main-content-header-right {
|
|
6050
|
-
gap: 6px;
|
|
6051
|
-
}
|
|
6052
|
-
|
|
6053
|
-
.main-content-header-right {
|
|
6054
|
-
flex-wrap: nowrap;
|
|
6055
|
-
overflow-x: auto;
|
|
6056
|
-
scrollbar-width: none;
|
|
6057
|
-
}
|
|
6058
|
-
|
|
6059
|
-
.main-content-header-right::-webkit-scrollbar {
|
|
6060
|
-
display: none;
|
|
6061
|
-
}
|
|
6062
|
-
|
|
6063
|
-
.main-header-controls {
|
|
6064
|
-
gap: 4px;
|
|
6065
|
-
flex-wrap: nowrap;
|
|
6066
|
-
}
|
|
6067
|
-
|
|
6068
|
-
.main-header-btn,
|
|
6069
|
-
.main-header-label,
|
|
6070
|
-
.topbar-btn {
|
|
6071
|
-
height: 28px;
|
|
6072
|
-
min-height: 28px;
|
|
6073
|
-
font-size: 0.6875rem;
|
|
6074
|
-
border-radius: 8px;
|
|
6075
|
-
}
|
|
6076
|
-
|
|
6077
|
-
.menu-toggle-btn {
|
|
6078
|
-
min-width: 34px;
|
|
6079
|
-
padding: 0 10px;
|
|
6080
|
-
}
|
|
6081
|
-
|
|
6082
|
-
.menu-toggle-btn .hamburger-icon {
|
|
6083
|
-
width: 13px;
|
|
6084
|
-
height: 9px;
|
|
6085
|
-
}
|
|
6086
|
-
|
|
6087
|
-
.main-header-label {
|
|
6088
|
-
padding: 0 8px;
|
|
6089
|
-
}
|
|
6090
|
-
|
|
6091
|
-
.main-header-new-session {
|
|
6092
|
-
padding: 0 10px;
|
|
6093
|
-
}
|
|
6094
|
-
|
|
6095
|
-
/* 移动端终端顶栏 - 紧凑 */
|
|
6096
|
-
.terminal-header { padding: 5px 8px; min-height: 32px; }
|
|
6097
|
-
.terminal-header-actions { gap: 4px; }
|
|
6098
|
-
.terminal-header-actions .btn-sm,
|
|
6099
|
-
.terminal-header-actions .btn-icon,
|
|
6100
|
-
.terminal-header-actions .topbar-btn {
|
|
6101
|
-
height: 28px;
|
|
6102
|
-
min-height: 28px;
|
|
6103
|
-
min-width: 28px;
|
|
6104
|
-
font-size: 0.625rem;
|
|
6105
|
-
border-radius: 5px;
|
|
6106
|
-
}
|
|
6107
|
-
.terminal-title { gap: 4px; font-size: 0.6875rem; }
|
|
6108
|
-
.terminal-title-text { font-size: 0.75rem; }
|
|
6109
|
-
.terminal-info { font-size: 0.5625rem; }
|
|
6110
|
-
.current-task { font-size: 0.5625rem; padding: 1px 6px 1px 4px; gap: 3px; }
|
|
6111
|
-
|
|
6112
|
-
/* 视图切换按钮 - 紧凑 */
|
|
6113
|
-
.view-toggle { height: 28px; padding: 2px; gap: 1px; }
|
|
6114
|
-
.view-toggle-btn { height: 24px; min-height: 24px; padding: 0 6px; font-size: 0.625rem; gap: 2px; border-radius: 4px; }
|
|
6115
|
-
|
|
6116
|
-
#terminal-header-controls .terminal-scale-btn {
|
|
6117
|
-
min-width: 28px;
|
|
6118
|
-
padding: 0 6px;
|
|
6119
|
-
font-size: 0.75rem;
|
|
6120
|
-
}
|
|
6121
|
-
|
|
6122
|
-
#terminal-header-controls .terminal-scale-label {
|
|
6123
|
-
min-width: 38px;
|
|
6124
|
-
font-size: 0.625rem;
|
|
6125
|
-
}
|
|
6126
|
-
|
|
6127
|
-
/* 移动端简化交互模式按钮 */
|
|
6128
|
-
.terminal-tool-btn {
|
|
6129
|
-
padding: 0 8px;
|
|
6130
|
-
font-size: 0.625rem;
|
|
6131
|
-
}
|
|
6132
|
-
|
|
6133
|
-
/* 文件面板按钮保持可见 */
|
|
6134
|
-
.file-panel-toggle { display: flex; }
|
|
6135
|
-
|
|
6136
|
-
.main-layout {
|
|
6137
|
-
flex-direction: column;
|
|
6138
|
-
flex: 1;
|
|
6139
|
-
min-height: 0;
|
|
6140
|
-
height: 100%;
|
|
6141
|
-
overflow: hidden;
|
|
6142
|
-
padding-left: 0;
|
|
6143
|
-
}
|
|
6144
|
-
|
|
6145
|
-
.sidebar {
|
|
6146
|
-
top: 0;
|
|
6147
|
-
width: min(260px, calc(100vw - 12px));
|
|
6148
|
-
max-height: none;
|
|
6149
|
-
border-bottom: none;
|
|
6099
|
+
.sidebar {
|
|
6100
|
+
top: 0;
|
|
6101
|
+
width: min(260px, calc(100vw - 12px));
|
|
6102
|
+
max-height: none;
|
|
6103
|
+
border-bottom: none;
|
|
6150
6104
|
}
|
|
6151
6105
|
|
|
6152
6106
|
/* 确保主内容区域正确占据剩余空间 */
|
|
@@ -6199,10 +6153,10 @@
|
|
|
6199
6153
|
.input-panel {
|
|
6200
6154
|
z-index: 30;
|
|
6201
6155
|
padding: 4px 6px;
|
|
6202
|
-
padding-bottom: calc(6px +
|
|
6156
|
+
padding-bottom: calc(6px + var(--safe-bottom, 0px) + var(--keyboard-offset, 0px));
|
|
6203
6157
|
flex: 0 0 auto;
|
|
6204
6158
|
margin-top: auto;
|
|
6205
|
-
background: linear-gradient(180deg, rgba(246, 241, 232, 0) 0%, rgba(246, 241, 232, 0.
|
|
6159
|
+
background: linear-gradient(180deg, rgba(246, 241, 232, 0.5) 0%, rgba(246, 241, 232, 0.88) 30%, rgba(246, 241, 232, 0.96) 100%);
|
|
6206
6160
|
backdrop-filter: blur(12px);
|
|
6207
6161
|
}
|
|
6208
6162
|
|
|
@@ -6211,8 +6165,7 @@
|
|
|
6211
6165
|
}
|
|
6212
6166
|
|
|
6213
6167
|
.input-session-info-bar {
|
|
6214
|
-
padding: 2px 6px;
|
|
6215
|
-
padding-bottom: calc(3px + env(safe-area-inset-bottom, 0px));
|
|
6168
|
+
padding: 2px 6px 3px;
|
|
6216
6169
|
font-size: 0.625rem;
|
|
6217
6170
|
}
|
|
6218
6171
|
|
|
@@ -6360,6 +6313,17 @@
|
|
|
6360
6313
|
min-width: 20px;
|
|
6361
6314
|
}
|
|
6362
6315
|
|
|
6316
|
+
/* 回到底部按钮 - 紧凑 */
|
|
6317
|
+
.terminal-jump-bottom,
|
|
6318
|
+
.chat-jump-bottom {
|
|
6319
|
+
height: 28px;
|
|
6320
|
+
min-width: 64px;
|
|
6321
|
+
padding: 0 10px;
|
|
6322
|
+
font-size: 0.6875rem;
|
|
6323
|
+
right: 10px;
|
|
6324
|
+
bottom: 14px;
|
|
6325
|
+
}
|
|
6326
|
+
|
|
6363
6327
|
/* 小键盘 FAB */
|
|
6364
6328
|
.mini-keyboard-fab {
|
|
6365
6329
|
width: 40px;
|
|
@@ -6487,7 +6451,7 @@
|
|
|
6487
6451
|
.login-container {
|
|
6488
6452
|
min-height: 100dvh;
|
|
6489
6453
|
align-items: flex-start;
|
|
6490
|
-
padding: 8px 8px calc(8px +
|
|
6454
|
+
padding: 8px 8px calc(8px + var(--safe-bottom, 0px));
|
|
6491
6455
|
}
|
|
6492
6456
|
|
|
6493
6457
|
.login-card {
|
|
@@ -6512,7 +6476,7 @@
|
|
|
6512
6476
|
max-width: 100%;
|
|
6513
6477
|
max-height: 85vh;
|
|
6514
6478
|
border-radius: var(--radius-md) var(--radius-md) 0 0;
|
|
6515
|
-
margin-bottom:
|
|
6479
|
+
margin-bottom: var(--safe-bottom, 0px);
|
|
6516
6480
|
}
|
|
6517
6481
|
|
|
6518
6482
|
.modal-header { padding: 10px 12px; min-height: 40px; }
|
|
@@ -6532,6 +6496,21 @@
|
|
|
6532
6496
|
.file-search-box { padding: 4px; }
|
|
6533
6497
|
.file-search-input { min-height: 32px; font-size: 14px; }
|
|
6534
6498
|
.file-item { padding: 6px 8px; min-height: 32px; }
|
|
6499
|
+
|
|
6500
|
+
/* 欢迎页移动端 */
|
|
6501
|
+
.blank-chat { padding: 16px 12px; align-items: flex-start; }
|
|
6502
|
+
.blank-chat-inner { max-width: 100%; }
|
|
6503
|
+
.blank-chat-logo { width: 48px; height: 48px; font-size: 24px; border-radius: 12px; margin-bottom: 10px; }
|
|
6504
|
+
.blank-chat-title { font-size: 1.125rem; }
|
|
6505
|
+
.blank-chat-subtitle { font-size: 0.75rem; margin-bottom: 16px; }
|
|
6506
|
+
.blank-chat-input-wrap { margin-bottom: 12px; }
|
|
6507
|
+
.blank-chat-input { padding: 10px 60px 10px 12px; font-size: 16px; border-radius: 10px; }
|
|
6508
|
+
.blank-chat-send-btn { padding: 6px 12px; font-size: 0.75rem; right: 5px; }
|
|
6509
|
+
.blank-chat-tools { gap: 4px; margin-bottom: 8px; }
|
|
6510
|
+
.blank-chat-tool-btn { padding: 6px 10px; font-size: 0.75rem; min-height: 44px; }
|
|
6511
|
+
.blank-chat-hint { font-size: 0.6875rem; }
|
|
6512
|
+
.mode-btn-group { gap: 4px; margin-top: 8px; }
|
|
6513
|
+
.mode-btn { padding: 5px 10px; font-size: 0.6875rem; min-height: 36px; }
|
|
6535
6514
|
}
|
|
6536
6515
|
|
|
6537
6516
|
/* iPhone 14/15 等标准屏幕 (390px - 420px) - 使用基础移动端样式,略微调整 */
|
|
@@ -6539,69 +6518,24 @@
|
|
|
6539
6518
|
/* 继承 max-width: 640px 的样式,此处仅做微调 */
|
|
6540
6519
|
|
|
6541
6520
|
.terminal-container {
|
|
6542
|
-
margin: 0;
|
|
6521
|
+
margin: 0 6px 6px;
|
|
6543
6522
|
padding: 6px;
|
|
6544
6523
|
}
|
|
6545
6524
|
|
|
6546
6525
|
.input-panel {
|
|
6547
6526
|
padding: 6px 10px;
|
|
6548
|
-
padding-bottom: calc(8px +
|
|
6527
|
+
padding-bottom: calc(8px + var(--safe-bottom, 0px));
|
|
6549
6528
|
}
|
|
6550
6529
|
}
|
|
6551
6530
|
|
|
6552
6531
|
/* iPhone SE 等小屏幕 (<= 390px) */
|
|
6553
6532
|
@media (max-width: 390px) {
|
|
6554
6533
|
/* 继承 max-width: 640px 的样式,此处仅做小屏微调 */
|
|
6555
|
-
.
|
|
6556
|
-
|
|
6557
|
-
|
|
6558
|
-
}
|
|
6559
|
-
|
|
6560
|
-
.main-content-header {
|
|
6561
|
-
min-height: 36px;
|
|
6562
|
-
padding: 5px 6px 6px;
|
|
6563
|
-
gap: 6px;
|
|
6564
|
-
}
|
|
6565
|
-
|
|
6566
|
-
.main-content-header::before,
|
|
6567
|
-
.main-content-header::after {
|
|
6568
|
-
width: 12px;
|
|
6569
|
-
height: 12px;
|
|
6570
|
-
}
|
|
6571
|
-
|
|
6572
|
-
.main-content-header::before {
|
|
6573
|
-
box-shadow: 4px 4px 0 0 rgba(255, 252, 248, 0.94);
|
|
6574
|
-
}
|
|
6575
|
-
|
|
6576
|
-
.main-content-header::after {
|
|
6577
|
-
box-shadow: -4px 4px 0 0 rgba(255, 252, 248, 0.94);
|
|
6578
|
-
}
|
|
6579
|
-
|
|
6580
|
-
.main-content-body::before {
|
|
6581
|
-
left: 8px;
|
|
6582
|
-
right: 8px;
|
|
6583
|
-
height: 5px;
|
|
6584
|
-
}
|
|
6585
|
-
|
|
6586
|
-
.main-content-header-left,
|
|
6587
|
-
.main-content-header-center,
|
|
6588
|
-
.main-content-header-right {
|
|
6589
|
-
gap: 4px;
|
|
6590
|
-
}
|
|
6591
|
-
|
|
6592
|
-
.main-header-btn,
|
|
6593
|
-
.main-header-label,
|
|
6594
|
-
.topbar-btn {
|
|
6595
|
-
font-size: 0.625rem;
|
|
6596
|
-
padding: 0 8px;
|
|
6597
|
-
}
|
|
6598
|
-
|
|
6599
|
-
.menu-toggle-btn {
|
|
6600
|
-
min-width: 30px;
|
|
6601
|
-
padding: 0 8px;
|
|
6534
|
+
.floating-sidebar-toggle {
|
|
6535
|
+
width: 26px;
|
|
6536
|
+
height: 26px;
|
|
6602
6537
|
}
|
|
6603
|
-
|
|
6604
|
-
.menu-toggle-btn .hamburger-icon { width: 11px; height: 8px; }
|
|
6538
|
+
.floating-sidebar-toggle .hamburger-icon { width: 11px; height: 8px; }
|
|
6605
6539
|
|
|
6606
6540
|
.terminal-header { padding: 4px 6px; min-height: 28px; }
|
|
6607
6541
|
.terminal-title-text { font-size: 0.6875rem; }
|
|
@@ -6617,7 +6551,7 @@
|
|
|
6617
6551
|
|
|
6618
6552
|
.input-panel {
|
|
6619
6553
|
padding: 5px 6px;
|
|
6620
|
-
padding-bottom: calc(6px +
|
|
6554
|
+
padding-bottom: calc(6px + var(--safe-bottom, 0px));
|
|
6621
6555
|
}
|
|
6622
6556
|
|
|
6623
6557
|
.input-composer { border-radius: 8px; }
|
|
@@ -6667,8 +6601,6 @@
|
|
|
6667
6601
|
.floating-sidebar-toggle {
|
|
6668
6602
|
width: 28px;
|
|
6669
6603
|
height: 28px;
|
|
6670
|
-
top: 6px;
|
|
6671
|
-
left: 6px;
|
|
6672
6604
|
}
|
|
6673
6605
|
|
|
6674
6606
|
.sidebar { top: 0; }
|
|
@@ -6685,7 +6617,7 @@
|
|
|
6685
6617
|
|
|
6686
6618
|
.input-panel {
|
|
6687
6619
|
padding: 8px;
|
|
6688
|
-
padding-bottom: calc(8px +
|
|
6620
|
+
padding-bottom: calc(8px + var(--safe-bottom, 0px));
|
|
6689
6621
|
}
|
|
6690
6622
|
|
|
6691
6623
|
.input-row { flex-direction: row; gap: 8px; }
|
|
@@ -6698,76 +6630,6 @@
|
|
|
6698
6630
|
}
|
|
6699
6631
|
|
|
6700
6632
|
/* Blank chat mobile optimization */
|
|
6701
|
-
@media (max-width: 640px) {
|
|
6702
|
-
.blank-chat {
|
|
6703
|
-
padding: 16px 12px;
|
|
6704
|
-
align-items: flex-start;
|
|
6705
|
-
}
|
|
6706
|
-
|
|
6707
|
-
.blank-chat-inner {
|
|
6708
|
-
max-width: 100%;
|
|
6709
|
-
}
|
|
6710
|
-
|
|
6711
|
-
.blank-chat-logo {
|
|
6712
|
-
width: 48px;
|
|
6713
|
-
height: 48px;
|
|
6714
|
-
font-size: 24px;
|
|
6715
|
-
border-radius: 12px;
|
|
6716
|
-
margin-bottom: 10px;
|
|
6717
|
-
}
|
|
6718
|
-
|
|
6719
|
-
.blank-chat-title {
|
|
6720
|
-
font-size: 1.125rem;
|
|
6721
|
-
}
|
|
6722
|
-
|
|
6723
|
-
.blank-chat-subtitle {
|
|
6724
|
-
font-size: 0.75rem;
|
|
6725
|
-
margin-bottom: 16px;
|
|
6726
|
-
}
|
|
6727
|
-
|
|
6728
|
-
.blank-chat-input-wrap {
|
|
6729
|
-
margin-bottom: 12px;
|
|
6730
|
-
}
|
|
6731
|
-
|
|
6732
|
-
.blank-chat-input {
|
|
6733
|
-
padding: 10px 60px 10px 12px;
|
|
6734
|
-
font-size: 16px; /* Prevent iOS zoom */
|
|
6735
|
-
border-radius: 10px;
|
|
6736
|
-
}
|
|
6737
|
-
|
|
6738
|
-
.blank-chat-send-btn {
|
|
6739
|
-
padding: 6px 12px;
|
|
6740
|
-
font-size: 0.75rem;
|
|
6741
|
-
right: 5px;
|
|
6742
|
-
}
|
|
6743
|
-
|
|
6744
|
-
.blank-chat-tools {
|
|
6745
|
-
gap: 4px;
|
|
6746
|
-
margin-bottom: 8px;
|
|
6747
|
-
}
|
|
6748
|
-
|
|
6749
|
-
.blank-chat-tool-btn {
|
|
6750
|
-
padding: 6px 10px;
|
|
6751
|
-
font-size: 0.75rem;
|
|
6752
|
-
min-height: 44px;
|
|
6753
|
-
}
|
|
6754
|
-
|
|
6755
|
-
.blank-chat-hint {
|
|
6756
|
-
font-size: 0.6875rem;
|
|
6757
|
-
}
|
|
6758
|
-
|
|
6759
|
-
.mode-btn-group {
|
|
6760
|
-
gap: 4px;
|
|
6761
|
-
margin-top: 8px;
|
|
6762
|
-
}
|
|
6763
|
-
|
|
6764
|
-
.mode-btn {
|
|
6765
|
-
padding: 5px 10px;
|
|
6766
|
-
font-size: 0.6875rem;
|
|
6767
|
-
min-height: 36px;
|
|
6768
|
-
}
|
|
6769
|
-
}
|
|
6770
|
-
|
|
6771
6633
|
.session-kind-badge {
|
|
6772
6634
|
display: inline-flex;
|
|
6773
6635
|
align-items: center;
|
|
@@ -7109,13 +6971,13 @@
|
|
|
7109
6971
|
left: 50%;
|
|
7110
6972
|
transform: translateX(-50%);
|
|
7111
6973
|
z-index: 10000;
|
|
7112
|
-
min-width:
|
|
7113
|
-
max-width:
|
|
6974
|
+
min-width: 220px;
|
|
6975
|
+
max-width: 320px;
|
|
7114
6976
|
background: var(--bg-primary);
|
|
7115
6977
|
border: 1px solid var(--border);
|
|
7116
|
-
border-radius: var(--radius
|
|
6978
|
+
border-radius: var(--radius);
|
|
7117
6979
|
box-shadow: var(--shadow-lg);
|
|
7118
|
-
padding:
|
|
6980
|
+
padding: 8px 12px;
|
|
7119
6981
|
animation: notification-slide-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
7120
6982
|
transition: top 0.25s ease, opacity 0.25s ease;
|
|
7121
6983
|
}
|
|
@@ -7126,24 +6988,24 @@
|
|
|
7126
6988
|
.notification-bubble-header {
|
|
7127
6989
|
display: flex;
|
|
7128
6990
|
align-items: center;
|
|
7129
|
-
gap:
|
|
7130
|
-
margin-bottom:
|
|
6991
|
+
gap: 6px;
|
|
6992
|
+
margin-bottom: 2px;
|
|
7131
6993
|
}
|
|
7132
6994
|
.notification-bubble-icon {
|
|
7133
|
-
width:
|
|
7134
|
-
height:
|
|
6995
|
+
width: 16px;
|
|
6996
|
+
height: 16px;
|
|
7135
6997
|
flex-shrink: 0;
|
|
7136
6998
|
display: flex;
|
|
7137
6999
|
align-items: center;
|
|
7138
7000
|
justify-content: center;
|
|
7139
7001
|
border-radius: var(--radius-sm);
|
|
7140
|
-
font-size:
|
|
7002
|
+
font-size: 10px;
|
|
7141
7003
|
}
|
|
7142
7004
|
.notification-bubble-icon.info { background: var(--accent); color: white; }
|
|
7143
7005
|
.notification-bubble-icon.warning { background: var(--warning); color: white; }
|
|
7144
7006
|
.notification-bubble-icon.success { background: var(--success); color: white; }
|
|
7145
7007
|
.notification-bubble-title {
|
|
7146
|
-
font-size: 0.
|
|
7008
|
+
font-size: 0.75rem;
|
|
7147
7009
|
font-weight: 600;
|
|
7148
7010
|
color: var(--fg-primary);
|
|
7149
7011
|
flex: 1;
|
|
@@ -7154,9 +7016,9 @@
|
|
|
7154
7016
|
border: none;
|
|
7155
7017
|
color: var(--fg-muted);
|
|
7156
7018
|
cursor: pointer;
|
|
7157
|
-
font-size:
|
|
7019
|
+
font-size: 14px;
|
|
7158
7020
|
line-height: 1;
|
|
7159
|
-
padding:
|
|
7021
|
+
padding: 1px 3px;
|
|
7160
7022
|
border-radius: var(--radius-sm);
|
|
7161
7023
|
flex-shrink: 0;
|
|
7162
7024
|
}
|
|
@@ -7165,20 +7027,20 @@
|
|
|
7165
7027
|
color: var(--fg-primary);
|
|
7166
7028
|
}
|
|
7167
7029
|
.notification-bubble-body {
|
|
7168
|
-
font-size: 0.
|
|
7030
|
+
font-size: 0.7rem;
|
|
7169
7031
|
color: var(--fg-secondary);
|
|
7170
|
-
line-height: 1.
|
|
7032
|
+
line-height: 1.4;
|
|
7171
7033
|
margin-bottom: 0;
|
|
7172
7034
|
}
|
|
7173
7035
|
.notification-bubble-actions {
|
|
7174
|
-
margin-top:
|
|
7036
|
+
margin-top: 6px;
|
|
7175
7037
|
display: flex;
|
|
7176
|
-
gap:
|
|
7038
|
+
gap: 6px;
|
|
7177
7039
|
justify-content: flex-end;
|
|
7178
7040
|
}
|
|
7179
7041
|
.notification-bubble-actions button {
|
|
7180
|
-
font-size: 0.
|
|
7181
|
-
padding:
|
|
7042
|
+
font-size: 0.7rem;
|
|
7043
|
+
padding: 2px 10px;
|
|
7182
7044
|
border-radius: var(--radius-sm);
|
|
7183
7045
|
cursor: pointer;
|
|
7184
7046
|
border: 1px solid var(--border);
|
|
@@ -7206,6 +7068,73 @@
|
|
|
7206
7068
|
to { opacity: 0; transform: translateX(-50%) translateY(-20px); }
|
|
7207
7069
|
}
|
|
7208
7070
|
|
|
7071
|
+
/* Notification bubble button states */
|
|
7072
|
+
.notification-bubble-actions button:disabled {
|
|
7073
|
+
opacity: 0.6;
|
|
7074
|
+
cursor: not-allowed;
|
|
7075
|
+
filter: none;
|
|
7076
|
+
}
|
|
7077
|
+
.notification-bubble-actions button.success {
|
|
7078
|
+
background: var(--success);
|
|
7079
|
+
color: white;
|
|
7080
|
+
border-color: var(--success);
|
|
7081
|
+
}
|
|
7082
|
+
.notification-bubble-actions button.success:hover:not(:disabled) {
|
|
7083
|
+
filter: brightness(1.1);
|
|
7084
|
+
}
|
|
7085
|
+
|
|
7086
|
+
/* Settings restart button */
|
|
7087
|
+
.btn-success {
|
|
7088
|
+
background: var(--success);
|
|
7089
|
+
color: white;
|
|
7090
|
+
border-color: var(--success);
|
|
7091
|
+
}
|
|
7092
|
+
.btn-success:hover:not(:disabled) {
|
|
7093
|
+
filter: brightness(1.1);
|
|
7094
|
+
}
|
|
7095
|
+
|
|
7096
|
+
/* Restart overlay */
|
|
7097
|
+
.restart-overlay {
|
|
7098
|
+
position: fixed;
|
|
7099
|
+
inset: 0;
|
|
7100
|
+
z-index: 99999;
|
|
7101
|
+
background: rgba(0, 0, 0, 0.65);
|
|
7102
|
+
display: flex;
|
|
7103
|
+
align-items: center;
|
|
7104
|
+
justify-content: center;
|
|
7105
|
+
backdrop-filter: blur(4px);
|
|
7106
|
+
animation: restart-fade-in 0.3s ease;
|
|
7107
|
+
}
|
|
7108
|
+
.restart-overlay-content {
|
|
7109
|
+
text-align: center;
|
|
7110
|
+
color: white;
|
|
7111
|
+
}
|
|
7112
|
+
.restart-title {
|
|
7113
|
+
font-size: 1.25rem;
|
|
7114
|
+
font-weight: 600;
|
|
7115
|
+
margin-bottom: 8px;
|
|
7116
|
+
}
|
|
7117
|
+
.restart-subtitle {
|
|
7118
|
+
font-size: 0.9rem;
|
|
7119
|
+
opacity: 0.8;
|
|
7120
|
+
}
|
|
7121
|
+
.restart-spinner {
|
|
7122
|
+
width: 36px;
|
|
7123
|
+
height: 36px;
|
|
7124
|
+
margin: 0 auto 16px;
|
|
7125
|
+
border: 3px solid rgba(255, 255, 255, 0.25);
|
|
7126
|
+
border-top-color: white;
|
|
7127
|
+
border-radius: 50%;
|
|
7128
|
+
animation: restart-spin 0.8s linear infinite;
|
|
7129
|
+
}
|
|
7130
|
+
@keyframes restart-spin {
|
|
7131
|
+
to { transform: rotate(360deg); }
|
|
7132
|
+
}
|
|
7133
|
+
@keyframes restart-fade-in {
|
|
7134
|
+
from { opacity: 0; }
|
|
7135
|
+
to { opacity: 1; }
|
|
7136
|
+
}
|
|
7137
|
+
|
|
7209
7138
|
/* File Preview Modal */
|
|
7210
7139
|
.file-preview-overlay {
|
|
7211
7140
|
position: fixed;
|
|
@@ -7226,160 +7155,41 @@
|
|
|
7226
7155
|
/* ── Settings modal ── */
|
|
7227
7156
|
|
|
7228
7157
|
.settings-modal {
|
|
7229
|
-
max-width:
|
|
7230
|
-
max-height:
|
|
7158
|
+
max-width: 520px;
|
|
7159
|
+
max-height: 80vh;
|
|
7231
7160
|
}
|
|
7232
7161
|
|
|
7233
|
-
.settings-
|
|
7234
|
-
display: grid;
|
|
7235
|
-
grid-template-columns: 180px minmax(0, 1fr);
|
|
7236
|
-
gap: 18px;
|
|
7237
|
-
min-height: 0;
|
|
7238
|
-
}
|
|
7239
|
-
|
|
7240
|
-
.settings-nav {
|
|
7162
|
+
.settings-tabs {
|
|
7241
7163
|
display: flex;
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
}
|
|
7247
|
-
|
|
7248
|
-
.settings-content {
|
|
7249
|
-
min-width: 0;
|
|
7250
|
-
overflow-y: auto;
|
|
7251
|
-
padding-right: 4px;
|
|
7164
|
+
gap: 2px;
|
|
7165
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
7166
|
+
margin-bottom: 16px;
|
|
7167
|
+
padding-bottom: 0;
|
|
7252
7168
|
}
|
|
7253
7169
|
|
|
7254
7170
|
.settings-tab {
|
|
7255
|
-
padding:
|
|
7256
|
-
font-size: 0.
|
|
7257
|
-
font-weight:
|
|
7171
|
+
padding: 8px 14px;
|
|
7172
|
+
font-size: 0.8125rem;
|
|
7173
|
+
font-weight: 500;
|
|
7258
7174
|
color: var(--text-secondary);
|
|
7259
|
-
background:
|
|
7260
|
-
border:
|
|
7261
|
-
border-
|
|
7175
|
+
background: none;
|
|
7176
|
+
border: none;
|
|
7177
|
+
border-bottom: 2px solid transparent;
|
|
7178
|
+
border-radius: var(--radius-sm) var(--radius-sm) 0 0;
|
|
7262
7179
|
cursor: pointer;
|
|
7263
|
-
transition: color 0.15s, border-color 0.15s, background 0.15s
|
|
7180
|
+
transition: color 0.15s, border-color 0.15s, background 0.15s;
|
|
7264
7181
|
white-space: nowrap;
|
|
7265
|
-
text-align: left;
|
|
7266
7182
|
}
|
|
7267
7183
|
|
|
7268
7184
|
.settings-tab:hover {
|
|
7269
7185
|
color: var(--text-primary);
|
|
7270
7186
|
background: rgba(197, 101, 61, 0.06);
|
|
7271
|
-
border-color: rgba(197, 101, 61, 0.12);
|
|
7272
|
-
transform: translateX(1px);
|
|
7273
7187
|
}
|
|
7274
7188
|
|
|
7275
7189
|
.settings-tab.active {
|
|
7276
7190
|
color: var(--accent);
|
|
7277
|
-
border-color:
|
|
7278
|
-
background:
|
|
7279
|
-
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
|
|
7280
|
-
}
|
|
7281
|
-
|
|
7282
|
-
.settings-card-header {
|
|
7283
|
-
display: flex;
|
|
7284
|
-
justify-content: space-between;
|
|
7285
|
-
align-items: flex-start;
|
|
7286
|
-
gap: 12px;
|
|
7287
|
-
margin-bottom: 12px;
|
|
7288
|
-
}
|
|
7289
|
-
|
|
7290
|
-
.settings-card-accent {
|
|
7291
|
-
border: 1px solid rgba(197, 101, 61, 0.12);
|
|
7292
|
-
box-shadow: 0 10px 24px rgba(89, 58, 32, 0.04);
|
|
7293
|
-
}
|
|
7294
|
-
|
|
7295
|
-
.settings-toggle-list {
|
|
7296
|
-
display: flex;
|
|
7297
|
-
flex-direction: column;
|
|
7298
|
-
gap: 10px;
|
|
7299
|
-
}
|
|
7300
|
-
|
|
7301
|
-
.settings-toggle-item {
|
|
7302
|
-
display: flex;
|
|
7303
|
-
justify-content: space-between;
|
|
7304
|
-
align-items: center;
|
|
7305
|
-
gap: 16px;
|
|
7306
|
-
padding: 12px 14px;
|
|
7307
|
-
border-radius: 12px;
|
|
7308
|
-
background: rgba(255, 255, 255, 0.72);
|
|
7309
|
-
border: 1px solid rgba(140, 110, 85, 0.08);
|
|
7310
|
-
cursor: pointer;
|
|
7311
|
-
}
|
|
7312
|
-
|
|
7313
|
-
.settings-toggle-title {
|
|
7314
|
-
display: block;
|
|
7315
|
-
font-size: 0.84rem;
|
|
7316
|
-
font-weight: 600;
|
|
7317
|
-
color: var(--text-primary);
|
|
7318
|
-
margin-bottom: 4px;
|
|
7319
|
-
}
|
|
7320
|
-
|
|
7321
|
-
.settings-toggle-desc {
|
|
7322
|
-
display: block;
|
|
7323
|
-
font-size: 0.78rem;
|
|
7324
|
-
color: var(--text-secondary);
|
|
7325
|
-
line-height: 1.45;
|
|
7326
|
-
}
|
|
7327
|
-
|
|
7328
|
-
.settings-inline-hint {
|
|
7329
|
-
margin-top: -4px;
|
|
7330
|
-
}
|
|
7331
|
-
|
|
7332
|
-
.settings-tab.active + .settings-tab {
|
|
7333
|
-
margin-top: 0;
|
|
7334
|
-
}
|
|
7335
|
-
|
|
7336
|
-
.settings-tabs {
|
|
7337
|
-
display: none;
|
|
7338
|
-
}
|
|
7339
|
-
|
|
7340
|
-
.settings-panel {
|
|
7341
|
-
display: none;
|
|
7342
|
-
}
|
|
7343
|
-
|
|
7344
|
-
.settings-panel.active {
|
|
7345
|
-
display: block;
|
|
7346
|
-
}
|
|
7347
|
-
|
|
7348
|
-
@media (max-width: 840px) {
|
|
7349
|
-
.settings-layout {
|
|
7350
|
-
grid-template-columns: 1fr;
|
|
7351
|
-
}
|
|
7352
|
-
|
|
7353
|
-
.settings-nav {
|
|
7354
|
-
flex-direction: row;
|
|
7355
|
-
overflow-x: auto;
|
|
7356
|
-
padding-right: 0;
|
|
7357
|
-
padding-bottom: 10px;
|
|
7358
|
-
border-right: none;
|
|
7359
|
-
border-bottom: 1px solid var(--border-subtle);
|
|
7360
|
-
}
|
|
7361
|
-
|
|
7362
|
-
.settings-tab {
|
|
7363
|
-
flex: 0 0 auto;
|
|
7364
|
-
}
|
|
7365
|
-
}
|
|
7366
|
-
|
|
7367
|
-
@media (max-width: 640px) {
|
|
7368
|
-
.settings-modal {
|
|
7369
|
-
max-width: min(96vw, 680px);
|
|
7370
|
-
}
|
|
7371
|
-
|
|
7372
|
-
.settings-toggle-item {
|
|
7373
|
-
align-items: flex-start;
|
|
7374
|
-
}
|
|
7375
|
-
}
|
|
7376
|
-
|
|
7377
|
-
.settings-panel {
|
|
7378
|
-
display: none;
|
|
7379
|
-
}
|
|
7380
|
-
|
|
7381
|
-
.settings-panel.active {
|
|
7382
|
-
display: block;
|
|
7191
|
+
border-bottom-color: var(--accent);
|
|
7192
|
+
background: var(--accent-muted);
|
|
7383
7193
|
}
|
|
7384
7194
|
|
|
7385
7195
|
.settings-panel {
|
|
@@ -8701,9 +8511,9 @@
|
|
|
8701
8511
|
line-height: inherit !important;
|
|
8702
8512
|
}
|
|
8703
8513
|
|
|
8704
|
-
/*
|
|
8514
|
+
/* 确保按钮在 DOM 视图之上 */
|
|
8705
8515
|
.terminal-jump-bottom {
|
|
8706
|
-
z-index:
|
|
8516
|
+
z-index: 20;
|
|
8707
8517
|
}
|
|
8708
8518
|
|
|
8709
8519
|
/* ── 结构化会话状态条 ── */
|