anentrypoint-design 0.0.481 → 0.0.483

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/247420.css CHANGED
@@ -401,6 +401,17 @@
401
401
  --sidebar-width: 220px;
402
402
  --sidebar-width-collapsed: 64px;
403
403
 
404
+ /* Canonical breakpoint values — @media can't reference custom properties,
405
+ so these are documented here (not tokenized) for consistency across
406
+ responsive.css/responsive2-workspace.css/hero-content.css:
407
+ - 480px (max-width) mobile portrait
408
+ - 768px (max-width) mobile/tablet boundary, compact nav/sidebar collapse
409
+ - 768-1024px (min/max-width) tablet landscape band
410
+ - 900px (max-width) / 901px (min-width) tablet/desktop layout reflow
411
+ - 1025px (min-width) desktop
412
+ Always use these exact values; a near-miss (e.g. 760px, 481px) should be
413
+ aligned to its canonical neighbour when touched. */
414
+
404
415
  --lh-tall: 1.4;
405
416
 
406
417
  /* Control size scale — heights for status/topbar/crumb + controls. */
@@ -1356,13 +1367,26 @@
1356
1367
  .ds-247420 .app-main > .ds-file-stage,
1357
1368
  .ds-247420 .app-main > .ds-files-stack,
1358
1369
  .ds-247420 .app-main > .grow { flex: 1 1 auto; min-height: 0; }
1359
- .ds-247420 .app-main.narrow { max-width: var(--measure-narrow); margin: 0 auto; }
1370
+ /* width:100% is load-bearing, not redundant with max-width: .app-body is a
1371
+ CSS grid, and margin:auto on a grid item overrides the default stretch,
1372
+ shrinking the item to its max-content width instead of filling the track
1373
+ and then clamping -- confirmed live at 2560px viewport where mainWidth
1374
+ measured 688px against a correctly-resolved 1400px max-width. Explicit
1375
+ width:100% restores fill-then-cap for every .narrow page, not just wide
1376
+ viewports (the shrink-to-fit bug undersized even the base 760px case). */
1377
+ .ds-247420 .app-main.narrow { width: 100%; max-width: var(--measure-narrow); margin: 0 auto; }
1360
1378
  /* A shell with no sidebar has no competing column, so the prose clamp there was
1361
1379
  leaving the whole sidebar's worth of width empty -- 760px of content inside a
1362
1380
  1413px shell on a real page. Widen the clamp by the space the absent sidebar
1363
- would have taken so the measure still reads as prose, just not starved. */
1381
+ would have taken so the measure still reads as prose, just not starved.
1382
+ The floor stays a fixed 980px (no-side is still readable narrow); the
1383
+ ceiling grows with viewport instead of staying pinned at 980px forever --
1384
+ on a 2560px ultrawide the old fixed value left over half the shell as dead
1385
+ side margin. 1400px ceiling keeps prose measure sane (nobody wants a
1386
+ 2400px-wide paragraph) while letting non-prose content (index rows, meta)
1387
+ actually use the extra room. */
1364
1388
  .ds-247420 .app-body.no-side .app-main.narrow {
1365
- max-width: calc(var(--measure-narrow) + var(--sidebar-width));
1389
+ max-width: clamp(calc(var(--measure-narrow) + var(--sidebar-width)), 60vw, 1400px);
1366
1390
  }
1367
1391
  /* Article-body heading rhythm and lede spacing, consumed by flatspace-rendered
1368
1392
  long-form pages (docs, papers) that drop headings/panels directly into .app-main. */
@@ -1490,6 +1514,9 @@
1490
1514
  padding: 0 var(--space-4); font-size: var(--fs-body); gap: var(--space-2);
1491
1515
  }
1492
1516
 
1517
+ /* App chrome is compact/dense (see --fs-h1-app etc in colors_and_type.css) --
1518
+ the marketing-scale hover lift/shadow reads as an oversized flourish at
1519
+ this density, so app-typescale buttons opt out of it deliberately. */
1493
1520
  .ds-247420[data-typescale="app"] .btn:hover,
1494
1521
  .ds-247420[data-typescale="app"] .btn-primary:hover,
1495
1522
  .ds-247420[data-typescale="app"] .btn-ghost:hover { transform: none; box-shadow: none; }
@@ -1503,7 +1530,7 @@
1503
1530
  .ds-247420 .ds-icon-btn {
1504
1531
  display: inline-flex; align-items: center; justify-content: center;
1505
1532
  padding: 0; border: none; cursor: pointer;
1506
- border-radius: var(--r-1, 6px);
1533
+ border-radius: var(--r-1, 8px);
1507
1534
  background: transparent; color: var(--fg);
1508
1535
  width: 32px; height: 32px;
1509
1536
  transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
@@ -1535,7 +1562,7 @@
1535
1562
  border-radius: var(--r-pill);
1536
1563
  background: var(--bg-3); color: var(--fg-2);
1537
1564
  }
1538
- .ds-247420 .ds-badge.ds-badge--sm { min-width: 14px; height: 14px; padding: 0 var(--space-1); font-size: var(--fs-pico); }
1565
+ .ds-247420 .ds-badge.ds-badge--sm { min-width: var(--icon-xs); height: var(--icon-xs); padding: 0 var(--space-1); font-size: var(--fs-pico); }
1539
1566
  .ds-247420 .ds-badge.ds-badge--lg { min-width: 22px; height: 22px; padding: 0 var(--space-2); font-size: var(--fs-tiny); }
1540
1567
  .ds-247420 .ds-badge.tone-green, .ds-247420 .ds-badge.tone-live, .ds-247420 .ds-badge.tone-success {
1541
1568
  background: var(--green-tint); color: var(--green-deep);
@@ -1552,7 +1579,7 @@
1552
1579
  background: var(--sun); color: var(--ink);
1553
1580
  }
1554
1581
  .ds-247420 .ds-badge.tone-blue { background: var(--accent-tint); color: var(--accent-ink); }
1555
- .ds-247420 .ds-badge.tone-orange { background: color-mix(in oklab, var(--flame) 22%, var(--bg)); color: color-mix(in oklab, var(--flame) 65%, black); }
1582
+ .ds-247420 .ds-badge.tone-orange { background: color-mix(in oklab, var(--flame) 22%, var(--bg)); color: var(--flame); }
1556
1583
 
1557
1584
  .ds-247420 .chip {
1558
1585
  display: inline-flex; align-items: center; gap: var(--space-1-75);
@@ -1603,10 +1630,10 @@
1603
1630
  cursor: pointer;
1604
1631
  }
1605
1632
  .ds-247420 .ds-chip-remove-btn:hover, .ds-247420 .ds-chip-remove-btn:focus-visible { opacity: 1; background: color-mix(in oklab, currentColor 16%, transparent); }
1606
- .ds-247420 .ds-chip-remove-btn svg { width: 10px; height: 10px; }
1633
+ .ds-247420 .ds-chip-remove-btn svg { width: var(--icon-xs); height: var(--icon-xs); }
1607
1634
  @media (pointer: coarse) {
1608
1635
  .ds-247420 .ds-chip-remove-btn { width: 24px; height: 24px; margin-left: 0; }
1609
- .ds-247420 .ds-chip-remove-btn svg { width: 12px; height: 12px; }
1636
+ .ds-247420 .ds-chip-remove-btn svg { width: var(--icon-xs); height: var(--icon-xs); }
1610
1637
  }
