@skillcdn/console 0.1.4 → 0.1.5

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/console.css CHANGED
@@ -1,42 +1,109 @@
1
1
  /*
2
2
  * The styles of the default console: the design tokens, the reset the pages need, and one class
3
3
  * per building block, all prefixed `sc-` so that a custom console's own styles never collide
4
- * with them. Re-skinning starts and mostly ends with the tokens. Dark, with one accent.
4
+ * with them. Re-skinning starts and mostly ends with the tokens.
5
+ *
6
+ * The look is SkillCDN's own: dark only, one blue accent and one warm point colour, the page a
7
+ * dark field with a soft light high in it, and the surfaces panes of glass over that field, so
8
+ * that the console reads as part of the same product as the site it is built for.
5
9
  */
6
10
 
7
11
  :root {
8
12
  color-scheme: dark;
9
13
 
10
- --sc-color-bg: #0c1118;
11
- --sc-color-bg-subtle: #111823;
12
- --sc-color-bg-inset: #18202c;
13
- --sc-color-bg-raised: #1d2735;
14
- --sc-color-border: #263142;
15
- --sc-color-border-strong: #3a4859;
16
- --sc-color-text: #e7ebf0;
17
- --sc-color-text-muted: #9ba6b4;
18
- --sc-color-text-faint: #76829a;
14
+ /* Surfaces: the page's own dark, and the steps above it. */
15
+ --sc-color-bg: #0b1019;
16
+ --sc-color-bg-subtle: #0f1520;
17
+ --sc-color-bg-inset: #151d2b;
18
+ --sc-color-bg-raised: #192232;
19
+ --sc-color-border: #263042;
20
+ --sc-color-border-strong: #3b4960;
21
+
22
+ /* Text. */
23
+ --sc-color-text: #e8ebf0;
24
+ --sc-color-text-muted: #9aa4b2;
25
+ --sc-color-text-faint: #8b97a9;
26
+
27
+ /* The one accent: the blue that text and lines are drawn in, and the deeper blue a surface
28
+ is filled with so that a white label reads on it. */
19
29
  --sc-color-accent: #6ea1ff;
20
30
  --sc-color-accent-hover: #8fb6ff;
21
31
  --sc-color-accent-solid: #3b6fd4;
22
- --sc-color-accent-solid-hover: #4a7ce0;
32
+ --sc-color-accent-solid-hover: #4171d8;
23
33
  --sc-color-accent-contrast: #ffffff;
24
- --sc-color-accent-subtle: #13203a;
34
+ --sc-color-accent-subtle: #111a2b;
35
+ /* The point: the only warm colour, for what should be looked at first, never for a control. */
25
36
  --sc-color-point: #ffb13a;
26
- --sc-color-point-subtle: #2a1d0b;
37
+ --sc-color-point-subtle: #2a1a0e;
38
+ --sc-color-selection: color-mix(in srgb, var(--sc-color-accent-solid) 60%, transparent);
39
+
40
+ /* Status. */
27
41
  --sc-color-success: #4cc38a;
28
- --sc-color-success-subtle: #0d1f16;
42
+ --sc-color-success-subtle: #0d1a13;
29
43
  --sc-color-warning: #e3b341;
30
- --sc-color-warning-subtle: #241c0a;
44
+ --sc-color-warning-subtle: #201a0c;
31
45
  --sc-color-danger: #ff7b85;
32
- --sc-color-danger-subtle: #2a1014;
33
- --sc-color-selection: rgba(59, 111, 212, 0.6);
34
-
46
+ --sc-color-danger-subtle: #230f12;
47
+
48
+ /* The ground: a dark field with two lights in it, a far one low and wide and a near one high
49
+ and soft, and the corners taken down, so the field has distance in it. The default UI
50
+ provides the field's face (the shell); a custom console may paint its own. */
51
+ --sc-color-sky: #0d1730;
52
+ --sc-color-far: #2b4d9455;
53
+ --sc-color-far-turn: #3c3f8e3d;
54
+ --sc-color-vignette: #04071199;
55
+ --sc-color-light-core: #dbe7ff;
56
+ --sc-color-light-body: #93b4f2;
57
+ --sc-color-light-mid: #7f7ae8b8;
58
+ --sc-color-light-halo: #3a5fd488;
59
+ --sc-light-strength: 0.3;
60
+ --sc-light-top: -18rem;
61
+ --sc-light-height: 34rem;
62
+ --sc-light-inset: 8%;
63
+ --sc-light-blur: 4rem;
64
+
65
+ /* Glass: what a pane over the field is made of. A wide blur with the colour behind pushed, an
66
+ even veil of the page's own dark, a thin lit edge, and a soft stand-off from the field. */
67
+ --sc-glass-backdrop: blur(24px) saturate(1.8);
68
+ --sc-color-glass: #111a2e66;
69
+ --sc-color-glass-hover: #18243f73;
70
+ --sc-color-glass-edge: #ffffff1c;
71
+ --sc-glass-surface: linear-gradient(var(--sc-color-glass), var(--sc-color-glass)) padding-box;
72
+ --sc-glass-surface-hover: linear-gradient(
73
+ var(--sc-color-glass-hover),
74
+ var(--sc-color-glass-hover)
75
+ )
76
+ padding-box;
77
+ --sc-glass-sheen: inset 0 1px 0 #ffffff4d, inset 0 0 0 1px #ffffff10, inset 0 3px 6px #ffffff12;
78
+ --sc-glass-lift: 0 0.75rem 2rem -0.75rem #00000059;
79
+ --sc-glass-lens: blur(4px) brightness(1.4) saturate(1.5) hue-rotate(-6deg);
80
+ --sc-glass-lens-width: 2px;
81
+ --sc-glass-lens-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
82
+ /* A surface inside a pane: no blur of its own, a little of the page's dark let through. */
83
+ --sc-color-sheet: color-mix(in srgb, var(--sc-color-bg) 72%, transparent);
84
+ --sc-color-sheet-hover: color-mix(in srgb, var(--sc-color-bg-raised) 80%, transparent);
85
+ --sc-color-field: color-mix(in srgb, var(--sc-color-bg) 78%, transparent);
86
+
87
+ /* Light falls from above: a lit thing spills downward, in the accent's own colour, in layers
88
+ that fall off the way brightness does. */
89
+ --sc-glow:
90
+ 0 0.125rem 0.5rem -0.25rem color-mix(in srgb, var(--sc-color-accent-hover) 38%, transparent),
91
+ 0 0.5rem 1.25rem -0.5rem color-mix(in srgb, var(--sc-color-accent) 22%, transparent),
92
+ 0 1.25rem 3rem -1rem color-mix(in srgb, var(--sc-color-accent) 11%, transparent);
93
+ --sc-glow-bright:
94
+ 0 0.125rem 0.5rem -0.25rem color-mix(in srgb, var(--sc-color-accent-hover) 70%, transparent),
95
+ 0 0.5rem 1.25rem -0.5rem color-mix(in srgb, var(--sc-color-accent) 45%, transparent),
96
+ 0 1.25rem 3rem -1rem color-mix(in srgb, var(--sc-color-accent) 24%, transparent);
97
+ --sc-shadow-stage: 0 1.5rem 5rem #00000033;
98
+
99
+ /* Type. The Korean face comes first where the page provides it; the Latin stays with the
100
+ system's faces. */
35
101
  --sc-font-sans:
36
- system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo",
37
- "Malgun Gothic", "Noto Sans KR", Arial, sans-serif;
102
+ "Pretendard Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Apple SD Gothic Neo",
103
+ "Malgun Gothic", "Noto Sans KR", "Helvetica Neue", Arial, sans-serif;
38
104
  --sc-font-mono:
39
- ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
105
+ ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", "D2Coding",
106
+ monospace;
40
107
 
41
108
  --sc-text-xs: 0.75rem;
42
109
  --sc-text-sm: 0.875rem;
@@ -44,11 +111,18 @@
44
111
  --sc-text-lg: 1.125rem;
45
112
  --sc-text-xl: 1.375rem;
46
113
  --sc-text-2xl: 1.75rem;
47
- --sc-leading-tight: 1.25;
48
- --sc-leading-normal: 1.55;
114
+ --sc-leading-tight: 1.2;
115
+ --sc-leading-normal: 1.6;
116
+ --sc-leading-code: 1.7;
117
+ --sc-weight-normal: 400;
49
118
  --sc-weight-medium: 500;
50
119
  --sc-weight-bold: 650;
120
+ /* Every face leaves more room above a line than below it, so a one-line label centred in a
121
+ box lands low; a box that centres a label takes this off the top and gives it to the
122
+ bottom. Not for anything that can wrap. */
123
+ --sc-label-lift: 0.067em;
51
124
 
125
+ /* Space: a 4px grid. */
52
126
  --sc-space-1: 0.25rem;
53
127
  --sc-space-2: 0.5rem;
54
128
  --sc-space-3: 0.75rem;
@@ -56,19 +130,27 @@
56
130
  --sc-space-5: 1.5rem;
57
131
  --sc-space-6: 2rem;
58
132
  --sc-space-7: 3rem;
133
+ --sc-space-8: 4.5rem;
59
134
 
135
+ /* Shape. */
60
136
  --sc-radius-sm: 4px;
61
137
  --sc-radius-md: 8px;
62
138
  --sc-radius-lg: 12px;
139
+ --sc-radius-xl: 20px;
63
140
  --sc-radius-full: 999px;
64
141
  --sc-border: 1px solid var(--sc-color-border);
65
142
 
143
+ /* Layout. */
66
144
  --sc-width-page: 84rem;
67
145
  --sc-width-prose: 46rem;
68
- --sc-column-width: 17rem;
146
+ --sc-width-aside: 18rem;
147
+ --sc-column-width: 13.5rem;
148
+ --sc-header-height: 3.75rem;
149
+ --sc-brand-size: 1.25rem;
150
+ --sc-brand-size-compact: 1.125rem;
151
+ --sc-control-size: 2.5rem;
69
152
  --sc-focus-ring: 2px solid var(--sc-color-accent);
70
153
  --sc-transition: 120ms ease-out;
71
- --sc-shadow: 0 0.5rem 1.5rem -0.75rem rgba(0, 0, 0, 0.6);
72
154
  }
