anentrypoint-design 0.0.213 → 0.0.214

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 CHANGED
@@ -1355,7 +1355,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1355
1355
  transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
1356
1356
  }
1357
1357
  .ds-density-btn:hover { color: var(--fg); }
1358
- .ds-density-btn.active { background: var(--accent-tint); color: var(--accent); }
1358
+ .ds-density-btn.active { background: var(--accent-tint); color: var(--fg); }
1359
1359
  .ds-density-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
1360
1360
 
1361
1361
  /* Compact density — tighter rows for long listings. */
@@ -1380,6 +1380,10 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1380
1380
  .ds-file-cell.active { border-color: var(--accent); background: var(--accent-tint); }
1381
1381
  .ds-file-cell.is-marked { border-color: var(--accent); background: var(--accent-tint); }
1382
1382
  .ds-file-cell.is-locked { opacity: 0.6; }
1383
+ .ds-file-row.is-locked { opacity: 0.6; }
1384
+ .ds-file-row.is-restricted .title { color: var(--fg-2); }
1385
+ .ds-file-perm-tag { font-family: var(--ff-mono); font-size: var(--fs-micro); color: var(--fg-3); padding: 1px 6px; border: var(--bw-hair) solid var(--rule); border-radius: var(--r-1); white-space: nowrap; }
1386
+ .ds-file-perm-tag.is-noaccess { color: var(--flame); border-color: color-mix(in srgb, var(--flame) 40%, transparent); }
1383
1387
  .ds-file-cell-open {
1384
1388
  display: flex; flex-direction: column; align-items: stretch; gap: var(--space-1);
1385
1389
  width: 100%; padding: var(--space-1); margin: 0;
@@ -1776,6 +1780,10 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1776
1780
  border-radius: var(--r-2); font-size: var(--fs-xs);
1777
1781
  }
1778
1782
  .ds-shortcut-row { display: flex; align-items: center; gap: var(--space-2); }