1611
1638
 
1612
1639
  .ds-247420 .ds-pill {
@@ -1631,9 +1658,25 @@
1631
1658
  opacity: 0.8;
1632
1659
  }
1633
1660
  .ds-247420 .glyph { --glyph-size-sm: var(--fs-nano); --glyph-size-base: var(--fs-tiny); --glyph-size-lg: var(--fs-body); }
1634
- .ds-247420 .glyph-sm { width: 14px; height: 14px; }
1661
+ .ds-247420 .glyph-sm { width: var(--icon-xs); height: var(--icon-xs); }
1635
1662
  .ds-247420 .glyph-lg { width: 22px; height: 22px; }
1636
1663
 
1664
+ /* Shared empty-state base -- hero-content.css's .empty and community.css's
1665
+ .fd-empty previously duplicated this full rule set; both are joined into
1666
+ this selector list so the shared declarations live in one place, with
1667
+ each keeping its own file-local rule for context-specific extras
1668
+ (background/radius/font-size for .empty; padding for .fd-empty). New
1669
+ consumers can add .ds-empty-state directly instead of a fresh copy. */
1670
+ .ds-247420 .ds-empty-state, .ds-247420 .empty, .ds-247420 .fd-empty {
1671
+ display: flex; flex-direction: column; align-items: center; justify-content: center;
1672
+ gap: var(--space-2);
1673
+ padding: var(--space-6) var(--space-3);
1674
+ text-align: center;
1675
+ color: var(--fg-3);
1676
+ }
1677
+ .ds-247420 .ds-empty-state--panel { background: var(--bg-2); border-radius: var(--r-1); }
1678
+ .ds-247420 .ds-empty-state--compact { padding: var(--space-5) var(--space-3); }
1679
+
1637
1680
  /* ============================================================
1638
1681
  Panel — soft tonal container, no border decoration
1639
1682
  ============================================================ */
@@ -2421,13 +2464,12 @@
2421
2464
  /* ============================================================
2422
2465
  Empty state
2423
2466
  ============================================================ */