73
155
 
74
156
  /* Reset: only what the pages need. */
@@ -82,6 +164,7 @@
82
164
  html {
83
165
  -webkit-text-size-adjust: 100%;
84
166
  text-size-adjust: 100%;
167
+ scroll-padding-top: calc(var(--sc-header-height) + var(--sc-space-6));
85
168
  }
86
169
 
87
170
  body {
@@ -93,8 +176,10 @@ body {
93
176
  font-size: var(--sc-text-md);
94
177
  line-height: var(--sc-leading-normal);
95
178
  -webkit-font-smoothing: antialiased;
179
+ text-rendering: optimizeLegibility;
96
180
  }
97
181
 
182
+ /* Korean breaks between any two syllables by default; keeping words whole reads much better. */
98
183
  :lang(ko) {
99
184
  word-break: keep-all;
100
185
  overflow-wrap: anywhere;
@@ -121,6 +206,7 @@ h4 {
121
206
  line-height: var(--sc-leading-tight);
122
207
  font-weight: var(--sc-weight-bold);
123
208
  letter-spacing: -0.01em;
209
+ text-wrap: balance;
124
210
  }
125
211
 
126
212
  ul,
@@ -171,6 +257,10 @@ svg {
171
257
  max-width: 100%;
172
258
  }
173
259
 
260
+ table {
261
+ border-collapse: collapse;
262
+ }
263
+
174
264
  ::selection {
175
265
  background: var(--sc-color-selection);
176
266
  color: var(--sc-color-accent-contrast);
@@ -192,12 +282,87 @@ svg {
192
282
  color: var(--sc-color-text-muted);
193
283
  }
194
284
 
195
- /* The shell: a header with the workspace, the project and the person, the tabs under it, and the page below (ADR-0010). */
285
+ /* A block that lays its children out as a grid lets each of them shrink to the room there is,
286
+ so that what is wider than the window, a table or a long address, scrolls within its own box
287
+ instead of widening the page. */
288
+ .sc-task-main > *,
289
+ .sc-task-aside > *,
290
+ .sc-task-section > *,
291
+ .sc-decisions > *,
292
+ .sc-decision > *,
293
+ .sc-decision-section > *,
294
+ .sc-answer > *,
295
+ .sc-answer-form > *,
296
+ .sc-run > *,
297
+ .sc-report > *,
298
+ .sc-feed > *,
299
+ .sc-card > *,
300
+ .sc-form > *,
301
+ .sc-field > *,
302
+ .sc-folder > *,
303
+ .sc-docs > *,
304
+ .sc-column-body > * {
305
+ min-width: 0;
306
+ }
307
+
308
+ /*
309
+ * The shell (ADR-0010): the field the pages lie on, a header that names the product, the
310
+ * workspace and the project with the person's menu at its end, the tabs of the level the
311
+ * person is on, and the page below.
312
+ */
196
313
 
197
314
  .sc-shell {
315
+ position: relative;
316
+ isolation: isolate;
198
317
  display: flex;
199
318
  flex-direction: column;
200
319
  min-height: 100dvh;
320
+ overflow-x: clip;
321
+ background-color: var(--sc-color-sky);
322
+ /* The far light: low, wide and vague, which is what distance does to a light. */
323
+ background-image: radial-gradient(
324
+ ellipse 120% 64% at 50% 92%,
325
+ var(--sc-color-far),
326
+ var(--sc-color-far-turn) 48%,
327
+ transparent 72%
328
+ );
329
+ background-attachment: fixed;
330
+ }
331
+
332
+ /* The near light, high behind the header: an ellipse that is blurred rather than a gradient,
333
+ because a blur falls off the way light does. Fixed to the window, so that the page travels
334
+ through the light and the light stays where it is. */
335
+ .sc-shell::before {
336
+ content: "";
337
+ position: fixed;
338
+ z-index: -1;
339
+ top: var(--sc-light-top);
340
+ left: var(--sc-light-inset);
341
+ right: var(--sc-light-inset);
342
+ height: var(--sc-light-height);
343
+ background: radial-gradient(
344
+ ellipse closest-side,
345
+ var(--sc-color-light-core) 0%,
346
+ var(--sc-color-light-body) 14%,
347
+ var(--sc-color-light-mid) 42%,
348
+ var(--sc-color-light-halo) 70%,
349
+ transparent 100%
350
+ );
351
+ filter: blur(var(--sc-light-blur));
352
+ opacity: var(--sc-light-strength);
353
+ pointer-events: none;
354
+ }
355
+
356
+ /* The air over both lights: the corners and the foot of the window taken down. */
357
+ .sc-shell::after {
358
+ content: "";
359
+ position: fixed;
360
+ z-index: -1;
361
+ inset: 0;
362
+ background-image:
363
+ linear-gradient(to bottom, transparent 60%, var(--sc-color-vignette)),
364
+ radial-gradient(ellipse 130% 110% at 50% 30%, transparent 36%, var(--sc-color-vignette) 100%);
365
+ pointer-events: none;
201
366
  }
202
367
 
203
368
  .sc-skip {
@@ -222,21 +387,28 @@ svg {
222
387
  top: 0;
223
388
  z-index: 10;
224
389
  border-bottom: var(--sc-border);
225
- background: color-mix(in srgb, var(--sc-color-bg) 88%, transparent);
226
- backdrop-filter: blur(12px);
390
+ background: color-mix(in srgb, var(--sc-color-bg) 82%, transparent);
391
+ backdrop-filter: blur(12px) saturate(1.4);
227
392
  }
228
393
 
229
394
  .sc-header-inner {
230
395
  display: flex;
231
396
  align-items: center;
232
- gap: var(--sc-space-5);
397
+ gap: var(--sc-space-4);
398
+ width: 100%;
233
399
  max-width: var(--sc-width-page);
234
- min-height: 3.5rem;
400
+ height: var(--sc-header-height);
235
401
  margin-inline: auto;
236
402
  padding-inline: var(--sc-space-5);
237
403
  }
238
404
 
405
+ /* The brand: the lockup of the symbol and the wordmark where the console has marks, the name
406
+ of the workspace where it has none. The lockup stands as tall as the words beside it. */
239
407
  .sc-brand {
408
+ display: inline-flex;
409
+ flex: none;
410
+ align-items: center;
411
+ gap: var(--sc-space-2);
240
412
  color: var(--sc-color-text);
241
413
  font-weight: var(--sc-weight-bold);
242
414
  letter-spacing: -0.01em;
@@ -244,18 +416,22 @@ svg {
244
416
  white-space: nowrap;
245
417
  }
246
418
 
419
+ .sc-brand:hover {
420
+ color: var(--sc-color-text);
421
+ }
422
+
247
423
  .sc-brand-symbol {
248
- width: 1.5rem;
249
- height: 1.5rem;
250
- margin-right: var(--sc-space-2);
251
- vertical-align: middle;
424
+ width: var(--sc-brand-size);
425
+ height: var(--sc-brand-size);
252
426
  }
253
427
 
254
- .sc-sign-in-wordmark {
255
- display: block;
256
- max-width: 14rem;
257
- height: 2rem;
258
- margin-bottom: var(--sc-space-4);
428
+ .sc-brand-wordmark {
429
+ width: auto;
430
+ height: var(--sc-brand-size);
431
+ }
432
+
433
+ .sc-brand-name {
434
+ font-size: var(--sc-text-md);
259
435
  }
260
436
 
261
437
  .sc-crumb {
@@ -263,25 +439,37 @@ svg {
263
439
  align-items: center;
264
440
  gap: var(--sc-space-2);
265
441
  min-width: 0;
442
+ font-size: var(--sc-text-sm);
266
443
  white-space: nowrap;
267
444
  }
268
445
 
269
446
  .sc-crumb-separator {
270
- color: var(--sc-color-text-faint);
447
+ color: var(--sc-color-border-strong);
271
448
  }
272
449
 
273
450
  .sc-crumb-link {
274
451
  overflow: hidden;
275
452
  max-width: 14rem;
276
- color: var(--sc-color-text);
453
+ color: var(--sc-color-text-muted);
277
454
  font-weight: var(--sc-weight-medium);
278
455
  text-decoration: none;
279
456
  text-overflow: ellipsis;
457
+ transition: color var(--sc-transition);
458
+ }
459
+
460
+ .sc-crumb-link:hover {
461
+ color: var(--sc-color-text);
462
+ }
463
+
464
+ /* The last crumb is where the page is. */
465
+ .sc-crumb:last-of-type .sc-crumb-link {
466
+ color: var(--sc-color-text);
280
467
  }
281
468
 
282
469
  /* The tabs: the pages of the level the person is on, under the header's first row. */
283
470
 
284
471
  .sc-tabs {
472
+ width: 100%;
285
473
  max-width: var(--sc-width-page);
286
474
  margin-inline: auto;
287
475
  padding-inline: var(--sc-space-5);
@@ -291,14 +479,14 @@ svg {
291
479
 
292
480
  .sc-tabs-inner {
293
481
  display: flex;
294
- gap: var(--sc-space-1);
482
+ gap: var(--sc-space-5);
295
483
  }
296
484
 
297
485
  .sc-tab {
298
486
  display: inline-flex;
299
487
  align-items: center;
300
488
  gap: var(--sc-space-2);
301
- padding: var(--sc-space-2) var(--sc-space-3);
489
+ padding: var(--sc-space-2) 0 var(--sc-space-3);
302
490
  margin-bottom: -1px;
303
491
  border-bottom: 2px solid transparent;
304
492
  color: var(--sc-color-text-muted);
@@ -320,21 +508,49 @@ svg {
320
508
  color: var(--sc-color-text);
321
509
  }
322
510
 
323
- /* The person's menu: a disclosure at the end of the header, with the workspace's pages. */
511
+ /* What waits, beside a tab's name: a count in the point colour, so it reads before the words. */
512
+ .sc-nav-count {
513
+ display: inline-flex;
514
+ align-items: center;
515
+ justify-content: center;
516
+ min-width: 1.25rem;
517
+ padding-inline: var(--sc-space-1);
518
+ border-radius: var(--sc-radius-full);
519
+ background: var(--sc-color-point-subtle);
520
+ color: var(--sc-color-point);
521
+ font-size: var(--sc-text-xs);
522
+ line-height: 1.25rem;
523
+ }
524
+
525
+ /* The person's menu: a quiet label at the end of the header that opens a short list. */
526
+
527
+ .sc-header-end {
528
+ display: flex;
529
+ flex: none;
530
+ align-items: center;
531
+ gap: var(--sc-space-3);
532
+ margin-left: auto;
533
+ }
324
534
 
325
535
  .sc-menu {
326
536
  position: relative;
537
+ font-size: var(--sc-text-sm);
327
538
  }
328
539
 
329
540
  .sc-menu-summary {
330
- display: inline-flex;
541
+ display: flex;
331
542
  align-items: center;
332
543
  gap: var(--sc-space-2);
333
- padding: var(--sc-space-1) var(--sc-space-2);
544
+ min-height: var(--sc-control-size);
545
+ padding-inline: var(--sc-space-2);
334
546
  border-radius: var(--sc-radius-md);
547
+ color: var(--sc-color-text-muted);
335
548
  list-style: none;
549
+ white-space: nowrap;
336
550
  cursor: pointer;
337
- transition: background var(--sc-transition);
551
+ transition:
552
+ background var(--sc-transition),
553
+ color var(--sc-transition);
338
554
  }
339
555
 
340
556
  .sc-menu-summary::-webkit-details-marker {
@@ -343,20 +559,28 @@ svg {
343
559
 
344
560
  .sc-menu-summary:hover,
345
561
  .sc-menu[open] > .sc-menu-summary {
346
- background: var(--sc-color-bg-inset);
562
+ background: var(--sc-color-bg-raised);
563
+ color: var(--sc-color-text);
564
+ }
565
+
566
+ .sc-menu-caret {
567
+ flex: none;
568
+ width: 0.75rem;
569
+ height: 0.75rem;
347
570
  }
348
571
 
349
572
  .sc-menu-panel {
350
573
  position: absolute;
351
- top: calc(100% + var(--sc-space-1));
574
+ top: calc(100% + var(--sc-space-2));
352
575
  right: 0;
353
576
  z-index: 20;
354
- min-width: 14rem;
355
- padding: var(--sc-space-2);
577
+ width: max-content;
578
+ min-width: 13rem;
579
+ padding: var(--sc-space-1);
356
580
  border: var(--sc-border);
357
581
  border-radius: var(--sc-radius-lg);
358
- background: var(--sc-color-bg-raised);
359
- box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
582
+ background: var(--sc-color-bg-inset);
583
+ box-shadow: var(--sc-shadow-stage);
360
584
  }
361
585
 
362
586
  .sc-menu-who {
@@ -365,10 +589,14 @@ svg {
365
589
  padding: var(--sc-space-2) var(--sc-space-3) var(--sc-space-3);
366
590
  margin-bottom: var(--sc-space-1);
367
591
  border-bottom: var(--sc-border);
368
- font-size: var(--sc-text-sm);
369
592
  font-weight: var(--sc-weight-medium);
370
593
  }
371
594
 
595
+ .sc-menu-who .sc-muted {
596
+ font-weight: var(--sc-weight-normal);
597
+ font-size: var(--sc-text-xs);
598
+ }
599
+
372
600
  .sc-menu-list {
373
601
  display: flex;
374
602
  flex-direction: column;
@@ -377,24 +605,29 @@ svg {
377
605
  .sc-menu-link {
378
606
  display: block;
379
607
  width: 100%;
380
- padding: var(--sc-space-2) var(--sc-space-3);
608
+ padding-inline: var(--sc-space-3);
609
+ padding-block: calc(var(--sc-space-2) - var(--sc-label-lift))
610
+ calc(var(--sc-space-2) + var(--sc-label-lift));
381
611
  border: 0;
382
612
  border-radius: var(--sc-radius-md);
383
613
  background: none;
384
- color: var(--sc-color-text);
614
+ color: var(--sc-color-text-muted);
385
615
  font: inherit;
386
- font-size: var(--sc-text-sm);
387
616
  text-align: left;
388
617
  text-decoration: none;
389
618
  cursor: pointer;
619
+ transition:
620
+ background var(--sc-transition),
621
+ color var(--sc-transition);
390
622
  }
391
623
 
392
624
  .sc-menu-link:hover {
393
- background: var(--sc-color-bg-inset);
625
+ background: var(--sc-color-bg-raised);
626
+ color: var(--sc-color-text);
394
627
  }
395
628
 
396
629
  .sc-menu-link[aria-current="page"] {
397
- color: var(--sc-color-accent);
630
+ color: var(--sc-color-text);
398
631
  font-weight: var(--sc-weight-medium);
399
632
  }
400
633
 
@@ -408,10 +641,11 @@ svg {
408
641
  .sc-menu-heading {
409
642
  display: block;
410
643
  padding: var(--sc-space-1) var(--sc-space-3);
411
- color: var(--sc-color-text-muted);
644
+ color: var(--sc-color-text-faint);
412
645
  font-size: var(--sc-text-xs);
413
- text-transform: uppercase;
646
+ font-weight: var(--sc-weight-medium);
414
647
  letter-spacing: 0.04em;
648
+ text-transform: uppercase;
415
649
  }
416
650
 
417
651
  .sc-menu-chosen {
@@ -419,31 +653,12 @@ svg {
419
653
  font-weight: var(--sc-weight-medium);
420
654
  }
421
655
 
656
+ /* Leaving is apart from the pages one goes to. */
422
657
  .sc-menu-out {
423
658
  margin-top: var(--sc-space-1);
659
+ padding-top: calc(var(--sc-space-2) + var(--sc-space-1) - var(--sc-label-lift));
424
660
  border-top: var(--sc-border);
425
- border-radius: 0;
426
- color: var(--sc-color-text-muted);
427
- }
428
-
429
- .sc-nav-count {
430
- display: inline-flex;
431
- align-items: center;
432
- justify-content: center;
433
- min-width: 1.25rem;
434
- padding-inline: var(--sc-space-1);
435
- border-radius: var(--sc-radius-full);
436
- background: var(--sc-color-point-subtle);
437
- color: var(--sc-color-point);
438
- font-size: var(--sc-text-xs);
439
- line-height: 1.25rem;
440
- }
441
-
442
- .sc-header-end {
443
- display: flex;
444
- align-items: center;
445
- gap: var(--sc-space-3);
446
- margin-left: auto;
661
+ border-radius: 0 0 var(--sc-radius-md) var(--sc-radius-md);
447
662
  }
448
663
 
449
664
  .sc-live {
@@ -455,15 +670,27 @@ svg {
455
670
 
456
671
  .sc-live-on {
457
672
  background: var(--sc-color-success);
458
- box-shadow: 0 0 0 3px var(--sc-color-success-subtle);
673
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--sc-color-success) 25%, transparent);
459
674
  }
460
675
 
676
+ /* The page. */
677
+
678
+ /* The page is a column of blocks that fills the window below the header, so that a block which
679
+ wants the rest of the height, the board, can take it. */
461
680
  .sc-main {
681
+ display: flex;
462
682
  flex: 1;
683
+ flex-direction: column;
463
684
  width: 100%;
464
685
  max-width: var(--sc-width-page);
465
686
  margin-inline: auto;
466
- padding: var(--sc-space-6) var(--sc-space-5) var(--sc-space-7);
687
+ padding: var(--sc-space-6) var(--sc-space-5) var(--sc-space-8);
688
+ }
689
+
690
+ /* A page as wide as the window: the board, whose columns want every bit of it. */
691
+ .sc-main-wide {
692
+ max-width: none;
693
+ padding: var(--sc-space-5) var(--sc-space-4) var(--sc-space-4);
467
694
  }
468
695
 
469
696
  .sc-page-head {
@@ -472,11 +699,28 @@ svg {
472
699
  align-items: center;
473
700
  justify-content: space-between;
474
701
  gap: var(--sc-space-3);
475
- margin-bottom: var(--sc-space-5);
702
+ margin-bottom: var(--sc-space-4);
476
703
  }
477
704
 
478
705
  .sc-page-title {
479
706
  font-size: var(--sc-text-2xl);
707
+ letter-spacing: -0.02em;
708
+ }
709
+
710
+ .sc-lead {
711
+ max-width: var(--sc-width-prose);
712
+ margin-bottom: var(--sc-space-5);
713
+ color: var(--sc-color-text-muted);
714
+ }
715
+
716
+ /* On the wide page the head and the lead keep out of the board's way. */
717
+ .sc-main-wide .sc-page-head {
718
+ margin-bottom: var(--sc-space-3);
719
+ }
720
+
721
+ .sc-main-wide .sc-lead {
722
+ margin-bottom: var(--sc-space-4);
723
+ font-size: var(--sc-text-sm);
480
724
  }
481
725
 
482
726
  .sc-section-title {
@@ -487,12 +731,71 @@ svg {
487
731
  font-size: var(--sc-text-lg);
488
732
  }
489
733
 
734
+ /*
735
+ * Panes: the surfaces of the page are glass over the field. A pane is a veil of the page's own
736
+ * dark over a blur of what is behind it, with a thin lit edge; two panes differ only in what
737
+ * each has behind it. The rim is a ring with a filter of its own, under the content, so that
738
+ * what draws the edge of a pane is the field behind that edge, bent.
739
+ */
740
+
741
+ .sc-panel,
742
+ .sc-column,
743
+ .sc-project,
744
+ .sc-decision,
745
+ .sc-run,
746
+ .sc-sign-in,
747
+ .sc-facts {
748
+ position: relative;
749
+ isolation: isolate;
750
+ border: 1px solid transparent;
751
+ background: var(--sc-glass-surface);
752
+ backdrop-filter: var(--sc-glass-backdrop);
753
+ box-shadow: var(--sc-glass-sheen), var(--sc-glass-lift);
754
+ }
755
+
756
+ .sc-panel::before,
757
+ .sc-column::before,
758
+ .sc-project::before,
759
+ .sc-decision::before,
760
+ .sc-run::before,
761
+ .sc-sign-in::before,
762
+ .sc-facts::before {
763
+ content: "";
764
+ position: absolute;
765
+ inset: 0;
766
+ z-index: -1;
767
+ padding: var(--sc-glass-lens-width);
768
+ border-radius: inherit;
769
+ background: var(--sc-color-glass-edge);
770
+ backdrop-filter: var(--sc-glass-lens);
771
+ mask: var(--sc-glass-lens-mask);
772
+ mask-composite: exclude;
773
+ pointer-events: none;
774
+ }
775
+
490
776
  .sc-panel {
491
777
  margin-bottom: var(--sc-space-5);
492
778
  padding: var(--sc-space-5);
779
+ border-radius: var(--sc-radius-xl);
780
+ }
781
+
782
+ /* A panel that holds a form: as wide as a form is comfortable to fill in, and no wider. */
783
+ .sc-panel-form {
784
+ max-width: 56rem;
785
+ }
786
+
787
+ /* A sheet: a surface inside a pane, or a row of a list, with no blur of its own. */
788
+ .sc-token,
789
+ .sc-person-row,
790
+ .sc-skill,
791
+ .sc-doc-row,
792
+ .sc-feed-item,
793
+ .sc-card,
794
+ .sc-option,
795
+ .sc-answer,
796
+ .sc-report-list {
493
797
  border: var(--sc-border);
494
- border-radius: var(--sc-radius-lg);
495
- background: var(--sc-color-bg-subtle);
798
+ background: var(--sc-color-sheet);
496
799
  }
497
800
 
498
801
  .sc-loading {
@@ -509,7 +812,7 @@ svg {
509
812
  align-items: center;
510
813
  justify-content: center;
511
814
  gap: var(--sc-space-2);
512
- min-height: 2.5rem;
815
+ min-height: var(--sc-control-size);
513
816
  padding: 0 var(--sc-space-4);
514
817
  border: 1px solid transparent;
515
818
  border-radius: var(--sc-radius-md);
@@ -521,6 +824,7 @@ svg {
521
824
  transition:
522
825
  background var(--sc-transition),
523
826
  border-color var(--sc-transition),
827
+ box-shadow var(--sc-transition),
524
828
  color var(--sc-transition);
525
829
  }
526
830
 
@@ -538,21 +842,24 @@ svg {
538
842
  .sc-button-primary {
539
843
  background: var(--sc-color-accent-solid);
540
844
  color: var(--sc-color-accent-contrast);
845
+ box-shadow: var(--sc-glow);
541
846
  }
542
847
 
543
848
  .sc-button-primary:hover:not(:disabled) {
544
849
  background: var(--sc-color-accent-solid-hover);
545
850
  color: var(--sc-color-accent-contrast);
851
+ box-shadow: var(--sc-glow-bright);
546
852
  }
547
853
 
548
854
  .sc-button-secondary {
549
- background: var(--sc-color-bg);
855
+ background: var(--sc-color-field);
550
856
  border-color: var(--sc-color-border-strong);
551
857
  color: var(--sc-color-text);
552
858
  }
553
859
 
554
860
  .sc-button-secondary:hover:not(:disabled) {
555
- background: var(--sc-color-bg-subtle);
861
+ background: var(--sc-color-bg-raised);
862
+ color: var(--sc-color-text);
556
863
  }
557
864
 
558
865
  .sc-button-ghost {
@@ -566,23 +873,30 @@ svg {
566
873
  }
567
874
 
568
875
  .sc-button-danger {
876
+ background: transparent;
877
+ border-color: var(--sc-color-border-strong);
878
+ color: var(--sc-color-danger);
879
+ }
880
+
881
+ .sc-button-danger:hover:not(:disabled) {
569
882
  background: var(--sc-color-danger-subtle);
570
883
  border-color: var(--sc-color-danger);
571
- color: var(--sc-color-danger);
572
884
  }
573
885
 
574
- /* Badges */
886
+ /* Badges: a pill on the grid, its label lifted to the middle of it. */
575
887
 
576
888
  .sc-badge {
577
889
  display: inline-flex;
578
890
  align-items: center;
579
891
  gap: var(--sc-space-1);
580
- padding: var(--sc-space-1) var(--sc-space-2);
892
+ padding-inline: var(--sc-space-2);
893
+ padding-block: calc(var(--sc-space-1) - var(--sc-label-lift))
894
+ calc(var(--sc-space-1) + var(--sc-label-lift));
581
895
  border: 1px solid var(--sc-color-border);
582
896
  border-radius: var(--sc-radius-full);
583
897
  font-size: var(--sc-text-xs);
584
898
  font-weight: var(--sc-weight-medium);
585
- line-height: 1.2;
899
+ line-height: 1.25;
586
900
  white-space: nowrap;
587
901
  }
588
902
 
@@ -597,6 +911,7 @@ svg {
597
911
  color: var(--sc-color-accent);
598
912
  }
599
913
 
914
+ /* The point: a count, or that a thing is someone's; the one filled warm pill on a page. */
600
915
  .sc-badge-point {
601
916
  background: var(--sc-color-point-subtle);
602
917
  border-color: transparent;
@@ -609,9 +924,10 @@ svg {
609
924
  color: var(--sc-color-success);
610
925
  }
611
926
 
927
+ /* A state and not a fill: the warm colour is on the words and the line stays a line. */
612
928
  .sc-badge-warning {
613
- background: var(--sc-color-warning-subtle);
614
- border-color: transparent;
929
+ background: var(--sc-color-bg-subtle);
930
+ border-color: var(--sc-color-border-strong);
615
931
  color: var(--sc-color-warning);
616
932
  }
617
933
 
@@ -667,6 +983,13 @@ svg {
667
983
  font-weight: var(--sc-weight-medium);
668
984
  }
669
985
 
986
+ /* In the menu's label a long name gives way before the header runs out of room. */
987
+ .sc-menu-summary .sc-person-login {
988
+ max-width: 11rem;
989
+ overflow: hidden;
990
+ text-overflow: ellipsis;
991
+ }
992
+
670
993
  /* Callouts, empty states, spinner */
671
994
 
672
995
  .sc-callout {
@@ -678,7 +1001,7 @@ svg {
678
1001
  padding: var(--sc-space-4);
679
1002
  border: 1px solid var(--sc-color-border-strong);
680
1003
  border-radius: var(--sc-radius-md);
681
- background: var(--sc-color-bg-subtle);
1004
+ background: var(--sc-color-sheet);
682
1005
  font-size: var(--sc-text-sm);
683
1006
  }
684
1007
 
@@ -704,8 +1027,12 @@ svg {
704
1027
  margin-top: var(--sc-space-1);
705
1028
  }
706
1029
 
1030
+ .sc-callout-body p + p {
1031
+ margin-top: var(--sc-space-2);
1032
+ }
1033
+
707
1034
  .sc-empty {
708
- padding: var(--sc-space-6) var(--sc-space-5);
1035
+ padding: var(--sc-space-7) var(--sc-space-5);
709
1036
  border: 1px dashed var(--sc-color-border-strong);
710
1037
  border-radius: var(--sc-radius-lg);
711
1038
  text-align: center;
@@ -794,13 +1121,24 @@ svg {
794
1121
 
795
1122
  .sc-input {
796
1123
  width: 100%;
797
- min-height: 2.5rem;
1124
+ min-height: var(--sc-control-size);
798
1125
  padding: var(--sc-space-2) var(--sc-space-3);
799
1126
  border: 1px solid var(--sc-color-border-strong);
800
1127
  border-radius: var(--sc-radius-md);
801
- background: var(--sc-color-bg);
1128
+ background: var(--sc-color-field);
802
1129
  color: var(--sc-color-text);
803
1130
  font-size: var(--sc-text-sm);
1131
+ transition:
1132
+ border-color var(--sc-transition),
1133
+ background var(--sc-transition);
1134
+ }
1135
+
1136
+ .sc-input::placeholder {
1137
+ color: var(--sc-color-text-faint);
1138
+ }
1139
+
1140
+ .sc-input:hover:not(:disabled) {
1141
+ border-color: color-mix(in srgb, var(--sc-color-border-strong) 60%, var(--sc-color-accent));
804
1142
  }
805
1143
 
806
1144
  .sc-input:focus {
@@ -809,11 +1147,16 @@ svg {
809
1147
  border-color: var(--sc-color-accent);
810
1148
  }
811
1149
 
1150
+ .sc-input:disabled {
1151
+ opacity: 0.6;
1152
+ cursor: not-allowed;
1153
+ }
1154
+
1155
+ /* What people write is prose first, so the box they write in is set in the page's own face. */
812
1156
  .sc-textarea {
813
1157
  min-height: 6rem;
814
1158
  resize: vertical;
815
- font-family: var(--sc-font-mono);
816
- line-height: 1.6;
1159
+ line-height: var(--sc-leading-normal);
817
1160
  }
818
1161
 
819
1162
  .sc-link-row {
@@ -828,6 +1171,12 @@ svg {
828
1171
  gap: var(--sc-space-2);
829
1172
  }
830
1173
 
1174
+ /* The way to add one more line stands at the start, as wide as its words. */
1175
+ .sc-links > .sc-button,
1176
+ .sc-options > .sc-button {
1177
+ justify-self: start;
1178
+ }
1179
+
831
1180
  .sc-form-actions {
832
1181
  display: flex;
833
1182
  flex-wrap: wrap;
@@ -839,25 +1188,28 @@ svg {
839
1188
  font-size: var(--sc-text-sm);
840
1189
  }
841
1190
 
842
- /* The board */
1191
+ /* The board: one pane per state, the tasks in it as cards. It takes the height the page has left
1192
+ and the width the window has, the columns share the width while it is enough for them and
1193
+ scroll sideways when it is not, and each column scrolls within itself. */
843
1194
 
844
1195
  .sc-board {
845
1196
  display: grid;
1197
+ flex: 1 1 0;
846
1198
  grid-auto-flow: column;
847
- grid-auto-columns: var(--sc-column-width);
848
- gap: var(--sc-space-4);
1199
+ grid-auto-columns: minmax(var(--sc-column-width), 1fr);
1200
+ gap: var(--sc-space-3);
1201
+ min-height: 24rem;
849
1202
  overflow-x: auto;
850
- padding-bottom: var(--sc-space-4);
851
1203
  scroll-snap-type: x proximity;
1204
+ scrollbar-width: thin;
1205
+ scrollbar-color: var(--sc-color-border-strong) transparent;
852
1206
  }
853
1207
 
854
1208
  .sc-column {
855
1209
  display: flex;
856
1210
  flex-direction: column;
857
- min-height: 20rem;
858
- border: var(--sc-border);
859
- border-radius: var(--sc-radius-lg);
860
- background: var(--sc-color-bg-subtle);
1211
+ min-height: 0;
1212
+ border-radius: var(--sc-radius-xl);
861
1213
  scroll-snap-align: start;
862
1214
  }
863
1215
 
@@ -865,14 +1217,15 @@ svg {
865
1217
  display: flex;
866
1218
  align-items: center;
867
1219
  justify-content: space-between;
1220
+ gap: var(--sc-space-2);
868
1221
  padding: var(--sc-space-3) var(--sc-space-4);
869
1222
  border-bottom: var(--sc-border);
870
1223
  }
871
1224
 
872
1225
  .sc-column-header h2 {
873
- font-size: var(--sc-text-sm);
1226
+ font-size: var(--sc-text-xs);
874
1227
  font-weight: var(--sc-weight-bold);
875
- letter-spacing: 0.02em;
1228
+ letter-spacing: 0.06em;
876
1229
  text-transform: uppercase;
877
1230
  }
878
1231
 
@@ -890,6 +1243,11 @@ svg {
890
1243
  line-height: 1.5rem;
891
1244
  }
892
1245
 
1246
+ .sc-column-in_progress .sc-column-title,
1247
+ .sc-column-in_review .sc-column-title {
1248
+ color: var(--sc-color-accent);
1249
+ }
1250
+
893
1251
  .sc-column-done .sc-column-title {
894
1252
  color: var(--sc-color-success);
895
1253
  }
@@ -900,44 +1258,52 @@ svg {
900
1258
 
901
1259
  .sc-column-body {
902
1260
  display: grid;
1261
+ flex: 1;
903
1262
  align-content: start;
904
- gap: var(--sc-space-3);
905
- padding: var(--sc-space-3);
1263
+ gap: var(--sc-space-2);
1264
+ min-height: 0;
1265
+ padding: var(--sc-space-2);
1266
+ overflow-y: auto;
1267
+ scrollbar-width: thin;
1268
+ scrollbar-color: var(--sc-color-border-strong) transparent;
906
1269
  }
907
1270
 
908
1271
  .sc-card {
909
1272
  display: grid;
910
- gap: var(--sc-space-2);
1273
+ gap: var(--sc-space-1);
911
1274
  padding: var(--sc-space-3);
912
- border: var(--sc-border);
913
- border-radius: var(--sc-radius-md);
914
- background: var(--sc-color-bg);
1275
+ border-radius: var(--sc-radius-lg);
915
1276
  transition:
916
1277
  border-color var(--sc-transition),
917
- background var(--sc-transition);
1278
+ background var(--sc-transition),
1279
+ box-shadow var(--sc-transition);
918
1280
  }
919
1281
 
920
- .sc-card:hover {
921
- border-color: var(--sc-color-border-strong);
922
- background: var(--sc-color-bg-raised);
1282
+ .sc-card:hover,
1283
+ .sc-card:focus-within {
1284
+ border-color: var(--sc-color-accent);
1285
+ background: var(--sc-color-sheet-hover);
1286
+ box-shadow: var(--sc-glow);
923
1287
  }
924
1288
 
925
1289
  .sc-card-title {
926
1290
  color: var(--sc-color-text);
927
1291
  font-size: var(--sc-text-sm);
928
1292
  font-weight: var(--sc-weight-medium);
1293
+ line-height: 1.4;
929
1294
  text-decoration: none;
930
1295
  overflow-wrap: anywhere;
931
1296
  }
932
1297
 
933
1298
  .sc-card-title:hover {
934
- color: var(--sc-color-accent);
1299
+ color: var(--sc-color-text);
935
1300
  }
936
1301
 
937
1302
  .sc-card-number {
938
1303
  color: var(--sc-color-text-faint);
939
1304
  font-family: var(--sc-font-mono);
940
1305
  font-size: 0.9em;
1306
+ font-weight: var(--sc-weight-normal);
941
1307
  }
942
1308
 
943
1309
  .sc-card-meta {
@@ -945,60 +1311,117 @@ svg {
945
1311
  flex-wrap: wrap;
946
1312
  align-items: center;
947
1313
  gap: var(--sc-space-1);
1314
+ margin-top: var(--sc-space-1);
1315
+ }
1316
+
1317
+ .sc-card-meta:empty {
1318
+ display: none;
948
1319
  }
949
1320
 
950
1321
  .sc-card-spacer {
951
1322
  flex: 1;
952
1323
  }
953
1324
 
1325
+ /* Moving a task from its card: a quiet control, as wide as the card. */
954
1326
  .sc-card-move select {
955
1327
  width: 100%;
956
1328
  min-height: 1.75rem;
957
1329
  padding: 0 var(--sc-space-2);
958
- border: 1px solid var(--sc-color-border);
1330
+ border: 1px solid transparent;
959
1331
  border-radius: var(--sc-radius-sm);
960
- background: var(--sc-color-bg-subtle);
961
- color: var(--sc-color-text-muted);
1332
+ background: transparent;
1333
+ color: var(--sc-color-text-faint);
962
1334
  font-size: var(--sc-text-xs);
1335
+ transition:
1336
+ border-color var(--sc-transition),
1337
+ color var(--sc-transition);
1338
+ }
1339
+
1340
+ .sc-card-move select:hover,
1341
+ .sc-card-move select:focus {
1342
+ border-color: var(--sc-color-border-strong);
1343
+ background: var(--sc-color-field);
1344
+ color: var(--sc-color-text);
963
1345
  }
964
1346
 
965
- /* One task */
1347
+ /* One task, and a page of the documents: the text in a column for reading, the facts beside it
1348
+ where the window is wide enough, under it where it is not. */
966
1349
 
967
1350
  .sc-task {
968
1351
  display: grid;
969
1352
  gap: var(--sc-space-5);
1353
+ }
1354
+
1355
+ .sc-task-editing {
970
1356
  max-width: var(--sc-width-prose);
971
1357
  }
972
1358
 
973
- .sc-task-header {
1359
+ .sc-task-body {
974
1360
  display: grid;
975
- gap: var(--sc-space-2);
1361
+ grid-template-columns: minmax(0, 1fr);
1362
+ gap: var(--sc-space-5);
1363
+ align-items: start;
976
1364
  }
977
1365
 
978
- .sc-task-parent {
979
- color: var(--sc-color-text-muted);
1366
+ .sc-task-main {
1367
+ display: grid;
1368
+ gap: var(--sc-space-5);
1369
+ min-width: 0;
1370
+ max-width: var(--sc-width-prose);
1371
+ }
1372
+
1373
+ .sc-task-aside {
1374
+ display: grid;
1375
+ gap: var(--sc-space-4);
1376
+ min-width: 0;
1377
+ font-size: var(--sc-text-sm);
1378
+ }
1379
+
1380
+ @media (min-width: 64rem) {
1381
+ .sc-task-body {
1382
+ grid-template-columns: minmax(0, 1fr) var(--sc-width-aside);
1383
+ gap: var(--sc-space-7);
1384
+ }
1385
+
1386
+ .sc-task-aside {
1387
+ position: sticky;
1388
+ top: calc(var(--sc-header-height) + 2.75rem + var(--sc-space-5));
1389
+ }
1390
+ }
1391
+
1392
+ .sc-task-header {
1393
+ display: grid;
1394
+ gap: var(--sc-space-2);
1395
+ }
1396
+
1397
+ .sc-task-parent {
1398
+ color: var(--sc-color-text-muted);
980
1399
  font-size: var(--sc-text-sm);
981
1400
  }
982
1401
 
983
1402
  .sc-task-title {
984
1403
  font-size: var(--sc-text-2xl);
1404
+ letter-spacing: -0.02em;
985
1405
  overflow-wrap: anywhere;
986
1406
  }
987
1407
 
1408
+ .sc-task-title .sc-card-number {
1409
+ font-size: 0.8em;
1410
+ }
1411
+
988
1412
  .sc-task-badges {
989
1413
  display: flex;
990
1414
  flex-wrap: wrap;
991
1415
  gap: var(--sc-space-1);
992
1416
  }
993
1417
 
1418
+ /* The facts of a thing, each under its name. */
994
1419
  .sc-facts {
995
1420
  display: grid;
996
1421
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
997
1422
  gap: var(--sc-space-3);
998
1423
  padding: var(--sc-space-4);
999
- border: var(--sc-border);
1000
- border-radius: var(--sc-radius-md);
1001
- background: var(--sc-color-bg-subtle);
1424
+ border-radius: var(--sc-radius-lg);
1002
1425
  font-size: var(--sc-text-sm);
1003
1426
  }
1004
1427
 
@@ -1040,7 +1463,7 @@ svg {
1040
1463
  color: var(--sc-color-accent);
1041
1464
  }
1042
1465
 
1043
- /* Decisions */
1466
+ /* Decisions: each a pane, the ones that wait marked in the point colour. */
1044
1467
 
1045
1468
  .sc-decisions {
1046
1469
  display: grid;
@@ -1051,25 +1474,41 @@ svg {
1051
1474
  .sc-decision {
1052
1475
  display: grid;
1053
1476
  gap: var(--sc-space-3);
1054
- padding: var(--sc-space-4);
1055
- border: 1px solid var(--sc-color-warning);
1056
- border-radius: var(--sc-radius-lg);
1057
- background: var(--sc-color-bg-subtle);
1477
+ padding: var(--sc-space-5);
1478
+ border-radius: var(--sc-radius-xl);
1058
1479
  }
1059
1480
 
1060
1481
  .sc-decision + .sc-decision {
1061
1482
  margin-top: var(--sc-space-3);
1062
1483
  }
1063
1484
 
1064
- .sc-decision-answered {
1065
- border-color: var(--sc-color-border);
1066
- }
1067
-
1068
1485
  .sc-decision-question {
1069
1486
  font-size: var(--sc-text-lg);
1070
1487
  overflow-wrap: anywhere;
1071
1488
  }
1072
1489
 
1490
+ .sc-decision-question a {
1491
+ color: var(--sc-color-text);
1492
+ text-decoration: none;
1493
+ }
1494
+
1495
+ .sc-decision-question a:hover {
1496
+ color: var(--sc-color-accent);
1497
+ }
1498
+
1499
+ /* A waiting decision has a warm mark before its question: the one thing on the page to look at. */
1500
+ .sc-decision:not(.sc-decision-answered) .sc-decision-question::before {
1501
+ content: "";
1502
+ display: inline-block;
1503
+ width: 0.5rem;
1504
+ height: 0.5rem;
1505
+ margin-right: var(--sc-space-2);
1506
+ border-radius: 50%;
1507
+ background: var(--sc-color-point);
1508
+ box-shadow: 0 0 0.75rem color-mix(in srgb, var(--sc-color-point) 60%, transparent);
1509
+ vertical-align: 0.1em;
1510
+ }
1511
+
1073
1512
  .sc-decision-meta {
1074
1513
  display: flex;
1075
1514
  flex-wrap: wrap;
@@ -1090,7 +1529,6 @@ svg {
1090
1529
  gap: var(--sc-space-1);
1091
1530
  padding: var(--sc-space-3) var(--sc-space-4);
1092
1531
  border-left: 3px solid var(--sc-color-success);
1093
- background: var(--sc-color-bg);
1094
1532
  border-radius: 0 var(--sc-radius-md) var(--sc-radius-md) 0;
1095
1533
  }
1096
1534
 
@@ -1119,9 +1557,8 @@ svg {
1119
1557
  align-items: center;
1120
1558
  gap: var(--sc-space-3);
1121
1559
  padding: var(--sc-space-2) var(--sc-space-3);
1122
- border: 1px solid var(--sc-color-border-strong);
1560
+ border-color: var(--sc-color-border-strong);
1123
1561
  border-radius: var(--sc-radius-md);
1124
- background: var(--sc-color-bg);
1125
1562
  cursor: pointer;
1126
1563
  transition:
1127
1564
  border-color var(--sc-transition),
@@ -1129,7 +1566,7 @@ svg {
1129
1566
  }
1130
1567
 
1131
1568
  .sc-option:hover {
1132
- background: var(--sc-color-bg-raised);
1569
+ background: var(--sc-color-sheet-hover);
1133
1570
  }
1134
1571
 
1135
1572
  .sc-option-chosen {
@@ -1142,7 +1579,7 @@ svg {
1142
1579
  accent-color: var(--sc-color-accent);
1143
1580
  }
1144
1581
 
1145
- /* The feed */
1582
+ /* The feed: a line per event, newest first. */
1146
1583
 
1147
1584
  .sc-feed {
1148
1585
  display: grid;
@@ -1156,9 +1593,7 @@ svg {
1156
1593
  align-items: center;
1157
1594
  gap: var(--sc-space-3);
1158
1595
  padding: var(--sc-space-2) var(--sc-space-3);
1159
- border: var(--sc-border);
1160
1596
  border-radius: var(--sc-radius-md);
1161
- background: var(--sc-color-bg-subtle);
1162
1597
  font-size: var(--sc-text-sm);
1163
1598
  }
1164
1599
 
@@ -1174,30 +1609,119 @@ svg {
1174
1609
  color: var(--sc-color-accent);
1175
1610
  }
1176
1611
 
1177
- /* Signing in */
1612
+ .sc-feed-agent {
1613
+ margin-left: var(--sc-space-2);
1614
+ color: var(--sc-color-text-muted);
1615
+ font-size: var(--sc-text-sm);
1616
+ }
1617
+
1618
+ /* Signing in: one pane in the light, with the mark on a small stage of its own. */
1178
1619
 
1179
1620
  .sc-sign-in {
1180
1621
  display: grid;
1181
1622
  gap: var(--sc-space-4);
1182
- max-width: 28rem;
1183
- margin: 12dvh auto 0;
1184
- padding: var(--sc-space-6);
1185
- border: var(--sc-border);
1186
- border-radius: var(--sc-radius-lg);
1187
- background: var(--sc-color-bg-subtle);
1188
- box-shadow: var(--sc-shadow);
1623
+ max-width: 26rem;
1624
+ margin: 10dvh auto 0;
1625
+ padding: var(--sc-space-7) var(--sc-space-6) var(--sc-space-6);
1626
+ border-radius: var(--sc-radius-xl);
1627
+ text-align: center;
1628
+ }
1629
+
1630
+ .sc-sign-in-stage {
1631
+ position: relative;
1632
+ display: grid;
1633
+ place-items: center;
1634
+ height: 7rem;
1635
+ }
1636
+
1637
+ /* The light behind the mark, and the rings that leave it. */
1638
+ .sc-sign-in-stage::before {
1639
+ content: "";
1640
+ position: absolute;
1641
+ width: 14rem;
1642
+ height: 14rem;
1643
+ border-radius: 50%;
1644
+ background: radial-gradient(
1645
+ circle,
1646
+ color-mix(in srgb, var(--sc-color-accent) 35%, transparent),
1647
+ transparent 70%
1648
+ );
1649
+ pointer-events: none;
1650
+ }
1651
+
1652
+ .sc-sign-in-badge {
1653
+ position: relative;
1654
+ display: grid;
1655
+ place-items: center;
1656
+ width: 4rem;
1657
+ height: 4rem;
1658
+ border: 1px solid var(--sc-color-border-strong);
1659
+ border-radius: 28%;
1660
+ background: var(--sc-color-bg);
1661
+ box-shadow: 0 0.5rem 2rem -0.25rem color-mix(in srgb, var(--sc-color-accent) 55%, transparent);
1662
+ }
1663
+
1664
+ .sc-sign-in-badge::after {
1665
+ content: "";
1666
+ position: absolute;
1667
+ inset: 0;
1668
+ border: 1px solid var(--sc-color-accent);
1669
+ border-radius: inherit;
1670
+ opacity: 0;
1671
+ pointer-events: none;
1672
+ }
1673
+
1674
+ @media (prefers-reduced-motion: no-preference) {
1675
+ .sc-sign-in-badge::after {
1676
+ animation: sc-ring 3.6s ease-out infinite;
1677
+ }
1678
+ }
1679
+
1680
+ @keyframes sc-ring {
1681
+ 0% {
1682
+ transform: scale(1);
1683
+ opacity: 0.6;
1684
+ }
1685
+ 100% {
1686
+ transform: scale(2.6);
1687
+ opacity: 0;
1688
+ }
1689
+ }
1690
+
1691
+ .sc-sign-in-symbol {
1692
+ width: 2.25rem;
1693
+ height: 2.25rem;
1694
+ }
1695
+
1696
+ .sc-sign-in-wordmark {
1697
+ display: block;
1698
+ max-width: 12rem;
1699
+ height: 1.5rem;
1700
+ margin-inline: auto;
1189
1701
  }
1190
1702
 
1191
1703
  .sc-sign-in-title {
1192
- font-size: var(--sc-text-2xl);
1704
+ font-size: var(--sc-text-xl);
1193
1705
  }
1194
1706
 
1195
1707
  .sc-sign-in-lead {
1196
1708
  color: var(--sc-color-text-muted);
1197
1709
  }
1198
1710
 
1711
+ .sc-sign-in .sc-callout {
1712
+ margin-bottom: 0;
1713
+ text-align: left;
1714
+ }
1715
+
1716
+ .sc-sign-in-ways {
1717
+ display: flex;
1718
+ flex-wrap: wrap;
1719
+ justify-content: center;
1720
+ gap: var(--sc-space-3);
1721
+ }
1722
+
1199
1723
  .sc-sign-in-button {
1200
- justify-self: start;
1724
+ justify-self: center;
1201
1725
  }
1202
1726
 
1203
1727
  /* Prose: what people and agents write, rendered from Markdown. Element selectors on purpose. */
@@ -1208,14 +1732,18 @@ svg {
1208
1732
  }
1209
1733
 
1210
1734
  .sc-prose > * + * {
1211
- margin-top: var(--sc-space-3);
1735
+ margin-top: var(--sc-space-4);
1212
1736
  }
1213
1737
 
1214
1738
  .sc-prose h1,
1215
1739
  .sc-prose h2,
1216
1740
  .sc-prose h3,
1217
1741
  .sc-prose h4 {
1218
- margin-top: var(--sc-space-5);
1742
+ margin-top: var(--sc-space-6);
1743
+ }
1744
+
1745
+ .sc-prose > :first-child {
1746
+ margin-top: 0;
1219
1747
  }
1220
1748
 
1221
1749
  .sc-prose h1 {
@@ -1223,6 +1751,8 @@ svg {
1223
1751
  }
1224
1752
 
1225
1753
  .sc-prose h2 {
1754
+ padding-bottom: var(--sc-space-2);
1755
+ border-bottom: var(--sc-border);
1226
1756
  font-size: var(--sc-text-lg);
1227
1757
  }
1228
1758
 
@@ -1250,7 +1780,7 @@ svg {
1250
1780
 
1251
1781
  .sc-prose blockquote {
1252
1782
  padding-left: var(--sc-space-4);
1253
- border-left: 2px solid var(--sc-color-border-strong);
1783
+ border-left: 2px solid var(--sc-color-accent);
1254
1784
  color: var(--sc-color-text-muted);
1255
1785
  }
1256
1786
 
@@ -1264,9 +1794,9 @@ svg {
1264
1794
  padding: var(--sc-space-4);
1265
1795
  border: var(--sc-border);
1266
1796
  border-radius: var(--sc-radius-md);
1267
- background: var(--sc-color-bg-inset);
1797
+ background: var(--sc-color-sheet);
1268
1798
  font-size: var(--sc-text-sm);
1269
- line-height: 1.6;
1799
+ line-height: var(--sc-leading-code);
1270
1800
  white-space: pre-wrap;
1271
1801
  }
1272
1802
 
@@ -1293,7 +1823,7 @@ svg {
1293
1823
  }
1294
1824
 
1295
1825
  .sc-prose th {
1296
- background: var(--sc-color-bg-subtle);
1826
+ background: var(--sc-color-sheet);
1297
1827
  }
1298
1828
 
1299
1829
  .sc-prose img {
@@ -1312,40 +1842,7 @@ svg {
1312
1842
  margin-right: var(--sc-space-2);
1313
1843
  }
1314
1844
 
1315
- @media (max-width: 40rem) {
1316
- .sc-header-inner {
1317
- gap: var(--sc-space-3);
1318
- padding-inline: var(--sc-space-4);
1319
- }
1320
-
1321
- .sc-tabs {
1322
- padding-inline: var(--sc-space-4);
1323
- }
1324
-
1325
- .sc-menu-summary .sc-person-login {
1326
- display: none;
1327
- }
1328
-
1329
- .sc-main {
1330
- padding-inline: var(--sc-space-4);
1331
- }
1332
-
1333
- .sc-board {
1334
- grid-auto-columns: min(var(--sc-column-width), 85vw);
1335
- }
1336
-
1337
- .sc-feed-item {
1338
- grid-template-columns: 1fr;
1339
- }
1340
- }
1341
-
1342
- /* Tokens: the ones a person holds, and the one just made, shown once. */
1343
-
1344
- .sc-lead {
1345
- max-width: var(--sc-width-prose);
1346
- margin-bottom: var(--sc-space-5);
1347
- color: var(--sc-color-text-muted);
1348
- }
1845
+ /* Agents: the tokens a person holds, and the one just made, shown once. */
1349
1846
 
1350
1847
  .sc-token-list {
1351
1848
  display: grid;
@@ -1359,9 +1856,7 @@ svg {
1359
1856
  justify-content: space-between;
1360
1857
  gap: var(--sc-space-3);
1361
1858
  padding: var(--sc-space-4);
1362
- border: var(--sc-border);
1363
- border-radius: var(--sc-radius-md);
1364
- background: var(--sc-color-bg-subtle);
1859
+ border-radius: var(--sc-radius-lg);
1365
1860
  }
1366
1861
 
1367
1862
  .sc-token-name {
@@ -1408,9 +1903,7 @@ svg {
1408
1903
  align-items: center;
1409
1904
  gap: var(--sc-space-3);
1410
1905
  padding: var(--sc-space-3) var(--sc-space-4);
1411
- border: var(--sc-border);
1412
- border-radius: var(--sc-radius-md);
1413
- background: var(--sc-color-bg-subtle);
1906
+ border-radius: var(--sc-radius-lg);
1414
1907
  }
1415
1908
 
1416
1909
  .sc-person-name {
@@ -1423,23 +1916,37 @@ svg {
1423
1916
 
1424
1917
  .sc-projects {
1425
1918
  display: grid;
1426
- gap: var(--sc-space-3);
1919
+ grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
1920
+ gap: var(--sc-space-4);
1427
1921
  }
1428
1922
 
1429
1923
  .sc-project {
1430
- padding: var(--sc-space-4);
1431
- border: var(--sc-border);
1432
- border-radius: var(--sc-radius-md);
1433
- background: var(--sc-color-bg-subtle);
1924
+ display: flex;
1925
+ flex-direction: column;
1926
+ gap: var(--sc-space-2);
1927
+ padding: var(--sc-space-5);
1928
+ border-radius: var(--sc-radius-xl);
1929
+ transition:
1930
+ border-color var(--sc-transition),
1931
+ background var(--sc-transition),
1932
+ box-shadow var(--sc-transition);
1933
+ }
1934
+
1935
+ .sc-project:hover,
1936
+ .sc-project:focus-within {
1937
+ border-color: var(--sc-color-accent);
1938
+ background: var(--sc-glass-surface-hover);
1939
+ box-shadow: var(--sc-glass-sheen), var(--sc-glass-lift), var(--sc-glow);
1434
1940
  }
1435
1941
 
1436
1942
  .sc-project-head {
1437
1943
  display: flex;
1438
1944
  flex-wrap: wrap;
1439
1945
  align-items: center;
1440
- gap: var(--sc-space-3);
1946
+ gap: var(--sc-space-2) var(--sc-space-3);
1441
1947
  }
1442
1948
 
1949
+ /* The whole pane is the way in: the name's link stretches over it. */
1443
1950
  .sc-project-name {
1444
1951
  color: var(--sc-color-text);
1445
1952
  font-size: var(--sc-text-lg);
@@ -1447,25 +1954,36 @@ svg {
1447
1954
  text-decoration: none;
1448
1955
  }
1449
1956
 
1957
+ .sc-project-name::after {
1958
+ content: "";
1959
+ position: absolute;
1960
+ inset: 0;
1961
+ }
1962
+
1450
1963
  .sc-project-name:hover {
1451
- text-decoration: underline;
1964
+ color: var(--sc-color-text);
1965
+ }
1966
+
1967
+ .sc-project-name:focus-visible {
1968
+ outline: none;
1452
1969
  }
1453
1970
 
1454
1971
  .sc-project-key {
1455
- color: var(--sc-color-text-muted);
1456
- font-size: var(--sc-text-sm);
1972
+ color: var(--sc-color-text-faint);
1973
+ font-size: var(--sc-text-xs);
1457
1974
  }
1458
1975
 
1459
1976
  .sc-project-description {
1460
- margin: var(--sc-space-2) 0 0;
1461
1977
  color: var(--sc-color-text-muted);
1978
+ font-size: var(--sc-text-sm);
1462
1979
  }
1463
1980
 
1464
1981
  .sc-project-meta {
1465
1982
  display: flex;
1466
1983
  flex-wrap: wrap;
1467
1984
  gap: var(--sc-space-2);
1468
- margin: var(--sc-space-2) 0 0;
1985
+ margin-top: auto;
1986
+ padding-top: var(--sc-space-2);
1469
1987
  }
1470
1988
 
1471
1989
  .sc-project-meta:empty {
@@ -1481,12 +1999,6 @@ svg {
1481
1999
  align-items: end;
1482
2000
  }
1483
2001
 
1484
- .sc-feed-agent {
1485
- margin-left: var(--sc-space-2);
1486
- color: var(--sc-color-text-muted);
1487
- font-size: var(--sc-text-sm);
1488
- }
1489
-
1490
2002
  /* Skills: the project's, or the organization's, as SkillCDN serves them at the address. */
1491
2003
 
1492
2004
  .sc-skills {
@@ -1496,9 +2008,7 @@ svg {
1496
2008
 
1497
2009
  .sc-skill {
1498
2010
  padding: var(--sc-space-3) var(--sc-space-4);
1499
- border: var(--sc-border);
1500
- border-radius: var(--sc-radius-md);
1501
- background: var(--sc-color-bg-subtle);
2011
+ border-radius: var(--sc-radius-lg);
1502
2012
  }
1503
2013
 
1504
2014
  .sc-skill-head {
@@ -1510,27 +2020,23 @@ svg {
1510
2020
  }
1511
2021
 
1512
2022
  .sc-skill-name {
1513
- font-weight: 600;
2023
+ font-weight: var(--sc-weight-medium);
1514
2024
  }
1515
2025
 
1516
2026
  .sc-skill-description {
1517
2027
  margin: var(--sc-space-2) 0 0;
2028
+ color: var(--sc-color-text-muted);
2029
+ font-size: var(--sc-text-sm);
1518
2030
  }
1519
2031
 
1520
2032
  .sc-skill-uri {
1521
2033
  display: block;
1522
2034
  margin-top: var(--sc-space-2);
1523
- color: var(--sc-color-text-muted);
1524
- font-size: var(--sc-text-sm);
2035
+ color: var(--sc-color-text-faint);
2036
+ font-size: var(--sc-text-xs);
1525
2037
  word-break: break-all;
1526
2038
  }
1527
2039
 
1528
- .sc-sign-in-ways {
1529
- display: flex;
1530
- flex-wrap: wrap;
1531
- gap: var(--sc-space-3);
1532
- }
1533
-
1534
2040
  /* Runs: an agent at work on a task, what it reported and handed in. */
1535
2041
 
1536
2042
  .sc-runs {
@@ -1541,10 +2047,8 @@ svg {
1541
2047
  .sc-run {
1542
2048
  display: grid;
1543
2049
  gap: var(--sc-space-3);
1544
- padding: var(--sc-space-4);
1545
- border: var(--sc-border);
1546
- border-radius: var(--sc-radius-md);
1547
- background: var(--sc-color-bg-subtle);
2050
+ padding: var(--sc-space-4) var(--sc-space-5);
2051
+ border-radius: var(--sc-radius-lg);
1548
2052
  }
1549
2053
 
1550
2054
  .sc-run-header {
@@ -1584,10 +2088,11 @@ svg {
1584
2088
  gap: var(--sc-space-1);
1585
2089
  padding-left: var(--sc-space-3);
1586
2090
  border-left: 2px solid var(--sc-color-border-strong);
2091
+ font-size: var(--sc-text-sm);
1587
2092
  }
1588
2093
 
1589
2094
  .sc-run-summary {
1590
- padding-top: var(--sc-space-2);
2095
+ padding-top: var(--sc-space-3);
1591
2096
  border-top: var(--sc-border);
1592
2097
  }
1593
2098
 
@@ -1601,22 +2106,46 @@ svg {
1601
2106
  overflow-x: auto;
1602
2107
  padding: var(--sc-space-3) var(--sc-space-4);
1603
2108
  border: var(--sc-border);
1604
- border-radius: var(--sc-radius-sm);
1605
- background: var(--sc-color-bg-inset);
2109
+ border-radius: var(--sc-radius-md);
2110
+ background: var(--sc-color-field);
1606
2111
  font-family: var(--sc-font-mono);
1607
2112
  font-size: var(--sc-text-sm);
2113
+ line-height: var(--sc-leading-code);
1608
2114
  white-space: pre-wrap;
1609
2115
  word-break: break-all;
1610
2116
  }
1611
2117
 
2118
+ .sc-code-input {
2119
+ max-width: 12rem;
2120
+ font-family: var(--sc-font-mono);
2121
+ font-size: var(--sc-text-lg);
2122
+ letter-spacing: 0.12em;
2123
+ text-transform: uppercase;
2124
+ }
2125
+
2126
+ .sc-code-shown {
2127
+ font-size: var(--sc-text-md);
2128
+ letter-spacing: 0.1em;
2129
+ }
2130
+
1612
2131
  /* Documents: a folder's pages, one page with its versions, its links both ways and its files. */
1613
2132
 
2133
+ .sc-doc {
2134
+ display: grid;
2135
+ gap: var(--sc-space-5);
2136
+ }
2137
+
1614
2138
  .sc-doc-crumbs {
1615
2139
  margin-bottom: var(--sc-space-3);
1616
2140
  color: var(--sc-color-text-muted);
1617
2141
  font-size: var(--sc-text-sm);
1618
2142
  }
1619
2143
 
2144
+ /* On a page the crumbs sit close to the title. */
2145
+ .sc-doc > .sc-doc-crumbs {
2146
+ margin-bottom: calc(-1 * var(--sc-space-3));
2147
+ }
2148
+
1620
2149
  .sc-doc-crumbs a {
1621
2150
  color: var(--sc-color-text-muted);
1622
2151
  text-decoration: none;
@@ -1626,6 +2155,10 @@ svg {
1626
2155
  color: var(--sc-color-accent);
1627
2156
  }
1628
2157
 
2158
+ .sc-doc-crumbs .sc-crumb-separator {
2159
+ margin-inline: var(--sc-space-2);
2160
+ }
2161
+
1629
2162
  .sc-doc-search {
1630
2163
  display: flex;
1631
2164
  gap: var(--sc-space-2);
@@ -1655,16 +2188,19 @@ svg {
1655
2188
  display: inline-block;
1656
2189
  padding: var(--sc-space-1) var(--sc-space-3);
1657
2190
  border: var(--sc-border);
1658
- border-radius: var(--sc-radius-md);
1659
- background: var(--sc-color-bg-subtle);
2191
+ border-radius: var(--sc-radius-full);
2192
+ background: var(--sc-color-sheet);
1660
2193
  color: var(--sc-color-text);
1661
2194
  font-family: var(--sc-font-mono);
1662
2195
  font-size: var(--sc-text-sm);
1663
2196
  text-decoration: none;
2197
+ transition:
2198
+ border-color var(--sc-transition),
2199
+ color var(--sc-transition);
1664
2200
  }
1665
2201
 
1666
2202
  .sc-folder-link:hover {
1667
- border-color: var(--sc-color-border-strong);
2203
+ border-color: var(--sc-color-accent);
1668
2204
  color: var(--sc-color-accent);
1669
2205
  }
1670
2206
 
@@ -1682,9 +2218,12 @@ svg {
1682
2218
  align-items: baseline;
1683
2219
  gap: var(--sc-space-2) var(--sc-space-3);
1684
2220
  padding: var(--sc-space-3) var(--sc-space-4);
1685
- border: var(--sc-border);
1686
- border-radius: var(--sc-radius-md);
1687
- background: var(--sc-color-bg-subtle);
2221
+ border-radius: var(--sc-radius-lg);
2222
+ transition: border-color var(--sc-transition);
2223
+ }
2224
+
2225
+ .sc-doc-row:hover {
2226
+ border-color: var(--sc-color-border-strong);
1688
2227
  }
1689
2228
 
1690
2229
  .sc-doc-title {
@@ -1709,9 +2248,7 @@ svg {
1709
2248
  }
1710
2249
 
1711
2250
  .sc-doc-editor {
1712
- min-height: 20rem;
1713
- font-family: var(--sc-font-mono);
1714
- font-size: var(--sc-text-sm);
2251
+ min-height: 24rem;
1715
2252
  }
1716
2253
 
1717
2254
  .sc-doc-notice {
@@ -1719,7 +2256,7 @@ svg {
1719
2256
  padding: var(--sc-space-3) var(--sc-space-4);
1720
2257
  border: var(--sc-border);
1721
2258
  border-radius: var(--sc-radius-md);
1722
- background: var(--sc-color-bg-inset);
2259
+ background: var(--sc-color-sheet);
1723
2260
  color: var(--sc-color-text-muted);
1724
2261
  }
1725
2262
 
@@ -1751,6 +2288,30 @@ svg {
1751
2288
  font-size: var(--sc-text-sm);
1752
2289
  }
1753
2290
 
2291
+ /* In the aside of a task or a page, the facts stack and the sections are small. */
2292
+
2293
+ .sc-task-aside .sc-facts {
2294
+ grid-template-columns: 1fr;
2295
+ }
2296
+
2297
+ .sc-task-aside .sc-section-title {
2298
+ margin-bottom: var(--sc-space-1);
2299
+ color: var(--sc-color-text-faint);
2300
+ font-size: var(--sc-text-xs);
2301
+ font-weight: var(--sc-weight-medium);
2302
+ letter-spacing: 0.04em;
2303
+ text-transform: uppercase;
2304
+ }
2305
+
2306
+ .sc-task-aside .sc-task-section {
2307
+ gap: var(--sc-space-1);
2308
+ }
2309
+
2310
+ .sc-task-aside .sc-link-list li + li,
2311
+ .sc-task-aside .sc-version + .sc-version {
2312
+ margin-top: var(--sc-space-1);
2313
+ }
2314
+
1754
2315
  /* A decision as a record: its context, its answer, and what followed. */
1755
2316
 
1756
2317
  .sc-decision-section {
@@ -1770,3 +2331,79 @@ svg {
1770
2331
  display: grid;
1771
2332
  gap: var(--sc-space-2);
1772
2333
  }
2334
+
2335
+ /* Small screens. */
2336
+
2337
+ @media (max-width: 40rem) {
2338
+ .sc-header-inner {
2339
+ gap: var(--sc-space-3);
2340
+ padding-inline: var(--sc-space-4);
2341
+ }
2342
+
2343
+ .sc-brand-symbol,
2344
+ .sc-brand-wordmark {
2345
+ height: var(--sc-brand-size-compact);
2346
+ }
2347
+
2348
+ .sc-brand-symbol {
2349
+ width: var(--sc-brand-size-compact);
2350
+ }
2351
+
2352
+ .sc-crumb-link {
2353
+ max-width: 8rem;
2354
+ }
2355
+
2356
+ /* A narrow bar holds the lockup and where the page is; the crumbs above that give way. */
2357
+ .sc-crumb:not(:last-of-type) {
2358
+ display: none;
2359
+ }
2360
+
2361
+ .sc-tabs {
2362
+ padding-inline: var(--sc-space-4);
2363
+ }
2364
+
2365
+ .sc-tabs-inner {
2366
+ gap: var(--sc-space-4);
2367
+ }
2368
+
2369
+ .sc-menu-summary .sc-person-login {
2370
+ display: none;
2371
+ }
2372
+
2373
+ .sc-main {
2374
+ padding: var(--sc-space-5) var(--sc-space-4) var(--sc-space-7);
2375
+ }
2376
+
2377
+ .sc-page-title {
2378
+ font-size: var(--sc-text-xl);
2379
+ }
2380
+
2381
+ .sc-panel {
2382
+ padding: var(--sc-space-4);
2383
+ border-radius: var(--sc-radius-lg);
2384
+ }
2385
+
2386
+ .sc-board {
2387
+ grid-auto-columns: min(var(--sc-column-width), 85vw);
2388
+ }
2389
+
2390
+ .sc-feed-item {
2391
+ grid-template-columns: 1fr;
2392
+ gap: var(--sc-space-1);
2393
+ }
2394
+
2395
+ .sc-sign-in {
2396
+ margin-top: var(--sc-space-6);
2397
+ padding: var(--sc-space-6) var(--sc-space-5) var(--sc-space-5);
2398
+ }
2399
+
2400
+ .sc-link-row {
2401
+ grid-template-columns: 1fr;
2402
+ }
2403
+
2404
+ .sc-decision,
2405
+ .sc-project {
2406
+ padding: var(--sc-space-4);
2407
+ border-radius: var(--sc-radius-lg);
2408
+ }
2409
+ }