1783
+ .ds-shortcuts-hint .ds-kbd-label { flex: 1 1 auto; opacity: .85; }
1784
+ .ds-shortcuts-hint .ds-kbd { white-space: normal; max-width: 100%; }
1785
+ .ds-kbd-caps { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
1786
+ .ds-kbd-sep { color: var(--fg-3); font-size: var(--fs-micro); padding: 0 2px; }
1779
1787
  .ds-kbd {
1780
1788
  display: inline-block; min-width: 0;
1781
1789
  padding: 2px 7px; border-radius: 6px;
@@ -2248,6 +2256,12 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
2248
2256
  .chat-composer .send:disabled {
2249
2257
  background: var(--bg-3); color: var(--fg-3); cursor: not-allowed; transform: none;
2250
2258
  }
2259
+ @media (prefers-reduced-motion: reduce) {
2260
+ .chat-composer,
2261
+ .chat-composer textarea,
2262
+ .chat-composer .send,
2263
+ .composer-btn { transition: none; }
2264
+ }
2251
2265
 
2252
2266
  .aicat-portrait { display: inline-flex; align-items: center; gap: 10px; padding: 4px 0; }
2253
2267
  .aicat-face {
@@ -3249,6 +3263,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
3249
3263
  .ws-pane-collapsed .ws-pane > * { display: none; }
3250
3264
  @media (pointer: coarse) {
3251
3265
  .ws-rail-toggle { width: 44px; height: 44px; }
3266
+ .ws-drawer-toggle { width: 44px; height: 44px; }
3252
3267
  }
3253
3268
 
3254
3269
  /* Drawer toggles and the scrim are hidden by default and revealed by the staged
@@ -3374,6 +3389,11 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
3374
3389
  .ws-drawer-toggle:hover { background: var(--bg-2); color: var(--fg); }
3375
3390
  .ws-drawer-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
3376
3391
 
3392
+ @media (prefers-reduced-motion: reduce) {
3393
+ .ws-shell, .ws-rail, .ws-pane, .ws-sessions, .ws-scrim { transition: none; }
3394
+ .ws-resizer::after { transition: none; }
3395
+ }
3396
+
3377
3397
  /* ============================================================
3378
3398
  Row title highlight, expanded-row actions, filter pills.
3379
3399
  ============================================================ */
@@ -3404,7 +3424,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
3404
3424
  transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
3405
3425
  }
3406
3426
  .ds-filter-pill:hover { background: var(--bg-3); color: var(--fg); }
3407
- .ds-filter-pill.active { background: var(--accent-tint); color: var(--accent); border-color: var(--accent); }
3427
+ .ds-filter-pill.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
3408
3428
  .ds-filter-pill:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
3409
3429
 
3410
3430
  /* Touch floor for the new small controls. */
package/chat.css CHANGED
@@ -91,7 +91,7 @@
91
91
  background: none;
92
92
  border: 1px solid var(--rule);
93
93
  color: inherit;
94
- border-radius: 6px;
94
+ border-radius: var(--r-1);
95
95
  padding: 2px 8px;
96
96
  cursor: pointer;
97
97
  font: inherit;
@@ -110,6 +110,7 @@
110
110
  }
111
111
  .agentchat-cwd-input:focus-visible { outline: none; box-shadow: var(--focus-ring-inset); }
112
112
  .agentchat-cwd-input[aria-invalid='true'] { border-color: var(--flame); box-shadow: inset 0 0 0 var(--bw-hair) var(--flame); }
113
+ .agentchat-cwd-input[aria-busy='true'] { border-color: var(--fg-3); box-shadow: inset 0 0 0 var(--bw-hair) var(--fg-3); }
113
114
 
114
115
  /* head + thread */
115
116
  .agentchat-head {
@@ -360,18 +361,14 @@
360
361
  }
361
362
  .ds-session-new > span { display: none; }
362
363
  .ds-session-new:hover { background: var(--bg-2); color: var(--fg); }
363
- .ds-session-search { order: 1; flex: 1 1 auto; min-width: 0; }
364
+ /* Rail filter uses the shared .ds-search-input primitive (provides bg/border/
365
+ radius/focus-ring); only the rail layout + touch floor live here. */
366
+ .ds-session-head .ds-search-input { order: 1; flex: 1 1 auto; min-width: 0; }
364
367
  .ds-session-new:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
365
- .ds-session-search {
366
- width: 100%; padding: var(--space-1) var(--space-3); min-height: 36px;
367
- background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); color: var(--fg);
368
- border-radius: var(--r-1); font-family: var(--ff-body); font-size: var(--fs-sm);
369
- }
370
- .ds-session-search:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
371
368
  /* Touch floor (must FOLLOW the base rules - same specificity, order decides). */
372
369
  @media (pointer: coarse) {
373
370
  .ds-session-new { width: 44px; min-height: 44px; }
374
- .ds-session-search { min-height: 44px; }
371
+ .ds-session-head .ds-search-input { min-height: 44px; }
375
372
  }
376
373
  .ds-session-list, .ds-session-groups { flex: 1; min-height: 0; overflow-y: auto; padding: var(--space-2); }
377
374
  /* Grouped rows (Today/Yesterday/...) lay out like the flat list; the section
@@ -550,7 +547,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
550
547
  border-radius: var(--r-1); background: var(--bg-2); color: var(--fg-2);
551
548
  cursor: pointer; font-family: var(--ff-body); font-size: var(--fs-tiny);
552
549
  }
553
- .ds-dash-errors-toggle.active { background: var(--accent-tint); color: var(--accent); border-color: var(--accent); }
550
+ .ds-dash-errors-toggle.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
554
551
  .ds-dash-errors-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
555
552
 
556
553
  /* --- C3: per-card select checkbox. --- */
@@ -718,6 +715,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
718
715
  /* Inline cwd validation line (checking / error) under the cwd input. */