2467
+ /* Shares its base declarations with .ds-empty-state (primitives.css) via the
2468
+ combined selector there -- .empty only adds its own font-size/background/
2469
+ radius modifiers on top. Was --space-8 (96px) padding; --space-6 (48px)
2470
+ still centres a message with air without the empty state dominating the
2471
+ fold. */
2424
2472
  .ds-247420 .empty {
2425
- /* Was --space-8 (96px) — an empty list spent 192px of vertical space on
2426
- nothing. --space-6 (48px) still centres a message with air, without the
2427
- empty state dominating the fold. Mobile drops it further (below). */
2428
- padding: var(--space-6);
2429
- text-align: center;
2430
- color: var(--fg-3);
2431
2473
  background: var(--bg-2);
2432
2474
  border-radius: var(--r-1);
2433
2475
  font-size: var(--fs-sm);
@@ -2478,9 +2520,9 @@
2478
2520
  of this value, worth aligning to 768px when touched.
2479
2521
  - Tablet/desktop boundary: 900px (max-width) / 901px (min-width) — used for
2480
2522
  main layout reflow (hero-content.css, responsive2-workspace.css)
2481
- - Legacy tablet band: 481px–1024px (min-width 481px / max-width 1025px) —
2482
- used in this file (responsive.css) for a specific tablet treatment,
2483
- consider migrating to the 768/900 pair
2523
+ - Tablet landscape band: 768px–1024px (min-width 768px / max-width 1024px) —
2524
+ used in this file (responsive.css) for a specific tablet treatment;
2525
+ aligned to the 768px mobile/tablet boundary above (was 481px, a near-miss).
2484
2526
  */
2485
2527
 
2486
2528
  /* --------------------------------------------------------------------
@@ -2660,7 +2702,7 @@
2660
2702
  /* --------------------------------------------------------------------
2661
2703
  Tablet Landscape Breakpoint (768px to 1024px)
2662
2704
  ---------------------------------------------------------------------- */
2663
- @media (min-width: 481px) and (max-width: 1024px) {
2705
+ @media (min-width: 768px) and (max-width: 1024px) {
2664
2706
  /* App Layout — side handled by 900px drawer block; restore for 901-1024 */
2665
2707
  .ds-247420 .app-side a {
2666
2708
  padding: var(--space-2-75) var(--space-2-75); gap: var(--space-2);
@@ -3248,7 +3290,7 @@
3248
3290
  padding: var(--space-4) var(--space-3); text-align: center;
3249
3291
  }
3250
3292
  /* Icon size, not type — see .ds-file-cell-media .ds-file-icon above. */
3251
- .ds-247420 .ds-dropzone-glyph { font-size: 22px; color: var(--fg-3); }
3293
+ .ds-247420 .ds-dropzone-glyph { font-size: var(--icon-lg, 24px); color: var(--fg-3); }
3252
3294
  .ds-247420 .ds-dropzone-label { font-size: var(--fs-sm); color: var(--fg-3); }
3253
3295
  .ds-247420 .ds-dropzone.dragover {
3254
3296
  border-color: var(--accent);
@@ -4111,7 +4153,7 @@
4111
4153
 
4112
4154
  .ds-247420 .chat-typing { display: inline-flex; gap: var(--space-1); align-items: center; }
4113
4155
  .ds-247420 .chat-typing span {
4114
- width: 6px; height: 6px; border-radius: 50%; background: var(--fg-3);
4156
+ width: 8px; height: 8px; border-radius: 50%; background: var(--fg-3);
4115
4157
  }
4116
4158
 
4117
4159
  @media (prefers-reduced-motion: no-preference) {
@@ -5242,13 +5284,13 @@
5242
5284
  .ds-247420 .ds-spinner-lg { height: 24px; gap: var(--space-1-75); }
5243
5285
  .ds-247420 .ds-spinner-lg span { width: var(--space-1-75); height: var(--space-1-75); }
5244
5286
 
5245
- .ds-247420 .ds-spinner-sm { height: 12px; gap: var(--space-hair); }
5287
+ .ds-247420 .ds-spinner-sm { height: var(--space-2-5); gap: var(--space-hair); }
5246
5288
  .ds-247420 .ds-spinner-sm span { width: var(--space-hair); height: var(--space-hair); }
5247
5289
 
5248
- .ds-247420 .ds-spinner-xs { height: 8px; gap: 1px; }
5290
+ .ds-247420 .ds-spinner-xs { height: var(--space-2); gap: 1px; }
5249
5291
  .ds-247420 .ds-spinner-xs span { width: 1.5px; height: 1.5px; }
5250
5292
 
5251
- .ds-247420 .ds-spinner-xl { height: 32px; gap: var(--space-2); }
5293
+ .ds-247420 .ds-spinner-xl { height: var(--space-5); gap: var(--space-2); }
5252
5294
  .ds-247420 .ds-spinner-xl span { width: var(--space-2); height: var(--space-2); }
5253
5295
 
5254
5296
  @keyframes ds-bounce {
@@ -5256,6 +5298,11 @@
5256
5298
  40% { transform: translateY(-8px); }
5257
5299
  }
5258
5300
 
5301
+ /* Two spinner visual languages coexist intentionally: dots (.ds-spinner*)
5302
+ are for small inline/compact loading states (buttons, chips, list rows),
5303
+ the ring (.loading::after in states-interactions.css) is for larger
5304
+ blocking/full-region loading states (panels, full views). */
5305
+
5259
5306
  /* ============================================================
5260
5307
  Skeleton — animated loading placeholder
5261
5308
  ============================================================ */
@@ -5299,7 +5346,7 @@
5299
5346
  flex-shrink: 0;
5300
5347
  color: var(--alert-tone);
5301
5348
  font-weight: 600;
5302
- min-width: var(--space-3-5);
5349
+ min-width: var(--icon-md);
5303
5350
  text-align: center;
5304
5351
  }
5305
5352
 
@@ -5330,7 +5377,7 @@
5330
5377
  padding: 0;
5331
5378
  font-size: var(--fs-xs);
5332
5379
  line-height: 1;
5333
- min-width: var(--space-3-5);
5380
+ min-width: var(--icon-md);
5334
5381
  text-align: center;
5335
5382
  transition: color var(--dur-snap) var(--ease);
5336
5383
  }
@@ -5665,8 +5712,14 @@
5665
5712
  because the chat thread carries its own --measure gutter. */
5666
5713
  .ds-247420 .ws-main { flex: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; padding: var(--space-4) var(--space-5); }
5667
5714
  .ds-247420 .ws-main.ws-main--flush { padding: 0; }
5668
- /* Non-interactive scroll region (content column), not a focusable control — outline intentionally suppressed. */
5715
+ /* Skip-link target (workspace-shell.js's "#ws-main" skip-link, tabindex="-1")
5716
+ — it does receive real keyboard-driven focus when the skip link is
5717
+ activated, so it needs a visible ring rather than a bare outline:none. */
5669
5718
  .ds-247420 .ws-main:focus { outline: none; }
5719
+ .ds-247420 .ws-main:focus-visible {
5720
+ outline: var(--focus-w) solid var(--focus-color);
5721
+ outline-offset: calc(-1 * var(--focus-offset));
5722
+ }
5670
5723
 
5671
5724
  /* Right context pane */
5672
5725
  .ds-247420 .ws-pane {
@@ -5865,7 +5918,7 @@
5865
5918
  }
5866
5919
 
5867
5920
  /* Disabled file actions (read-only row / in-flight mutation) stay visible but inert. */
5868
- .ds-247420 .ds-file-act:disabled { opacity: .45; cursor: default; }
5921
+ .ds-247420 .ds-file-act:disabled { opacity: .5; cursor: default; }
5869
5922
  .ds-247420 .ds-file-act:disabled:hover { background: transparent; color: var(--fg-3); }
5870
5923
  .ds-247420 .ds-file-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
5871
5924
 
@@ -5949,10 +6002,6 @@
5949
6002
 
5950
6003
  /* PhaseWalk */
5951
6004
  .ds-247420 .ds-phasewalk { display: inline-flex; gap: var(--space-hair); vertical-align: middle; }
5952
- /* NOTE: a second toggle-switch-shaped implementation exists in
5953
- plugins-config.css:91 (.ds-plugins-toggle) at a different scale (40x22 vs
5954
- this 18x10) — consider consolidating into a shared .ds-switch primitive
5955
- with a size modifier. */
5956
6005
  .ds-247420 .ds-phasewalk-seg {
5957
6006
  width: 18px; height: 10px; border-radius: var(--r-hair);
5958
6007
  background: var(--bg-3); position: relative;
@@ -7361,15 +7410,16 @@
7361
7410
  }
7362
7411
  .ds-247420 .ds-plugins-version { font-size: var(--fs-micro); color: var(--fg-3); }
7363
7412
 
7364
- /* NOTE: a second toggle-switch implementation exists in data-density.css:18
7365
- (.ds-phasewalk-seg) at a different scale (18x10 vs this 40x22) — consider
7366
- consolidating into a shared .ds-switch primitive with a size modifier. */
7413
+ /* Same track/knob proportions as the shared .ds-toggle primitive
7414
+ (states-interactions.css) -- kept as its own class since ds-plugins-toggle
7415
+ is a plain <button>+.on instead of .ds-toggle's [aria-checked] contract,
7416
+ but sized and colored to match it exactly rather than drifting. */
7367
7417
  .ds-247420 .ds-plugins-toggle {
7368
- flex: 0 0 auto; width: 40px; height: 22px; border-radius: 11px; border: none; padding: 0;
7418
+ flex: 0 0 auto; width: 40px; height: 22px; border-radius: var(--r-pill, 999px); border: none; padding: 0;
7369
7419
  background: var(--rule); position: relative; cursor: pointer;
7370
7420
  transition: background var(--dur-snap) var(--ease);
7371
7421
  }
7372
- .ds-247420 .ds-plugins-toggle.on { background: var(--accent); }
7422
+ .ds-247420 .ds-plugins-toggle.on { background: var(--accent-ink); }
7373
7423
  .ds-247420 .ds-plugins-toggle[disabled] { cursor: wait; opacity: 0.65; }
7374
7424
  .ds-247420 .ds-plugins-toggle-knob {
7375
7425
  position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%;
@@ -8043,11 +8093,11 @@
8043
8093
  min-width: 18px;
8044
8094
  height: 18px;
8045
8095
  padding: 0 var(--space-1-5);
8046
- /* TODO(a11y): --paper is a fixed near-white on --warn (#FF5A52) -- likely
8047
- ~3:1, below the 4.5:1 AA floor (same defect fixed via --ink elsewhere
8048
- for --warn text). Small numeric badge; needs contrast audit. */
8096
+ /* --ink, not --paper: --paper is a fixed near-white, which measures ~3:1 on
8097
+ --warn (#FF5A52) -- below the 4.5:1 AA floor. --ink clears it (same fix
8098
+ as .btn-primary.danger in app-shell/files.css). */
8049
8099
  background: var(--warn);
8050
- color: var(--paper);
8100
+ color: var(--ink);
8051
8101
  font-family: var(--ff-mono);
8052
8102
  font-size: var(--fs-micro);
8053
8103
  font-weight: 700;
@@ -8378,11 +8428,11 @@
8378
8428
  min-width: 16px;
8379
8429
  height: 16px;
8380
8430
  padding: 0 var(--space-1-5);
8381
- /* TODO(a11y): --paper is a fixed near-white on --warn (#FF5A52) -- likely
8382
- ~3:1, below the 4.5:1 AA floor (same defect fixed via --ink elsewhere
8383
- for --warn text). Small numeric badge; needs contrast audit. */
8431
+ /* --ink, not --paper: --paper is a fixed near-white, which measures ~3:1 on
8432
+ --warn (#FF5A52) -- below the 4.5:1 AA floor. --ink clears it (same fix
8433
+ as .btn-primary.danger in app-shell/files.css). */
8384
8434
  background: var(--warn);
8385
- color: var(--paper);
8435
+ color: var(--ink);
8386
8436
  font-family: var(--ff-mono);
8387
8437
  font-size: var(--fs-micro);
8388
8438
  font-weight: 700;
@@ -9599,13 +9649,15 @@
9599
9649
  .ds-247420 .fd-page-inner { display: flex; flex-direction: column; gap: var(--space-3, 16px); padding: var(--space-3, 16px); max-width: 1100px; }
9600
9650
  .ds-247420 .fd-page-inner > * { min-width: 0; }
9601
9651
  .ds-247420 .fd-loading { display: flex; align-items: center; gap: var(--space-2, 10px); padding: var(--space-4, 24px); color: var(--fg-2, var(--fg)); }
9602
- .ds-247420 .fd-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2, 10px); padding: var(--space-5, 32px) var(--space-3, 16px); color: var(--fg-2, var(--fg)); text-align: center; }
9652
+ /* Base layout shared with .ds-empty-state (primitives.css); overrides padding
9653
+ (--space-5, denser than the shared --space-6) and color for this context. */
9654
+ .ds-247420 .fd-empty { padding: var(--space-5, 32px) var(--space-3, 16px); color: var(--fg-2, var(--fg)); }
9603
9655
  /* 28px is an ICON size (empty-state mark), not a type tier — the --fs-* ladder
9604
9656
  tops out at --fs-xl (21px) before every remaining rung becomes a fluid
9605
9657
  heading clamp, so neither substitutes without visibly resizing the mark.
9606
9658
  --fs-2xl bridges that gap as a fixed 28px token. */
9607
9659
  .ds-247420 .fd-empty-glyph { font-size: var(--fs-2xl); opacity: .55; line-height: 1; }
9608
- .ds-247420 .fd-pre { margin: 0; padding: var(--space-2, 10px); background: var(--bg-3, var(--panel-bg-2)); border: var(--bw-hair, 1px) solid var(--rule, var(--panel-accent)); border-radius: var(--r-1, 6px); overflow: auto; max-height: 460px; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font-family: var(--font-mono, ui-monospace, monospace); font-size: var(--fs-micro); line-height: 1.5; }
9660
+ .ds-247420 .fd-pre { margin: 0; padding: var(--space-2, 10px); background: var(--bg-3, var(--panel-bg-2)); border: var(--bw-hair, 1px) solid var(--rule, var(--panel-accent)); border-radius: var(--r-1, 8px); overflow: auto; max-height: 460px; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font-family: var(--font-mono, ui-monospace, monospace); font-size: var(--fs-micro); line-height: 1.5; }
9609
9661
  .ds-247420 .fd-skill-body { max-height: 320px; }
9610
9662
  .ds-247420 .fd-row-actions { display: inline-flex; gap: var(--space-1, 6px); align-items: center; }
9611
9663
  .ds-247420 .fd-chat { display: flex; flex-direction: column; gap: var(--space-2, 10px); height: 100%; min-height: 0; }
@@ -9868,7 +9920,7 @@
9868
9920
  .ds-247420 .chat-msg-action {
9869
9921
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-1);
9870
9922
  min-width: 26px; height: 26px; padding: 0 var(--space-1-75); cursor: pointer;
9871
- border: none; border-radius: var(--r-1, 4px); background: none; color: var(--fg-3);
9923
+ border: none; border-radius: var(--r-1, 8px); background: none; color: var(--fg-3);
9872
9924
  font-family: var(--ff-body); font-size: var(--fs-tiny);
9873
9925
  }
9874
9926
  .ds-247420 .chat-msg-action-label { font-size: var(--fs-tiny); }
@@ -9936,7 +9988,7 @@
9936
9988
  display: flex; align-items: center; gap: var(--space-2, 8px);
9937
9989
  padding: var(--space-1, 4px) var(--space-2, 8px);
9938
9990
  border: var(--bw-hair) solid var(--rule);
9939
- border-radius: var(--r-1, 4px);
9991
+ border-radius: var(--r-1, 8px);
9940
9992
  background: var(--bg-2);
9941
9993
  }
