anentrypoint-design 0.0.240 → 0.0.241
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/app-shell.css +85 -71
- package/chat.css +25 -22
- package/colors_and_type.css +17 -6
- package/community.css +63 -18
- package/dist/247420.css +216 -139
- package/dist/247420.js +23 -27
- package/package.json +1 -1
- package/src/components/community.js +46 -12
- package/src/components/content.js +8 -6
- package/src/components/shell.js +1 -1
- package/src/kits/os/freddie-dashboard.css +2 -2
- package/src/kits/os/icons.js +38 -16
- package/src/kits/os/theme.css +33 -33
- package/src/kits/spoint/loading-screen.css +1 -1
- package/src/page-html.js +9 -13
package/dist/247420.css
CHANGED
|
@@ -202,10 +202,14 @@
|
|
|
202
202
|
--rule: color-mix(in oklab, currentColor 14%, transparent);
|
|
203
203
|
--rule-strong: color-mix(in oklab, currentColor 28%, transparent);
|
|
204
204
|
|
|
205
|
+
/* Micro rungs below --r-1 — chips, badges, scrollbar thumbs, tick marks
|
|
206
|
+
genuinely want a tighter corner than 10px; without these two tokens the
|
|
207
|
+
component sheets fell back to raw px literals bypassing the scale. */
|
|
208
|
+
--r-hair: 2px;
|
|
209
|
+
--r-0: 4px;
|
|
205
210
|
--r-1: 10px;
|
|
206
211
|
--r-2: 14px;
|
|
207
212
|
--r-3: 22px;
|
|
208
|
-
--r-4: 32px;
|
|
209
213
|
--r-pill: 999px;
|
|
210
214
|
|
|
211
215
|
--dur-snap: 80ms;
|
|
@@ -235,6 +239,10 @@
|
|
|
235
239
|
--measure: 68ch;
|
|
236
240
|
--measure-wide: 940px;
|
|
237
241
|
--measure-narrow: 760px;
|
|
242
|
+
/* Page-stage ceiling — independent of --measure-wide (which stays the
|
|
243
|
+
narrower editorial hero/prose measure). Fluid so ultra-wide viewports
|
|
244
|
+
actually gain real estate instead of flat-lining at a fixed px cap. */
|
|
245
|
+
--stage-wide: min(96vw, 1440px);
|
|
238
246
|
|
|
239
247
|
--sidebar-width: 220px;
|
|
240
248
|
--sidebar-width-collapsed: 64px;
|
|
@@ -249,8 +257,11 @@
|
|
|
249
257
|
/* Unified focus-ring tokens (single source for the design system). Outset
|
|
250
258
|
rings (the default) tokenize colour+width+offset; bordered text fields use
|
|
251
259
|
the inset variant. Deliberate negative offsets on edge-flush/clipping
|
|
252
|
-
containers stay literal.
|
|
253
|
-
|
|
260
|
+
containers stay literal. --focus-color uses --accent-ink (the readable
|
|
261
|
+
text/UI-boundary tone), never bare --accent (the lime FILL token, which
|
|
262
|
+
measures ~1.07:1 against --paper and is nearly invisible as an outline —
|
|
263
|
+
see AGENTS.md token-split rule). */
|
|
264
|
+
--focus-color: var(--accent-ink);
|
|
254
265
|
--focus-w: 2px;
|
|
255
266
|
--focus-offset: 2px;
|
|
256
267
|
--focus-ring-inset: inset 0 0 0 var(--focus-w) var(--focus-color);
|
|
@@ -275,7 +286,7 @@
|
|
|
275
286
|
/* Link focus-visible */
|
|
276
287
|
.ds-247420 a:focus-visible,
|
|
277
288
|
.ds-247420[role="link"]:focus-visible {
|
|
278
|
-
outline: 2px solid var(--accent);
|
|
289
|
+
outline: 2px solid var(--accent-ink);
|
|
279
290
|
outline-offset: 2px;
|
|
280
291
|
}
|
|
281
292
|
|
|
@@ -283,13 +294,13 @@
|
|
|
283
294
|
.ds-247420 input:focus-visible,
|
|
284
295
|
.ds-247420 textarea:focus-visible,
|
|
285
296
|
.ds-247420 select:focus-visible {
|
|
286
|
-
outline: 2px solid var(--accent);
|
|
297
|
+
outline: 2px solid var(--accent-ink);
|
|
287
298
|
outline-offset: 2px;
|
|
288
299
|
}
|
|
289
300
|
|
|
290
301
|
/* Interactive element focus-visible */
|
|
291
302
|
.ds-247420[tabindex]:focus-visible {
|
|
292
|
-
outline: 2px solid var(--accent);
|
|
303
|
+
outline: 2px solid var(--accent-ink);
|
|
293
304
|
outline-offset: 2px;
|
|
294
305
|
}
|
|
295
306
|
|
|
@@ -533,7 +544,7 @@
|
|
|
533
544
|
}
|
|
534
545
|
.ds-247420 .skip-link:focus {
|
|
535
546
|
top: 10px;
|
|
536
|
-
outline: 2px solid var(--accent);
|
|
547
|
+
outline: 2px solid var(--accent-ink);
|
|
537
548
|
outline-offset: 2px;
|
|
538
549
|
}
|
|
539
550
|
.ds-247420 body {
|
|
@@ -750,7 +761,7 @@
|
|
|
750
761
|
}
|
|
751
762
|
.ds-247420 .app-topbar nav a:hover { background: var(--bg-2); color: var(--fg); }
|
|
752
763
|
.ds-247420 .app-topbar nav a:focus-visible {
|
|
753
|
-
outline: 2px solid var(--accent);
|
|
764
|
+
outline: 2px solid var(--accent-ink);
|
|
754
765
|
outline-offset: 2px;
|
|
755
766
|
}
|
|
756
767
|
/* Active tab reads as a subtle tinted pill with an accent underline rather than
|
|
@@ -786,7 +797,7 @@
|
|
|
786
797
|
width: 100%;
|
|
787
798
|
}
|
|
788
799
|
.ds-247420 .app-search:focus-within {
|
|
789
|
-
outline: 2px solid var(--accent);
|
|
800
|
+
outline: 2px solid var(--accent-ink);
|
|
790
801
|
outline-offset: 2px;
|
|
791
802
|
}
|
|
792
803
|
|
|
@@ -828,7 +839,7 @@
|
|
|
828
839
|
}
|
|
829
840
|
.ds-247420 .app-side a:hover { background: var(--bg-2); color: var(--fg); }
|
|
830
841
|
.ds-247420 .app-side a:focus-visible {
|
|
831
|
-
outline: 2px solid var(--accent);
|
|
842
|
+
outline: 2px solid var(--accent-ink);
|
|
832
843
|
outline-offset: 2px;
|
|
833
844
|
}
|
|
834
845
|
.ds-247420 .app-side a.active {
|
|
@@ -951,7 +962,7 @@
|
|
|
951
962
|
.ds-247420 .btn-ghost:hover { background: var(--fg); color: var(--bg); }
|
|
952
963
|
.ds-247420 .btn:active, .ds-247420 .btn-primary:active, .ds-247420 .btn-ghost:active { transform: translateY(2px); }
|
|
953
964
|
.ds-247420 .btn:focus-visible, .ds-247420 .btn-primary:focus-visible, .ds-247420 .btn-ghost:focus-visible {
|
|
954
|
-
outline: 2px solid var(--accent);
|
|
965
|
+
outline: 2px solid var(--accent-ink);
|
|
955
966
|
outline-offset: 2px;
|
|
956
967
|
}
|
|
957
968
|
|
|
@@ -978,7 +989,7 @@
|
|
|
978
989
|
.ds-247420 .ds-icon-btn-danger { background: var(--warn); color: var(--on-color); }
|
|
979
990
|
.ds-247420 .ds-icon-btn-danger:hover { filter: brightness(1.1); }
|
|
980
991
|
.ds-247420 .ds-icon-btn:active { transform: translateY(1px); }
|
|
981
|
-
.ds-247420 .ds-icon-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
992
|
+
.ds-247420 .ds-icon-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
982
993
|
.ds-247420 .ds-icon-btn:disabled, .ds-247420 .ds-icon-btn.is-disabled {
|
|
983
994
|
opacity: 0.5; cursor: not-allowed; pointer-events: none;
|
|
984
995
|
}
|
|
@@ -990,7 +1001,7 @@
|
|
|
990
1001
|
display: inline-flex; align-items: center; justify-content: center;
|
|
991
1002
|
min-width: 18px; height: 18px; padding: 0 6px;
|
|
992
1003
|
font-size: var(--fs-micro); font-weight: 600; line-height: 1;
|
|
993
|
-
border-radius:
|
|
1004
|
+
border-radius: var(--r-pill);
|
|
994
1005
|
background: var(--bg-3); color: var(--fg-2);
|
|
995
1006
|
}
|
|
996
1007
|
.ds-247420 .ds-badge.tone-green { background: var(--green-tint); color: var(--green-deep); }
|
|
@@ -1202,16 +1213,13 @@
|
|
|
1202
1213
|
padding: var(--space-9) 0 var(--space-8);
|
|
1203
1214
|
display: grid; gap: var(--space-5) var(--space-6);
|
|
1204
1215
|
grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
|
|
1205
|
-
grid-template-areas: 'title title' 'body actions'
|
|
1216
|
+
grid-template-areas: 'title title' 'body actions';
|
|
1206
1217
|
align-items: end;
|
|
1207
1218
|
max-width: var(--measure-wide);
|
|
1208
1219
|
}
|
|
1209
1220
|
.ds-247420 .ds-hero-head { grid-area: title; display: grid; gap: var(--space-3); }
|
|
1210
1221
|
.ds-247420 .ds-hero-body { grid-area: body; }
|
|
1211
1222
|
.ds-247420 .ds-hero-actions { grid-area: actions; }
|
|
1212
|
-
/* Badge gets its own row — sharing 'actions' overlapped it onto the CTAs
|
|
1213
|
-
whenever a caller passes both actions and badge. */
|
|
1214
|
-
.ds-247420 .ds-hero-badge { grid-area: badge; }
|
|
1215
1223
|
.ds-247420 .ds-hero-title {
|
|
1216
1224
|
font-family: var(--ff-display); font-weight: 700;
|
|
1217
1225
|
font-size: clamp(40px, 9cqi, 116px);
|
|
@@ -1232,7 +1240,7 @@
|
|
|
1232
1240
|
@container (max-width: 900px) {
|
|
1233
1241
|
.ds-247420 .ds-hero {
|
|
1234
1242
|
grid-template-columns: minmax(0, 1fr);
|
|
1235
|
-
grid-template-areas: 'title' 'body' 'actions'
|
|
1243
|
+
grid-template-areas: 'title' 'body' 'actions';
|
|
1236
1244
|
align-items: start;
|
|
1237
1245
|
padding: var(--space-7) 0 var(--space-6);
|
|
1238
1246
|
}
|
|
@@ -1406,7 +1414,7 @@
|
|
|
1406
1414
|
.ds-247420 table tr.clickable { cursor: pointer; }
|
|
1407
1415
|
.ds-247420 table tr.clickable:hover td { background: var(--bg-2); }
|
|
1408
1416
|
.ds-247420 table tr.clickable:focus-visible {
|
|
1409
|
-
outline: 2px solid var(--accent);
|
|
1417
|
+
outline: 2px solid var(--accent-ink);
|
|
1410
1418
|
outline-offset: -2px;
|
|
1411
1419
|
}
|
|
1412
1420
|
.ds-247420 table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
@@ -1804,7 +1812,7 @@
|
|
|
1804
1812
|
flex-direction: column;
|
|
1805
1813
|
gap: 4px;
|
|
1806
1814
|
}
|
|
1807
|
-
.ds-247420 .ds-file-grid:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-2); }
|
|
1815
|
+
.ds-247420 .ds-file-grid:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; border-radius: var(--r-2); }
|
|
1808
1816
|
|
|
1809
1817
|
/* Listing wrapper holds the optional filter + sort header above the grid. */
|
|
1810
1818
|
.ds-247420 .ds-file-listing { display: flex; flex-direction: column; gap: var(--space-2); min-height: 0; }
|
|
@@ -1826,7 +1834,7 @@
|
|
|
1826
1834
|
}
|
|
1827
1835
|
.ds-247420 .ds-file-sort-btn:hover { color: var(--fg-2); background: var(--bg-2); }
|
|
1828
1836
|
.ds-247420 .ds-file-sort-btn.active { color: var(--accent-ink); }
|
|
1829
|
-
.ds-247420 .ds-file-sort-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1837
|
+
.ds-247420 .ds-file-sort-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1830
1838
|
|
|
1831
1839
|
/* Skeleton shimmer rows shown while a directory loads. */
|
|
1832
1840
|
.ds-247420 .ds-file-row-skeleton { cursor: default; pointer-events: none; }
|
|
@@ -1874,7 +1882,7 @@
|
|
|
1874
1882
|
color: inherit; font: inherit; text-align: left; cursor: pointer;
|
|
1875
1883
|
}
|
|
1876
1884
|
.ds-247420 .ds-file-open[disabled] { cursor: default; }
|
|
1877
|
-
.ds-247420 .ds-file-open:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-1); }
|
|
1885
|
+
.ds-247420 .ds-file-open:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; border-radius: var(--r-1); }
|
|
1878
1886
|
.ds-247420 .ds-file-row:hover {
|
|
1879
1887
|
background: var(--bg-2);
|
|
1880
1888
|
border-color: var(--rule);
|
|
@@ -1947,7 +1955,7 @@
|
|
|
1947
1955
|
role=checkbox/aria-checked name+state. */
|
|
1948
1956
|
.ds-247420 .ds-check-box {
|
|
1949
1957
|
width: 15px; height: 15px; box-sizing: border-box; flex: 0 0 auto; position: relative;
|
|
1950
|
-
border: 1.5px solid var(--fg-3); border-radius:
|
|
1958
|
+
border: 1.5px solid var(--fg-3); border-radius: var(--r-0);
|
|
1951
1959
|
transition: background var(--dur-snap) var(--ease), border-color var(--dur-snap) var(--ease);
|
|
1952
1960
|
}
|
|
1953
1961
|
.ds-247420 .is-marked > .ds-check-box,
|
|
@@ -1959,7 +1967,7 @@
|
|
|
1959
1967
|
}
|
|
1960
1968
|
.ds-247420[aria-checked="mixed"] > .ds-check-box { background: var(--accent); border-color: var(--accent); }
|
|
1961
1969
|
.ds-247420[aria-checked="mixed"] > .ds-check-box::after {
|
|
1962
|
-
content: ""; position: absolute; left: 3px; right: 3px; top: 6px; height: 2px; background: var(--bg); border-radius:
|
|
1970
|
+
content: ""; position: absolute; left: 3px; right: 3px; top: 6px; height: 2px; background: var(--bg); border-radius: var(--r-hair);
|
|
1963
1971
|
}
|
|
1964
1972
|
|
|
1965
1973
|
.ds-247420 .ds-file-check {
|
|
@@ -1972,7 +1980,7 @@
|
|
|
1972
1980
|
}
|
|
1973
1981
|
.ds-247420 .ds-file-check:hover { background: var(--bg-3); color: var(--fg); }
|
|
1974
1982
|
.ds-247420 .ds-file-check.is-marked { color: var(--accent-ink); }
|
|
1975
|
-
.ds-247420 .ds-file-check:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1983
|
+
.ds-247420 .ds-file-check:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1976
1984
|
.ds-247420 .ds-file-check[disabled] { opacity: 0.4; cursor: default; }
|
|
1977
1985
|
.ds-247420 .ds-file-row.is-marked { background: var(--accent-tint); border-color: var(--accent); }
|
|
1978
1986
|
.ds-247420 .ds-file-selectall {
|
|
@@ -1982,7 +1990,7 @@
|
|
|
1982
1990
|
padding: var(--space-1); border-radius: var(--r-1);
|
|
1983
1991
|
}
|
|
1984
1992
|
.ds-247420 .ds-file-selectall:hover { background: var(--bg-2); color: var(--fg); }
|
|
1985
|
-
.ds-247420 .ds-file-selectall:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1993
|
+
.ds-247420 .ds-file-selectall:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1986
1994
|
.ds-247420 .ds-file-controls { display: flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-2) var(--space-1); flex-wrap: wrap; }
|
|
1987
1995
|
.ds-247420 .ds-file-controls .spread { flex: 1 1 auto; }
|
|
1988
1996
|
.ds-247420 .ds-file-controls .ds-file-sort { padding: 0; }
|
|
@@ -2020,7 +2028,7 @@
|
|
|
2020
2028
|
}
|
|
2021
2029
|
.ds-247420 .ds-density-btn:hover { color: var(--fg); }
|
|
2022
2030
|
.ds-247420 .ds-density-btn.active { background: var(--accent-tint); color: var(--fg); }
|
|
2023
|
-
.ds-247420 .ds-density-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
2031
|
+
.ds-247420 .ds-density-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
2024
2032
|
|
|
2025
2033
|
/* Compact density — tighter rows for long listings. */
|
|
2026
2034
|
.ds-247420 .ds-file-grid[data-density="compact"] { gap: 2px; }
|
|
@@ -2054,7 +2062,7 @@
|
|
|
2054
2062
|
background: none; border: none; cursor: pointer; color: var(--fg);
|
|
2055
2063
|
}
|
|
2056
2064
|
.ds-247420 .ds-file-cell-open[disabled] { cursor: default; }
|
|
2057
|
-
.ds-247420 .ds-file-cell-open:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--r-2); }
|
|
2065
|
+
.ds-247420 .ds-file-cell-open:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; border-radius: var(--r-2); }
|
|
2058
2066
|
.ds-247420 .ds-file-cell-media {
|
|
2059
2067
|
display: flex; align-items: center; justify-content: center;
|
|
2060
2068
|
width: 100%; aspect-ratio: 4 / 3;
|
|
@@ -2272,7 +2280,7 @@
|
|
|
2272
2280
|
color: var(--fg-2); font-family: var(--ff-body); font-size: var(--fs-micro);
|
|
2273
2281
|
}
|
|
2274
2282
|
.ds-247420 .ds-upload-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
2275
|
-
.ds-247420 .ds-upload-act:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
2283
|
+
.ds-247420 .ds-upload-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
2276
2284
|
@media (hover: none), (pointer: coarse) {
|
|
2277
2285
|
.ds-247420 .ds-upload-act { min-height: 44px; min-width: 44px; }
|
|
2278
2286
|
/* 44px floor for file controls on ANY touch device, not only narrow ones
|
|
@@ -2343,7 +2351,7 @@
|
|
|
2343
2351
|
border-radius: var(--r-2); color: var(--fg);
|
|
2344
2352
|
font-family: inherit; font-size: var(--fs-sm);
|
|
2345
2353
|
}
|
|
2346
|
-
.ds-247420 .ds-modal-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
2354
|
+
.ds-247420 .ds-modal-input:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
2347
2355
|
/* iOS auto-zooms inputs under 16px on focus, breaking the modal layout. */
|
|
2348
2356
|
@media (hover: none), (pointer: coarse) {
|
|
2349
2357
|
.ds-247420 .ds-modal-input { font-size: 16px; min-height: 44px; }
|
|
@@ -2507,7 +2515,7 @@
|
|
|
2507
2515
|
.ds-247420 .ds-kbd-sep { color: var(--fg-3); font-size: var(--fs-micro); padding: 0 2px; }
|
|
2508
2516
|
.ds-247420 .ds-kbd {
|
|
2509
2517
|
display: inline-block; min-width: 0;
|
|
2510
|
-
padding: 2px 7px; border-radius:
|
|
2518
|
+
padding: 2px 7px; border-radius: var(--r-0);
|
|
2511
2519
|
background: var(--bg); border: var(--bw-hair) solid var(--rule);
|
|
2512
2520
|
border-bottom-width: 2px;
|
|
2513
2521
|
font-family: var(--ff-mono); font-size: var(--fs-micro); color: var(--fg-2);
|
|
@@ -2529,7 +2537,7 @@
|
|
|
2529
2537
|
transition: color var(--dur-base) var(--ease), background var(--dur-base) var(--ease);
|
|
2530
2538
|
}
|
|
2531
2539
|
.ds-247420 .ds-segmented .ds-seg-btn:hover { color: var(--fg); }
|
|
2532
|
-
.ds-247420 .ds-segmented .ds-seg-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
2540
|
+
.ds-247420 .ds-segmented .ds-seg-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
2533
2541
|
.ds-247420 .ds-segmented .ds-seg-btn.is-on {
|
|
2534
2542
|
background: var(--bg); color: var(--fg);
|
|
2535
2543
|
box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--rule);
|
|
@@ -2583,7 +2591,7 @@
|
|
|
2583
2591
|
.ds-247420 .chat-thread { scroll-behavior: smooth; }
|
|
2584
2592
|
}
|
|
2585
2593
|
.ds-247420 .chat-thread::-webkit-scrollbar { width: 8px; }
|
|
2586
|
-
.ds-247420 .chat-thread::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius:
|
|
2594
|
+
.ds-247420 .chat-thread::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius: var(--r-0); }
|
|
2587
2595
|
.ds-247420 .chat-empty {
|
|
2588
2596
|
margin: auto;
|
|
2589
2597
|
text-align: center;
|
|
@@ -2597,7 +2605,7 @@
|
|
|
2597
2605
|
.ds-247420 .chat-msg { display: flex; gap: 12px; align-items: flex-start; padding: 6px 0; position: relative; min-width: 0; }
|
|
2598
2606
|
.ds-247420 .chat-msg.you { flex-direction: row-reverse; }
|
|
2599
2607
|
.ds-247420 .chat-msg.you .chat-stack { align-items: flex-end; }
|
|
2600
|
-
.ds-247420 .chat-msg:hover { background: color-mix(in oklab, var(--fg) 4%, transparent); padding: 6px 0; margin: 0; border-radius:
|
|
2608
|
+
.ds-247420 .chat-msg:hover { background: color-mix(in oklab, var(--fg) 4%, transparent); padding: 6px 0; margin: 0; border-radius: var(--r-0); transition: background var(--dur-base) var(--ease); }
|
|
2601
2609
|
|
|
2602
2610
|
.ds-247420 .chat-avatar {
|
|
2603
2611
|
width: 36px; height: 36px; flex-shrink: 0;
|
|
@@ -2643,7 +2651,7 @@
|
|
|
2643
2651
|
.ds-247420 .chat-bubble code {
|
|
2644
2652
|
font-family: var(--ff-mono); font-size: 0.92em;
|
|
2645
2653
|
background: color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2646
|
-
padding: 1px 6px; border-radius:
|
|
2654
|
+
padding: 1px 6px; border-radius: var(--r-0);
|
|
2647
2655
|
}
|
|
2648
2656
|
.ds-247420 .chat-msg.you .chat-bubble code { background: color-mix(in oklab, var(--fg) 10%, transparent); }
|
|
2649
2657
|
.ds-247420 .chat-bubble a {
|
|
@@ -2754,7 +2762,7 @@
|
|
|
2754
2762
|
.ds-247420 .chat-msg.you .chat-image,
|
|
2755
2763
|
.ds-247420 .chat-msg .chat-image,
|
|
2756
2764
|
.ds-247420 .chat-image {
|
|
2757
|
-
display: inline-block; border-radius:
|
|
2765
|
+
display: inline-block; border-radius: var(--r-1); overflow: hidden;
|
|
2758
2766
|
max-width: min(100%, 480px); background: var(--bg-2);
|
|
2759
2767
|
text-decoration: none; color: var(--fg);
|
|
2760
2768
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
@@ -2773,7 +2781,7 @@
|
|
|
2773
2781
|
.ds-247420 .chat-file {
|
|
2774
2782
|
display: flex; align-items: center; gap: 12px; padding: 12px 14px;
|
|
2775
2783
|
background: var(--bg-2); border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2776
|
-
border-radius:
|
|
2784
|
+
border-radius: var(--r-1); text-decoration: none; color: var(--fg);
|
|
2777
2785
|
max-width: min(100%, 360px);
|
|
2778
2786
|
transition: background var(--dur-snap, .15s) var(--ease, ease), border-color var(--dur-snap, .15s) var(--ease, ease);
|
|
2779
2787
|
}
|
|
@@ -2782,7 +2790,7 @@
|
|
|
2782
2790
|
font-size: 22px; width: 36px; height: 36px;
|
|
2783
2791
|
display: inline-flex; align-items: center; justify-content: center;
|
|
2784
2792
|
background: color-mix(in oklab, var(--accent) 18%, transparent);
|
|
2785
|
-
color: var(--accent-ink); border-radius:
|
|
2793
|
+
color: var(--accent-ink); border-radius: var(--r-0); flex-shrink: 0; font-family: var(--ff-mono);
|
|
2786
2794
|
}
|
|
2787
2795
|
.ds-247420 .chat-file > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
|
|
2788
2796
|
.ds-247420 .chat-file .name {
|
|
@@ -2800,7 +2808,7 @@
|
|
|
2800
2808
|
background: var(--bg-2);
|
|
2801
2809
|
color: var(--fg);
|
|
2802
2810
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2803
|
-
border-radius:
|
|
2811
|
+
border-radius: var(--r-1); overflow: hidden; max-width: min(100%, 480px);
|
|
2804
2812
|
transition: box-shadow 0.12s ease, border-color 0.12s ease;
|
|
2805
2813
|
}
|
|
2806
2814
|
.ds-247420 .chat-msg:hover .chat-pdf { border-color: color-mix(in oklab, var(--accent) 30%, transparent); }
|
|
@@ -2823,7 +2831,7 @@
|
|
|
2823
2831
|
display: grid; grid-template-columns: 80px 1fr; gap: 12px; padding: 10px;
|
|
2824
2832
|
background: var(--bg-2);
|
|
2825
2833
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2826
|
-
border-radius:
|
|
2834
|
+
border-radius: var(--r-1); text-decoration: none; color: var(--fg);
|
|
2827
2835
|
max-width: min(100%, 480px);
|
|
2828
2836
|
transition: background var(--dur-snap, .15s) var(--ease, ease), border-color var(--dur-snap, .15s) var(--ease, ease), box-shadow 0.15s ease;
|
|
2829
2837
|
}
|
|
@@ -2834,7 +2842,7 @@
|
|
|
2834
2842
|
}
|
|
2835
2843
|
.ds-247420 .chat-link:not(:has(.thumb)):not(:has(img)) { grid-template-columns: 1fr; }
|
|
2836
2844
|
.ds-247420 .chat-link .thumb,
|
|
2837
|
-
.ds-247420 .chat-link img.thumb { width: 80px; height: 80px; border-radius:
|
|
2845
|
+
.ds-247420 .chat-link img.thumb { width: 80px; height: 80px; border-radius: var(--r-0); object-fit: cover; background: var(--bg-3) center/cover no-repeat; }
|
|
2838
2846
|
.ds-247420 .chat-link .meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
|
|
2839
2847
|
.ds-247420 .chat-link .host { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-3); text-transform: lowercase; }
|
|
2840
2848
|
.ds-247420 .chat-link .title { font-weight: 600; font-size: var(--fs-sm); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
@@ -2858,7 +2866,7 @@
|
|
|
2858
2866
|
display: inline-flex; align-items: center; gap: 4px;
|
|
2859
2867
|
padding: 2px 8px; background: var(--bg-2);
|
|
2860
2868
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2861
|
-
border-radius:
|
|
2869
|
+
border-radius: var(--r-pill); font-size: var(--fs-xs);
|
|
2862
2870
|
cursor: pointer; user-select: none;
|
|
2863
2871
|
transition: background var(--dur-snap, .12s) var(--ease, ease), border-color var(--dur-snap, .12s) var(--ease, ease), transform 0.12s ease;
|
|
2864
2872
|
position: relative;
|
|
@@ -2979,7 +2987,7 @@
|
|
|
2979
2987
|
.ds-247420 .chat-composer .send:active { filter: brightness(0.94); }
|
|
2980
2988
|
.ds-247420 .chat-composer .send:focus-visible,
|
|
2981
2989
|
.ds-247420 .composer-btn:focus-visible {
|
|
2982
|
-
outline: 2px solid var(--accent);
|
|
2990
|
+
outline: 2px solid var(--accent-ink);
|
|
2983
2991
|
outline-offset: 2px;
|
|
2984
2992
|
}
|
|
2985
2993
|
.ds-247420 .chat-composer .send:disabled {
|
|
@@ -3091,8 +3099,12 @@
|
|
|
3091
3099
|
Component States — Disabled, Loading, Error, Success
|
|
3092
3100
|
-------------------------------------------------------------- */
|
|
3093
3101
|
|
|
3094
|
-
/* Disabled state for all interactive elements
|
|
3095
|
-
|
|
3102
|
+
/* Disabled state for all interactive elements. The `.is-disabled` class
|
|
3103
|
+
variants cover Btn()'s anchor-rendered case (shell.js) — an <a> has no
|
|
3104
|
+
:disabled pseudo-class, so a disabled link-styled button relies entirely
|
|
3105
|
+
on this class selector for its visual treatment (aria-disabled + tabindex
|
|
3106
|
+
are set in JS; this is the paired CSS half). */
|
|
3107
|
+
.ds-247420 .btn:disabled, .ds-247420 .btn-primary:disabled, .ds-247420 .btn-ghost:disabled, .ds-247420 .btn.is-disabled, .ds-247420 .btn-primary.is-disabled, .ds-247420 .btn-ghost.is-disabled, .ds-247420 button:disabled, .ds-247420[disabled] {
|
|
3096
3108
|
opacity: 0.6;
|
|
3097
3109
|
cursor: not-allowed;
|
|
3098
3110
|
pointer-events: none;
|
|
@@ -3422,7 +3434,7 @@
|
|
|
3422
3434
|
|
|
3423
3435
|
/* Base focus-visible: 2px ring + 2px offset clears dark bg-3 surfaces (WCAG 1.4.11) */
|
|
3424
3436
|
.ds-247420 :focus-visible {
|
|
3425
|
-
outline: 2px solid var(--accent);
|
|
3437
|
+
outline: 2px solid var(--accent-ink);
|
|
3426
3438
|
outline-offset: 2px;
|
|
3427
3439
|
}
|
|
3428
3440
|
|
|
@@ -3432,7 +3444,7 @@
|
|
|
3432
3444
|
.ds-247420[role="tab"]:focus-visible,
|
|
3433
3445
|
.ds-247420 .row:focus-visible,
|
|
3434
3446
|
.ds-247420 .row[tabindex]:focus-visible {
|
|
3435
|
-
outline: 2px solid var(--accent);
|
|
3447
|
+
outline: 2px solid var(--accent-ink);
|
|
3436
3448
|
outline-offset: 2px;
|
|
3437
3449
|
}
|
|
3438
3450
|
|
|
@@ -3819,7 +3831,7 @@
|
|
|
3819
3831
|
border-radius: var(--r-1, 6px);
|
|
3820
3832
|
cursor: pointer;
|
|
3821
3833
|
}
|
|
3822
|
-
.ds-247420 .app-side-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3834
|
+
.ds-247420 .app-side-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3823
3835
|
@container (max-width: 900px) {
|
|
3824
3836
|
.ds-247420 .app-side-toggle { display: inline-flex; }
|
|
3825
3837
|
.ds-247420 .app-topbar .brand { margin-left: 44px; }
|
|
@@ -3909,7 +3921,7 @@
|
|
|
3909
3921
|
.ds-247420 .ws-resizer { grid-row: 1 / -1; align-self: stretch; justify-self: end; width: 8px; margin-right: -4px; z-index: 5; cursor: col-resize; background: transparent; border: none; padding: 0; touch-action: none; }
|
|
3910
3922
|
.ds-247420 .ws-resizer::after { content: ""; display: block; width: 2px; height: 100%; margin: 0 auto; background: transparent; transition: background var(--dur-snap) var(--ease); }
|
|
3911
3923
|
.ds-247420 .ws-resizer:hover::after, .ds-247420 .ws-resizer:focus-visible::after { background: var(--accent); }
|
|
3912
|
-
.ds-247420 .ws-resizer:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
3924
|
+
.ds-247420 .ws-resizer:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
|
|
3913
3925
|
.ds-247420 .ws-resizer.ws-resizer-rail { grid-column: 1; }
|
|
3914
3926
|
.ds-247420 .ws-resizer.ws-resizer-sessions { grid-column: 2; }
|
|
3915
3927
|
.ds-247420 .ws-resizer.ws-resizer-pane { grid-column: 3; justify-self: end; }
|
|
@@ -3961,7 +3973,7 @@
|
|
|
3961
3973
|
border-radius: var(--r-1); cursor: pointer;
|
|
3962
3974
|
}
|
|
3963
3975
|
.ds-247420 .ws-rail-toggle:hover { background: var(--bg-3); color: var(--fg); }
|
|
3964
|
-
.ds-247420 .ws-rail-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3976
|
+
.ds-247420 .ws-rail-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3965
3977
|
.ds-247420 .ws-rail-inner { display: flex; flex-direction: column; min-height: 0; flex: 1; padding: var(--space-3) var(--space-2); gap: var(--space-2); }
|
|
3966
3978
|
.ds-247420 .ws-rail-head { display: flex; align-items: center; min-height: 36px; padding: 0 var(--space-2); }
|
|
3967
3979
|
.ds-247420 .ws-rail-brand { font-family: var(--ff-body); font-weight: 600; font-size: var(--fs-body); color: var(--fg); white-space: nowrap; overflow: hidden; }
|
|
@@ -3974,7 +3986,7 @@
|
|
|
3974
3986
|
min-height: 40px; white-space: nowrap; overflow: hidden;
|
|
3975
3987
|
}
|
|
3976
3988
|
.ds-247420 .ws-rail-action:hover { filter: brightness(1.08); }
|
|
3977
|
-
.ds-247420 .ws-rail-action:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3989
|
+
.ds-247420 .ws-rail-action:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3978
3990
|
.ds-247420 .ws-rail-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
|
|
3979
3991
|
.ds-247420 .ws-rail-item {
|
|
3980
3992
|
display: flex; align-items: center; gap: var(--space-2);
|
|
@@ -3984,7 +3996,7 @@
|
|
|
3984
3996
|
font-family: var(--ff-body); font-size: var(--fs-sm); white-space: nowrap; overflow: hidden;
|
|
3985
3997
|
}
|
|
3986
3998
|
.ds-247420 .ws-rail-item:hover { background: var(--bg-3); color: var(--fg); }
|
|
3987
|
-
.ds-247420 .ws-rail-item:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
3999
|
+
.ds-247420 .ws-rail-item:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
|
|
3988
4000
|
.ds-247420 .ws-rail-item.active { background: var(--accent-tint); color: var(--fg); box-shadow: inset 2px 0 0 var(--accent); }
|
|
3989
4001
|
.ds-247420 .ws-rail-item-label { flex: 1; overflow: hidden; text-overflow: ellipsis; }
|
|
3990
4002
|
.ds-247420 .ws-rail-item-count { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
@@ -4057,7 +4069,7 @@
|
|
|
4057
4069
|
/* Desktop-only chrome toggle (sessions collapse): inverse of the mobile drawer-toggle. */
|
|
4058
4070
|
.ds-247420 .ws-desktop-toggle { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: none; background: none; color: var(--fg-2); cursor: pointer; border-radius: var(--r-1); }
|
|
4059
4071
|
.ds-247420 .ws-desktop-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
4060
|
-
.ds-247420 .ws-desktop-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
4072
|
+
.ds-247420 .ws-desktop-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
4061
4073
|
@media (max-width: 900px) { .ds-247420 .ws-desktop-toggle { display: none; } }
|
|
4062
4074
|
/* The pane collapse toggle is meaningless once the pane TRACK is dropped (the
|
|
4063
4075
|
pane becomes a mobile overlay drawer at <=1480px, reached via its own
|
|
@@ -4181,7 +4193,7 @@
|
|
|
4181
4193
|
.ds-247420 .ws-crumb .app-crumb .crumb-right { margin-left: 0; flex-wrap: wrap; min-width: 0; display: inline-flex; }
|
|
4182
4194
|
}
|
|
4183
4195
|
.ds-247420 .ws-drawer-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
4184
|
-
.ds-247420 .ws-drawer-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
4196
|
+
.ds-247420 .ws-drawer-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
4185
4197
|
|
|
4186
4198
|
@media (prefers-reduced-motion: reduce) {
|
|
4187
4199
|
.ds-247420 .ws-shell, .ds-247420 .ws-rail, .ds-247420 .ws-pane, .ds-247420 .ws-sessions, .ds-247420 .ws-scrim { transition: none; }
|
|
@@ -4193,7 +4205,7 @@
|
|
|
4193
4205
|
============================================================ */
|
|
4194
4206
|
|
|
4195
4207
|
/* Highlighted match inside a Row title (Row `highlight` prop). */
|
|
4196
|
-
.ds-247420 .ds-hl { background: color-mix(in oklab, var(--accent) 25%, transparent); color: inherit; border-radius:
|
|
4208
|
+
.ds-247420 .ds-hl { background: color-mix(in oklab, var(--accent) 25%, transparent); color: inherit; border-radius: var(--r-hair); }
|
|
4197
4209
|
|
|
4198
4210
|
/* Action strip rendered inside an EXPANDED Row (Row `actions` prop). The
|
|
4199
4211
|
buttons stop propagation so they never fire the row onClick. */
|
|
@@ -4206,20 +4218,20 @@
|
|
|
4206
4218
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
4207
4219
|
}
|
|
4208
4220
|
.ds-247420 .row-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
4209
|
-
.ds-247420 .row-act:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
4221
|
+
.ds-247420 .row-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
4210
4222
|
|
|
4211
4223
|
/* FilterPills - a group of pill toggle buttons (aria-pressed). */
|
|
4212
4224
|
.ds-247420 .ds-filter-pills { display: flex; flex-wrap: wrap; gap: var(--space-2); }
|
|
4213
4225
|
.ds-247420 .ds-filter-pill {
|
|
4214
4226
|
display: inline-flex; align-items: center; justify-content: center;
|
|
4215
4227
|
padding: 4px 12px; min-height: 28px;
|
|
4216
|
-
background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius:
|
|
4228
|
+
background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-pill);
|
|
4217
4229
|
color: var(--fg-2); font-family: var(--ff-body); font-size: var(--fs-tiny); cursor: pointer;
|
|
4218
4230
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
4219
4231
|
}
|
|
4220
4232
|
.ds-247420 .ds-filter-pill:hover { background: var(--bg-3); color: var(--fg); }
|
|
4221
4233
|
.ds-247420 .ds-filter-pill.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
|
|
4222
|
-
.ds-247420 .ds-filter-pill:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
4234
|
+
.ds-247420 .ds-filter-pill:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
4223
4235
|
|
|
4224
4236
|
/* Touch floor for the new small controls. */
|
|
4225
4237
|
@media (pointer: coarse) {
|
|
@@ -4229,7 +4241,7 @@
|
|
|
4229
4241
|
/* Disabled file actions (read-only row / in-flight mutation) stay visible but inert. */
|
|
4230
4242
|
.ds-247420 .ds-file-act:disabled { opacity: .45; cursor: default; }
|
|
4231
4243
|
.ds-247420 .ds-file-act:disabled:hover { background: transparent; color: var(--fg-3); }
|
|
4232
|
-
.ds-247420 .ds-file-act:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
4244
|
+
.ds-247420 .ds-file-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
4233
4245
|
|
|
4234
4246
|
/* ============================================================
|
|
4235
4247
|
Print — linearize WorkspaceShell so main content prints in full.
|
|
@@ -4279,7 +4291,7 @@
|
|
|
4279
4291
|
/* PhaseWalk */
|
|
4280
4292
|
.ds-247420 .ds-phasewalk { display: inline-flex; gap: 2px; vertical-align: middle; }
|
|
4281
4293
|
.ds-247420 .ds-phasewalk-seg {
|
|
4282
|
-
width: 18px; height: 10px; border-radius:
|
|
4294
|
+
width: 18px; height: 10px; border-radius: var(--r-hair);
|
|
4283
4295
|
background: var(--bg-3); position: relative;
|
|
4284
4296
|
}
|
|
4285
4297
|
.ds-247420 .ds-phasewalk-seg.is-reached { background: var(--success); }
|
|
@@ -4318,8 +4330,8 @@
|
|
|
4318
4330
|
/* BarRow */
|
|
4319
4331
|
.ds-247420 .ds-bar-row { display: flex; align-items: center; gap: 8px; margin: 3px 0; font-size: var(--fs-tiny); }
|
|
4320
4332
|
.ds-247420 .ds-bar-row-label { width: 100px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
4321
|
-
.ds-247420 .ds-bar-bg { flex: 1; min-width: 60px; background: var(--bg-3); border-radius:
|
|
4322
|
-
.ds-247420 .ds-bar-fill { background: var(--accent); height: 100%; border-radius:
|
|
4333
|
+
.ds-247420 .ds-bar-bg { flex: 1; min-width: 60px; background: var(--bg-3); border-radius: var(--r-hair); height: 6px; overflow: hidden; }
|
|
4334
|
+
.ds-247420 .ds-bar-fill { background: var(--accent); height: 100%; border-radius: var(--r-hair); }
|
|
4323
4335
|
.ds-247420 .ds-bar-row-value { flex-shrink: 0; color: var(--fg-2); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
4324
4336
|
@media (max-width: 400px) {
|
|
4325
4337
|
.ds-247420 .ds-bar-row-label { width: 72px; }
|
|
@@ -4334,7 +4346,7 @@
|
|
|
4334
4346
|
.ds-247420 .ds-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1); }
|
|
4335
4347
|
}
|
|
4336
4348
|
.ds-247420 .ds-stats-grid-empty { padding: var(--space-3); color: var(--fg-3); font-size: var(--fs-tiny); }
|
|
4337
|
-
.ds-247420 .ds-stat { min-width: 0; background: var(--bg-3); border-radius:
|
|
4349
|
+
.ds-247420 .ds-stat { min-width: 0; background: var(--bg-3); border-radius: var(--r-0); padding: 10px 12px; }
|
|
4338
4350
|
.ds-247420 .ds-stat-val { font-size: clamp(18px, 5cqi, 22px); font-weight: 700; color: var(--accent-ink); overflow-wrap: anywhere; }
|
|
4339
4351
|
.ds-247420 .ds-stat-val.rate-big { font-size: clamp(24px, 7cqi, 32px); color: var(--success); }
|
|
4340
4352
|
.ds-247420 .ds-stat-val.err-rate { font-size: clamp(24px, 7cqi, 32px); color: var(--warn); }
|
|
@@ -4345,7 +4357,7 @@
|
|
|
4345
4357
|
.ds-247420 .ds-sub-grid-empty { padding: var(--space-3); color: var(--fg-3); font-size: var(--fs-tiny); }
|
|
4346
4358
|
.ds-247420 .ds-sub-btn {
|
|
4347
4359
|
padding: 6px 10px; background: var(--bg-3); border: var(--bw-hair) solid var(--bg-3);
|
|
4348
|
-
border-radius:
|
|
4360
|
+
border-radius: var(--r-0); font-size: var(--fs-tiny); cursor: pointer; color: var(--fg);
|
|
4349
4361
|
text-align: left; font-family: var(--ff-body);
|
|
4350
4362
|
}
|
|
4351
4363
|
.ds-247420 .ds-sub-btn:hover { border-color: var(--accent); color: var(--accent-ink); }
|
|
@@ -4376,7 +4388,7 @@
|
|
|
4376
4388
|
/* DevRow */
|
|
4377
4389
|
.ds-247420 .ds-dev-row {
|
|
4378
4390
|
background: var(--danger-surface); border-left: var(--bw-chunk) solid var(--warn);
|
|
4379
|
-
padding: 8px 12px; margin: 4px 0; border-radius:
|
|
4391
|
+
padding: 8px 12px; margin: 4px 0; border-radius: var(--r-hair); font-size: var(--fs-tiny);
|
|
4380
4392
|
}
|
|
4381
4393
|
.ds-247420 .ds-dev-row strong { color: var(--warn); }
|
|
4382
4394
|
|
|
@@ -4396,7 +4408,7 @@
|
|
|
4396
4408
|
.ds-247420 .ds-live-log-entry { padding: 2px 8px; border-bottom: var(--bw-hair) solid var(--bg-3); overflow-wrap: anywhere; }
|
|
4397
4409
|
.ds-247420 .ds-live-log-entry:hover { background: var(--bg-3); }
|
|
4398
4410
|
.ds-247420 .ds-live-log-ts { margin-right: 6px; color: var(--fg-3); }
|
|
4399
|
-
.ds-247420 .ds-live-log-subtag { margin-right: 6px; padding: 0 5px; border-radius:
|
|
4411
|
+
.ds-247420 .ds-live-log-subtag { margin-right: 6px; padding: 0 5px; border-radius: var(--r-hair); font-size: var(--fs-micro); }
|
|
4400
4412
|
.ds-247420 .ds-live-log-preview { margin-left: 6px; color: var(--fg-3); word-break: break-word; }
|
|
4401
4413
|
|
|
4402
4414
|
/* Touch floors for the dense controls (not covered by the mobile width blocks). */
|
|
@@ -4432,6 +4444,13 @@
|
|
|
4432
4444
|
@media (max-width: 760px) {
|
|
4433
4445
|
.ds-247420 .ds-panel-duo { grid-template-columns: 1fr; }
|
|
4434
4446
|
}
|
|
4447
|
+
/* Wide-viewport density: auto-fit grid so panel COUNT tracks actual children
|
|
4448
|
+
instead of a hardcoded column number — 2 children sit 2-up, 5 wrap to a
|
|
4449
|
+
third row, never an arbitrary 3-card reflex (same auto-fit/minmax pattern
|
|
4450
|
+
as .ds-tile-grid). Panels floor at 280px before wrapping, so ultra-wide
|
|
4451
|
+
screens still get more columns than a fixed repeat(3, ...) ever allowed. */
|
|
4452
|
+
.ds-247420 .ds-panel-trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
4453
|
+
.ds-247420 .ds-panel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
4435
4454
|
/* wide dense rows/tables scroll inside their panel, never the page */
|
|
4436
4455
|
.ds-247420 .ds-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
|
|
4437
4456
|
|
|
@@ -4442,7 +4461,7 @@
|
|
|
4442
4461
|
max-width: min(1100px, 100%);
|
|
4443
4462
|
margin: var(--space-3) auto;
|
|
4444
4463
|
background: var(--bg-2);
|
|
4445
|
-
border-radius:
|
|
4464
|
+
border-radius: var(--r-2);
|
|
4446
4465
|
padding: clamp(16px, 5vw, 64px);
|
|
4447
4466
|
box-sizing: border-box;
|
|
4448
4467
|
display: flex;
|
|
@@ -4504,7 +4523,7 @@
|
|
|
4504
4523
|
.ds-247420 .ds-slide-split { grid-template-columns: 1fr; }
|
|
4505
4524
|
}
|
|
4506
4525
|
.ds-247420 .ds-slide-split-cell {
|
|
4507
|
-
padding: 18px; background: var(--bg-2); border-radius:
|
|
4526
|
+
padding: 18px; background: var(--bg-2); border-radius: var(--r-2);
|
|
4508
4527
|
color: var(--fg-2); font-size: var(--fs-lg); line-height: var(--lh-base); min-width: 0;
|
|
4509
4528
|
}
|
|
4510
4529
|
.ds-247420 .ds-slide-split-cell--accent { border-left: 3px solid var(--slide-accent, var(--accent)); }
|
|
@@ -4521,7 +4540,7 @@
|
|
|
4521
4540
|
.ds-247420 .ds-err-path {
|
|
4522
4541
|
display: inline-flex; gap: 6px; align-items: baseline; flex-wrap: wrap; max-width: 100%;
|
|
4523
4542
|
font-family: var(--ff-mono); font-size: 13px; color: var(--panel-text-2);
|
|
4524
|
-
background: var(--panel-1); padding: 6px 12px; border-radius:
|
|
4543
|
+
background: var(--panel-1); padding: 6px 12px; border-radius: var(--r-0);
|
|
4525
4544
|
overflow-wrap: anywhere; word-break: break-all;
|
|
4526
4545
|
}
|
|
4527
4546
|
|
|
@@ -4537,10 +4556,15 @@
|
|
|
4537
4556
|
}
|
|
4538
4557
|
.ds-247420 .ds-gallery-tile {
|
|
4539
4558
|
cursor: pointer; display: flex; flex-direction: column; gap: 6px;
|
|
4540
|
-
padding: 12px; border-radius:
|
|
4559
|
+
padding: 12px; border-radius: var(--r-1); min-height: clamp(120px, 18vw, 160px);
|
|
4541
4560
|
border: 0; text-align: left; font: inherit; color: inherit;
|
|
4542
4561
|
background: var(--tile-tone, var(--panel-1));
|
|
4562
|
+
transition: transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease);
|
|
4543
4563
|
}
|
|
4564
|
+
/* Flat tonal fill only (house style: no bespoke tile chrome, no borders — see
|
|
4565
|
+
.ds-feature above), so the hover affordance is a lift, matching the same
|
|
4566
|
+
translateY + shadow idiom .chat-msg:hover .chat-bubble already uses. */
|
|
4567
|
+
.ds-247420 .ds-gallery-tile:hover { transform: translateY(-2px); box-shadow: 0 2px 8px color-mix(in oklab, var(--fg) 10%, transparent); }
|
|
4544
4568
|
.ds-247420 .ds-gallery-tile:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
4545
4569
|
.ds-247420 .ds-gallery-tile--tight { min-height: clamp(96px, 14vw, 120px); }
|
|
4546
4570
|
.ds-247420 .ds-lightbox {
|
|
@@ -4551,7 +4575,7 @@
|
|
|
4551
4575
|
z-index: 50;
|
|
4552
4576
|
}
|
|
4553
4577
|
.ds-247420 .ds-lightbox-card {
|
|
4554
|
-
background: var(--panel-0); border-radius:
|
|
4578
|
+
background: var(--panel-0); border-radius: var(--r-2); padding: clamp(16px, 4vw, 28px);
|
|
4555
4579
|
width: min(520px, 100%); min-width: 0;
|
|
4556
4580
|
max-height: calc(100vh - 24px);
|
|
4557
4581
|
max-height: calc(100dvh - 24px);
|
|
@@ -4559,7 +4583,7 @@
|
|
|
4559
4583
|
display: flex; flex-direction: column; gap: 14px;
|
|
4560
4584
|
}
|
|
4561
4585
|
.ds-247420 .ds-lightbox-preview {
|
|
4562
|
-
padding: clamp(16px, 6vw, 36px); border-radius:
|
|
4586
|
+
padding: clamp(16px, 6vw, 36px); border-radius: var(--r-1); text-align: center;
|
|
4563
4587
|
font-family: var(--ff-mono); white-space: pre-line; font-size: clamp(16px, 5vw, 24px);
|
|
4564
4588
|
background: var(--tile-tone, var(--panel-1));
|
|
4565
4589
|
}
|
|
@@ -4581,7 +4605,7 @@
|
|
|
4581
4605
|
}
|
|
4582
4606
|
.ds-247420 .ds-swatch-grid-lg { grid-template-columns: repeat(auto-fill, minmax(min(150px, 100%), 1fr)); }
|
|
4583
4607
|
.ds-247420 .ds-swatch-col { display: flex; flex-direction: column; gap: 6px; }
|
|
4584
|
-
.ds-247420 .ds-swatch-chip { height: 48px; border-radius:
|
|
4608
|
+
.ds-247420 .ds-swatch-chip { height: 48px; border-radius: var(--r-1); border: 1px solid var(--rule); background: var(--swatch, var(--panel-1)); }
|
|
4585
4609
|
.ds-247420 .ds-swatch-chip--big { height: 64px; }
|
|
4586
4610
|
.ds-247420 .ds-swatch-name { font-family: var(--ff-mono); font-size: 11px; color: var(--fg-3); }
|
|
4587
4611
|
.ds-247420 .ds-type-panel { padding: clamp(10px, 2.5vw, 14px) clamp(10px, 3vw, 18px); display: flex; flex-direction: column; gap: 14px; }
|
|
@@ -4643,14 +4667,14 @@
|
|
|
4643
4667
|
.ds-247420 .ds-savebar {
|
|
4644
4668
|
position: sticky; bottom: 8px; display: flex; align-items: center;
|
|
4645
4669
|
justify-content: flex-end; gap: 8px; flex-wrap: wrap; padding: 10px;
|
|
4646
|
-
background: var(--panel-2); border-radius:
|
|
4670
|
+
background: var(--panel-2); border-radius: var(--r-1); margin: 8px 0;
|
|
4647
4671
|
}
|
|
4648
4672
|
.ds-247420 .ds-savebar-note { flex: 1 1 160px; min-width: 0; color: var(--panel-text-2); }
|
|
4649
4673
|
.ds-247420 .ds-settings-modal { min-width: min(320px, calc(100vw - 32px)); max-width: 480px; }
|
|
4650
4674
|
.ds-247420 .ds-modal-body-form { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
|
|
4651
4675
|
.ds-247420 .ds-modal-note { margin: 0 0 8px; color: var(--panel-text-2); font-size: 14px; }
|
|
4652
4676
|
.ds-247420 .ds-draft-preview {
|
|
4653
|
-
background: var(--panel-1); padding: 12px; border-radius:
|
|
4677
|
+
background: var(--panel-1); padding: 12px; border-radius: var(--r-0);
|
|
4654
4678
|
font-size: 13px; color: var(--panel-text-2); max-height: 120px;
|
|
4655
4679
|
overflow-y: auto; font-family: var(--ff-mono); overflow-wrap: anywhere;
|
|
4656
4680
|
}
|
|
@@ -4671,7 +4695,7 @@
|
|
|
4671
4695
|
.ds-247420 .ds-auth-remember { display: flex; align-items: center; gap: 6px; cursor: pointer; }
|
|
4672
4696
|
.ds-247420 .ds-auth-remember-text { color: var(--panel-text-2); font-size: 13px; }
|
|
4673
4697
|
.ds-247420 .ds-auth-forgot { font-size: 13px; }
|
|
4674
|
-
.ds-247420 .ds-auth-error { padding: 8px 10px; background: var(--panel-1); border-radius:
|
|
4698
|
+
.ds-247420 .ds-auth-error { padding: 8px 10px; background: var(--panel-1); border-radius: var(--r-0); color: var(--danger); font-size: 13px; overflow-wrap: anywhere; }
|
|
4675
4699
|
.ds-247420 .ds-auth-divider { display: flex; align-items: center; gap: 10px; margin: 6px 0; color: var(--panel-text-3); font-size: 12px; }
|
|
4676
4700
|
.ds-247420 .ds-auth-divider-line { flex: 1; height: 1px; background: var(--panel-2); }
|
|
4677
4701
|
.ds-247420 .ds-auth-providers { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
@@ -4695,7 +4719,7 @@
|
|
|
4695
4719
|
.ds-247420 .ds-tile-meta { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; flex-wrap: wrap; min-width: 0; }
|
|
4696
4720
|
.ds-247420 .ds-tile-glyph { font-family: var(--ff-mono); color: var(--panel-text-3); }
|
|
4697
4721
|
.ds-247420 .ds-tile-label { color: var(--panel-text); overflow-wrap: anywhere; }
|
|
4698
|
-
.ds-247420 .ds-gal-swatch { height: 64px; border-radius:
|
|
4722
|
+
.ds-247420 .ds-gal-swatch { height: 64px; border-radius: var(--r-0); background: var(--swatch, var(--panel-1)); }
|
|
4699
4723
|
.ds-247420 .ds-gal-swatch-meta { display: flex; justify-content: space-between; gap: 6px; flex-wrap: wrap; font-family: var(--ff-mono); font-size: 11px; min-width: 0; }
|
|
4700
4724
|
.ds-247420 .ds-gal-swatch-name { color: var(--panel-text); }
|
|
4701
4725
|
.ds-247420 .ds-gal-swatch-hint { color: var(--panel-text-3); overflow-wrap: anywhere; }
|
|
@@ -4716,7 +4740,7 @@
|
|
|
4716
4740
|
.ds-247420 .ds-cli-warn .prompt, .ds-247420 .ds-cli-warn .cmd { color: var(--mascot); }
|
|
4717
4741
|
.ds-247420 .ds-cli-log .prompt { color: var(--fg-3); }
|
|
4718
4742
|
.ds-247420 .ds-cli-log .cmd { color: var(--fg-2); font-family: var(--ff-mono); }
|
|
4719
|
-
.ds-247420 .ds-term-body { padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; background: var(--bg-2); border-radius:
|
|
4743
|
+
.ds-247420 .ds-term-body { padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; background: var(--bg-2); border-radius: var(--r-1); }
|
|
4720
4744
|
.ds-247420 .ds-term-body--tall { min-height: 280px; }
|
|
4721
4745
|
.ds-247420 .ds-term-input-row { margin-top: 6px; }
|
|
4722
4746
|
.ds-247420 .ds-term-input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; font-family: var(--ff-mono); font-size: 13px; color: var(--fg); }
|
|
@@ -4841,7 +4865,7 @@
|
|
|
4841
4865
|
width: 4px;
|
|
4842
4866
|
height: 8px;
|
|
4843
4867
|
background: var(--fg);
|
|
4844
|
-
border-radius: 0
|
|
4868
|
+
border-radius: 0 var(--r-0) var(--r-0) 0;
|
|
4845
4869
|
transition: height var(--dur-base) var(--ease);
|
|
4846
4870
|
}
|
|
4847
4871
|
.ds-247420 .cm-server-icon:hover .cm-server-pill { height: 20px; }
|
|
@@ -4897,7 +4921,7 @@
|
|
|
4897
4921
|
width: 32px;
|
|
4898
4922
|
height: 2px;
|
|
4899
4923
|
background: color-mix(in oklab, var(--fg) 12%, transparent);
|
|
4900
|
-
border-radius:
|
|
4924
|
+
border-radius: var(--r-hair);
|
|
4901
4925
|
margin: 4px 0;
|
|
4902
4926
|
flex-shrink: 0;
|
|
4903
4927
|
}
|
|
@@ -4958,7 +4982,7 @@
|
|
|
4958
4982
|
.ds-247420 .cm-channel-list::-webkit-scrollbar-track { background: transparent; }
|
|
4959
4983
|
.ds-247420 .cm-channel-list::-webkit-scrollbar-thumb {
|
|
4960
4984
|
background: color-mix(in oklab, var(--fg) 18%, transparent);
|
|
4961
|
-
border-radius:
|
|
4985
|
+
border-radius: var(--r-0);
|
|
4962
4986
|
}
|
|
4963
4987
|
|
|
4964
4988
|
/* ============================================================
|
|
@@ -5038,7 +5062,7 @@
|
|
|
5038
5062
|
background: color-mix(in oklab, var(--fg) 8%, transparent);
|
|
5039
5063
|
}
|
|
5040
5064
|
.ds-247420 .cm-cat-add:focus-visible {
|
|
5041
|
-
outline: 2px solid var(--accent);
|
|
5065
|
+
outline: 2px solid var(--accent-ink);
|
|
5042
5066
|
outline-offset: 2px;
|
|
5043
5067
|
}
|
|
5044
5068
|
|
|
@@ -5090,7 +5114,7 @@
|
|
|
5090
5114
|
bottom: 4px;
|
|
5091
5115
|
width: 3px;
|
|
5092
5116
|
background: var(--accent);
|
|
5093
|
-
border-radius: 0
|
|
5117
|
+
border-radius: 0 var(--r-hair) var(--r-hair) 0;
|
|
5094
5118
|
}
|
|
5095
5119
|
|
|
5096
5120
|
.ds-247420 .cm-channel-item.voice-active {
|
|
@@ -5219,7 +5243,7 @@
|
|
|
5219
5243
|
background: color-mix(in oklab, var(--fg) 10%, transparent);
|
|
5220
5244
|
}
|
|
5221
5245
|
.ds-247420 .cm-ch-action-btn:focus-visible {
|
|
5222
|
-
outline: 2px solid var(--accent);
|
|
5246
|
+
outline: 2px solid var(--accent-ink);
|
|
5223
5247
|
outline-offset: 2px;
|
|
5224
5248
|
}
|
|
5225
5249
|
|
|
@@ -5558,7 +5582,7 @@
|
|
|
5558
5582
|
.ds-247420 .cm-member-list::-webkit-scrollbar { width: 8px; }
|
|
5559
5583
|
.ds-247420 .cm-member-list::-webkit-scrollbar-thumb {
|
|
5560
5584
|
background: color-mix(in oklab, var(--fg) 18%, transparent);
|
|
5561
|
-
border-radius:
|
|
5585
|
+
border-radius: var(--r-0);
|
|
5562
5586
|
}
|
|
5563
5587
|
|
|
5564
5588
|
.ds-247420 .cm-member-category {
|
|
@@ -5802,45 +5826,45 @@
|
|
|
5802
5826
|
.ds-247420 .cm-server-icon:focus-visible,
|
|
5803
5827
|
.ds-247420 .cm-server-back:focus-visible,
|
|
5804
5828
|
.ds-247420 .cm-server-add:focus-visible {
|
|
5805
|
-
outline: 2px solid var(--accent);
|
|
5829
|
+
outline: 2px solid var(--accent-ink);
|
|
5806
5830
|
outline-offset: 2px;
|
|
5807
5831
|
border-radius: var(--r-2);
|
|
5808
5832
|
}
|
|
5809
5833
|
|
|
5810
5834
|
.ds-247420 .cm-channel-item:focus-visible {
|
|
5811
|
-
outline: 2px solid var(--accent);
|
|
5835
|
+
outline: 2px solid var(--accent-ink);
|
|
5812
5836
|
outline-offset: -2px;
|
|
5813
5837
|
border-radius: var(--r-1);
|
|
5814
5838
|
}
|
|
5815
5839
|
|
|
5816
5840
|
.ds-247420 .cm-server-header:focus-visible,
|
|
5817
5841
|
.ds-247420 .cm-category-header:focus-visible {
|
|
5818
|
-
outline: 2px solid var(--accent);
|
|
5842
|
+
outline: 2px solid var(--accent-ink);
|
|
5819
5843
|
outline-offset: -2px;
|
|
5820
5844
|
}
|
|
5821
5845
|
|
|
5822
5846
|
.ds-247420 .cm-member-item:focus-visible {
|
|
5823
|
-
outline: 2px solid var(--accent);
|
|
5847
|
+
outline: 2px solid var(--accent-ink);
|
|
5824
5848
|
outline-offset: -2px;
|
|
5825
5849
|
border-radius: var(--r-1);
|
|
5826
5850
|
}
|
|
5827
5851
|
|
|
5828
5852
|
.ds-247420 .cm-vs-btn:focus-visible,
|
|
5829
5853
|
.ds-247420 .cm-user-btn:focus-visible {
|
|
5830
|
-
outline: 2px solid var(--accent);
|
|
5854
|
+
outline: 2px solid var(--accent-ink);
|
|
5831
5855
|
outline-offset: 2px;
|
|
5832
5856
|
border-radius: var(--r-1);
|
|
5833
5857
|
}
|
|
5834
5858
|
|
|
5835
5859
|
/* ThreadPanel / Forum / Page interactive elements */
|
|
5836
5860
|
.ds-247420 .cm-tp-item:focus-visible,
|
|
5837
|
-
.ds-247420 .cm-forum-item:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--r-1); }
|
|
5861
|
+
.ds-247420 .cm-forum-item:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; border-radius: var(--r-1); }
|
|
5838
5862
|
.ds-247420 .cm-tp-new:focus-visible,
|
|
5839
5863
|
.ds-247420 .cm-tp-close:focus-visible,
|
|
5840
5864
|
.ds-247420 .cm-forum-new:focus-visible,
|
|
5841
5865
|
.ds-247420 .cm-forum-sort:focus-visible,
|
|
5842
|
-
.ds-247420 .cm-page-edit:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-1); }
|
|
5843
|
-
.ds-247420 .cm-forum-search:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
|
|
5866
|
+
.ds-247420 .cm-page-edit:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; border-radius: var(--r-1); }
|
|
5867
|
+
.ds-247420 .cm-forum-search:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent-ink); }
|
|
5844
5868
|
|
|
5845
5869
|
/* ---------- mobile header ---------- */
|
|
5846
5870
|
.ds-247420 .cm-mobile-header {
|
|
@@ -5868,7 +5892,7 @@
|
|
|
5868
5892
|
border-radius: var(--r-1);
|
|
5869
5893
|
}
|
|
5870
5894
|
.ds-247420 .cm-mh-btn:hover { background: var(--panel-3); }
|
|
5871
|
-
.ds-247420 .cm-mh-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
5895
|
+
.ds-247420 .cm-mh-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
5872
5896
|
.ds-247420 .cm-mh-title {
|
|
5873
5897
|
flex: 1 1 auto;
|
|
5874
5898
|
min-width: 0;
|
|
@@ -5913,7 +5937,7 @@
|
|
|
5913
5937
|
border-radius: var(--r-1);
|
|
5914
5938
|
}
|
|
5915
5939
|
.ds-247420 .cm-rb-cancel:hover { background: var(--panel-3); color: var(--fg); }
|
|
5916
|
-
.ds-247420 .cm-rb-cancel:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
5940
|
+
.ds-247420 .cm-rb-cancel:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
5917
5941
|
|
|
5918
5942
|
/* ---------- banner ---------- */
|
|
5919
5943
|
.ds-247420 .cm-banner {
|
|
@@ -5926,6 +5950,7 @@
|
|
|
5926
5950
|
font-weight: 500;
|
|
5927
5951
|
}
|
|
5928
5952
|
.ds-247420 .cm-banner.clickable { cursor: pointer; }
|
|
5953
|
+
.ds-247420 .cm-banner.clickable:hover { background: color-mix(in oklab, currentColor 10%, transparent); }
|
|
5929
5954
|
.ds-247420 .cm-banner-msg { flex: 1 1 auto; min-width: 0; }
|
|
5930
5955
|
.ds-247420 .cm-banner-action {
|
|
5931
5956
|
flex: none;
|
|
@@ -6002,6 +6027,7 @@
|
|
|
6002
6027
|
touch-action: none;
|
|
6003
6028
|
transition: background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease), transform var(--dur-snap) var(--ease);
|
|
6004
6029
|
}
|
|
6030
|
+
.ds-247420 .vx-ptt:hover { background: color-mix(in oklab, var(--fg) 8%, var(--bg-2)); }
|
|
6005
6031
|
.ds-247420 .vx-ptt:active { transform: scale(0.97); }
|
|
6006
6032
|
.ds-247420 .vx-ptt-icon { font-size: var(--fs-xl); line-height: 1; }
|
|
6007
6033
|
.ds-247420 .vx-ptt-label { font-size: var(--fs-tiny); letter-spacing: var(--tr-label); text-transform: uppercase; }
|
|
@@ -6111,6 +6137,7 @@
|
|
|
6111
6137
|
cursor: pointer;
|
|
6112
6138
|
transition: background var(--dur-base) var(--ease);
|
|
6113
6139
|
}
|
|
6140
|
+
.ds-247420 .vx-btn:hover { background: var(--bg-4, var(--bg-3)); }
|
|
6114
6141
|
.ds-247420 .vx-btn-on, .ds-247420 .vx-btn-primary { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); }
|
|
6115
6142
|
|
|
6116
6143
|
.ds-247420 .vx-modal-backdrop {
|
|
@@ -6141,6 +6168,7 @@
|
|
|
6141
6168
|
border: 0; background: transparent; color: var(--fg-3);
|
|
6142
6169
|
font-size: var(--fs-xl); line-height: 1; cursor: pointer; padding: 0 var(--space-1);
|
|
6143
6170
|
}
|
|
6171
|
+
.ds-247420 .vx-modal-x:hover { color: var(--fg); }
|
|
6144
6172
|
.ds-247420 .vx-modal-body { padding: var(--space-3); overflow-y: auto; display: flex; flex-direction: column; gap: var(--space-3); }
|
|
6145
6173
|
.ds-247420 .vx-modal-foot {
|
|
6146
6174
|
display: flex; justify-content: flex-end; gap: var(--space-2);
|
|
@@ -6198,6 +6226,7 @@
|
|
|
6198
6226
|
cursor: pointer;
|
|
6199
6227
|
font-size: var(--fs-sm);
|
|
6200
6228
|
}
|
|
6229
|
+
.ds-247420 .vx-queue-btn:hover { background: var(--bg-4, var(--bg-2)); }
|
|
6201
6230
|
.ds-247420 .vx-queue-strip {
|
|
6202
6231
|
display: flex; gap: var(--space-2);
|
|
6203
6232
|
overflow-x: auto;
|
|
@@ -6215,6 +6244,7 @@
|
|
|
6215
6244
|
font-size: var(--fs-tiny);
|
|
6216
6245
|
cursor: pointer;
|
|
6217
6246
|
}
|
|
6247
|
+
.ds-247420 .vx-chip:hover { background: var(--bg-4, var(--bg-2)); border-color: var(--rule-strong); }
|
|
6218
6248
|
.ds-247420 .vx-chip-current { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 16%, var(--bg-3)); }
|
|
6219
6249
|
.ds-247420 .vx-chip-live { border-color: var(--green-2); }
|
|
6220
6250
|
.ds-247420 .vx-chip-dot { width: 8px; height: 8px; border-radius: var(--r-pill); background: var(--fg-3); flex-shrink: 0; }
|
|
@@ -6291,7 +6321,44 @@
|
|
|
6291
6321
|
.ds-247420 .cm-tp-item-title { font-size: var(--fs-1, 14px); }
|
|
6292
6322
|
.ds-247420 .cm-tp-item-snippet { font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
6293
6323
|
.ds-247420 .cm-tp-item-meta { display: flex; gap: var(--space-2); font-size: var(--fs-micro, 11px); color: var(--fg-2, var(--fg)); opacity: .7; }
|
|
6294
|
-
.ds-247420 .cm-tp-empty, .ds-247420 .cm-forum-empty, .ds-247420 .cm-channel-empty, .ds-247420 .cm-member-empty {
|
|
6324
|
+
.ds-247420 .cm-tp-empty, .ds-247420 .cm-forum-empty, .ds-247420 .cm-channel-empty, .ds-247420 .cm-member-empty {
|
|
6325
|
+
display: flex; flex-direction: column; align-items: center; gap: var(--space-2);
|
|
6326
|
+
padding: var(--space-4) var(--space-3); text-align: center;
|
|
6327
|
+
color: var(--fg-2, var(--fg)); opacity: .7; font-size: var(--fs-sm);
|
|
6328
|
+
}
|
|
6329
|
+
.ds-247420 .cm-tp-empty svg, .ds-247420 .cm-forum-empty svg, .ds-247420 .cm-channel-empty svg, .ds-247420 .cm-member-empty svg { opacity: .6; }
|
|
6330
|
+
|
|
6331
|
+
/* Loading skeletons — cold-load placeholders for channel/member/thread/forum
|
|
6332
|
+
lists. Same .ds-skel shimmer primitive as sessions.js/files.js so every
|
|
6333
|
+
list surface in the kit uses one shimmer language, never a bare spinner. */
|
|
6334
|
+
.ds-247420 .cm-channel-item-skeleton, .ds-247420 .cm-member-item-skeleton {
|
|
6335
|
+
display: flex; align-items: center; gap: var(--space-2);
|
|
6336
|
+
padding: var(--space-2); margin: 2px var(--space-1);
|
|
6337
|
+
}
|
|
6338
|
+
.ds-247420 .cm-channel-item-skeleton .ds-skel-icon, .ds-247420 .cm-member-item-skeleton .ds-skel-icon {
|
|
6339
|
+
width: 20px; height: 20px; border-radius: var(--r-round, 50%); flex: none; background: var(--bg-3);
|
|
6340
|
+
}
|
|
6341
|
+
.ds-247420 .cm-channel-item-skeleton .ds-skel-title, .ds-247420 .cm-member-item-skeleton .ds-skel-title {
|
|
6342
|
+
height: 12px; width: 60%; border-radius: var(--r-1); background: var(--bg-3);
|
|
6343
|
+
}
|
|
6344
|
+
.ds-247420 .cm-list-item-skeleton {
|
|
6345
|
+
display: flex; flex-direction: column; gap: 6px;
|
|
6346
|
+
padding: var(--space-2) var(--space-3); border-bottom: var(--bw-hair) solid var(--rule);
|
|
6347
|
+
}
|
|
6348
|
+
.ds-247420 .cm-list-item-skeleton .ds-skel-title { height: 12px; width: 55%; border-radius: var(--r-1); background: var(--bg-3); }
|
|
6349
|
+
.ds-247420 .cm-list-item-skeleton .ds-skel-meta { height: 9px; width: 35%; border-radius: var(--r-1); background: var(--bg-3); }
|
|
6350
|
+
/* Self-contained shimmer keyframe: community.css ships standalone (the
|
|
6351
|
+
community-app kit does not also load chat.css), so this cannot depend on
|
|
6352
|
+
chat.css's ds-skel-shimmer definition even though the visual language and
|
|
6353
|
+
token vocabulary match it exactly. */
|
|
6354
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
6355
|
+
.ds-247420 .cm-channel-item-skeleton .ds-skel-icon, .ds-247420 .cm-channel-item-skeleton .ds-skel-title, .ds-247420 .cm-member-item-skeleton .ds-skel-icon, .ds-247420 .cm-member-item-skeleton .ds-skel-title, .ds-247420 .cm-list-item-skeleton .ds-skel-title, .ds-247420 .cm-list-item-skeleton .ds-skel-meta {
|
|
6356
|
+
animation: cm-skel-shimmer 1.3s ease-in-out infinite;
|
|
6357
|
+
background: linear-gradient(90deg, var(--bg-3) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
|
|
6358
|
+
background-size: 200% 100%;
|
|
6359
|
+
}
|
|
6360
|
+
}
|
|
6361
|
+
@keyframes cm-skel-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
|
|
6295
6362
|
|
|
6296
6363
|
/* ForumView — cm-forum / cm-forum-* */
|
|
6297
6364
|
.ds-247420 .cm-forum { display: flex; flex-direction: column; height: 100%; min-height: 0; background: var(--bg-1, var(--bg-2)); color: var(--fg); }
|
|
@@ -6488,13 +6555,13 @@
|
|
|
6488
6555
|
position: absolute; right: 16px; bottom: 12px; z-index: 3;
|
|
6489
6556
|
display: none; align-items: center; gap: .35em;
|
|
6490
6557
|
padding: .4em .8em; font: inherit; font-size: var(--fs-tiny); cursor: pointer;
|
|
6491
|
-
border-radius:
|
|
6558
|
+
border-radius: var(--r-pill); border: var(--bw-hair) solid var(--rule);
|
|
6492
6559
|
background: var(--bg-2); color: var(--fg-2, var(--fg));
|
|
6493
6560
|
box-shadow: 0 2px 8px color-mix(in srgb, var(--fg) 14%, transparent);
|
|
6494
6561
|
}
|
|
6495
6562
|
.ds-247420 .agentchat-jump.show { display: inline-flex; }
|
|
6496
6563
|
.ds-247420 .agentchat-jump:hover { background: var(--bg-3); }
|
|
6497
|
-
.ds-247420 .agentchat-jump:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
6564
|
+
.ds-247420 .agentchat-jump:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
6498
6565
|
|
|
6499
6566
|
/* Streaming caret: a thin blinking bar at the live edge of an assistant turn. */
|
|
6500
6567
|
.ds-247420 .chat-stream-caret {
|
|
@@ -6516,7 +6583,7 @@
|
|
|
6516
6583
|
}
|
|
6517
6584
|
.ds-247420 .chat-msg-action-label { font-size: var(--fs-tiny); }
|
|
6518
6585
|
.ds-247420 .chat-msg-action:hover { background: var(--bg-2); color: var(--fg); }
|
|
6519
|
-
.ds-247420 .chat-msg-action:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; opacity: 1; }
|
|
6586
|
+
.ds-247420 .chat-msg-action:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; opacity: 1; }
|
|
6520
6587
|
|
|
6521
6588
|
/* Empty state: a fresh thread is an invitation, not a void. */
|
|
6522
6589
|
.ds-247420 .agentchat-empty {
|
|
@@ -6544,7 +6611,7 @@
|
|
|
6544
6611
|
font: inherit;
|
|
6545
6612
|
font-size: var(--fs-tiny);
|
|
6546
6613
|
padding: .4em .8em;
|
|
6547
|
-
border-radius:
|
|
6614
|
+
border-radius: var(--r-pill);
|
|
6548
6615
|
border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
|
|
6549
6616
|
background: color-mix(in srgb, var(--fg) 5%, transparent);
|
|
6550
6617
|
color: var(--fg-2, var(--fg));
|
|
@@ -6583,7 +6650,7 @@
|
|
|
6583
6650
|
font-family: var(--ff-body); font-size: var(--fs-tiny);
|
|
6584
6651
|
}
|
|
6585
6652
|
.ds-247420 .agentchat-install-copy:hover { background: var(--bg-3); color: var(--fg); }
|
|
6586
|
-
.ds-247420 .agentchat-install-copy:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
6653
|
+
.ds-247420 .agentchat-install-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
6587
6654
|
.ds-247420 .agentchat-install-actions { display: flex; justify-content: flex-start; }
|
|
6588
6655
|
|
|
6589
6656
|
/* Host-supplied transcript export actions riding the controls row. */
|
|
@@ -6594,7 +6661,7 @@
|
|
|
6594
6661
|
font-family: var(--ff-body); font-size: var(--fs-tiny);
|
|
6595
6662
|
}
|
|
6596
6663
|
.ds-247420 .agentchat-export-act:hover { background: var(--bg-2); color: var(--fg); }
|
|
6597
|
-
.ds-247420 .agentchat-export-act:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
6664
|
+
.ds-247420 .agentchat-export-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
6598
6665
|
|
|
6599
6666
|
/* "working" tail: a long silent tool call shouldn't read as frozen. */
|
|
6600
6667
|
.ds-247420 .agentchat-working {
|
|
@@ -6724,7 +6791,7 @@
|
|
|
6724
6791
|
/* Rail filter uses the shared .ds-search-input primitive (provides bg/border/
|
|
6725
6792
|
radius/focus-ring); only the rail layout + touch floor live here. */
|
|
6726
6793
|
.ds-247420 .ds-session-head .ds-search-input { order: 1; flex: 1 1 auto; min-width: 0; min-height: 36px; padding: 0 10px; }
|
|
6727
|
-
.ds-247420 .ds-session-new:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
6794
|
+
.ds-247420 .ds-session-new:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
6728
6795
|
/* Touch floor (must FOLLOW the base rules - same specificity, order decides). */
|
|
6729
6796
|
@media (pointer: coarse) {
|
|
6730
6797
|
.ds-247420 .ds-session-new { width: 44px; min-height: 44px; }
|
|
@@ -6743,10 +6810,10 @@
|
|
|
6743
6810
|
cursor: pointer; text-align: left; color: var(--fg);
|
|
6744
6811
|
}
|
|
6745
6812
|
.ds-247420 .ds-session-row:hover { background: var(--bg-2); }
|
|
6746
|
-
.ds-247420 .ds-session-row:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
6813
|
+
.ds-247420 .ds-session-row:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
|
|
6747
6814
|
.ds-247420 .ds-session-row.active { background: var(--accent-tint); box-shadow: inset 2px 0 0 var(--accent); }
|
|
6748
6815
|
.ds-247420 .ds-session-row.rail-green::before, .ds-247420 .ds-session-row.rail-purple::before, .ds-247420 .ds-session-row.rail-flame::before {
|
|
6749
|
-
content: ''; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius:
|
|
6816
|
+
content: ''; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: var(--r-hair);
|
|
6750
6817
|
}
|
|
6751
6818
|
/* Rail tones MUST match .row.rail-* in app-shell.css so the same semantic state
|
|
6752
6819
|
reads as one colour across the conversation list and content rows. */
|
|
@@ -6837,7 +6904,7 @@
|
|
|
6837
6904
|
}
|
|
6838
6905
|
.ds-247420 .chat-code-block:hover .chat-code-copy, .ds-247420 .chat-code-block:focus-within .chat-code-copy { opacity: 1; }
|
|
6839
6906
|
.ds-247420 .chat-code-copy.is-copied { color: var(--accent-ink); border-color: var(--accent); }
|
|
6840
|
-
.ds-247420 .chat-code-copy:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; opacity: 1; }
|
|
6907
|
+
.ds-247420 .chat-code-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; opacity: 1; }
|
|
6841
6908
|
/* Head-placed copy (structured CodeNode + FilePreviewCode) is always visible. */
|
|
6842
6909
|
.ds-247420 .chat-code-head .spread { flex: 1; }
|
|
6843
6910
|
.ds-247420 .chat-code-copy-head { position: static; opacity: 1; }
|
|
@@ -6926,7 +6993,7 @@
|
|
|
6926
6993
|
cursor: pointer; font-family: var(--ff-body); font-size: var(--fs-tiny);
|
|
6927
6994
|
}
|
|
6928
6995
|
.ds-247420 .ds-dash-errors-toggle.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
|
|
6929
|
-
.ds-247420 .ds-dash-errors-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
6996
|
+
.ds-247420 .ds-dash-errors-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
6930
6997
|
|
|
6931
6998
|
/* --- C3: per-card select checkbox. --- */
|
|
6932
6999
|
.ds-247420 .ds-dash-select {
|
|
@@ -6936,7 +7003,7 @@
|
|
|
6936
7003
|
font-family: var(--ff-mono); font-size: var(--fs-sm);
|
|
6937
7004
|
}
|
|
6938
7005
|
.ds-247420 .ds-dash-select[aria-checked="true"] { color: var(--accent-ink); }
|
|
6939
|
-
.ds-247420 .ds-dash-select:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
7006
|
+
.ds-247420 .ds-dash-select:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
6940
7007
|
|
|
6941
7008
|
/* --- C5: active dashboard card (current conversation). --- */
|
|
6942
7009
|
.ds-247420 .ds-dash-card.is-active { box-shadow: inset 2px 0 0 var(--accent); }
|
|
@@ -6958,7 +7025,7 @@
|
|
|
6958
7025
|
|
|
6959
7026
|
/* --- E1: inline file preview pane (split view, non-modal). --- */
|
|
6960
7027
|
.ds-247420 .ds-preview-pane { display: flex; flex-direction: column; min-height: 0; height: 100%; overflow: hidden; }
|
|
6961
|
-
.ds-247420 .ds-preview-pane:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
7028
|
+
.ds-247420 .ds-preview-pane:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
|
|
6962
7029
|
.ds-247420 .ds-preview-pane .ds-preview-body { flex: 1; min-height: 0; overflow: auto; }
|
|
6963
7030
|
.ds-247420 .ds-preview-pane-empty { align-items: center; justify-content: center; color: var(--fg-3); font-size: var(--fs-sm); }
|
|
6964
7031
|
.ds-247420 .ds-preview-code-wrap { display: flex; flex-direction: column; min-height: 0; }
|
|
@@ -6975,7 +7042,7 @@
|
|
|
6975
7042
|
border-radius: var(--r-1); background: var(--bg-2); color: var(--fg-2); cursor: pointer;
|
|
6976
7043
|
font-family: var(--ff-body); font-size: var(--fs-tiny);
|
|
6977
7044
|
}
|
|
6978
|
-
.ds-247420 .ds-file-more-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
7045
|
+
.ds-247420 .ds-file-more-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
6979
7046
|
/* --- D3: locked/no-access file row. --- */
|
|
6980
7047
|
.ds-247420 .ds-file-row.is-locked { opacity: .6; }
|
|
6981
7048
|
|
|
@@ -6986,8 +7053,9 @@
|
|
|
6986
7053
|
background: none; color: var(--fg-3); cursor: pointer;
|
|
6987
7054
|
font-family: var(--ff-body); font-size: var(--fs-tiny);
|
|
6988
7055
|
}
|
|
7056
|
+
.ds-247420 .ds-roots-tab:hover { background: var(--bg-2); color: var(--fg); }
|
|
6989
7057
|
.ds-247420 .ds-roots-tab.active { background: var(--bg); color: var(--fg); }
|
|
6990
|
-
.ds-247420 .ds-roots-tab:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
7058
|
+
.ds-247420 .ds-roots-tab:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
6991
7059
|
|
|
6992
7060
|
/* --- H4: touch targets. On a coarse pointer / narrow screen the hover-revealed
|
|
6993
7061
|
action rows are made permanently visible and small controls floor to 44px so
|
|
@@ -7019,7 +7087,7 @@
|
|
|
7019
7087
|
color: var(--fg-3); font-family: var(--ff-body); font-size: var(--fs-micro);
|
|
7020
7088
|
}
|
|
7021
7089
|
.ds-247420 .ds-session-meta-copy:hover { background: var(--bg-3); color: var(--fg); }
|
|
7022
|
-
.ds-247420 .ds-session-meta-copy:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
7090
|
+
.ds-247420 .ds-session-meta-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
7023
7091
|
@media (pointer: coarse), (max-width: 640px) {
|
|
7024
7092
|
.ds-247420 .ds-session-meta-copy { min-height: 44px; min-width: 44px; }
|
|
7025
7093
|
}
|
|
@@ -7047,7 +7115,7 @@
|
|
|
7047
7115
|
}
|
|
7048
7116
|
|
|
7049
7117
|
/* Drag-over ring: token accent, never a hex. */
|
|
7050
|
-
.ds-247420 .chat-composer.dragover { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--r-2); }
|
|
7118
|
+
.ds-247420 .chat-composer.dragover { outline: 2px solid var(--accent-ink); outline-offset: -2px; border-radius: var(--r-2); }
|
|
7051
7119
|
|
|
7052
7120
|
/* Per-bit composer context: only the bit that owns a control is a button. */
|
|
7053
7121
|
.ds-247420 .chat-composer-context-bit {
|
|
@@ -7087,7 +7155,8 @@
|
|
|
7087
7155
|
border-radius: var(--r-1); background: var(--bg-2); color: var(--fg-2); cursor: pointer;
|
|
7088
7156
|
font-family: var(--ff-body); font-size: var(--fs-tiny);
|
|
7089
7157
|
}
|
|
7090
|
-
.ds-247420 .agentchat-earlier-btn:
|
|
7158
|
+
.ds-247420 .agentchat-earlier-btn:hover { background: var(--bg-2); color: var(--fg); }
|
|
7159
|
+
.ds-247420 .agentchat-earlier-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
7091
7160
|
@media (pointer: coarse) {
|
|
7092
7161
|
.ds-247420 .agentchat-earlier-btn { min-height: 44px; }
|
|
7093
7162
|
}
|
|
@@ -7195,7 +7264,7 @@
|
|
|
7195
7264
|
}
|
|
7196
7265
|
.ds-247420 .chat-msg .chat-tool .chat-tool-head::-webkit-details-marker { display: none; }
|
|
7197
7266
|
.ds-247420 .chat-msg .chat-tool .chat-tool-head:hover { background: var(--bg-2); }
|
|
7198
|
-
.ds-247420 .chat-msg .chat-tool .chat-tool-head:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
7267
|
+
.ds-247420 .chat-msg .chat-tool .chat-tool-head:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
|
|
7199
7268
|
.ds-247420 .chat-tool-icon { display: inline-flex; color: var(--fg-3); }
|
|
7200
7269
|
.ds-247420 .chat-tool-name { font-family: var(--ff-mono); font-weight: 600; color: var(--fg); }
|
|
7201
7270
|
.ds-247420 .chat-tool-label { color: var(--fg-3); font-size: var(--fs-tiny); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
|
|
@@ -7219,7 +7288,7 @@
|
|
|
7219
7288
|
.ds-247420 .chat-tool-section-label { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); }
|
|
7220
7289
|
.ds-247420 .chat-tool-copy { position: static; opacity: 0; }
|
|
7221
7290
|
.ds-247420 .chat-tool-section:hover .chat-tool-copy, .ds-247420 .chat-tool-section:focus-within .chat-tool-copy { opacity: 1; }
|
|
7222
|
-
.ds-247420 .chat-tool-copy:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; opacity: 1; }
|
|
7291
|
+
.ds-247420 .chat-tool-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; opacity: 1; }
|
|
7223
7292
|
.ds-247420 .chat-tool-pre { margin: 0; padding: var(--space-2); background: var(--bg-2); border-radius: var(--r-1); font-family: var(--ff-mono); font-size: var(--fs-tiny); line-height: 1.45; overflow-x: auto; max-height: 320px; overflow-y: auto; }
|
|
7224
7293
|
.ds-247420 .chat-tool-pre.is-error { color: var(--flame); }
|
|
7225
7294
|
.ds-247420 .chat-tool-pre.chat-tool-empty { color: var(--fg-3); }
|
|
@@ -7282,10 +7351,11 @@
|
|
|
7282
7351
|
.ds-247420 .ds-dash-breakdown .seg.is-idle::before { background: transparent; box-shadow: inset 0 0 0 1px var(--stale), inset 0 0 0 3px var(--bg); }
|
|
7283
7352
|
.ds-247420 .ds-dash-stream-disc { display: inline-flex; align-items: center; gap: var(--space-1); }
|
|
7284
7353
|
.ds-247420 .ds-dash-selectall { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--fs-tiny); color: var(--fg-2); cursor: pointer; background: none; border: none; padding: var(--space-1); }
|
|
7285
|
-
.ds-247420 .ds-dash-selectall:
|
|
7354
|
+
.ds-247420 .ds-dash-selectall:hover { color: var(--fg); }
|
|
7355
|
+
.ds-247420 .ds-dash-selectall:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
7286
7356
|
.ds-247420 .ds-dash-clear { background: none; border: none; color: var(--fg-3); cursor: pointer; font-size: var(--fs-tiny); text-decoration: underline dotted; padding: var(--space-1); }
|
|
7287
7357
|
.ds-247420 .ds-dash-clear:hover { color: var(--fg); }
|
|
7288
|
-
.ds-247420 .ds-dash-clear:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-radius: var(--r-1); }
|
|
7358
|
+
.ds-247420 .ds-dash-clear:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; border-radius: var(--r-1); }
|
|
7289
7359
|
|
|
7290
7360
|
/* Conversation-rail loading skeleton (cold ccsniff walk). */
|
|
7291
7361
|
.ds-247420 .ds-session-row-skeleton { display: flex; flex-direction: column; gap: 6px; padding: var(--space-2) var(--space-3); }
|
|
@@ -7503,7 +7573,7 @@
|
|
|
7503
7573
|
overflow: auto;
|
|
7504
7574
|
}
|
|
7505
7575
|
.ds-247420 .ds-ep-tree-item { display: flex; flex-direction: column; }
|
|
7506
|
-
.ds-247420 .ds-ep-tree-item:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
7576
|
+
.ds-247420 .ds-ep-tree-item:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
7507
7577
|
.ds-247420 .ds-ep-tree-row {
|
|
7508
7578
|
display: flex; align-items: center; gap: 6px;
|
|
7509
7579
|
padding: 4px 8px 4px 0;
|
|
@@ -7859,12 +7929,15 @@
|
|
|
7859
7929
|
background: var(--panel-2, transparent);
|
|
7860
7930
|
color: inherit; font: inherit; cursor: pointer;
|
|
7861
7931
|
}
|
|
7932
|
+
.ds-247420 .ds-ep-dialog-btn:hover { background: var(--panel-3, var(--bg-3)); }
|
|
7862
7933
|
.ds-247420 .ds-ep-dialog-btn.kind-primary {
|
|
7863
7934
|
background: var(--accent); color: var(--accent-fg); border-color: var(--accent);
|
|
7864
7935
|
}
|
|
7936
|
+
.ds-247420 .ds-ep-dialog-btn.kind-primary:hover { filter: brightness(1.08); }
|
|
7865
7937
|
.ds-247420 .ds-ep-dialog-btn.kind-danger {
|
|
7866
7938
|
background: var(--danger); color: var(--on-accent); border-color: var(--danger);
|
|
7867
7939
|
}
|
|
7940
|
+
.ds-247420 .ds-ep-dialog-btn.kind-danger:hover { filter: brightness(1.1); }
|
|
7868
7941
|
|
|
7869
7942
|
/* ---------------------------------------------------------------
|
|
7870
7943
|
Toast
|
|
@@ -7908,7 +7981,7 @@
|
|
|
7908
7981
|
.ds-247420 .ds-ep-ctxmenu-item:focus-visible,
|
|
7909
7982
|
.ds-247420 .ds-ep-resize:focus-visible,
|
|
7910
7983
|
.ds-247420 .ds-ep-dialog-btn:focus-visible {
|
|
7911
|
-
outline: 2px solid var(--accent);
|
|
7984
|
+
outline: 2px solid var(--accent-ink);
|
|
7912
7985
|
outline-offset: 2px;
|
|
7913
7986
|
}
|
|
7914
7987
|
|
|
@@ -7959,7 +8032,7 @@
|
|
|
7959
8032
|
.ds-247420 .ds-ep-iconbtn:focus-visible,
|
|
7960
8033
|
.ds-247420 .ds-ep-iconbtn-group button:focus-visible,
|
|
7961
8034
|
.ds-247420 .ds-ep-resize:focus-visible {
|
|
7962
|
-
outline: 2px solid var(--accent);
|
|
8035
|
+
outline: 2px solid var(--accent-ink);
|
|
7963
8036
|
outline-offset: 2px;
|
|
7964
8037
|
border-radius: var(--r-1);
|
|
7965
8038
|
}
|
|
@@ -7988,7 +8061,7 @@
|
|
|
7988
8061
|
cursor: inherit;
|
|
7989
8062
|
}
|
|
7990
8063
|
.ds-247420 .ds-check:focus-visible, .ds-247420 .ds-radio:focus-visible {
|
|
7991
|
-
outline: 2px solid var(--accent);
|
|
8064
|
+
outline: 2px solid var(--accent-ink);
|
|
7992
8065
|
outline-offset: 2px;
|
|
7993
8066
|
}
|
|
7994
8067
|
|
|
@@ -8015,6 +8088,7 @@
|
|
|
8015
8088
|
padding: 0;
|
|
8016
8089
|
flex-shrink: 0;
|
|
8017
8090
|
}
|
|
8091
|
+
.ds-247420 .ds-toggle:hover { border-color: var(--rule-strong, var(--fg-3)); }
|
|
8018
8092
|
.ds-247420 .ds-toggle-knob {
|
|
8019
8093
|
position: absolute;
|
|
8020
8094
|
top: 1px; left: 1px;
|
|
@@ -8032,7 +8106,7 @@
|
|
|
8032
8106
|
transform: translateX(20px);
|
|
8033
8107
|
}
|
|
8034
8108
|
.ds-247420 .ds-toggle:focus-visible {
|
|
8035
|
-
outline: 2px solid var(--accent);
|
|
8109
|
+
outline: 2px solid var(--accent-ink);
|
|
8036
8110
|
outline-offset: 2px;
|
|
8037
8111
|
}
|
|
8038
8112
|
.ds-247420 .ds-toggle:disabled { cursor: not-allowed; }
|
|
@@ -8147,7 +8221,7 @@
|
|
|
8147
8221
|
outline: none;
|
|
8148
8222
|
}
|
|
8149
8223
|
.ds-247420 .ds-dropdown-item:focus-visible {
|
|
8150
|
-
outline: 2px solid var(--accent);
|
|
8224
|
+
outline: 2px solid var(--accent-ink);
|
|
8151
8225
|
outline-offset: -2px;
|
|
8152
8226
|
}
|
|
8153
8227
|
.ds-247420 .ds-dropdown-item[aria-disabled="true"] {
|
|
@@ -8191,7 +8265,7 @@
|
|
|
8191
8265
|
cursor: grab; font: 14px/1 var(--ff-mono, monospace); letter-spacing: -2px;
|
|
8192
8266
|
touch-action: none; user-select: none;
|
|
8193
8267
|
}
|
|
8194
|
-
.ds-247420 .ds-reorder-handle:focus-visible { outline: 2px solid var(--
|
|
8268
|
+
.ds-247420 .ds-reorder-handle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
8195
8269
|
.ds-247420 .ds-reorder-handle:active { cursor: grabbing; }
|
|
8196
8270
|
.ds-247420[data-dragging="true"] { opacity: 0.6; cursor: grabbing; transform: scale(0.98); }
|
|
8197
8271
|
.ds-247420[data-drop-target-active="true"] {
|
|
@@ -8200,7 +8274,7 @@
|
|
|
8200
8274
|
}
|
|
8201
8275
|
.ds-247420 .ds-reorder-insertion-line {
|
|
8202
8276
|
height: 2px; background: var(--focus-ring, var(--accent));
|
|
8203
|
-
border-radius:
|
|
8277
|
+
border-radius: var(--r-hair); animation: ds-insertion-in var(--dur-snap, 120ms) var(--ease, ease);
|
|
8204
8278
|
}
|
|
8205
8279
|
@keyframes ds-insertion-in { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } }
|
|
8206
8280
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -8267,6 +8341,7 @@
|
|
|
8267
8341
|
color: var(--fg); font: inherit; text-align: left;
|
|
8268
8342
|
border-radius: var(--r-1, 10px); cursor: pointer;
|
|
8269
8343
|
}
|
|
8344
|
+
.ds-247420 .ov-cmd-item:hover { background: var(--panel-2, var(--rule)); }
|
|
8270
8345
|
.ds-247420 .ov-cmd-item.is-active { background: var(--accent); color: var(--accent-fg); }
|
|
8271
8346
|
.ds-247420 .ov-cmd-glyph { width: 18px; display: inline-flex; justify-content: center; flex-shrink: 0; }
|
|
8272
8347
|
.ds-247420 .ov-cmd-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
@@ -8301,6 +8376,7 @@
|
|
|
8301
8376
|
padding: var(--space-2, 8px); cursor: pointer; font-size: var(--fs-lg, 18px);
|
|
8302
8377
|
border-bottom: 2px solid transparent;
|
|
8303
8378
|
}
|
|
8379
|
+
.ds-247420 .ov-emoji-tab:hover { background: var(--bg-2); }
|
|
8304
8380
|
.ds-247420 .ov-emoji-tab[aria-selected="true"] { border-bottom-color: var(--accent); background: var(--bg-2); }
|
|
8305
8381
|
.ds-247420 .ov-emoji-grid { overflow: auto; max-height: 220px; padding: var(--space-2, 8px); }
|
|
8306
8382
|
.ds-247420 .ov-emoji-grid-inner { display: grid; grid-template-columns: repeat(8, 1fr); gap: var(--space-1, 4px); }
|
|
@@ -8399,7 +8475,7 @@
|
|
|
8399
8475
|
border: 1px solid var(--rule); border-radius: var(--r-1, 10px);
|
|
8400
8476
|
padding: var(--space-1, 4px) var(--space-2, 8px); font: inherit;
|
|
8401
8477
|
}
|
|
8402
|
-
.ds-247420 .ov-set-control:focus-visible { outline:
|
|
8478
|
+
.ds-247420 .ov-set-control:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; border-color: var(--accent-ink); }
|
|
8403
8479
|
.ds-247420 input.ov-set-control[type="range"] { padding: 0; accent-color: var(--accent); }
|
|
8404
8480
|
.ds-247420 .ov-set-toggle { width: 18px; height: 18px; accent-color: var(--accent); flex-shrink: 0; cursor: pointer; }
|
|
8405
8481
|
.ds-247420 .ov-set-btn {
|
|
@@ -8429,6 +8505,7 @@
|
|
|
8429
8505
|
.ds-247420 .ov-auth-x:hover { color: var(--fg); }
|
|
8430
8506
|
.ds-247420 .ov-auth-tabs { display: flex; gap: var(--space-1); padding: var(--space-2) var(--space-3) 0; }
|
|
8431
8507
|
.ds-247420 .ov-auth-tab { flex: 1; padding: var(--space-1) var(--space-2); border: 1px solid var(--rule); border-bottom: none; border-radius: var(--r-1) var(--r-1) 0 0; background: var(--bg-3); color: var(--fg-2, var(--fg)); cursor: pointer; }
|
|
8508
|
+
.ds-247420 .ov-auth-tab:hover { color: var(--fg); }
|
|
8432
8509
|
.ds-247420 .ov-auth-tab.is-active { background: var(--bg-2); color: var(--fg); font-weight: 700; }
|
|
8433
8510
|
.ds-247420 .ov-auth-body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); }
|
|
8434
8511
|
.ds-247420 .ov-auth-hint { margin: 0; font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); }
|
|
@@ -8494,8 +8571,8 @@
|
|
|
8494
8571
|
background: var(--panel-2); cursor: pointer; flex-shrink: 0;
|
|
8495
8572
|
}
|
|
8496
8573
|
.ds-247420 .ds-input-color::-webkit-color-swatch-wrapper { padding: 2px; }
|
|
8497
|
-
.ds-247420 .ds-input-color::-webkit-color-swatch { border: none; border-radius:
|
|
8498
|
-
.ds-247420 .ds-input-color:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
8574
|
+
.ds-247420 .ds-input-color::-webkit-color-swatch { border: none; border-radius: var(--r-hair); }
|
|
8575
|
+
.ds-247420 .ds-input-color:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
8499
8576
|
.ds-247420 .ds-input-check {
|
|
8500
8577
|
appearance: none; -webkit-appearance: none;
|
|
8501
8578
|
width: 16px; height: 16px; flex-shrink: 0;
|
|
@@ -8508,7 +8585,7 @@
|
|
|
8508
8585
|
width: 4px; height: 8px; border: solid var(--accent-fg);
|
|
8509
8586
|
border-width: 0 2px 2px 0; transform: rotate(45deg);
|
|
8510
8587
|
}
|
|
8511
|
-
.ds-247420 .ds-input-check:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
8588
|
+
.ds-247420 .ds-input-check:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
8512
8589
|
|
|
8513
8590
|
/* ---------------------------------------------------------------
|
|
8514
8591
|
Tree drag-reparent affordance — clear drop target + dragging row.
|
|
@@ -8642,7 +8719,7 @@
|
|
|
8642
8719
|
align-items: center;
|
|
8643
8720
|
gap: 8px;
|
|
8644
8721
|
padding: 6px 8px;
|
|
8645
|
-
border-radius:
|
|
8722
|
+
border-radius: var(--r-0);
|
|
8646
8723
|
color: var(--fg-2, color-mix(in oklab, var(--fg) 78%, transparent));
|
|
8647
8724
|
text-decoration: none;
|
|
8648
8725
|
font-size: var(--fs-sm, 14px);
|
|
@@ -8664,7 +8741,7 @@
|
|
|
8664
8741
|
flex-shrink: 0;
|
|
8665
8742
|
min-width: 18px;
|
|
8666
8743
|
padding: 0 5px;
|
|
8667
|
-
border-radius:
|
|
8744
|
+
border-radius: var(--r-1);
|
|
8668
8745
|
background: var(--accent);
|
|
8669
8746
|
color: var(--on-accent);
|
|
8670
8747
|
font-size: 11px;
|
|
@@ -8942,7 +9019,7 @@
|
|
|
8942
9019
|
}
|
|
8943
9020
|
|
|
8944
9021
|
@media (prefers-reduced-motion: reduce) {
|
|
8945
|
-
.ds-247420 .ds-event-list .row.event-flash { animation: none; outline: 2px solid var(--accent); }
|
|
9022
|
+
.ds-247420 .ds-event-list .row.event-flash { animation: none; outline: 2px solid var(--accent-ink); }
|
|
8946
9023
|
}
|
|
8947
9024
|
|
|
8948
9025
|
@media print {
|
|
@@ -9018,7 +9095,7 @@
|
|
|
9018
9095
|
max-width: 100%;
|
|
9019
9096
|
padding: 18px 18px 18px 20px;
|
|
9020
9097
|
background: var(--panel-1);
|
|
9021
|
-
border-radius:
|
|
9098
|
+
border-radius: var(--r-1);
|
|
9022
9099
|
box-shadow: var(--panel-shadow);
|
|
9023
9100
|
scrollbar-width: thin;
|
|
9024
9101
|
scrollbar-color: var(--panel-3) transparent;
|
|
@@ -9027,7 +9104,7 @@
|
|
|
9027
9104
|
.ds-247420 #ds-article-host.has-toc > .toc::-webkit-scrollbar-track { background: transparent; }
|
|
9028
9105
|
.ds-247420 #ds-article-host.has-toc > .toc::-webkit-scrollbar-thumb {
|
|
9029
9106
|
background: var(--panel-3);
|
|
9030
|
-
border-radius:
|
|
9107
|
+
border-radius: var(--r-0);
|
|
9031
9108
|
border: 2px solid transparent;
|
|
9032
9109
|
background-clip: padding-box;
|
|
9033
9110
|
}
|
|
@@ -9063,7 +9140,7 @@
|
|
|
9063
9140
|
.ds-247420 .cli {
|
|
9064
9141
|
display: block;
|
|
9065
9142
|
background: var(--panel-1);
|
|
9066
|
-
border-radius:
|
|
9143
|
+
border-radius: var(--r-0);
|
|
9067
9144
|
padding: 16px 20px;
|
|
9068
9145
|
margin: 16px 0 28px 0;
|
|
9069
9146
|
font-family: var(--ff-mono);
|
|
@@ -9124,7 +9201,7 @@
|
|
|
9124
9201
|
padding: 14px 18px;
|
|
9125
9202
|
margin: 8px 0;
|
|
9126
9203
|
background: var(--panel-1);
|
|
9127
|
-
border-radius:
|
|
9204
|
+
border-radius: var(--r-0);
|
|
9128
9205
|
font-size: 13px;
|
|
9129
9206
|
box-shadow: var(--panel-shadow);
|
|
9130
9207
|
text-decoration: none;
|
|
@@ -9141,7 +9218,7 @@
|
|
|
9141
9218
|
border: 1px solid var(--panel-3);
|
|
9142
9219
|
font-size: 0.7rem;
|
|
9143
9220
|
padding: 0.15rem 0.5rem;
|
|
9144
|
-
border-radius:
|
|
9221
|
+
border-radius: var(--r-hair);
|
|
9145
9222
|
font-family: var(--ff-mono);
|
|
9146
9223
|
}
|
|
9147
9224
|
.ds-247420 .ds-prose .gm-callout {
|
|
@@ -9242,7 +9319,7 @@
|
|
|
9242
9319
|
}
|
|
9243
9320
|
.ds-247420 .sp-loading-bar-track {
|
|
9244
9321
|
height: 6px;
|
|
9245
|
-
border-radius:
|
|
9322
|
+
border-radius: var(--r-hair);
|
|
9246
9323
|
background: var(--bg-3);
|
|
9247
9324
|
overflow: hidden;
|
|
9248
9325
|
}
|