719
716
  .agentchat-cwd-hint { font-size: var(--fs-tiny); color: var(--fg-3); }
720
717
  .agentchat-cwd-hint.is-error { color: var(--flame); }
718
+ .agentchat-cwd-hint.is-checking { color: var(--fg-2); font-style: italic; }
721
719
 
722
720
  /* Dashboard: shared session title heading (same string as the rails). */
723
721
  .ds-dash-title {
@@ -817,6 +815,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
817
815
  }
818
816
  .chat-msg .chat-tool .chat-tool-head::-webkit-details-marker { display: none; }
819
817
  .chat-msg .chat-tool .chat-tool-head:hover { background: var(--bg-2); }
818
+ .chat-msg .chat-tool .chat-tool-head:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
820
819
  .chat-tool-icon { display: inline-flex; color: var(--fg-3); }
821
820
  .chat-tool-name { font-family: var(--ff-mono); font-weight: 600; color: var(--fg); }
822
821
  .chat-tool-label { color: var(--fg-3); font-size: var(--fs-tiny); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
@@ -837,6 +836,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
837
836
  .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); }
838
837
  .chat-tool-copy { position: static; opacity: 0; }
839
838
  .chat-tool-section:hover .chat-tool-copy, .chat-tool-section:focus-within .chat-tool-copy { opacity: 1; }
839
+ .chat-tool-copy:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; opacity: 1; }
840
840
  .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; }
841
841
  .chat-tool-pre.is-error { color: var(--flame); }
842
842
  .chat-tool-pre.chat-tool-empty { color: var(--fg-3); }
@@ -892,15 +892,17 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
892
892
  .ds-dash-breakdown .seg { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 600; }
893
893
  .ds-dash-breakdown .seg::before { content: ''; width: 7px; height: 7px; border-radius: 50%; flex: none; }
894
894
  .ds-dash-breakdown .seg.is-running { color: var(--accent); }
895
- .ds-dash-breakdown .seg.is-running::before { background: var(--accent); }
895
+ .ds-dash-breakdown .seg.is-running::before { background: var(--accent); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--accent) 30%, transparent); }
896
896
  .ds-dash-breakdown .seg.is-error { color: var(--flame); }
897
897
  .ds-dash-breakdown .seg.is-error::before { background: var(--flame); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--flame) 38%, transparent); }
898
- .ds-dash-breakdown .seg.is-idle { color: var(--amber); }
899
- .ds-dash-breakdown .seg.is-idle::before { background: transparent; box-shadow: inset 0 0 0 2px var(--amber); }
898
+ .ds-dash-breakdown .seg.is-idle { color: var(--stale); }
899
+ .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); }
900
900
  .ds-dash-stream-disc { display: inline-flex; align-items: center; gap: var(--space-1); }
901
901
  .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); }
902
902
  .ds-dash-selectall:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
903
903
  .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); }
904
+ .ds-dash-clear:hover { color: var(--fg); }
905
+ .ds-dash-clear:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-radius: var(--r-1); }
904
906
 
905
907
  /* Conversation-rail loading skeleton (cold ccsniff walk). */
906
908
  .ds-session-row-skeleton { display: flex; flex-direction: column; gap: 6px; padding: var(--space-2) var(--space-3); }
package/community.css CHANGED
@@ -1043,6 +1043,16 @@
1043
1043
  border-radius: var(--r-1);
1044
1044
  }
1045
1045
 
1046
+ /* ThreadPanel / Forum / Page interactive elements */
1047
+ .cm-tp-item:focus-visible,
1048
+ .cm-forum-item:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--r-1); }
1049
+ .cm-tp-new:focus-visible,
1050
+ .cm-tp-close:focus-visible,
1051
+ .cm-forum-new:focus-visible,
1052
+ .cm-forum-sort:focus-visible,
1053
+ .cm-page-edit:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-1); }
1054
+ .cm-forum-search:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
1055
+
1046
1056
  /* ---------- mobile header ---------- */