9942
9994
  .ds-247420 .agentchat-install-agent { flex: 0 0 auto; font-size: var(--fs-tiny); color: var(--fg-3); min-width: 8ch; }
@@ -9946,7 +9998,7 @@
9946
9998
  }
9947
9999
  .ds-247420 .agentchat-install-copy {
9948
10000
  flex: 0 0 auto; cursor: pointer; padding: var(--space-hair) var(--space-2); min-height: 24px;
9949
- border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-1, 4px);
10001
+ border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-1, 8px);
9950
10002
  background: none; color: var(--fg-3);
9951
10003
  font-family: var(--ff-body); font-size: var(--fs-tiny);
9952
10004
  }
@@ -9957,7 +10009,7 @@
9957
10009
  /* Host-supplied transcript export actions riding the controls row. */
9958
10010
  .ds-247420 .agentchat-export-act {
9959
10011
  cursor: pointer; padding: var(--space-1) var(--space-2-5); min-height: 32px;
9960
- border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-1, 4px);
10012
+ border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-1, 8px);
9961
10013
  background: none; color: var(--fg-3);
9962
10014
  font-family: var(--ff-body); font-size: var(--fs-tiny);
9963
10015
  }
@@ -10190,7 +10242,7 @@
10190
10242
  background: var(--bg); border: var(--border-w) solid var(--accent); border-radius: var(--r-1);
10191
10243
  padding: var(--space-1) var(--space-2);
10192
10244
  }
10193
- .ds-247420 .ds-session-rename-input:focus { outline: none; box-shadow: var(--focus-ring-inset); }
10245
+ .ds-247420 .ds-session-rename-input:focus-visible { outline: none; box-shadow: var(--focus-ring-inset); }
10194
10246
 
10195
10247
  /* Inline delete confirm — same row height, two flat buttons, no modal;
10196
10248
  mirrors SessionDashboard's arm-then-confirm bulk-stop control. */
@@ -10232,7 +10284,7 @@
10232
10284
  .ds-247420 .ds-dash-header .btn-primary.danger.is-armed { background: var(--warn); color: var(--ink); border-color: var(--warn); }
10233
10285
  .ds-247420 .ds-dash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-2); padding: var(--space-3); }
10234
10286
  @media (min-width: 1500px) { .ds-247420 .ds-dash-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } }
10235
- .ds-247420 .ds-dash-card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-2); }
10287
+ .ds-247420 .ds-dash-card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-1); }
10236
10288
 
