@volter/world-console 2.0.13 → 2.0.15

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.
@@ -221,3 +221,393 @@ fieldset.choice { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; min
221
221
  fieldset.choice > legend { padding: 0; margin-bottom: 4px; color: var(--muted); font-size: 12.5px; }
222
222
  fieldset.choice > label.check { display: flex; align-items: flex-start; gap: 8px; color: var(--ink); font-size: 13px; }
223
223
  fieldset.choice > label.check input { margin-top: 3px; }
224
+
225
+ /* EVENTS (Stripe's events list): one row per event, opening to what it carried and wrote */
226
+ .events { list-style: none; margin: 0; padding: 0; }
227
+ .events > li.event { margin: 0; border-top: 1px solid var(--line); }
228
+ .events > li.event:first-child { border-top: 0; }
229
+ .event > details > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 92px minmax(110px, 150px) minmax(150px, 220px) minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 14px; }
230
+ .event > details > summary::-webkit-details-marker { display: none; }
231
+ .event > details > summary:hover { background: var(--surface-2); }
232
+ .event > details[open] > summary { background: var(--surface-2); border-bottom: 1px solid var(--line); }
233
+ .ev-time { font-variant-numeric: tabular-nums; }
234
+ .ev-vendor { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
235
+ .ev-vendor .mark { width: 20px; height: 20px; }
236
+ .ev-record { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
237
+ .ev-record code { font-size: 12px; }
238
+ .ev-who { white-space: nowrap; }
239
+ .ev-detail { padding: 6px 14px 14px 118px; }
240
+ .ev-detail h4 { margin: 14px 0 6px; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
241
+ .ev-detail > p.mode:first-child { margin-top: 6px; }
242
+ .text { white-space: pre-wrap; overflow-wrap: anywhere; }
243
+ .folded > summary { cursor: pointer; list-style: none; }
244
+ .folded > summary::-webkit-details-marker { display: none; }
245
+ .folded[open] > summary .text { display: none; }
246
+ .folded pre { max-width: none; margin: 4px 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; }
247
+ .messages { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 6px; }
248
+ .messages li { margin: 0; display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
249
+ .messages .role { color: var(--muted); font: 600 11.5px/1.6 var(--mono); text-transform: uppercase; }
250
+ .filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 14px 0 6px; }
251
+ .filters .chips { margin: 0; }
252
+ .op-filter { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12.5px; }
253
+ .op-filter select { min-width: 200px; }
254
+ .content .feed { margin-top: 6px; }
255
+ @media (max-width: 860px) { .event > details > summary { grid-template-columns: 80px minmax(0, 1fr); } .ev-record, .ev-who { grid-column: 2; } .ev-detail { padding-left: 14px; } }
256
+
257
+ /* CHANGES: record by record, each write's fields as before → after */
258
+ .compare li.record { padding: 10px 12px; }
259
+ .record-head { margin: 0 0 4px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
260
+ .record-head .kind { font-weight: 600; text-transform: capitalize; }
261
+ .record-head code { font-size: 12px; color: var(--muted); }
262
+ .write { margin: 6px 0 0 0; padding-left: 10px; border-left: 2px solid var(--line); }
263
+ .write > p { margin: 0 0 4px; }
264
+ .write .op { font-weight: 600; color: var(--ink); margin: 0; }
265
+ dl.field-diff { grid-template-columns: minmax(120px, 200px) minmax(0, 1fr); gap: 4px 14px; margin: 4px 0 2px; }
266
+ dl.field-diff dt { font: 12px/1.7 var(--mono); }
267
+ dl.field-diff .changed { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 6px; }
268
+ dl.field-diff del { text-decoration: line-through; background: var(--danger-soft); border-radius: 3px; padding: 0 3px; }
269
+ dl.field-diff ins { text-decoration: none; background: color-mix(in srgb, var(--ok) 14%, transparent); border-radius: 3px; padding: 0 3px; }
270
+ dl.field-diff .arrow { color: var(--muted); }
271
+ .badge.added { color: var(--ok); border-color: currentColor; }
272
+
273
+ /* BRANCHES: one table, each row its branch's page */
274
+ table.clickable tbody tr { cursor: pointer; }
275
+ table.clickable tbody tr:hover td { background: var(--surface-2); }
276
+ .branch-page h3 { display: flex; align-items: center; gap: 8px; margin: 0; }
277
+ .branch-page h4, .branch-page > p { margin: 18px 0 8px; }
278
+ .branch-page h4 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
279
+ .branch-page dl.fields { margin: 0; gap: 6px 18px; }
280
+ fieldset.choice > label.check.sub { margin-left: 22px; color: var(--muted); }
281
+
282
+ /* REMOTE, VAULT, SETTINGS: each act says what it did, on the page */
283
+ .narration-log { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 4px; }
284
+ .narration-log li { margin: 0; padding: 7px 12px; border-radius: var(--radius); border: 1px solid var(--line); background: var(--surface); }
285
+ .narration-log li.ok { border-color: color-mix(in srgb, var(--ok) 45%, var(--line)); }
286
+ .narration-log li.bad { border-color: color-mix(in srgb, var(--danger) 45%, var(--line)); background: var(--danger-soft); }
287
+ .block.remote { margin-bottom: 14px; }
288
+ .remote code.big { font-size: 14px; }
289
+ .remote .origin-form { max-width: 520px; margin-top: 10px; }
290
+ .remote-acts { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; align-items: start; }
291
+ .stack-tight > p { margin: 0 0 4px; }
292
+ .row-actions { display: flex; gap: 8px; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
293
+ td.row-actions { white-space: nowrap; }
294
+ .pad .row-actions, form .row-actions { justify-content: flex-start; }
295
+ .content section.block + section.block { margin-top: 16px; }
296
+ .settings-head { margin: 26px 0 8px; }
297
+ .settings-head:first-of-type { margin-top: 8px; }
298
+ .changeset .block.where { margin: 0; }
299
+ .changeset .block.where > p { margin: 0; }
300
+ .badge.cs-plain { color: var(--muted); }
301
+ .dash .services td.num { text-align: right; }
302
+ .dash .services td:first-child { width: 42%; }
303
+ .content section.block { padding: 0; box-shadow: none; }
304
+ .remote-acts section.block { margin: 0; }
305
+ .changeset .where ul.receipts, .changeset .where ul.checks { padding: 0 14px 12px; margin: 0; }
306
+ .remote-acts section.block + section.block { margin-top: 0; }
307
+ .refusal { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 10px 0; }
308
+ .refusal > span { flex: 1 1 320px; }
309
+ .changeset .where p.failed { margin: 0 14px 10px; }
310
+ .changeset .where .where-sub { padding-bottom: 2px; text-transform: uppercase; letter-spacing: 0.05em; font-size: 11px; }
311
+ .clock-more.inline > summary { display: none; }
312
+ .clock-more.inline { margin: 0; }
313
+ .branches-head .head-actions { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; justify-content: flex-end; }
314
+ form.block.cut { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; }
315
+ form.block.cut label { flex: 1 1 360px; display: grid; gap: 4px; margin: 0; }
316
+ .stats li a { font-size: 12.5px; }
317
+ form.block.cut { max-width: none; }
318
+ .tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); margin: 0 0 14px; }
319
+ .tabs a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; font-weight: 500; }
320
+ .tabs a:hover { color: var(--ink); }
321
+ .tabs a.on { color: var(--ink); border-bottom-color: var(--ink); }
322
+ .tabs .count { font-size: 11.5px; padding: 0 6px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--line); }
323
+ .ev-detail ul.receipts { list-style: none; padding: 0; margin: 4px 0; display: grid; gap: 4px; }
324
+ /* the sidebar's counts sit at a link's right, as the vendors' do */
325
+ .side-nav > a .count { margin-left: auto; color: var(--faint); font: 11.5px var(--mono); }
326
+ /* the account block at the sidebar's foot: who is here, with what access; it opens to Appearance and Sign out */
327
+ .side-foot .account { display: block; position: relative; }
328
+ .account > summary { list-style: none; display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; cursor: pointer; border: 1px solid transparent; }
329
+ .account > summary::-webkit-details-marker { display: none; }
330
+ .account > summary:hover, .account[open] > summary { background: var(--surface-2); border-color: var(--line); }
331
+ .account .avatar { flex: none; width: 28px; height: 28px; border-radius: 999px; display: grid; place-items: center; background: var(--accent-soft); color: var(--ink); font-weight: 600; font-size: 13px; }
332
+ .account .who { flex: 1; min-width: 0; display: grid; line-height: 1.25; }
333
+ .account .who b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
334
+ .account .chev { color: var(--muted); display: grid; }
335
+ .account .popover { bottom: calc(100% + 6px); top: auto; left: 0; right: 0; min-width: 220px; display: grid; gap: 6px; padding: 10px; }
336
+ .account .menu-label { margin: 0; color: var(--muted); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
337
+ .account .menu-item { text-align: left; }
338
+ .account .popover { width: auto; max-width: none; }
339
+
340
+ /* THE WORKSPACE (on this machine): a desktop app's window. One short toolbar (TablePlus's, Proxyman's), a sidebar of
341
+ places, the place beside it; windows (Settings, Branches) over it. The window is the viewport; each pane scrolls alone. */
342
+ main.app.workspace { height: 100vh; display: grid; grid-template-rows: minmax(0, 1fr); overflow: hidden; }
343
+ .ws { display: flex; flex-direction: column; min-height: 0; }
344
+ .ws > .ws-body { flex: 1; }
345
+ .icon { flex: none; display: block; }
346
+ .ws-bar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; height: 40px; padding: 0 8px; border-bottom: 1px solid var(--line); background: var(--surface); }
347
+ .ws-left, .ws-right { display: flex; align-items: center; gap: 4px; min-width: 0; }
348
+ .ws-right { justify-content: flex-end; }
349
+ .ws-left h1 { margin: 0 6px 0 4px; font-size: 13px; }
350
+ .ws-left .brand-name { display: none; }
351
+ .ws-pick { position: relative; min-width: 0; }
352
+ .ws-pick > summary { display: flex; align-items: center; gap: 7px; height: 30px; padding: 0 8px; border-radius: 6px; color: var(--ink); }
353
+ .ws-pick > summary:hover, .ws-pick[open] > summary { background: var(--surface-2); }
354
+ .ws-pick-label { display: flex; align-items: baseline; gap: 6px; min-width: 0; white-space: nowrap; }
355
+ .ws-pick-label small { color: var(--muted); font-size: 11.5px; }
356
+ .ws-pick-label b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
357
+ .ws-pick .popover { left: 0; right: auto; top: calc(100% + 4px); }
358
+ .ws-world-menu { width: 380px; padding: 8px; }
359
+ .ws-world-menu .menu-label, .ws-branch-menu .menu-label, .ws-tables .menu-label { margin: 6px 6px 2px; color: var(--muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
360
+ .ws-menu-text { margin: 4px 6px; font-size: 12.5px; }
361
+ .ws-world-menu pre { margin: 4px 6px; }
362
+ .ws-world-menu .agent-prompt-button { margin: 4px 6px; width: calc(100% - 12px); }
363
+ .ws-world-menu hr { border: 0; border-top: 1px solid var(--line); margin: 6px 0; }
364
+ .ws-pick .popover.ws-branch-menu { width: 380px; padding: 0; gap: 0; overflow: hidden; }
365
+ .ws-branch-find { display: flex; gap: 8px; padding: 10px; border-bottom: 1px solid var(--line); }
366
+ .ws-branch-find input { flex: 1; min-width: 0; width: auto; }
367
+ .ws-branch-find button { flex: none; }
368
+ .ws-branch-menu .menu-label { margin: 10px 12px 4px; }
369
+ .ws-branch-list { list-style: none; margin: 0; padding: 0; }
370
+ .ws-branch-list li > *, .ws-branch-list li { display: flex; align-items: center; gap: 8px; }
371
+ .ws-branch-list li { padding: 0; }
372
+ .ws-branch-list li > a, .ws-branch-list li > span[title], .ws-branch-list li:not(:has(> a, > span[title])) { width: 100%; padding: 6px 12px; color: var(--ink); text-decoration: none; }
373
+ .ws-branch-list li.current { background: var(--surface-2); }
374
+ .ws-branch-list a:hover { background: var(--surface-2); }
375
+ .ws-branch-list .name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
376
+ .ws-branch-list .mode { font-size: 12px; white-space: nowrap; }
377
+ .ws-branch-none { margin: 4px 12px 8px; font-size: 12.5px; }
378
+ .ws-branch-foot { border-top: 1px solid var(--line); padding: 8px 12px; margin-top: 8px; }
379
+ .ws-where { justify-self: center; display: flex; align-items: center; gap: 6px; height: 28px; padding: 0 14px; max-width: 100%; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); font: 12px var(--mono); color: var(--muted); white-space: nowrap; overflow: hidden; }
380
+ .ws-where > span:first-child { color: var(--ink); }
381
+ .ws-where .sep { color: var(--faint); }
382
+ .ws-where a { color: inherit; text-decoration: none; }
383
+ .ws-where a:hover { color: var(--ink); text-decoration: underline; }
384
+ .ws-where b { color: var(--ink); }
385
+ .ws-btn { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; font-size: 12.5px; }
386
+ .ws-btn.icon-only { padding: 0 7px; }
387
+ .ws-btn-count { min-width: 16px; padding: 0 4px; border-radius: 999px; background: var(--ink); color: var(--surface); font: 600 10.5px/16px var(--mono); text-align: center; }
388
+ .ws-banner { display: flex; align-items: center; gap: 10px; padding: 6px 14px; border-bottom: 1px solid var(--line); background: var(--warn-soft); font-size: 12.5px; }
389
+ .ws-banner button { margin-left: auto; height: 26px; padding: 0 10px; font-size: 12px; }
390
+ .ws-world-menu a, .ws-world-menu button { display: flex !important; align-items: center; gap: 8px; }
391
+ .ws-world-menu a.on { font-weight: 600; }
392
+ .ws-said { border-bottom: 1px solid var(--line); padding: 4px 14px; }
393
+ .ws-said .narration-log { margin: 0; }
394
+ .ws-body { display: grid; grid-template-columns: 216px minmax(0, 1fr); min-height: 0; }
395
+ .ws-side { display: flex; flex-direction: column; gap: 1px; min-height: 0; overflow-y: auto; padding: 6px 8px; border-right: 1px solid var(--line); background: var(--surface); }
396
+ .ws-side .side-group { margin: 14px 8px 4px; }
397
+ .ws-side .side-group:first-child { margin-top: 6px; }
398
+ .ws-side a, .ws-tables a { display: flex; align-items: center; gap: 8px; padding: 5px 8px; border-radius: 6px; color: var(--muted); text-decoration: none; font-weight: 500; min-width: 0; }
399
+ .ws-side a > span:not(.count):not(.mark), .ws-tables a > span:not(.count) { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
400
+ .ws-side a:hover, .ws-side a.on, .ws-tables a:hover, .ws-tables a.on { background: var(--surface-2); color: var(--ink); }
401
+ .ws-side a .count, .ws-tables a .count { margin-left: auto; color: var(--faint); font: 11.5px var(--mono); }
402
+ .ws-side a .mark { width: 16px; height: 16px; flex: none; }
403
+ .ws-main { display: grid; min-height: 0; min-width: 0; }
404
+ .cell-label { display: grid; line-height: 1.25; text-align: left; min-width: 0; }
405
+ .cell-label b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
406
+ .cell-label small { color: var(--muted); font-size: 11.5px; font-weight: 400; }
407
+ .ws-sheet { overflow-y: auto; min-height: 0; padding: 18px 28px 48px; }
408
+ .ws-list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 36px; padding: 0 14px; border-bottom: 1px solid var(--line); font-weight: 600; font-size: 12.5px; background: var(--surface-2); }
409
+ .ws-list { list-style: none; margin: 0; padding: 0; overflow-y: auto; min-height: 0; }
410
+ .ws-list li { margin: 0; border-bottom: 1px solid var(--line); }
411
+ .ws-list button, .ws-list a { display: flex; align-items: center; gap: 9px; width: 100%; padding: 7px 14px; border: 0; border-radius: 0; background: none; color: var(--ink); text-align: left; text-decoration: none; font: inherit; }
412
+ .ws-list button:hover, .ws-list a:hover { background: var(--surface-2); }
413
+ .ws-list .on { background: var(--accent-soft); }
414
+ .ws-list .mark, .ws-diff-head .mark { width: 18px; height: 18px; flex: none; }
415
+ .ws-row-text { display: grid; min-width: 0; flex: 1; line-height: 1.3; }
416
+ .ws-row-text b { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
417
+ .ws-row-text small { color: var(--muted); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
418
+ .ws-badges { display: grid; gap: 3px; justify-items: end; flex: none; }
419
+ .ws-badges .badge, .ws-list .badge { font-size: 10.5px; }
420
+ .badge .icon { display: inline-block; vertical-align: -2px; }
421
+ .ws-kind { flex: none; display: inline-grid; place-items: center; }
422
+ .ws-kind.added { color: var(--ok); }
423
+ .ws-kind.removed { color: var(--danger-text); }
424
+ .ws-kind.changed { color: var(--warn); }
425
+ .ws-detail { overflow-y: auto; min-height: 0; min-width: 0; }
426
+ .ws-detail .empty-state { margin: 12vh 24px 0; }
427
+ /* Changes (SourceTree's file status) and History (GitHub Desktop's): a list beside the selected thing */
428
+ .ws-status { display: grid; grid-template-columns: minmax(260px, 330px) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; min-height: 0; }
429
+ .ws-files { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); min-height: 0; border-right: 1px solid var(--line); background: var(--surface); }
430
+ .ws-two { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); min-height: 0; }
431
+ .ws-two.inner { grid-template-columns: minmax(200px, 240px) minmax(0, 1fr); border-top: 1px solid var(--line); }
432
+ .ws-two.inner > .ws-files { grid-template-rows: auto minmax(0, 1fr); }
433
+ .ws-pane-right { display: grid; grid-template-rows: auto auto minmax(0, 1fr); min-height: 0; min-width: 0; }
434
+ .ws-pane-right > .empty-state { margin: 12vh 24px 0; }
435
+ .ws-cs-head { padding: 12px 18px 0; }
436
+ .ws-cs-head .changeset-head { margin: 0; }
437
+ .ws-cs-head h3 { font-size: 15px; }
438
+ .ws-cs-tabs { margin: 8px 0 0; padding: 0 12px; }
439
+ .ws-review { padding: 4px 18px 32px; }
440
+ .ws-diff-head { display: flex; align-items: center; gap: 10px; padding: 10px 18px; border-bottom: 1px solid var(--line); background: var(--surface); position: sticky; top: 0; z-index: 1; }
441
+ .ws-diff-head code { font-size: 11px; }
442
+ .ws-writes { margin: 0; padding: 8px 18px 8px 36px; border-bottom: 1px solid var(--line); font-size: 12.5px; }
443
+ .ws-writes li { margin: 2px 0; }
444
+ .ws-fields { width: 100%; border-collapse: collapse; font-size: 12.5px; }
445
+ .ws-fields th, .ws-fields td { padding: 5px 12px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
446
+ .ws-fields thead th { color: var(--muted); font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; background: var(--surface-2); }
447
+ .ws-fields tbody th { width: 22%; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--ink); font-size: 12.5px; background: none; }
448
+ .ws-fields tbody th code { background: none; border: 0; padding: 0; font-size: 12px; text-transform: none; }
449
+ .ws-fields td { font-family: var(--mono); word-break: break-word; width: 39%; }
450
+ .ws-fields td.was { background: var(--danger-soft); }
451
+ .ws-fields td.now { background: var(--accent-soft); }
452
+ .ws-status .ws-cut { grid-column: 1 / -1; }
453
+ .ws-cut { display: grid; gap: 6px; padding: 10px 14px; border-top: 1px solid var(--line); background: var(--surface); }
454
+ .ws-cut form { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; }
455
+ .ws-cut form:not(:has(.ws-author)) { grid-template-columns: minmax(0, 1fr) auto; }
456
+ .ws-author { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--surface-2); border: 1px solid var(--line); color: var(--ink); }
457
+ .ws-author:hover { background: var(--accent-soft); }
458
+ .ws-cut .narration-log { margin: 0; max-height: 72px; overflow-y: auto; }
459
+ .ws-view-switch { display: flex; gap: 0; margin: 6px 10px; padding: 2px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); width: max-content; }
460
+ .ws-view-switch button { height: 24px; padding: 0 12px; border: 0; border-radius: 4px; background: none; color: var(--muted); font-size: 12px; font-weight: 500; }
461
+ .ws-view-switch button.on { background: var(--surface); color: var(--ink); box-shadow: var(--volter-shadow-raised, none); }
462
+ .ws-files { grid-template-rows: auto auto auto minmax(0, 1fr); }
463
+ .ws-list .ws-group { border-bottom: 0; }
464
+ .ws-group-head { display: flex; align-items: center; gap: 8px; margin: 0; padding: 7px 14px; border-bottom: 1px solid var(--line); background: var(--surface-2); font-size: 12.5px; }
465
+ .ws-group-head .mark { width: 18px; height: 18px; }
466
+ .ws-group-head .mode { margin-left: auto; font: 11.5px var(--mono); }
467
+ .ws-group > ul { list-style: none; margin: 0; padding: 0; }
468
+ .ws-group > ul > li { border-bottom: 1px solid var(--line); }
469
+ .ws-list button.nested { padding-left: 30px; }
470
+ .ws-commits a { align-items: flex-start; padding: 9px 14px; }
471
+ .ws-commits b { white-space: normal; }
472
+ .ws-unpushed { color: var(--muted); padding-top: 2px; }
473
+ .ws-pane-right { grid-template-rows: auto minmax(0, 1fr); }
474
+ .ws-commit-head { display: flex; align-items: flex-start; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--line); background: var(--surface); }
475
+ .ws-commit-title { flex: 1; min-width: 0; }
476
+ .ws-commit-head h3 { margin: 0 0 4px; font-size: 15px; }
477
+ .ws-commit-stat { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin: 0; font-size: 12.5px; }
478
+ .ws-commit-stat .plus { color: var(--ok); font-weight: 600; }
479
+ .ws-commit-stat .minus { color: var(--danger-text); font-weight: 600; }
480
+ .ws-commit-stat .dot { color: var(--warn); font-weight: 600; }
481
+ .ws-commit-head > button { display: inline-flex; align-items: center; gap: 6px; height: 30px; font-size: 12.5px; }
482
+ .ws-commit-head > button .badge { font-size: 10px; }
483
+ /* Events (Proxyman's): filters, a dense table, the selected one under it, a footer */
484
+ .ws-events, .ws-table-app { display: grid; min-height: 0; min-width: 0; }
485
+ .ws-events { grid-template-rows: auto minmax(120px, 1fr) minmax(160px, 40%) auto; }
486
+ .ws-filterbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 12px; border-bottom: 1px solid var(--line); background: var(--surface); }
487
+ .ws-filterbar select { width: auto; height: 28px; padding: 0 28px 0 8px; font-size: 12.5px; }
488
+ .ws-seg { display: flex; gap: 2px; }
489
+ .ws-seg a { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 6px; color: var(--muted); text-decoration: none; font-weight: 500; font-size: 12.5px; }
490
+ .ws-seg a .mark { width: 16px; height: 16px; }
491
+ .ws-seg a:hover, .ws-seg a.on { background: var(--surface-2); color: var(--ink); }
492
+ .ws-grid-wrap { overflow: auto; min-height: 0; min-width: 0; background: var(--surface); }
493
+ .ws-grid { width: 100%; margin: 0; border: 0; border-radius: 0; border-collapse: collapse; font-size: 12.5px; }
494
+ .ws-grid thead th { position: sticky; top: 0; z-index: 1; padding: 6px 10px; background: var(--surface-2); border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; text-align: left; white-space: nowrap; }
495
+ .ws-grid td { padding: 5px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
496
+ .ws-grid td b { font-weight: 500; }
497
+ .ws-grid td .mark { width: 16px; height: 16px; }
498
+ .ws-grid tbody tr { cursor: default; }
499
+ .ws-grid tbody tr:hover td { background: var(--surface-2); }
500
+ .ws-grid tbody tr.on td { background: var(--accent-soft); }
501
+ .ws-grid .mono { font-family: var(--mono); font-size: 12px; }
502
+ .ws-cell-clip { max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
503
+ .ws-event-detail { overflow-y: auto; min-height: 0; border-top: 1px solid var(--line-strong, var(--line)); }
504
+ .ws-event-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 14px; border-bottom: 1px solid var(--line); background: var(--surface); position: sticky; top: 0; }
505
+ .ws-event-line a { margin-left: auto; }
506
+ .ws-event-panes { display: grid; grid-template-columns: 1fr 1fr; }
507
+ .ws-event-panes > div { padding: 8px 14px 14px; min-width: 0; border-right: 1px solid var(--line); }
508
+ .ws-event-panes > div:last-child { border-right: 0; }
509
+ .ws-event-panes h4 { margin: 6px 0; }
510
+ .ws-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 30px; padding: 0 12px; border-top: 1px solid var(--line); background: var(--surface); font-size: 12px; grid-column: 1 / -1; }
511
+ .ws-foot button { height: 24px; padding: 0 10px; font-size: 12px; }
512
+ /* A trace (Jaeger's) */
513
+ .ws-trace h2 { margin: 4px 0; font-size: 18px; }
514
+ .ws-trace-meta { margin: 4px 0 14px; color: var(--muted); }
515
+ .ws-trace-meta b { color: var(--ink); font-weight: 600; }
516
+ .ws-spans { border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
517
+ .ws-span { display: grid; grid-template-columns: minmax(260px, 38%) minmax(0, 1fr); align-items: center; min-height: 32px; border-bottom: 1px solid var(--line); cursor: default; }
518
+ .ws-span:hover, .ws-span.on { background: var(--surface-2); }
519
+ .ws-span.head { background: var(--surface-2); color: var(--muted); font-size: 11.5px; }
520
+ .ws-span > span:first-child { padding: 0 12px; border-right: 1px solid var(--line); align-self: stretch; display: flex; align-items: center; gap: 8px; min-width: 0; white-space: nowrap; overflow: hidden; }
521
+ .ws-span-name .mark { width: 16px; height: 16px; }
522
+ .ws-ticks { display: flex; justify-content: space-between; padding: 0 12px; }
523
+ .ws-span-track { position: relative; height: 32px; margin: 0 40px 0 12px; }
524
+ .ws-span-dot { position: absolute; top: 11px; width: 10px; height: 10px; margin-left: -5px; border-radius: 2px; background: var(--ink); }
525
+ .ws-span-at { position: absolute; top: 8px; margin-left: 10px; font-size: 11.5px; white-space: nowrap; }
526
+ .ws-span-detail { padding: 8px 14px 12px; border-bottom: 1px solid var(--line); background: var(--surface-2); }
527
+ /* A vendor's place (TablePlus's): its tables, the rows, the selected record */
528
+ .ws-table-app { grid-template-columns: 200px minmax(0, 1fr) minmax(240px, 300px); grid-template-rows: minmax(0, 1fr) auto; }
529
+ .ws-tables { display: flex; flex-direction: column; gap: 1px; overflow-y: auto; min-height: 0; padding-bottom: 8px; border-right: 1px solid var(--line); background: var(--surface); }
530
+ .ws-tables .ws-list-head { margin-bottom: 4px; }
531
+ .ws-tables .ws-list-head .mark { width: 18px; height: 18px; }
532
+ .ws-tables a { margin: 0 6px; }
533
+ .ws-record { overflow-y: auto; min-height: 0; border-left: 1px solid var(--line); background: var(--surface); }
534
+ .ws-record-fields { display: grid; grid-template-columns: minmax(80px, auto) minmax(0, 1fr); margin: 0; font-size: 12px; }
535
+ .ws-record-fields dt { padding: 5px 10px; color: var(--muted); border-bottom: 1px solid var(--line); }
536
+ .ws-record-fields dd { margin: 0; padding: 5px 10px; font-family: var(--mono); word-break: break-word; border-bottom: 1px solid var(--line); }
537
+ .ws-screen { display: flex; flex-direction: column; min-height: 0; background: var(--surface); }
538
+ .ws-screen iframe { flex: 1; width: 100%; border: 0; background: var(--surface); }
539
+ .ws-screen-bar { display: flex; align-items: center; gap: 14px; min-height: 36px; padding: 0 14px; border-bottom: 1px solid var(--line); background: var(--surface-2); font-size: 12.5px; }
540
+ .ws-screen-bar .mark { width: 18px; height: 18px; }
541
+ .ws-screen-bar > .mode { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
542
+ .ws-screen-bar a { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); text-decoration: none; }
543
+ .ws-screen-bar a:hover { text-decoration: underline; }
544
+ .side-group .side-count { margin-left: 4px; color: var(--faint); font-family: var(--mono); }
545
+ .ws-screens-note { margin: 0; padding: 6px 12px; border-bottom: 1px solid var(--line); }
546
+ /* Settings (GitHub Desktop's window): its tabs beside its pane */
547
+ .ws-settings { display: grid; grid-template-columns: 200px minmax(0, 1fr); height: 100%; min-height: 0; }
548
+ .ws-settings > nav { display: flex; flex-direction: column; gap: 2px; padding: 12px 10px; border-right: 1px solid var(--line); }
549
+ .ws-settings > nav a { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 6px; color: var(--ink); text-decoration: none; font-weight: 500; }
550
+ .ws-settings > nav a:hover { background: var(--surface-2); }
551
+ .ws-settings > nav a.on { background: var(--ink); color: var(--surface); }
552
+ .ws-settings-pane { overflow-y: auto; min-height: 0; padding: 4px 24px 24px; }
553
+ .ws-settings-pane .settings-head:first-child, .ws-settings-pane > :first-child { margin-top: 14px; }
554
+ @media (max-width: 900px) { .ws-body { grid-template-columns: 1fr; } .ws-side { display: none; } .ws-status, .ws-two, .ws-table-app { grid-template-columns: 1fr; } .ws-where { display: none; } }
555
+ .crumbs-line a { display: inline-flex; align-items: center; gap: 6px; }
556
+
557
+ /* Signing in (GitHub Desktop's way: one window, one field, one act) and the list of Worlds (its repository list) */
558
+ main.app.gate { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
559
+ .gate-window { width: min(420px, 100%); display: grid; gap: 14px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
560
+ .gate-window h1 { margin: 0; font-size: 15px; }
561
+ .gate-window h2 { margin: 6px 0 0; font-size: 18px; }
562
+ .gate-window form { margin: 0; max-width: none; }
563
+ main.app.home { max-width: none; }
564
+ .home-window { max-width: 760px; margin: 28px auto; padding: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); overflow: hidden; }
565
+ .home-head { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
566
+ .home-head h2 { margin: 0; font-size: 16px; }
567
+ .home-head button { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; }
568
+ .home-find { padding: 10px 20px; border-bottom: 1px solid var(--line); }
569
+ .home-org { margin: 14px 20px 6px; }
570
+ .home-note { margin: 12px 20px; }
571
+ .home-list { list-style: none; margin: 0 0 8px; padding: 0; border-top: 1px solid var(--line); }
572
+ .home-list li { display: flex; align-items: center; border-bottom: 1px solid var(--line); }
573
+ .home-list li > a { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; padding: 10px 20px; color: var(--ink); text-decoration: none; }
574
+ .home-list li > a:hover { background: var(--surface-2); }
575
+ .home-vendors { display: flex; gap: 4px; margin-left: auto; }
576
+ .home-vendors .mark { width: 20px; height: 20px; }
577
+ .home-more { position: relative; margin-right: 12px; }
578
+ .home-more > summary { padding: 4px 8px; border-radius: 6px; color: var(--muted); }
579
+ .home-more > summary:hover { background: var(--surface-2); }
580
+ .home-more .popover { right: 0; left: auto; }
581
+ .home-find input { width: 100%; }
582
+ .home-org { color: var(--muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
583
+ .ws-commit-meta { margin: 4px 0 0; font-size: 12px; }
584
+ .ws-pane-tabs { display: grid; grid-template-columns: 1fr 1fr; margin: 0; background: var(--surface); }
585
+ .ws-pane-tabs a { justify-content: center; padding: 9px 12px; }
586
+ .ws-files { display: flex; flex-direction: column; }
587
+ .ws-files > .ws-list { flex: 1; min-height: 0; }
588
+ .ws-files > * { flex: none; }
589
+ .ws-files > .ws-list { flex: 1 1 auto; }
590
+ .ws-screens-entry { margin-bottom: 6px; }
591
+ .ws-screens-marks { display: flex; gap: 2px; margin-left: auto; }
592
+ .ws-screens-marks .mark { width: 16px; height: 16px; }
593
+ .ws-screens-marks .more { font: 11px var(--mono); color: var(--faint); }
594
+ .ws-screens-entry .count { margin-left: 6px !important; }
595
+ .ws-on-screens { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; white-space: nowrap; }
596
+ .ws-account { display: flex; align-items: center; gap: 14px; margin: 8px 0 16px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
597
+ .ws-account-face { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--surface-2); font-weight: 600; }
598
+ .ws-account .cell-label small + small { margin-top: 2px; }
599
+ .ws-settings-pane p button { display: inline-flex; align-items: center; gap: 6px; }
600
+ .ws-commit-who { display: flex; flex-wrap: wrap; gap: 14px; margin: 6px 0 0; font-size: 12.5px; }
601
+ .frame-changed, .layer-changed { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; color: var(--warn); font: 600 11.5px var(--mono); text-decoration: none; }
602
+ .layer-changed { margin-left: auto; }
603
+ .ws-rules { display: grid; gap: 4px; }
604
+ .ws-rules .ws-rule { padding: 12px 0; border-bottom: 1px solid var(--line); }
605
+ .ws-rules .ws-rule:last-of-type { border-bottom: 0; }
606
+ .ws-rules h4 { margin: 0 0 6px; }
607
+ .ws-rules p { margin: 4px 0; }
608
+ .ws-rule-list { list-style: none; margin: 4px 0; padding: 0; display: grid; gap: 6px; }
609
+ .ws-rule-list li { display: flex; align-items: center; gap: 8px; }
610
+ .ws-rule-list .mark { width: 18px; height: 18px; }
611
+ .ws-rule-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
612
+ .ws-rule-row select { width: auto; }
613
+ .ws-rules fieldset.choice { border: 0; padding: 0; margin: 4px 0; display: grid; gap: 6px; }