1047
1057
  .cm-mobile-header {
1048
1058
  display: flex;
package/dist/247420.css CHANGED
@@ -1809,7 +1809,7 @@
1809
1809
  transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
1810
1810
  }
1811
1811
  .ds-247420 .ds-density-btn:hover { color: var(--fg); }
1812
- .ds-247420 .ds-density-btn.active { background: var(--accent-tint); color: var(--accent); }
1812
+ .ds-247420 .ds-density-btn.active { background: var(--accent-tint); color: var(--fg); }
1813
1813
  .ds-247420 .ds-density-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
1814
1814
 
1815
1815
  /* Compact density — tighter rows for long listings. */
@@ -1834,6 +1834,10 @@
1834
1834
  .ds-247420 .ds-file-cell.active { border-color: var(--accent); background: var(--accent-tint); }
1835
1835
  .ds-247420 .ds-file-cell.is-marked { border-color: var(--accent); background: var(--accent-tint); }
1836
1836
  .ds-247420 .ds-file-cell.is-locked { opacity: 0.6; }
1837
+ .ds-247420 .ds-file-row.is-locked { opacity: 0.6; }
1838
+ .ds-247420 .ds-file-row.is-restricted .title { color: var(--fg-2); }
1839
+ .ds-247420 .ds-file-perm-tag { font-family: var(--ff-mono); font-size: var(--fs-micro); color: var(--fg-3); padding: 1px 6px; border: var(--bw-hair) solid var(--rule); border-radius: var(--r-1); white-space: nowrap; }
1840
+ .ds-247420 .ds-file-perm-tag.is-noaccess { color: var(--flame); border-color: color-mix(in srgb, var(--flame) 40%, transparent); }
1837
1841
  .ds-247420 .ds-file-cell-open {
1838
1842
  display: flex; flex-direction: column; align-items: stretch; gap: var(--space-1);
1839
1843
  width: 100%; padding: var(--space-1); margin: 0;
@@ -2230,6 +2234,10 @@
2230
2234
  border-radius: var(--r-2); font-size: var(--fs-xs);
2231
2235
  }
2232
2236
  .ds-247420 .ds-shortcut-row { display: flex; align-items: center; gap: var(--space-2); }