10237
10289
  /* Compact density — one line per session. The comfortable card stacks title +
10238
10290
  head + meta + actions as four flex rows and measured 208px tall on a real
@@ -10400,7 +10452,7 @@
10400
10452
  position: absolute; top: 6px; right: 6px;
10401
10453
  display: inline-flex; align-items: center; justify-content: center;
10402
10454
  min-width: 48px; min-height: 24px; padding: var(--space-hair) var(--space-2);
10403
- border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-1, 4px);
10455
+ border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-1, 8px);
10404
10456
  background: var(--bg-2); color: var(--fg-2); cursor: pointer;
10405
10457
  font-family: var(--ff-body); font-size: var(--fs-tiny);
10406
10458
  opacity: 0; transition: opacity var(--dur-snap, .12s) var(--ease, ease);
@@ -11194,7 +11246,7 @@
11194
11246
  /* Buttons inside the dense strip shrink to fit the 26px band. */
11195
11247
  .ds-247420 .ds-ep-statusbar button {
11196
11248
  min-height: 0; height: 20px; padding: 0 var(--space-2);
11197
- border-radius: var(--r-1, 4px);
11249
+ border-radius: var(--r-1, 8px);
11198
11250
  font: var(--fs-micro, 11px)/1 var(--ff-mono, monospace);
11199
11251
  }
11200
11252
 
@@ -11226,7 +11278,7 @@
11226
11278
  border: 1px solid var(--rule);
11227
11279
  color: var(--panel-text, var(--fg));
11228
11280
  padding: var(--space-1-5, 5px) var(--space-2-5, 10px);
11229
- border-radius: var(--r-1, 4px);
11281
+ border-radius: var(--r-1, 8px);
11230
11282
  font-size: var(--fs-tiny, 12px);
11231
11283
  font-family: inherit;
11232
11284
  }
@@ -11344,7 +11396,7 @@
11344
11396
  .ds-247420 .ds-ep-tree-row {
11345
11397
  display: flex; align-items: center; gap: var(--space-1-75);
11346
11398
  padding: var(--space-1) var(--space-2) var(--space-1) 0;
11347
- border-radius: var(--r-1, 10px);
11399
+ border-radius: var(--r-1, 8px);
11348
11400
  cursor: pointer;
11349
11401
  color: var(--panel-text-2);
11350
11402
  transition: background var(--dur-snap, 80ms) var(--ease, ease), color var(--dur-snap, 80ms) var(--ease, ease);
@@ -11406,7 +11458,7 @@
11406
11458
  background: var(--panel-2);
11407
11459
  color: var(--panel-text);
11408
11460
  border: 1px solid var(--rule);
11409
- border-radius: var(--r-1, 10px);
11461
+ border-radius: var(--r-1, 8px);
11410
11462
  padding: var(--space-1) var(--space-2);
11411
11463
  font: inherit;
11412
11464
  min-width: 0; width: 100%;
@@ -11447,7 +11499,7 @@
11447
11499
  .ds-247420 .ds-ep-propfield-value input,
11448
11500
  .ds-247420 .ds-ep-propfield-value .ds-input-bare {
11449
11501
  padding: var(--space-hair) var(--space-1-75);
11450
- border-radius: var(--r-1, 4px);
11502
+ border-radius: var(--r-1, 8px);
11451
11503
  font: var(--fs-tiny, 12px)/1.3 var(--ff-mono, monospace);
11452
11504
  }
11453
11505
  .ds-247420 .ds-input-bare {
@@ -11455,7 +11507,7 @@
11455
11507
  background: var(--panel-2);
11456
11508
  color: var(--panel-text);
11457
11509
  border: 1px solid var(--rule);
11458
- border-radius: var(--r-1, 4px);
11510
+ border-radius: var(--r-1, 8px);
11459
11511
  padding: var(--space-hair) var(--space-1-75);
11460
11512
  font: var(--fs-tiny, 12px)/1.3 var(--ff-mono, monospace);
11461
11513
  min-width: 0;
@@ -11497,7 +11549,7 @@
11497
11549
  border: 1px solid transparent;
11498
11550
  color: inherit; font: inherit;
11499
11551
  width: 100%;
11500
- border-radius: var(--r-1, 4px);
11552
+ border-radius: var(--r-1, 8px);
11501
11553
  padding: var(--space-hair, 2px) var(--space-1, 4px);
11502
11554
  }
11503
11555
  .ds-247420 .ds-ep-inline-input.ds-ep-inline-input:focus-visible {
@@ -11524,7 +11576,7 @@
11524
11576
  width: 100%;
11525
11577
  /* Snapped to --ctl-sm (was a lone 28px literal that happened to match). */
11526
11578
  min-height: var(--ctl-sm); height: var(--ctl-sm); padding: 0 var(--space-2-5);
11527
- border-radius: var(--r-1, 4px);
11579
+ border-radius: var(--r-1, 8px);
11528
11580
  font: var(--fs-tiny, 12px)/1 var(--ff-mono, monospace);
11529
11581
  }
11530
11582
 
@@ -11534,7 +11586,7 @@
11534
11586
  .ds-247420 .ds-ep-tree-row button:not(.ds-ep-btngrp-btn),
11535
11587
  .ds-247420 .ds-ep-toolbar button:not(.ds-ep-btngrp-btn) {
11536
11588
  min-height: 24px; height: 24px; padding: 0 var(--space-2);
11537
- border-radius: var(--r-1, 4px);
11589
+ border-radius: var(--r-1, 8px);
11538
11590
  font: var(--fs-tiny, 12px)/1 var(--ff-mono, monospace);
11539
11591
  }
11540
11592
  @media (pointer: coarse) {
@@ -11561,7 +11613,7 @@
11561
11613
  border: 1px solid var(--rule);
11562
11614
  color: var(--panel-text, var(--fg));
11563
11615
  padding: var(--space-half, 3px) var(--space-2-5, 10px);
11564
- border-radius: var(--r-1, 4px);
11616
+ border-radius: var(--r-1, 8px);
11565
11617
  font: inherit;
11566
11618
  }
11567
11619
  .ds-247420 .ds-ep-pager-btn:hover:not([disabled]) { background: color-mix(in oklab, var(--accent) 10%, transparent); }
@@ -11579,7 +11631,7 @@
11579
11631
  computed to 23px -- just under the target floor. */
11580
11632
  min-width: max(24px, 1.75em);
11581
11633
  padding: var(--space-half, 3px) var(--space-1, 4px);
11582
- border-radius: var(--r-1, 4px);
11634
+ border-radius: var(--r-1, 8px);
11583
11635
  font: inherit;
11584
11636
  text-align: center;
11585
11637
  }
@@ -11658,7 +11710,7 @@
11658
11710
  background: var(--panel-2, var(--bg-2));
11659
11711
  color: var(--panel-text, var(--fg));
11660
11712
  padding: var(--space-2, 8px);
11661
- border-radius: var(--r-1, var(--r-2, 4px));
11713
+ border-radius: var(--r-1, 8px);
11662
11714
  max-height: 300px;
11663
11715
  overflow-y: auto;
11664
11716
  margin: 0;
@@ -11686,7 +11738,7 @@
11686
11738
  .ds-247420 .ds-ep-json-sum {
11687
11739
  cursor: pointer; user-select: none;
11688
11740
  list-style: none;
11689
- border-radius: var(--r-1, 4px);
11741
+ border-radius: var(--r-1, 8px);
11690
11742
  }
