dsh-remote-plugin 0.6.17 → 0.6.19
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/apk/dsh-remote.apk +0 -0
- package/gateway-stats.cjs +3 -2
- package/package.json +1 -1
- package/public/admin.html +16 -17
- package/public/admin.js +6 -5
- package/public/app.js +293 -75
- package/public/desktop/desktop.css +52 -7
- package/public/desktop/desktop.html +39 -32
- package/public/desktop/desktop.js +186 -48
- package/public/index.html +89 -48
- package/public/motion.js +105 -17
- package/public/plugin.html +6 -5
- package/public/styles.css +143 -43
- package/public/theme-vars.css +244 -167
- package/public/theme.js +2 -2
- package/public/update.json +12 -12
- package/public/version.json +1 -1
package/public/styles.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* DSH Remote · 移动优先 ·
|
|
1
|
+
/* DSH Remote · 移动优先 · 五皮肤(默认深空/深色落日/亮色易北爱乐厅/中性草原孤塔/黑曜白)
|
|
2
2
|
* 规则样式表; 变量定义已抽取到 theme-vars.css(桌面端共享), 保持单一来源。 */
|
|
3
3
|
|
|
4
4
|
@import 'theme-vars.css';
|
|
@@ -166,30 +166,97 @@ a.mini-btn { text-decoration: none; display: inline-flex; align-items: center; }
|
|
|
166
166
|
.workspace-path-block { display: grid; gap: 6px; margin-top: 2px; color: var(--dsr-muted); font-size: 12px; }
|
|
167
167
|
|
|
168
168
|
/* ---------- Token 统计(移动端) ---------- */
|
|
169
|
-
.stats-
|
|
170
|
-
.
|
|
171
|
-
.
|
|
172
|
-
.
|
|
173
|
-
.
|
|
174
|
-
.
|
|
175
|
-
.
|
|
176
|
-
.
|
|
177
|
-
.
|
|
178
|
-
.stats-
|
|
179
|
-
.stats-
|
|
180
|
-
.stats-
|
|
181
|
-
.stats-
|
|
169
|
+
.stats-view { padding-bottom: 16px; }
|
|
170
|
+
.stats-page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: 4px 2px 17px; }
|
|
171
|
+
.stats-page-copy { min-width: 0; }
|
|
172
|
+
.stats-eyebrow, .stats-panel-kicker { color: var(--dsr-accent-strong); font-size: 10px; font-weight: 800; letter-spacing: .14em; line-height: 1.2; }
|
|
173
|
+
.stats-page-head h1 { margin: 4px 0 4px; font-size: 26px; line-height: 1.15; letter-spacing: -.04em; text-wrap: balance; }
|
|
174
|
+
.stats-page-subtitle { margin: 0; color: var(--dsr-muted); font-size: 12px; line-height: 1.5; }
|
|
175
|
+
.stats-date-wrap { display: grid; gap: 2px; flex: 0 0 auto; justify-items: end; padding: 7px 10px; background: var(--dsr-panel); border: 1px solid var(--dsr-line); border-radius: 12px; }
|
|
176
|
+
.stats-date-label { color: var(--dsr-muted); font-size: 10px; white-space: nowrap; }
|
|
177
|
+
.stats-date { color: var(--dsr-text); font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
178
|
+
.stats-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 2px 12px; }
|
|
179
|
+
.stats-toolbar-label { color: var(--dsr-muted); font-size: 11px; font-weight: 650; }
|
|
180
|
+
.stats-mode-picker { display: inline-grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 3px; background: var(--dsr-panel); border: 1px solid var(--dsr-line); border-radius: 11px; }
|
|
181
|
+
.stats-mode-btn { min-height: 30px; padding: 5px 10px; border: 1px solid transparent; border-radius: 8px; color: var(--dsr-muted); font-size: 11px; font-weight: 650; white-space: nowrap; }
|
|
182
|
+
.stats-mode-btn.active { color: var(--dsr-text); background: var(--dsr-accent-soft); border-color: var(--dsr-accent-line); box-shadow: 0 2px 8px var(--dsr-shadow); }
|
|
183
|
+
.stats-mode-btn:active { background: var(--dsr-panel-2); }
|
|
184
|
+
.stats-mode-btn:focus-visible { position: relative; z-index: 1; }
|
|
185
|
+
.stats-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
|
|
186
|
+
.scard { position: relative; min-width: 0; overflow: hidden; padding: 14px; background: var(--dsr-panel); border: 1px solid var(--dsr-line); border-radius: 18px; box-shadow: 0 8px 24px var(--dsr-shadow); }
|
|
187
|
+
.scard::before { content: ''; position: absolute; inset: 0 0 auto; height: 2px; background: var(--dsr-line); }
|
|
188
|
+
.scard-primary { grid-column: 1 / -1; background: linear-gradient(140deg, var(--dsr-panel), var(--dsr-accent-soft)); }
|
|
189
|
+
.scard-primary::before { background: linear-gradient(90deg, var(--dsr-accent), var(--dsr-accent-2)); }
|
|
190
|
+
.scard-cost::before { background: var(--dsr-accent-2); }
|
|
191
|
+
.scard-share::before { background: var(--dsr-info); }
|
|
192
|
+
.scard-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
|
|
193
|
+
.scard-label { display: inline-flex; align-items: center; gap: 7px; min-width: 0; color: var(--dsr-muted); font-size: 11px; font-weight: 700; }
|
|
194
|
+
.scard-label > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
195
|
+
.scard-icon { display: grid; place-items: center; width: 22px; height: 22px; flex: 0 0 auto; border-radius: 7px; color: var(--dsr-accent-strong); background: var(--dsr-accent-soft); font-size: 14px; font-weight: 800; }
|
|
196
|
+
.scard-icon.cost { color: var(--dsr-accent-2); background: var(--dsr-accent-2-soft); font-size: 12px; }
|
|
197
|
+
.scard-icon.share { color: var(--dsr-info); background: var(--dsr-info-soft); font-size: 12px; }
|
|
198
|
+
.scard-badge { max-width: 48%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--dsr-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
|
|
199
|
+
.scard-value { margin-top: 11px; color: var(--dsr-text); font-size: 26px; font-weight: 800; line-height: 1.05; letter-spacing: -.035em; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
200
|
+
.scard-primary .scard-value { font-size: clamp(32px, 9vw, 42px); }
|
|
201
|
+
.scard-unit { margin-left: 6px; color: var(--dsr-muted); font-size: 11px; font-weight: 600; letter-spacing: 0; }
|
|
202
|
+
.scard-helper { margin-top: 7px; color: var(--dsr-muted); font-size: 10px; line-height: 1.4; }
|
|
203
|
+
.bucket-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 14px; padding-top: 11px; border-top: 1px solid var(--dsr-line); }
|
|
204
|
+
.bucket-grid .b { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; gap: 2px 5px; min-width: 0; }
|
|
205
|
+
.bucket-dot { width: 6px; height: 6px; margin-top: 3px; border-radius: 50%; background: var(--dsr-accent); }
|
|
206
|
+
.bucket-dot.input { background: var(--dsr-accent-strong); }
|
|
207
|
+
.bucket-dot.cache-read { background: var(--dsr-info); }
|
|
208
|
+
.bucket-dot.cache-write { background: var(--dsr-accent-2); }
|
|
209
|
+
.bucket-dot.output { background: var(--dsr-warning); }
|
|
210
|
+
.bucket-grid .n { min-width: 0; overflow: hidden; color: var(--dsr-muted); font-size: 10px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
|
|
211
|
+
.bucket-grid .t { grid-column: 2; min-width: 0; overflow: hidden; color: var(--dsr-text); font-size: 12px; line-height: 1.2; font-weight: 700; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
|
|
212
|
+
.stats-split { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 14px; }
|
|
213
|
+
.stats-split-item { display: grid; gap: 5px; min-width: 0; padding: 8px; background: var(--dsr-bg-2); border: 1px solid var(--dsr-line); border-radius: 10px; }
|
|
214
|
+
.stats-split-item span { display: flex; align-items: center; gap: 5px; min-width: 0; color: var(--dsr-muted); font-size: 10px; white-space: nowrap; }
|
|
215
|
+
.stats-split-item strong { overflow: hidden; color: var(--dsr-text); font-size: 12px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
|
|
216
|
+
.split-dot { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: var(--dsr-accent-strong); }
|
|
217
|
+
.split-dot.off { background: var(--dsr-accent-2); }
|
|
218
|
+
.share-layout { display: flex; align-items: center; gap: 10px; margin-top: 13px; }
|
|
219
|
+
.share-ring { position: relative; display: grid; place-items: center; width: 68px; height: 68px; flex: 0 0 auto; border-radius: 50%; background: conic-gradient(var(--dsr-info) var(--share), var(--dsr-bg-2) 0); }
|
|
220
|
+
.share-ring::after { content: ''; position: absolute; inset: 6px; border-radius: 50%; background: var(--dsr-panel); }
|
|
221
|
+
.share-ring span { position: relative; z-index: 1; color: var(--dsr-text); font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
|
|
222
|
+
.share-copy { display: grid; gap: 2px; min-width: 0; }
|
|
223
|
+
.share-copy strong { font-size: 13px; }
|
|
224
|
+
.share-copy span, .share-copy small { color: var(--dsr-muted); font-size: 10px; line-height: 1.35; }
|
|
225
|
+
.share-copy small { font-variant-numeric: tabular-nums; }
|
|
226
|
+
.stats-panel { margin-top: 14px; padding: 14px; background: var(--dsr-panel); border: 1px solid var(--dsr-line); border-radius: 18px; box-shadow: 0 8px 24px var(--dsr-shadow); }
|
|
227
|
+
.stats-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-width: 0; margin-bottom: 12px; }
|
|
228
|
+
.stats-panel-title { margin: 3px 0 0; font-size: 16px; line-height: 1.2; letter-spacing: -.02em; }
|
|
229
|
+
.stats-legend { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; min-width: 0; margin-top: 1px; color: var(--dsr-muted); font-size: 10px; }
|
|
230
|
+
.stats-legend .lg { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
|
|
231
|
+
.stats-legend .sw { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
|
|
182
232
|
.stats-legend .sw.peak { background: var(--dsr-accent-strong); }
|
|
183
233
|
.stats-legend .sw.off { background: var(--dsr-accent-2); }
|
|
184
|
-
.stats-
|
|
185
|
-
.stats-
|
|
234
|
+
.stats-legend .sw.token { background: var(--dsr-accent); }
|
|
235
|
+
.stats-chart { display: flex; align-items: flex-end; gap: 7px; height: 190px; padding: 21px 2px 20px; overflow-x: auto; overflow-y: hidden; background-image: linear-gradient(to top, var(--dsr-line) 1px, transparent 1px); background-size: 100% 25%; border-radius: 10px; }
|
|
236
|
+
.stats-bar { display: flex; flex: 1 0 30px; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; height: 100%; min-width: 30px; }
|
|
237
|
+
.stats-bar .bars { display: flex; width: 100%; max-width: 40px; height: 100%; flex-direction: column; justify-content: flex-end; overflow: hidden; border-radius: 7px 7px 3px 3px; background: var(--dsr-accent-soft); box-shadow: 0 4px 12px var(--dsr-shadow); }
|
|
186
238
|
.stats-bar .seg { width: 100%; }
|
|
187
239
|
.stats-bar .seg.peak { background: var(--dsr-accent-strong); }
|
|
188
240
|
.stats-bar .seg.off { background: var(--dsr-accent-2); }
|
|
189
|
-
.stats-bar .
|
|
190
|
-
.stats-bar .
|
|
191
|
-
.stats-
|
|
192
|
-
.stats-empty { color: var(--dsr-muted); text-align: center;
|
|
241
|
+
.stats-bar .bars.token { background: linear-gradient(180deg, var(--dsr-accent-strong), var(--dsr-accent)); }
|
|
242
|
+
.stats-bar .lbl { color: var(--dsr-muted); font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
243
|
+
.stats-bar .val { min-height: 12px; color: var(--dsr-text); font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
244
|
+
.stats-empty { display: grid; flex: 1; place-items: center; min-height: 145px; color: var(--dsr-muted); text-align: center; font-size: 12px; }
|
|
245
|
+
.stats-note { margin: 14px 2px 0; padding: 10px 12px; color: var(--dsr-muted); background: var(--dsr-info-soft); border-left: 3px solid var(--dsr-info); border-radius: 0 10px 10px 0; font-size: 11px; line-height: 1.6; }
|
|
246
|
+
|
|
247
|
+
@media (max-width: 380px) {
|
|
248
|
+
.stats-page-head { gap: 8px; }
|
|
249
|
+
.stats-page-head h1 { font-size: 23px; }
|
|
250
|
+
.stats-date-wrap { padding: 6px 8px; }
|
|
251
|
+
.stats-toolbar { align-items: flex-start; flex-direction: column; gap: 6px; }
|
|
252
|
+
.stats-mode-picker { width: 100%; }
|
|
253
|
+
.stats-mode-btn { width: 100%; }
|
|
254
|
+
.scard { padding: 12px; }
|
|
255
|
+
.bucket-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
256
|
+
.stats-panel { padding: 12px; }
|
|
257
|
+
.stats-panel-head { display: block; }
|
|
258
|
+
.stats-legend { justify-content: flex-start; margin-top: 8px; }
|
|
259
|
+
}
|
|
193
260
|
|
|
194
261
|
/* ---------- 会话列表 ---------- */
|
|
195
262
|
.session-list { display: flex; flex-direction: column; gap: 8px; }
|
|
@@ -362,7 +429,30 @@ body.in-session .view {
|
|
|
362
429
|
.md-table-wrap th, .md-table-wrap td { padding: 6px 9px; border: 1px solid var(--dsr-line); text-align: left; white-space: nowrap; }
|
|
363
430
|
.md-table-wrap th { background: var(--dsr-bg-2); font-weight: 700; }
|
|
364
431
|
.md-table-wrap tbody tr:nth-child(even) { background: color-mix(in srgb, var(--dsr-bg-2) 45%, transparent); }
|
|
365
|
-
.goal-
|
|
432
|
+
.goal-disclosure { width: 100%; min-width: 0; display: flex; justify-content: flex-end; }
|
|
433
|
+
.goal-disclosure .goal-card { width: 100%; min-width: 0; }
|
|
434
|
+
.goal-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
|
|
435
|
+
.goal-card-head .card-title { min-width: 0; margin-bottom: 0; }
|
|
436
|
+
.goal-collapse-btn,
|
|
437
|
+
.goal-side-tab {
|
|
438
|
+
touch-action: manipulation; border: 1px solid var(--dsr-line); background: var(--dsr-bg-2); color: var(--dsr-muted);
|
|
439
|
+
font: inherit; cursor: pointer;
|
|
440
|
+
}
|
|
441
|
+
.goal-collapse-btn { min-height: 34px; display: inline-flex; align-items: center; gap: 4px; padding: 4px 9px; border-radius: 9px; font-size: 12px; }
|
|
442
|
+
.goal-collapse-btn > span { color: var(--dsr-accent-strong); font-size: 18px; line-height: 1; }
|
|
443
|
+
.goal-side-tab {
|
|
444
|
+
min-height: 46px; max-width: min(100%, 210px); display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px 7px 10px;
|
|
445
|
+
border-right: 0; border-radius: 12px 0 0 12px; box-shadow: -5px 6px 18px var(--dsr-shadow); color: var(--dsr-text); font-size: 13px; font-weight: 700;
|
|
446
|
+
}
|
|
447
|
+
.goal-side-tab > span:first-child { color: var(--dsr-accent-strong); font-size: 20px; line-height: 1; }
|
|
448
|
+
.goal-side-tab small { min-width: 0; color: var(--dsr-muted); font-size: 11px; font-weight: 500; white-space: nowrap; }
|
|
449
|
+
.goal-collapse-btn:hover,
|
|
450
|
+
.goal-side-tab:hover { background: var(--dsr-panel-2); color: var(--dsr-text); }
|
|
451
|
+
.goal-collapse-btn:active,
|
|
452
|
+
.goal-side-tab:active { transform: translateY(1px); }
|
|
453
|
+
.goal-collapse-btn:focus-visible,
|
|
454
|
+
.goal-side-tab:focus-visible { outline: 2px solid var(--dsr-accent-strong); outline-offset: 2px; }
|
|
455
|
+
.goal-obj { font-size: 13px; line-height: 1.55; color: var(--dsr-text); overflow-wrap: anywhere; }
|
|
366
456
|
.goal-phase { font-size: 12px; color: var(--dsr-info); margin-top: 3px; }
|
|
367
457
|
.goal-actions { display: flex; gap: 8px; margin-top: 9px; flex-wrap: wrap; }
|
|
368
458
|
.goal-actions .mini-btn { flex: 1; text-align: center; min-width: 64px; }
|
|
@@ -801,6 +891,16 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
801
891
|
}
|
|
802
892
|
.setting-row > div:first-child { flex: 1; min-width: 0; }
|
|
803
893
|
.setting-row + .setting-row { border-top: 1px solid var(--dsr-line); }
|
|
894
|
+
.setting-link {
|
|
895
|
+
width: 100%; color: var(--dsr-text); text-align: left;
|
|
896
|
+
transition: background-color .18s ease, color .18s ease;
|
|
897
|
+
}
|
|
898
|
+
.setting-link::after {
|
|
899
|
+
content: '›'; flex: 0 0 auto; color: var(--dsr-muted); font-size: 20px; font-weight: 400;
|
|
900
|
+
transform: translateX(0); transition: transform .18s ease, color .18s ease;
|
|
901
|
+
}
|
|
902
|
+
.setting-link:hover, .setting-link:focus-visible { background: var(--dsr-bg-2); }
|
|
903
|
+
.setting-link:hover::after, .setting-link:focus-visible::after { color: var(--dsr-accent-strong); transform: translateX(2px); }
|
|
804
904
|
.setting-name { font-size: 14.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
805
905
|
.dsh-experimental-badge { display: inline-block; margin-left: 6px; padding: 2px 6px; border: 1px solid var(--dsr-warning-line); border-radius: 999px; color: var(--dsr-warning); background: var(--dsr-warning-soft); font-size: 10px; font-weight: 700; vertical-align: 2px; }
|
|
806
906
|
.setting-desc { font-size: 12px; color: var(--dsr-muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
@@ -848,6 +948,7 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
848
948
|
.server-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
|
|
849
949
|
.server-note { font-size: 13px; word-break: break-all; }
|
|
850
950
|
.server-url { flex: 1; min-width: 0; font-size: 11.5px; color: var(--dsr-muted); word-break: break-all; }
|
|
951
|
+
.server-token-badge { color: var(--dsr-muted); font-size: 10px; }
|
|
851
952
|
.server-badge {
|
|
852
953
|
flex-shrink: 0; font-size: 11px; padding: 1px 7px; border-radius: 999px;
|
|
853
954
|
background: var(--dsr-accent-soft); color: var(--dsr-accent-strong);
|
|
@@ -874,11 +975,11 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
874
975
|
.switch input { opacity: 0; width: 0; height: 0; }
|
|
875
976
|
.slider {
|
|
876
977
|
position: absolute; inset: 0; border-radius: 999px; background: var(--dsr-panel-2);
|
|
877
|
-
border: 1px solid var(--dsr-line); transition: .2s;
|
|
978
|
+
border: 1px solid var(--dsr-line); transition: background-color .2s ease, border-color .2s ease;
|
|
878
979
|
}
|
|
879
980
|
.slider::before {
|
|
880
981
|
content: ''; position: absolute; width: 19px; height: 19px; border-radius: 50%;
|
|
881
|
-
left: 3px; top: 3px; background: var(--dsr-muted); transition: .2s;
|
|
982
|
+
left: 3px; top: 3px; background: var(--dsr-muted); transition: transform .2s ease, background-color .2s ease;
|
|
882
983
|
}
|
|
883
984
|
.switch input:checked + .slider { background: var(--dsr-accent-soft); border-color: var(--dsr-accent); }
|
|
884
985
|
.switch input:checked + .slider::before { transform: translateX(19px); background: var(--dsr-accent); }
|
|
@@ -902,21 +1003,17 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
902
1003
|
}
|
|
903
1004
|
.nav-btn .nav-ico { width: 22px; height: 22px; display: grid; place-items: center; line-height: 1; transition: transform .18s ease, color .18s ease; }
|
|
904
1005
|
.nav-btn .nav-ico svg { width: 21px; height: 21px; display: block; }
|
|
905
|
-
.nav-btn:
|
|
906
|
-
.nav-btn:nth-of-type(2) { --nav-tint: var(--dsr-success); }
|
|
907
|
-
.nav-btn:nth-of-type(4) { --nav-tint: var(--dsr-warning); }
|
|
908
|
-
.nav-btn:nth-of-type(5) { --nav-tint: var(--dsr-accent-2); }
|
|
909
|
-
.nav-btn:not(.nav-home) .nav-ico { color: var(--nav-tint, var(--dsr-nav-muted)); opacity: .82; }
|
|
1006
|
+
.nav-btn:not(.nav-home) .nav-ico { color: var(--dsr-nav-muted); opacity: .84; }
|
|
910
1007
|
.nav-btn:not(.nav-home) > span:last-of-type { color: var(--dsr-nav-muted); }
|
|
911
1008
|
.nav-btn.active:not(.nav-home) { color: var(--dsr-nav-active); }
|
|
912
|
-
.nav-btn.active:not(.nav-home) .nav-ico { transform: translateY(-1px); opacity: 1; }
|
|
1009
|
+
.nav-btn.active:not(.nav-home) .nav-ico { color: var(--dsr-nav-active); transform: translateY(-1px); opacity: 1; }
|
|
913
1010
|
.nav-btn.active:not(.nav-home)::after { content: ''; position: absolute; bottom: 3px; width: 4px; height: 4px; border-radius: 50%; background: var(--dsr-nav-active); box-shadow: 0 0 10px var(--dsr-glow); }
|
|
914
1011
|
.nav-home { z-index: 2; transform: translateY(-13px); color: var(--dsr-nav-muted); }
|
|
915
1012
|
.nav-home-orb { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--dsr-bg-2); border: 1px solid var(--dsr-accent-line); box-shadow: 0 5px 18px var(--dsr-shadow); transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
|
|
916
1013
|
.nav-home .nav-ico { width: 30px; height: 30px; color: var(--dsr-accent-strong); }
|
|
917
1014
|
.nav-home .nav-ico svg { width: 29px; height: 29px; }
|
|
918
1015
|
.nav-home.active { color: var(--dsr-nav-active); }
|
|
919
|
-
.nav-home.active .nav-home-orb { background:
|
|
1016
|
+
.nav-home.active .nav-home-orb { background: linear-gradient(145deg, var(--dsr-accent-2), var(--dsr-accent) 64%); border-color: var(--dsr-accent); color: var(--dsr-on-accent); box-shadow: 0 7px 24px var(--dsr-glow), inset 0 0 0 1px rgba(255,255,255,.28); }
|
|
920
1017
|
.nav-home.active .nav-ico { color: var(--dsr-on-accent); transform: none; }
|
|
921
1018
|
.nav-home:active .nav-home-orb { transform: scale(.96); }
|
|
922
1019
|
.nav-badge {
|
|
@@ -929,7 +1026,6 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
929
1026
|
.sheet-backdrop {
|
|
930
1027
|
position: fixed; inset: 0; z-index: 45;
|
|
931
1028
|
background: var(--dsr-overlay);
|
|
932
|
-
animation: sheet-fade .18s ease;
|
|
933
1029
|
}
|
|
934
1030
|
.sheet {
|
|
935
1031
|
position: fixed; left: 0; right: 0; bottom: 0; z-index: 46;
|
|
@@ -957,7 +1053,6 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
957
1053
|
.sheet-item-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
|
|
958
1054
|
.sheet-item-name { font-size: 14px; font-weight: 600; }
|
|
959
1055
|
.sheet-item-desc { font-size: 12px; color: var(--dsr-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
960
|
-
@keyframes sheet-fade { from { opacity: 0 } to { opacity: 1 } }
|
|
961
1056
|
|
|
962
1057
|
/* ---------- 应用内选择抽屉 ---------- */
|
|
963
1058
|
.custom-select-native {
|
|
@@ -1048,7 +1143,7 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
1048
1143
|
.modal-card {
|
|
1049
1144
|
width: 100%; max-width: 460px; max-height: 82vh; overflow-y: auto;
|
|
1050
1145
|
background: var(--dsr-bg-2); border: 1px solid var(--dsr-line); border-radius: 18px;
|
|
1051
|
-
padding: 16px;
|
|
1146
|
+
padding: 16px; box-shadow: 0 22px 60px var(--dsr-shadow); overscroll-behavior: contain;
|
|
1052
1147
|
}
|
|
1053
1148
|
.modal-title { font-size: 16px; font-weight: 700; margin-bottom: 10px; }
|
|
1054
1149
|
.modal-body { font-size: 14px; }
|
|
@@ -1123,25 +1218,30 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
|
|
|
1123
1218
|
.fs-workspace-nav { grid-template-columns: 1fr; }
|
|
1124
1219
|
.file-preview-card { height: 88vh; padding: 13px; }
|
|
1125
1220
|
}
|
|
1126
|
-
.theme-panel-list { display:
|
|
1221
|
+
.theme-panel-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
|
|
1127
1222
|
.theme-option {
|
|
1128
|
-
display: flex; align-items:
|
|
1129
|
-
padding:
|
|
1223
|
+
position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 9px; min-width: 0; width: 100%;
|
|
1224
|
+
min-height: 86px; padding: 10px; border-radius: 13px; text-align: left;
|
|
1130
1225
|
background: var(--dsr-panel); border: 1px solid var(--dsr-line);
|
|
1131
|
-
white-space: nowrap;
|
|
1226
|
+
white-space: nowrap; overflow: hidden;
|
|
1227
|
+
transition: transform .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
|
|
1132
1228
|
}
|
|
1133
|
-
.theme-option:
|
|
1229
|
+
.theme-option:hover, .theme-option:focus-visible { background: var(--dsr-panel-2); border-color: var(--dsr-accent-line); transform: translateY(-1px); }
|
|
1230
|
+
.theme-option:active { background: var(--dsr-panel-2); transform: scale(.985); }
|
|
1134
1231
|
.theme-option.current { border-color: var(--dsr-accent-line); box-shadow: 0 0 0 1px var(--dsr-accent-soft); }
|
|
1135
|
-
.theme-swatches {
|
|
1232
|
+
.theme-swatches {
|
|
1233
|
+
display: grid; grid-template-columns: 1.35fr 1fr .72fr; height: 30px; flex-shrink: 0;
|
|
1234
|
+
overflow: hidden; border: 1px solid rgba(127, 127, 127, .28); border-radius: 8px;
|
|
1235
|
+
}
|
|
1136
1236
|
.theme-swatches i {
|
|
1137
|
-
width:
|
|
1138
|
-
border: 1px solid rgba(127, 127, 127, .35);
|
|
1237
|
+
width: auto; height: 100%; display: block;
|
|
1139
1238
|
}
|
|
1140
1239
|
.theme-option .theme-name {
|
|
1141
|
-
|
|
1240
|
+
min-width: 0; padding-right: 22px; font-size: 13px; font-weight: 650;
|
|
1142
1241
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
1143
1242
|
}
|
|
1144
|
-
.theme-option .theme-check {
|
|
1243
|
+
.theme-option .theme-check { position: absolute; right: 11px; bottom: 9px; color: var(--dsr-accent-strong); font-size: 14px; font-weight: 700; }
|
|
1244
|
+
@media (max-width: 350px) { .theme-panel-list { grid-template-columns: 1fr; } }
|
|
1145
1245
|
|
|
1146
1246
|
/* ---------- toast ---------- */
|
|
1147
1247
|
.toast {
|