2237
+ .ds-247420 .ds-shortcuts-hint .ds-kbd-label { flex: 1 1 auto; opacity: .85; }
2238
+ .ds-247420 .ds-shortcuts-hint .ds-kbd { white-space: normal; max-width: 100%; }
2239
+ .ds-247420 .ds-kbd-caps { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
2240
+ .ds-247420 .ds-kbd-sep { color: var(--fg-3); font-size: var(--fs-micro); padding: 0 2px; }
2233
2241
  .ds-247420 .ds-kbd {
2234
2242
  display: inline-block; min-width: 0;
2235
2243
  padding: 2px 7px; border-radius: 6px;
@@ -2702,6 +2710,12 @@
2702
2710
  .ds-247420 .chat-composer .send:disabled {
2703
2711
  background: var(--bg-3); color: var(--fg-3); cursor: not-allowed; transform: none;
2704
2712
  }
2713
+ @media (prefers-reduced-motion: reduce) {
2714
+ .ds-247420 .chat-composer,
2715
+ .ds-247420 .chat-composer textarea,
2716
+ .ds-247420 .chat-composer .send,
2717
+ .ds-247420 .composer-btn { transition: none; }
2718
+ }
2705
2719
 
2706
2720
  .ds-247420 .aicat-portrait { display: inline-flex; align-items: center; gap: 10px; padding: 4px 0; }
2707
2721
  .ds-247420 .aicat-face {
@@ -3694,6 +3708,7 @@
3694
3708
  .ds-247420 .ws-pane-collapsed .ws-pane > * { display: none; }
3695
3709
  @media (pointer: coarse) {
3696
3710
  .ds-247420 .ws-rail-toggle { width: 44px; height: 44px; }
3711
+ .ds-247420 .ws-drawer-toggle { width: 44px; height: 44px; }
3697
3712
  }
3698
3713
 
3699
3714
  /* Drawer toggles and the scrim are hidden by default and revealed by the staged
@@ -3819,6 +3834,11 @@
3819
3834
  .ds-247420 .ws-drawer-toggle:hover { background: var(--bg-2); color: var(--fg); }
3820
3835
  .ds-247420 .ws-drawer-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
3821
3836
 
3837
+ @media (prefers-reduced-motion: reduce) {
3838
+ .ds-247420 .ws-shell, .ds-247420 .ws-rail, .ds-247420 .ws-pane, .ds-247420 .ws-sessions, .ds-247420 .ws-scrim { transition: none; }
3839
+ .ds-247420 .ws-resizer::after { transition: none; }
3840
+ }
3841
+
3822
3842
  /* ============================================================
3823
3843
  Row title highlight, expanded-row actions, filter pills.
3824
3844
  ============================================================ */
@@ -3849,7 +3869,7 @@
3849
3869
  transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
3850
3870
  }
3851
3871
  .ds-247420 .ds-filter-pill:hover { background: var(--bg-3); color: var(--fg); }
3852
- .ds-247420 .ds-filter-pill.active { background: var(--accent-tint); color: var(--accent); border-color: var(--accent); }
3872
+ .ds-247420 .ds-filter-pill.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
3853
3873
  .ds-247420 .ds-filter-pill:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
3854
3874
 
3855
3875
  /* Touch floor for the new small controls. */
@@ -4907,6 +4927,16 @@
4907
4927
  border-radius: var(--r-1);
4908
4928
  }
4909
4929
 
4930
+ /* ThreadPanel / Forum / Page interactive elements */
4931
+ .ds-247420 .cm-tp-item:focus-visible,
4932
+ .ds-247420 .cm-forum-item:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--r-1); }
4933
+ .ds-247420 .cm-tp-new:focus-visible,
4934
+ .ds-247420 .cm-tp-close:focus-visible,
4935
+ .ds-247420 .cm-forum-new:focus-visible,
4936
+ .ds-247420 .cm-forum-sort:focus-visible,
4937
+ .ds-247420 .cm-page-edit:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-1); }
4938
+ .ds-247420 .cm-forum-search:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
4939
+
4910
4940
  /* ---------- mobile header ---------- */
4911
4941
  .ds-247420 .cm-mobile-header {
4912
4942
  display: flex;
@@ -5487,7 +5517,7 @@
5487
5517
  background: none;
5488
5518
  border: 1px solid var(--rule);
5489
5519
  color: inherit;
5490
- border-radius: 6px;
5520
+ border-radius: var(--r-1);
5491
5521
  padding: 2px 8px;
5492
5522
  cursor: pointer;
5493
5523
  font: inherit;
@@ -5506,6 +5536,7 @@
5506
5536
  }
5507
5537
  .ds-247420 .agentchat-cwd-input:focus-visible { outline: none; box-shadow: var(--focus-ring-inset); }
5508
5538
  .ds-247420 .agentchat-cwd-input[aria-invalid='true'] { border-color: var(--flame); box-shadow: inset 0 0 0 var(--bw-hair) var(--flame); }
5539
+ .ds-247420 .agentchat-cwd-input[aria-busy='true'] { border-color: var(--fg-3); box-shadow: inset 0 0 0 var(--bw-hair) var(--fg-3); }
5509
5540
 
5510
5541
  /* head + thread */
5511
5542
  .ds-247420 .agentchat-head {
@@ -5756,18 +5787,14 @@
5756
5787
  }
5757
5788
  .ds-247420 .ds-session-new > span { display: none; }