11691
11743
  .ds-247420 .ds-ep-json-sum::-webkit-details-marker { display: none; }
11692
11744
  .ds-247420 .ds-ep-json-sum::before {
@@ -11716,7 +11768,7 @@
11716
11768
  color: var(--panel-text-2, var(--fg-2));
11717
11769
  font: var(--fs-micro, 11px)/1 var(--ff-mono, monospace);
11718
11770
  padding: var(--space-half, 3px) var(--space-2, 8px);
11719
- border-radius: var(--r-1, 4px);
11771
+ border-radius: var(--r-1, 8px);
11720
11772
  opacity: 0.75;
11721
11773
  }
11722
11774
  .ds-247420 .ds-ep-json-copy:hover { opacity: 1; border-color: var(--accent); }
@@ -11763,7 +11815,7 @@
11763
11815
  .ds-247420 .ds-ep-btngrp {
11764
11816
  display: inline-flex;
11765
11817
  border: 1px solid var(--rule);
11766
- border-radius: var(--r-1, 10px);
11818
+ border-radius: var(--r-1, 8px);
11767
11819
  overflow: hidden;
11768
11820
  background: var(--panel-2);
11769
11821
  }
@@ -11850,7 +11902,7 @@
11850
11902
  padding: var(--space-2) var(--space-2-5);
11851
11903
  background: transparent; border: 0;
11852
11904
  color: inherit; font: inherit; text-align: left;
11853
- border-radius: var(--r-1, 4px);
11905
+ border-radius: var(--r-1, 8px);
11854
11906
  cursor: pointer;
11855
11907
  }
11856
11908
  .ds-247420 .ds-ep-ctxmenu-item:hover:not(.disabled),
@@ -11925,7 +11977,7 @@
11925
11977
  min-height: var(--ctl-sm); padding: 0 var(--space-3);
11926
11978
  display: inline-flex; align-items: center; justify-content: center;
11927
11979
  border: 1px solid var(--rule);
11928
- border-radius: var(--r-1, 6px);
11980
+ border-radius: var(--r-1, 8px);
11929
11981
  background: var(--panel-2, transparent);
11930
11982
  color: inherit; font: inherit; cursor: pointer;
11931
11983
  }
@@ -11962,7 +12014,7 @@
11962
12014
  .kind-error below recolour border-left-color and nothing else. Do not
11963
12015
  demote to a hairline; that would erase the status signal. */
11964
12016
  border-left: var(--bw-chunk) solid var(--accent);
11965
- border-radius: var(--r-1, 6px);
12017
+ border-radius: var(--r-1, 8px);
11966
12018
  padding: var(--space-2) var(--space-2-75);
11967
12019
  box-shadow: var(--shadow-3);
11968
12020
  min-width: 220px; max-width: 360px;
@@ -11985,7 +12037,7 @@
11985
12037
  font: inherit;
11986
12038
  font-weight: 600;
11987
12039
  padding: var(--space-1) var(--space-1-75);
11988
- border-radius: var(--r-1, 6px);
12040
+ border-radius: var(--r-1, 8px);
11989
12041
  cursor: pointer;
11990
12042
  }
11991
12043
  .ds-247420 .ds-ep-toast-action:hover { background: var(--panel-2, var(--panel-bg)); }
@@ -12188,7 +12240,7 @@
12188
12240
  background: var(--panel-1, var(--panel-bg));
12189
12241
  color: var(--panel-text, var(--fg-text));
12190
12242
  border: 1px solid var(--rule);
12191
- border-radius: var(--r-1, 6px);
12243
+ border-radius: var(--r-1, 8px);
12192
12244
  padding: var(--space-1-75) var(--space-2-5);
12193
12245
  font-size: var(--fs-micro);
12194
12246
  line-height: 1.4;
@@ -12241,7 +12293,7 @@
12241
12293
  padding: var(--space-1-5) var(--space-2-75);
12242
12294
  background: transparent; border: 0;
12243
12295
  color: inherit; font: inherit; text-align: left;
12244
- border-radius: var(--r-1, 4px);
12296
+ border-radius: var(--r-1, 8px);
12245
12297
  cursor: pointer;
12246
12298
  }
12247
12299
  .ds-247420 .ds-dropdown-item:hover,
@@ -12270,7 +12322,7 @@
12270
12322
  background: var(--panel-2, transparent);
12271
12323
  color: inherit; font: inherit;
12272
12324
  border: 1px solid var(--rule);
12273
- border-radius: var(--r-1, 6px);
12325
+ border-radius: var(--r-1, 8px);
12274
12326
  padding: 0 var(--space-2-75);
12275
12327
  cursor: pointer;