5758
5789
  .ds-247420 .ds-session-new:hover { background: var(--bg-2); color: var(--fg); }
5759
- .ds-247420 .ds-session-search { order: 1; flex: 1 1 auto; min-width: 0; }
5790
+ /* Rail filter uses the shared .ds-search-input primitive (provides bg/border/
5791
+ radius/focus-ring); only the rail layout + touch floor live here. */
5792
+ .ds-247420 .ds-session-head .ds-search-input { order: 1; flex: 1 1 auto; min-width: 0; }
5760
5793
  .ds-247420 .ds-session-new:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
5761
- .ds-247420 .ds-session-search {
5762
- width: 100%; padding: var(--space-1) var(--space-3); min-height: 36px;
5763
- background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); color: var(--fg);
5764
- border-radius: var(--r-1); font-family: var(--ff-body); font-size: var(--fs-sm);
5765
- }
5766
- .ds-247420 .ds-session-search:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
5767
5794
  /* Touch floor (must FOLLOW the base rules - same specificity, order decides). */
5768
5795
  @media (pointer: coarse) {
5769
5796
  .ds-247420 .ds-session-new { width: 44px; min-height: 44px; }
5770
- .ds-247420 .ds-session-search { min-height: 44px; }
5797
+ .ds-247420 .ds-session-head .ds-search-input { min-height: 44px; }
5771
5798
  }
5772
5799
  .ds-247420 .ds-session-list, .ds-247420 .ds-session-groups { flex: 1; min-height: 0; overflow-y: auto; padding: var(--space-2); }
5773
5800
  /* Grouped rows (Today/Yesterday/...) lay out like the flat list; the section
@@ -5946,7 +5973,7 @@
5946
5973
  border-radius: var(--r-1); background: var(--bg-2); color: var(--fg-2);
5947
5974
  cursor: pointer; font-family: var(--ff-body); font-size: var(--fs-tiny);
5948
5975
  }
5949
- .ds-247420 .ds-dash-errors-toggle.active { background: var(--accent-tint); color: var(--accent); border-color: var(--accent); }
5976
+ .ds-247420 .ds-dash-errors-toggle.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
5950
5977
  .ds-247420 .ds-dash-errors-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
5951
5978
 
5952
5979
  /* --- C3: per-card select checkbox. --- */
@@ -6114,6 +6141,7 @@
6114
6141
  /* Inline cwd validation line (checking / error) under the cwd input. */
6115
6142
  .ds-247420 .agentchat-cwd-hint { font-size: var(--fs-tiny); color: var(--fg-3); }
6116
6143
  .ds-247420 .agentchat-cwd-hint.is-error { color: var(--flame); }
6144
+ .ds-247420 .agentchat-cwd-hint.is-checking { color: var(--fg-2); font-style: italic; }
6117
6145
 
6118
6146
  /* Dashboard: shared session title heading (same string as the rails). */
6119
6147
  .ds-247420 .ds-dash-title {
@@ -6213,6 +6241,7 @@
6213
6241
  }
6214
6242
  .ds-247420 .chat-msg .chat-tool .chat-tool-head::-webkit-details-marker { display: none; }
6215
6243
  .ds-247420 .chat-msg .chat-tool .chat-tool-head:hover { background: var(--bg-2); }
6244
+ .ds-247420 .chat-msg .chat-tool .chat-tool-head:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
6216
6245
  .ds-247420 .chat-tool-icon { display: inline-flex; color: var(--fg-3); }
6217
6246
  .ds-247420 .chat-tool-name { font-family: var(--ff-mono); font-weight: 600; color: var(--fg); }
6218
6247
  .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; }
@@ -6233,6 +6262,7 @@
6233
6262
  .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); }
6234
6263
  .ds-247420 .chat-tool-copy { position: static; opacity: 0; }
6235
6264
  .ds-247420 .chat-tool-section:hover .chat-tool-copy, .ds-247420 .chat-tool-section:focus-within .chat-tool-copy { opacity: 1; }