12276
12328
  /* Snapped to the --ctl-sm rung so this small control shares the height
@@ -12293,7 +12345,7 @@
12293
12345
  padding: var(--space-1-5) var(--space-2-75);
12294
12346
  background: transparent; border: 0;
12295
12347
  color: inherit; font: inherit; text-align: left;
12296
- border-radius: var(--r-1, 4px);
12348
+ border-radius: var(--r-1, 8px);
12297
12349
  cursor: pointer;
12298
12350
  width: 100%;
12299
12351
  }
@@ -12320,7 +12372,7 @@
12320
12372
  }
12321
12373
  .ds-247420 .ov-menubutton-retry {
12322
12374
  appearance: none; background: transparent; border: 1px solid var(--rule);
12323
- border-radius: var(--r-1, 4px); color: inherit; font: inherit; font-size: var(--fs-sm);
12375
+ border-radius: var(--r-1, 8px); color: inherit; font: inherit; font-size: var(--fs-sm);
12324
12376
  padding: var(--space-hair) var(--space-1-5); cursor: pointer;
12325
12377
  }
12326
12378
  .ds-247420 .ov-menubutton-retry:hover, .ds-247420 .ov-menubutton-retry:focus-visible { background: var(--panel-2, var(--rule)); outline: none; }
@@ -12329,7 +12381,7 @@
12329
12381
  background: var(--panel-2, transparent);
12330
12382
  color: inherit; font: inherit;
12331
12383
  border: 1px solid var(--rule);
12332
- border-radius: var(--r-1, 6px);
12384
+ border-radius: var(--r-1, 8px);
12333
12385
  padding: 0 var(--space-2-75);
12334
12386
  cursor: pointer;
12335
12387
  min-height: var(--ctl-sm); height: var(--ctl-sm);
@@ -12347,7 +12399,7 @@
12347
12399
  .ds-247420 .ds-ep-diagnostics-title { margin: 0; font-size: var(--fs-lg); }
12348
12400
  .ds-247420 .ds-ep-diagnostics-refresh {
12349
12401
  appearance: none; background: var(--panel-2, transparent); color: inherit; font: inherit;
12350
- border: 1px solid var(--rule); border-radius: var(--r-1, 6px);
12402
+ border: 1px solid var(--rule); border-radius: var(--r-1, 8px);
12351
12403
  padding: var(--space-1) var(--space-2-75); cursor: pointer;
12352
12404
  }
12353
12405
  .ds-247420 .ds-ep-diagnostics-refresh:disabled { opacity: 0.6; cursor: not-allowed; }
@@ -12369,7 +12421,7 @@
12369
12421
  .ds-247420 .ds-reorderable-horizontal { flex-direction: row; }
12370
12422
  .ds-247420 .ds-reorder-item {
12371
12423
  display: flex; align-items: center; gap: var(--space-2, 8px);
12372
- padding: var(--space-1, 4px); border-radius: var(--r-1, 10px);
12424
+ padding: var(--space-1, 4px); border-radius: var(--r-1, 8px);
12373
12425
  background: var(--panel-1); color: var(--panel-text);
12374
12426
  transition: transform var(--dur-snap, 120ms) var(--ease, ease), opacity var(--dur-snap, 120ms) var(--ease, ease);
12375
12427
  }
@@ -12377,7 +12429,7 @@
12377
12429
  min-width: 44px; min-height: 44px;
12378
12430
  display: inline-flex; align-items: center; justify-content: center;
12379
12431
  appearance: none; background: transparent; color: var(--panel-text-2, var(--panel-text));
12380
- border: 0; border-radius: var(--r-1, 10px);
12432
+ border: 0; border-radius: var(--r-1, 8px);
12381
12433
  cursor: grab; font: 14px/1 var(--ff-mono, monospace); letter-spacing: -2px;
12382
12434
  touch-action: none; user-select: none;
12383
12435
  }
@@ -12401,7 +12453,7 @@
12401
12453
  display: inline-block; font: 0.85em/1 var(--ff-mono, monospace);
12402
12454
  padding: var(--space-1, 4px) calc(var(--space-1, 4px) * 1.5);
12403
12455
  border: 1px solid var(--rule, var(--panel-text-3));
12404
- border-radius: var(--r-1, 10px);
12456
+ border-radius: var(--r-1, 8px);
12405
12457
  background: var(--panel-2, var(--panel-1)); color: var(--panel-text);
12406
12458
  }
12407
12459
  .ds-247420 .ds-kbd-group { margin: var(--space-3, 16px) 0; }
@@ -12455,7 +12507,7 @@
12455
12507
  padding: var(--space-2, 8px) var(--space-3, 16px);
12456
12508
  background: transparent; border: 0;
12457
12509
  color: var(--fg); font: inherit; text-align: left;
12458
- border-radius: var(--r-1, 10px); cursor: pointer;
12510
+ border-radius: var(--r-1, 8px); cursor: pointer;
12459
12511
  }
12460
12512
  .ds-247420 .ov-cmd-item:hover { background: var(--panel-2, var(--rule)); }
12461
12513
  .ds-247420 .ov-cmd-item.is-active { background: var(--accent); color: var(--accent-fg); }
@@ -12486,7 +12538,7 @@
12486
12538
  .ds-247420 .ov-emoji-search {
12487
12539
  flex-shrink: 0; margin: var(--space-2, 8px); margin-bottom: 0;
12488
12540
  padding: var(--space-1-5, 6px) var(--space-2, 8px);
12489
- border: 1px solid var(--rule); border-radius: var(--r-1, 10px);
12541
+ border: 1px solid var(--rule); border-radius: var(--r-1, 8px);
12490
12542
  background: var(--bg-1, var(--bg-3)); color: var(--fg);
12491
12543
  font: inherit; font-size: var(--fs-sm, 13px);
12492
12544
  }
@@ -12508,7 +12560,7 @@
12508
12560
  .ds-247420 .ov-emoji-cell {
12509
12561
  appearance: none; border: 0; background: transparent;
12510
12562
  aspect-ratio: 1; font-size: var(--fs-lg, 18px);
12511
- border-radius: var(--r-1, 10px); cursor: pointer;
12563
+ border-radius: var(--r-1, 8px); cursor: pointer;
12512
12564
  display: inline-flex; align-items: center; justify-content: center;
12513
12565
  }
12514
12566
  .ds-247420 .ov-emoji-cell:hover, .ds-247420 .ov-emoji-cell:focus-visible {
@@ -12598,7 +12650,7 @@
12598
12650
  .ds-247420 .ov-set-control {
12599
12651
  appearance: none; flex-shrink: 0; max-width: 55%;
12600
12652
  background: var(--bg-3); color: var(--fg);
12601
- border: 1px solid var(--rule); border-radius: var(--r-1, 10px);
12653
+ border: 1px solid var(--rule); border-radius: var(--r-1, 8px);
12602
12654
  padding: var(--space-1, 4px) var(--space-2, 8px); font: inherit;
12603
12655
  }
12604
12656
  .ds-247420 .ov-set-control:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; border-color: var(--accent-ink); }
@@ -12607,7 +12659,7 @@
12607
12659
  .ds-247420 .ov-set-btn {
12608
12660
  width: 100%; appearance: none; cursor: pointer;
12609
12661
  background: var(--accent); color: var(--accent-fg);
12610
- border: 0; border-radius: var(--r-1, 10px);
12662
+ border: 0; border-radius: var(--r-1, 8px);
12611
12663
  padding: var(--space-2, 8px); font: inherit;
12612
12664
  }
12613
12665
 
@@ -12693,7 +12745,7 @@
12693
12745
  .ds-247420 .ds-input-color {
12694
12746
  appearance: none; -webkit-appearance: none;
12695
12747
  width: 28px; height: 22px; padding: 0;
12696
- border: 1px solid var(--rule); border-radius: var(--r-1, 4px);
12748
+ border: 1px solid var(--rule); border-radius: var(--r-1, 8px);
12697
12749
  background: var(--panel-2); cursor: pointer; flex-shrink: 0;
12698
12750
  }
12699
12751
  .ds-247420 .ds-input-color::-webkit-color-swatch-wrapper { padding: var(--space-hair); }
@@ -12702,7 +12754,7 @@
12702
12754
  .ds-247420 .ds-input-check {
12703
12755
  appearance: none; -webkit-appearance: none;
12704
12756
  width: 16px; height: 16px; flex-shrink: 0;
12705
- border: 1px solid var(--rule); border-radius: var(--r-1, 4px);
12757
+ border: 1px solid var(--rule); border-radius: var(--r-1, 8px);
12706
12758
  background: var(--panel-2); cursor: pointer; position: relative;
12707
12759
  }
12708
12760
  .ds-247420 .ds-input-check:checked { background: var(--accent); border-color: var(--accent); }
@@ -12788,7 +12840,7 @@
12788
12840
  /* Collapse / CollapseGroup — progressive-disclosure toggle panel. */
12789
12841
  .ds-247420 .ds-ep-collapse {
12790
12842
  border: 1px solid var(--rule);
12791
- border-radius: var(--r-1, 4px);
12843
+ border-radius: var(--r-1, 8px);
12792
12844
  background: var(--panel-2, var(--bg-2));
12793
12845
  }
12794
12846
  .ds-247420 .ds-ep-collapse + .ds-ep-collapse { margin-top: var(--space-1, 4px); }
@@ -12851,7 +12903,7 @@
12851
12903
  padding: var(--space-2, 8px) var(--space-3, 16px);
12852
12904
  background: transparent; border: 0;
12853
12905
  color: var(--fg); font: inherit; text-align: left;