6265
+ .ds-247420 .chat-tool-copy:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; opacity: 1; }
6236
6266
  .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; }
6237
6267
  .ds-247420 .chat-tool-pre.is-error { color: var(--flame); }
6238
6268
  .ds-247420 .chat-tool-pre.chat-tool-empty { color: var(--fg-3); }
@@ -6288,15 +6318,17 @@
6288
6318
  .ds-247420 .ds-dash-breakdown .seg { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 600; }
6289
6319
  .ds-247420 .ds-dash-breakdown .seg::before { content: ''; width: 7px; height: 7px; border-radius: 50%; flex: none; }
6290
6320
  .ds-247420 .ds-dash-breakdown .seg.is-running { color: var(--accent); }
6291
- .ds-247420 .ds-dash-breakdown .seg.is-running::before { background: var(--accent); }
6321
+ .ds-247420 .ds-dash-breakdown .seg.is-running::before { background: var(--accent); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--accent) 30%, transparent); }
6292
6322
  .ds-247420 .ds-dash-breakdown .seg.is-error { color: var(--flame); }
6293
6323
  .ds-247420 .ds-dash-breakdown .seg.is-error::before { background: var(--flame); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--flame) 38%, transparent); }
6294
- .ds-247420 .ds-dash-breakdown .seg.is-idle { color: var(--amber); }
6295
- .ds-247420 .ds-dash-breakdown .seg.is-idle::before { background: transparent; box-shadow: inset 0 0 0 2px var(--amber); }
6324
+ .ds-247420 .ds-dash-breakdown .seg.is-idle { color: var(--stale); }
6325
+ .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); }
6296
6326
  .ds-247420 .ds-dash-stream-disc { display: inline-flex; align-items: center; gap: var(--space-1); }
6297
6327
  .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); }
6298
6328
  .ds-247420 .ds-dash-selectall:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
6299
6329
  .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); }
6330
+ .ds-247420 .ds-dash-clear:hover { color: var(--fg); }
6331
+ .ds-247420 .ds-dash-clear:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-radius: var(--r-1); }
6300
6332
 
6301
6333
  /* Conversation-rail loading skeleton (cold ccsniff walk). */
6302
6334
  .ds-247420 .ds-session-row-skeleton { display: flex; flex-direction: column; gap: 6px; padding: var(--space-2) var(--space-3); }
@@ -7504,7 +7536,7 @@
7504
7536
  .ds-247420 .ds-input-check:checked { background: var(--accent); border-color: var(--accent); }
7505
7537
  .ds-247420 .ds-input-check:checked::after {
7506
7538
  content: ''; position: absolute; left: 4px; top: 1px;
7507
- width: 4px; height: 8px; border: solid var(--accent-fg, #fff);
7539
+ width: 4px; height: 8px; border: solid var(--accent-fg);
7508
7540
  border-width: 0 2px 2px 0; transform: rotate(45deg);
7509
7541
  }
7510
7542
  .ds-247420 .ds-input-check:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@@ -7546,7 +7578,7 @@
7546
7578
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
7547
7579
  border: 1px solid var(--rule);
7548
7580
  border-radius: var(--r-2, 8px);
7549
- box-shadow: 0 6px 24px color-mix(in oklab, #000 28%, transparent);
7581
+ box-shadow: var(--shadow-3);
7550
7582
  color: var(--panel-text);
7551
7583
  overflow: hidden;
7552
7584
  }
@@ -7913,6 +7945,10 @@
7913
7945
  }
7914
7946
 
7915
7947
  @media print {
7948
+ /* Re-assert the paper-tuned signal tokens so token-derived foregrounds
7949
+ (status discs, error text, tool cards) print with light-theme colours
7950
+ rather than the dark-theme-derived values inherited under auto-dark. */
7951
+ .ds-247420 { --flame:#C53E00; --amber:#8A6512; --warn:#E0241A; --sky:#3A6EFF; --bg:var(--paper); --fg:var(--ink); }
7916
7952
  .ds-247420 #app { min-height: auto; display: block; height: auto; }
7917
7953
  .ds-247420 .skip-link, .ds-247420 .status-dot, .ds-247420 .history-actions, .ds-247420 .chat-composer { display: none !important; }
7918
7954
  .ds-247420 .app, .ds-247420 .app-main, .ds-247420 .panel, .ds-247420 .chat, .ds-247420 .chat-thread {
@@ -7930,20 +7966,28 @@
7930
7966
  .ds-247420 .site-panel { margin: var(--space-2); }
7931
7967
 
7932
7968
  /* Hero block */
7933
- .ds-247420 .site-hero { padding: 24px 22px; }
7969
+ .ds-247420 .site-hero { padding: var(--space-4); }
7934
7970
  .ds-247420 .site-hero-h { margin: 0 0 var(--space-2); }
7935
7971
  .ds-247420 .site-hero-body { margin: var(--space-2) 0 var(--space-3); color: var(--fg-2); max-width: 64ch; }
7936
7972
  .ds-247420 .site-chip-row { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 var(--space-3); }
7937
7973
  .ds-247420 .site-cta-row { display: flex; gap: var(--space-2); flex-wrap: wrap; }
7938
7974
 
7939
7975
  /* Quickstart CLI block — these .cli/.prompt/.cmd nodes were previously unstyled. */
7940
- .ds-247420 .site-cli { padding: 16px 22px; }
7941
- .ds-247420 .site-cli .cli { display: flex; gap: var(--space-2); font-family: var(--ff-mono); font-size: var(--fs-sm); padding: 2px 0; }
7976
+ .ds-247420 .site-cli { padding: var(--space-3); background: var(--bg); border: var(--bw-hair, 1px) solid var(--rule); border-radius: var(--r-1); }
7977
+ .ds-247420 .site-cli .cli { display: flex; align-items: baseline; gap: var(--space-2); font-family: var(--ff-mono); font-size: var(--fs-sm); padding: 2px 0; }
7942
7978
  .ds-247420 .site-cli .prompt { color: var(--fg-3); user-select: none; flex: 0 0 auto; }
7943
7979
  .ds-247420 .site-cli .cmd { color: var(--fg); white-space: pre-wrap; word-break: break-word; }
7944
7980
 
7945
- /* Embedded legacy doc (iframe wrapper) */
7946
- .ds-247420 .site-embed { width: 100%; height: calc(100vh - 180px); min-height: 520px; border: 0; border-radius: var(--r-1); background: var(--bg-2); display: block; }
7981
+ /* Embedded legacy doc (iframe wrapper). 180px = the page chrome (topbar +
7982
+ * crumb + footer) sitting above the embed; dvh keeps it mobile-safe. */
7983
+ .ds-247420 .site-embed { width: 100%; height: calc(100dvh - 180px); min-height: 320px; border: 0; border-radius: var(--r-1); background: var(--bg-2); display: block; }
7984
+
7985
+ /* Marketing footer family (the in-app .app-status strip suppresses content
7986
+ * below 1100px; the site footer always shows its credits row). */
7987
+ .ds-247420 .site-footer { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); width: 100%; padding: var(--space-3) var(--space-4); font-family: var(--ff-body); font-size: var(--fs-sm); line-height: 1.4; color: var(--fg-3); border-top: 1px solid var(--rule); }
7988
+ .ds-247420 .site-footer .item { color: inherit; }
7989
+ .ds-247420 .site-footer .item:first-of-type { color: var(--accent); }
7990
+ .ds-247420 .site-footer .spread { flex: 1; }
7947
7991
 
7948
7992
  /* spoint/loading-screen.css */
7949
7993
  /* Loading-screen kit styles. Scoped under .ds-247420 at build time.