12854
- border-radius: var(--r-1, 10px); cursor: pointer;
12906
+ border-radius: var(--r-1, 8px); cursor: pointer;
12855
12907
  }
12856
12908
  .ds-247420 .ov-perm-item:hover { background: var(--panel-2, var(--rule)); }
12857
12909
  .ds-247420 .ov-perm-item[aria-checked="true"] { color: var(--accent-ink); }
@@ -12866,7 +12918,7 @@
12866
12918
  .ds-247420 .ov-perm-action {
12867
12919
  flex: 1; appearance: none; border: 1px solid var(--rule); background: transparent;
12868
12920
  color: var(--fg-2); font: inherit; font-size: var(--fs-tiny, 12px);
12869
- padding: var(--space-1) var(--space-2); border-radius: var(--r-1, 10px); cursor: pointer;
12921
+ padding: var(--space-1) var(--space-2); border-radius: var(--r-1, 8px); cursor: pointer;
12870
12922
  }
12871
12923
  .ds-247420 .ov-perm-action:hover { background: var(--panel-2, var(--rule)); }
12872
12924
 
@@ -12889,14 +12941,14 @@
12889
12941
  .ds-247420 .ov-approval-cat { color: var(--fg-3); font-weight: 400; }
12890
12942
  .ds-247420 .ov-approval-args {
12891
12943
  margin: 0; padding: var(--space-2, 8px);
12892
- background: var(--panel-2, var(--rule)); border-radius: var(--r-1, 10px);
12944
+ background: var(--panel-2, var(--rule)); border-radius: var(--r-1, 8px);
12893
12945
  font: var(--fs-tiny, 12px)/1.4 var(--ff-mono, monospace);
12894
12946
  color: var(--fg-3); max-height: 100px; overflow: auto; white-space: pre-wrap; word-break: break-all;
12895
12947
  }
12896
12948
  .ds-247420 .ov-approval-note {
12897
12949
  width: 100%; min-height: 48px; resize: vertical;
12898
12950
  padding: var(--space-2, 8px) var(--space-2-75, 12px);
12899
- border: var(--bw-hair) solid var(--rule); border-radius: var(--r-1, 10px);
12951
+ border: var(--bw-hair) solid var(--rule); border-radius: var(--r-1, 8px);
12900
12952
  background: var(--bg); color: var(--fg); font: inherit; box-sizing: border-box;
12901
12953
  }
12902
12954
  .ds-247420 .ov-approval-note:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
@@ -13266,7 +13318,7 @@
13266
13318
  .ds-247420 .health-summary { display: flex; flex-wrap: wrap; gap: .4em; margin: .6em 0; }
13267
13319
  .ds-247420 .health-chip {
13268
13320
  font-family: var(--ff-mono, ui-monospace, monospace);
13269
- font-size: .8rem; padding: .15em .55em; border-radius: var(--r-1, 6px);
13321
+ font-size: .8rem; padding: .15em .55em; border-radius: var(--r-1, 8px);
13270
13322
  background: color-mix(in srgb, var(--fg) 8%, transparent);
13271
13323
  color: var(--fg-2);
13272
13324
  border: var(--bw-hair, 1px) solid color-mix(in srgb, var(--fg) 12%, transparent);
@@ -13284,7 +13336,7 @@
13284
13336
  .ds-247420 .ds-status-chip {
13285
13337
  display: inline-flex; align-items: center; gap: .35em;
13286
13338
  font-family: var(--ff-mono, ui-monospace, monospace);
13287
- font-size: .8rem; padding: .15em .55em; border-radius: var(--r-1, 6px);
13339
+ font-size: .8rem; padding: .15em .55em; border-radius: var(--r-1, 8px);
13288
13340
  background: color-mix(in srgb, var(--fg) 8%, transparent);
13289
13341
  color: var(--fg-2);
13290
13342
  border: var(--bw-hair, 1px) solid color-mix(in srgb, var(--fg) 12%, transparent);
@@ -13312,7 +13364,7 @@
13312
13364
  }
13313
13365
  .ds-247420 .cwd-bar-btn {
13314
13366
  cursor: pointer; font: inherit; line-height: 1.3;
13315
- padding: .15em .55em; border-radius: var(--r-1, 6px);
13367
+ padding: .15em .55em; border-radius: var(--r-1, 8px);
13316
13368
  background: color-mix(in srgb, var(--fg) 8%, transparent);
13317
13369
  border: var(--bw-hair, 1px) solid color-mix(in srgb, var(--fg) 14%, transparent);
13318
13370
  color: var(--fg-2);
@@ -13400,7 +13452,7 @@
13400
13452
  /* Re-assert the paper-tuned signal tokens so token-derived foregrounds
13401
13453
  (status discs, error text, tool cards) print with light-theme colours
13402
13454
  rather than the dark-theme-derived values inherited under auto-dark. */
13403
- .ds-247420 { --flame:#C53E00; --amber:#7C570F; --warn:#E0241A; --sky:#3A6EFF; --bg:var(--paper); --fg:var(--ink); }
13455
+ .ds-247420 { --flame:#C53E00; --amber:#7C570F; --warn:#C41C0C; --sky:#3A6EFF; --bg:var(--paper); --fg:var(--ink); }
13404
13456
  .ds-247420 #app { min-height: auto; display: block; height: auto; }
13405
13457
  .ds-247420 .skip-link, .ds-247420 .status-dot, .ds-247420 .history-actions, .ds-247420 .chat-composer { display: none !important; }
13406
13458
  .ds-247420 .app, .ds-247420 .app-main, .ds-247420 .panel, .ds-247420 .chat, .ds-247420 .chat-thread {
@@ -13858,8 +13910,8 @@
13858
13910
  width: min(360px, 88vw);
13859
13911
  display: flex;
13860
13912
  flex-direction: column;
13861
- gap: 12px;
13862
- padding: 24px;
13913
+ gap: var(--space-2-75);
13914
+ padding: var(--space-4);
13863
13915
  background: var(--bg-2);
13864
13916
  border: 1px solid var(--bw-rule, var(--rule));
13865
13917
  border-radius: var(--r-2, 10px);
@@ -13888,7 +13940,7 @@
13888
13940
  font-family: var(--ff-mono);
13889
13941
  font-size: var(--fs-body);
13890
13942
  padding: 10px 14px;
13891
- border-radius: var(--r-1, 6px);
13943
+ border-radius: var(--r-1, 8px);
13892
13944
  cursor: pointer;
13893
13945
  }
13894
13946
  .ds-247420 .sp-lobby-btn:hover { background: var(--bg-2); }
@@ -13920,7 +13972,7 @@
13920
13972
  color: var(--accent);
13921
13973
  padding: 8px;
13922
13974
  background: var(--bg);
13923
- border-radius: var(--r-1, 6px);
13975
+ border-radius: var(--r-1, 8px);
13924
13976
  }
13925
13977
  .ds-247420 .sp-lobby-err { min-height: 16px; color: var(--danger); font-size: var(--fs-small, 11px); }
13926
13978
  .ds-247420 .sp-lobby-close {