@rmdes/indiekit-endpoint-microsub 1.0.45 → 1.0.46

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/assets/styles.css CHANGED
@@ -7,13 +7,13 @@
7
7
  Reader Layout
8
8
  ========================================================================== */
9
9
 
10
- .reader {
10
+ .ms-reader {
11
11
  display: flex;
12
12
  flex-direction: column;
13
13
  gap: var(--space-m);
14
14
  }
15
15
 
16
- .reader__header {
16
+ .ms-reader__header {
17
17
  align-items: center;
18
18
  display: flex;
19
19
  flex-wrap: wrap;
@@ -21,7 +21,7 @@
21
21
  justify-content: space-between;
22
22
  }
23
23
 
24
- .reader__actions {
24
+ .ms-reader__actions {
25
25
  display: flex;
26
26
  flex-wrap: wrap;
27
27
  gap: var(--space-xs);
@@ -31,16 +31,16 @@
31
31
  Channel List
32
32
  ========================================================================== */
33
33
 
34
- .reader__channels {
34
+ .ms-reader__channels {
35
35
  display: flex;
36
36
  flex-direction: column;
37
37
  gap: var(--space-xs);
38
38
  }
39
39
 
40
- .reader__channel {
40
+ .ms-reader__channel {
41
41
  align-items: center;
42
42
  background: var(--color-offset);
43
- border-radius: var(--border-radius);
43
+ border-radius: var(--border-radius-small);
44
44
  color: inherit;
45
45
  display: flex;
46
46
  gap: var(--space-s);
@@ -51,27 +51,27 @@
51
51
  box-shadow 0.2s ease;
52
52
  }
53
53
 
54
- .reader__channel:hover {
55
- background: var(--color-offset-active);
54
+ .ms-reader__channel:hover {
55
+ background: var(--color-offset-variant);
56
56
  }
57
57
 
58
- .reader__channel--active {
58
+ .ms-reader__channel--active {
59
59
  background: var(--color-primary);
60
60
  color: var(--color-background);
61
61
  }
62
62
 
63
- .reader__channel-name {
63
+ .ms-reader__channel-name {
64
64
  flex: 1;
65
65
  font-weight: 500;
66
66
  }
67
67
 
68
- .reader__channel-badge {
68
+ .ms-reader__channel-badge {
69
69
  align-items: center;
70
70
  background: var(--color-primary);
71
71
  border-radius: 0.75rem;
72
72
  color: var(--color-background);
73
73
  display: inline-flex;
74
- font-size: var(--font-size-small);
74
+ font-size: var(--font-size-s);
75
75
  font-weight: 600;
76
76
  height: 1.5rem;
77
77
  justify-content: center;
@@ -79,13 +79,13 @@
79
79
  padding: 0 var(--space-xs);
80
80
  }
81
81
 
82
- .reader__channel--active .reader__channel-badge {
82
+ .ms-reader__channel--active .ms-reader__channel-badge {
83
83
  background: var(--color-background);
84
84
  color: var(--color-primary);
85
85
  }
86
86
 
87
87
  /* Dot indicator for boolean unread state */
88
- .reader__channel-badge--dot {
88
+ .ms-reader__channel-badge--dot {
89
89
  height: 0.75rem;
90
90
  min-width: 0.75rem;
91
91
  padding: 0;
@@ -96,14 +96,14 @@
96
96
  Timeline
97
97
  ========================================================================== */
98
98
 
99
- .timeline {
99
+ .ms-timeline {
100
100
  display: flex;
101
101
  flex-direction: column;
102
102
  gap: var(--space-m);
103
103
  }
104
104
 
105
- .timeline__paging {
106
- border-top: 1px solid var(--color-offset);
105
+ .ms-timeline__paging {
106
+ border-top: var(--border-width-thin) solid var(--color-offset);
107
107
  display: flex;
108
108
  gap: var(--space-m);
109
109
  justify-content: space-between;
@@ -114,10 +114,10 @@
114
114
  Item Card
115
115
  ========================================================================== */
116
116
 
117
- .item-card {
117
+ .ms-item-card {
118
118
  background: var(--color-background);
119
- border: 1px solid var(--color-offset);
120
- border-radius: var(--border-radius);
119
+ border: var(--border-width-thin) solid var(--color-offset);
120
+ border-radius: var(--border-radius-small);
121
121
  display: block;
122
122
  overflow: hidden;
123
123
  transition:
@@ -125,21 +125,21 @@
125
125
  transform 0.1s ease;
126
126
  }
127
127
 
128
- .item-card:hover {
129
- border-color: var(--color-offset-active);
128
+ .ms-item-card:hover {
129
+ border-color: var(--color-offset-variant);
130
130
  }
131
131
 
132
132
  /* Unread state - yellow glow (Aperture pattern) */
133
- .item-card:not(.item-card--read) {
134
- border-color: rgba(255, 204, 0, 0.5);
135
- box-shadow: 0 0 10px 0 rgba(255, 204, 0, 0.8);
133
+ .ms-item-card:not(.ms-item-card--read) {
134
+ border-color: hsl(var(--tint-yellow) 50% / 0.5);
135
+ box-shadow: 0 0 10px 0 hsl(var(--tint-yellow) 50% / 0.8);
136
136
  }
137
137
 
138
- .item-card--read {
138
+ .ms-item-card--read {
139
139
  opacity: 0.85;
140
140
  }
141
141
 
142
- .item-card__link {
142
+ .ms-item-card__link {
143
143
  color: inherit;
144
144
  display: block;
145
145
  padding: var(--space-m);
@@ -147,15 +147,15 @@
147
147
  }
148
148
 
149
149
  /* Author */
150
- .item-card__author {
150
+ .ms-item-card__author {
151
151
  align-items: center;
152
152
  display: flex;
153
153
  gap: var(--space-s);
154
154
  margin-bottom: var(--space-s);
155
155
  }
156
156
 
157
- .item-card__author-photo {
158
- border: 1px solid var(--color-offset);
157
+ .ms-item-card__author-photo {
158
+ border: var(--border-width-thin) solid var(--color-offset);
159
159
  border-radius: 50%;
160
160
  flex-shrink: 0;
161
161
  height: 40px;
@@ -163,84 +163,84 @@
163
163
  width: 40px;
164
164
  }
165
165
 
166
- .item-card__author-info {
166
+ .ms-item-card__author-info {
167
167
  display: flex;
168
168
  flex-direction: column;
169
169
  min-width: 0;
170
170
  }
171
171
 
172
- .item-card__author-name {
173
- font-size: var(--font-size-body);
172
+ .ms-item-card__author-name {
173
+ font-size: var(--font-size-m);
174
174
  font-weight: 600;
175
175
  overflow: hidden;
176
176
  text-overflow: ellipsis;
177
177
  white-space: nowrap;
178
178
  }
179
179
 
180
- .item-card__source {
181
- color: var(--color-text-muted);
182
- font-size: var(--font-size-small);
180
+ .ms-item-card__source {
181
+ color: var(--color-on-offset);
182
+ font-size: var(--font-size-s);
183
183
  overflow: hidden;
184
184
  text-overflow: ellipsis;
185
185
  white-space: nowrap;
186
186
  }
187
187
 
188
188
  /* Post type indicator */
189
- .item-card__type {
189
+ .ms-item-card__type {
190
190
  align-items: center;
191
191
  background: var(--color-offset);
192
- border-radius: var(--border-radius);
193
- color: var(--color-text-muted);
192
+ border-radius: var(--border-radius-small);
193
+ color: var(--color-on-offset);
194
194
  display: inline-flex;
195
- font-size: var(--font-size-small);
195
+ font-size: var(--font-size-s);
196
196
  gap: var(--space-xs);
197
197
  margin-bottom: var(--space-s);
198
198
  padding: var(--space-xs) var(--space-s);
199
199
  }
200
200
 
201
- .item-card__type svg {
201
+ .ms-item-card__type svg {
202
202
  height: 1em;
203
203
  width: 1em;
204
204
  }
205
205
 
206
206
  /* Context bar for interactions (Aperture pattern) */
207
- .item-card__context {
207
+ .ms-item-card__context {
208
208
  align-items: center;
209
209
  background: var(--color-offset);
210
210
  display: flex;
211
- font-size: var(--font-size-small);
211
+ font-size: var(--font-size-s);
212
212
  gap: var(--space-xs);
213
213
  margin: calc(-1 * var(--space-m));
214
214
  margin-bottom: var(--space-s);
215
215
  padding: var(--space-s) var(--space-m);
216
216
  }
217
217
 
218
- .item-card__context a {
218
+ .ms-item-card__context a {
219
219
  color: var(--color-primary);
220
220
  text-decoration: none;
221
221
  }
222
222
 
223
- .item-card__context a:hover {
223
+ .ms-item-card__context a:hover {
224
224
  text-decoration: underline;
225
225
  }
226
226
 
227
- .item-card__context svg {
227
+ .ms-item-card__context svg {
228
228
  flex-shrink: 0;
229
229
  height: 1em;
230
230
  width: 1em;
231
231
  }
232
232
 
233
233
  /* Title */
234
- .item-card__title {
235
- font-size: var(--font-size-heading-4);
234
+ .ms-item-card__title {
235
+ font-size: var(--font-size-l);
236
236
  font-weight: 600;
237
237
  line-height: 1.3;
238
238
  margin-bottom: var(--space-xs);
239
239
  }
240
240
 
241
241
  /* Content with expandable overflow (Aperture pattern) */
242
- .item-card__content {
243
- color: var(--color-text);
242
+ .ms-item-card__content {
243
+ color: var(--color-on-background);
244
244
  line-height: 1.5;
245
245
  margin-bottom: var(--space-s);
246
246
  max-height: 200px;
@@ -248,11 +248,11 @@
248
248
  position: relative;
249
249
  }
250
250
 
251
- .item-card__content--expanded {
251
+ .ms-item-card__content--expanded {
252
252
  max-height: none;
253
253
  }
254
254
 
255
- .item-card__content--truncated::after {
255
+ .ms-item-card__content--truncated::after {
256
256
  background: linear-gradient(to bottom, transparent, var(--color-background));
257
257
  bottom: 0;
258
258
  content: "";
@@ -263,18 +263,18 @@
263
263
  right: 0;
264
264
  }
265
265
 
266
- .item-card__read-more {
266
+ .ms-item-card__read-more {
267
267
  color: var(--color-primary);
268
268
  cursor: pointer;
269
269
  display: block;
270
- font-size: var(--font-size-small);
270
+ font-size: var(--font-size-s);
271
271
  padding: var(--space-xs);
272
272
  text-align: center;
273
273
  }
274
274
 
275
275
  /* Photo grid (Aperture multi-photo pattern) */
276
- .item-card__photos {
277
- border-radius: var(--border-radius);
276
+ .ms-item-card__photos {
277
+ border-radius: var(--border-radius-small);
278
278
  display: grid;
279
279
  gap: 2px;
280
280
  margin-bottom: var(--space-s);
@@ -282,87 +282,87 @@
282
282
  }
283
283
 
284
284
  /* Single photo */
285
- .item-card__photos--1 {
285
+ .ms-item-card__photos--1 {
286
286
  grid-template-columns: 1fr;
287
287
  }
288
288
 
289
289
  /* 2 photos - side by side */
290
- .item-card__photos--2 {
290
+ .ms-item-card__photos--2 {
291
291
  grid-template-columns: 1fr 1fr;
292
292
  }
293
293
 
294
294
  /* 3 photos - one large, two small */
295
- .item-card__photos--3 {
295
+ .ms-item-card__photos--3 {
296
296
  grid-template-columns: 2fr 1fr;
297
297
  grid-template-rows: 1fr 1fr;
298
298
  }
299
299
 
300
300
  /* 4+ photos - grid */
301
- .item-card__photos--4 {
301
+ .ms-item-card__photos--4 {
302
302
  grid-template-columns: 1fr 1fr;
303
303
  grid-template-rows: 1fr 1fr;
304
304
  }
305
305
 
306
306
  /* Base photo styles - must come before specific overrides */
307
- .item-card__photo {
307
+ .ms-item-card__photo {
308
308
  background: var(--color-offset);
309
309
  height: 150px;
310
310
  object-fit: cover;
311
311
  width: 100%;
312
312
  }
313
313
 
314
- .item-card__photos--1 .item-card__photo {
314
+ .ms-item-card__photos--1 .ms-item-card__photo {
315
315
  height: auto;
316
316
  max-height: 400px;
317
317
  }
318
318
 
319
- .item-card__photos--3 .item-card__photo:first-child {
319
+ .ms-item-card__photos--3 .ms-item-card__photo:first-child {
320
320
  grid-row: 1 / 3;
321
321
  height: 302px;
322
322
  }
323
323
 
324
324
  /* Video/Audio */
325
- .item-card__video,
326
- .item-card__audio {
327
- border-radius: var(--border-radius);
325
+ .ms-item-card__video,
326
+ .ms-item-card__audio {
327
+ border-radius: var(--border-radius-small);
328
328
  margin-bottom: var(--space-s);
329
329
  width: 100%;
330
330
  }
331
331
 
332
332
  /* Footer */
333
- .item-card__footer {
333
+ .ms-item-card__footer {
334
334
  align-items: center;
335
- border-top: 1px solid var(--color-offset);
336
- color: var(--color-text-muted);
335
+ border-top: var(--border-width-thin) solid var(--color-offset);
336
+ color: var(--color-on-offset);
337
337
  display: flex;
338
- font-size: var(--font-size-small);
338
+ font-size: var(--font-size-s);
339
339
  justify-content: space-between;
340
340
  padding-top: var(--space-s);
341
341
  }
342
342
 
343
- .item-card__date {
343
+ .ms-item-card__date {
344
344
  color: inherit;
345
345
  }
346
346
 
347
- .item-card__unread {
348
- color: var(--color-warning, #ffcc00);
347
+ .ms-item-card__unread {
348
+ color: var(--color-yellow50);
349
349
  font-size: 0.75rem;
350
350
  }
351
351
 
352
352
  /* Categories/Tags */
353
- .item-card__categories {
353
+ .ms-item-card__categories {
354
354
  display: flex;
355
355
  flex-wrap: wrap;
356
356
  gap: var(--space-xs);
357
357
  margin-bottom: var(--space-s);
358
358
  }
359
359
 
360
- .item-card__category {
360
+ .ms-item-card__category {
361
361
  background: var(--color-offset);
362
- border-radius: var(--border-radius);
363
- color: var(--color-text-muted);
362
+ border-radius: var(--border-radius-small);
363
+ color: var(--color-on-offset);
364
364
  display: inline-block;
365
- font-size: var(--font-size-small);
365
+ font-size: var(--font-size-s);
366
366
  padding: 2px var(--space-xs);
367
367
  }
368
368
 
@@ -370,79 +370,79 @@
370
370
  Item Actions (inline on cards)
371
371
  ========================================================================== */
372
372
 
373
- .item-actions {
374
- border-top: 1px solid var(--color-offset);
373
+ .ms-item-actions {
374
+ border-top: var(--border-width-thin) solid var(--color-offset);
375
375
  display: flex;
376
376
  flex-wrap: wrap;
377
377
  gap: var(--space-s);
378
378
  padding-top: var(--space-s);
379
379
  }
380
380
 
381
- .item-actions__button {
381
+ .ms-item-actions__button {
382
382
  align-items: center;
383
383
  background: transparent;
384
- border: 1px solid var(--color-offset);
385
- border-radius: var(--border-radius);
386
- color: var(--color-text-muted);
384
+ border: var(--border-width-thin) solid var(--color-offset);
385
+ border-radius: var(--border-radius-small);
386
+ color: var(--color-on-offset);
387
387
  cursor: pointer;
388
388
  display: inline-flex;
389
- font-size: var(--font-size-small);
389
+ font-size: var(--font-size-s);
390
390
  gap: var(--space-xs);
391
391
  padding: var(--space-xs) var(--space-s);
392
392
  text-decoration: none;
393
393
  transition: all 0.2s ease;
394
394
  }
395
395
 
396
- .item-actions__button:hover {
396
+ .ms-item-actions__button:hover {
397
397
  background: var(--color-offset);
398
- border-color: var(--color-offset-active);
399
- color: var(--color-text);
398
+ border-color: var(--color-offset-variant);
399
+ color: var(--color-on-background);
400
400
  }
401
401
 
402
- .item-actions__button svg {
402
+ .ms-item-actions__button svg {
403
403
  height: 1em;
404
404
  width: 1em;
405
405
  }
406
406
 
407
- .item-actions__button--primary {
407
+ .ms-item-actions__button--primary {
408
408
  background: var(--color-primary);
409
409
  border-color: var(--color-primary);
410
410
  color: var(--color-background);
411
411
  }
412
412
 
413
- .item-actions__button--primary:hover {
414
- background: var(--color-primary-dark, var(--color-primary));
415
- border-color: var(--color-primary-dark, var(--color-primary));
413
+ .ms-item-actions__button--primary:hover {
414
+ background: var(--color-primary-variant);
415
+ border-color: var(--color-primary-variant);
416
416
  color: var(--color-background);
417
417
  }
418
418
 
419
419
  /* Mark as read — split button group */
420
- .item-actions__mark-read-group {
420
+ .ms-item-actions__mark-read-group {
421
421
  display: inline-flex;
422
422
  margin-left: auto;
423
423
  position: relative;
424
424
  }
425
425
 
426
- .item-actions__mark-read-group .item-actions__mark-read {
426
+ .ms-item-actions__mark-read-group .ms-item-actions__mark-read {
427
427
  border-bottom-right-radius: 0;
428
428
  border-right: 0;
429
429
  border-top-right-radius: 0;
430
430
  margin-left: 0;
431
431
  }
432
432
 
433
- .item-actions__mark-read-caret {
433
+ .ms-item-actions__mark-read-caret {
434
434
  border-bottom-left-radius: 0;
435
435
  border-top-left-radius: 0;
436
436
  font-size: 0.625rem;
437
437
  padding: var(--space-xs) 6px;
438
438
  }
439
439
 
440
- .item-actions__mark-read-popover {
440
+ .ms-item-actions__mark-read-popover {
441
441
  background: var(--color-background);
442
- border: 1px solid var(--color-offset-active);
443
- border-radius: var(--border-radius);
442
+ border: var(--border-width-thin) solid var(--color-offset-variant);
443
+ border-radius: var(--border-radius-small);
444
444
  bottom: calc(100% + 4px);
445
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
445
+ box-shadow: 0 2px 8px hsl(var(--tint-neutral) 10% / 0.15);
446
446
  padding: var(--space-xs);
447
447
  position: absolute;
448
448
  right: 0;
@@ -450,30 +450,30 @@
450
450
  z-index: 10;
451
451
  }
452
452
 
453
- .item-actions__mark-source-read {
453
+ .ms-item-actions__mark-source-read {
454
454
  background: transparent;
455
455
  border: 0;
456
- border-radius: var(--border-radius);
457
- color: var(--color-text);
456
+ border-radius: var(--border-radius-small);
457
+ color: var(--color-on-background);
458
458
  cursor: pointer;
459
- font-size: var(--font-size-small);
459
+ font-size: var(--font-size-s);
460
460
  padding: var(--space-xs) var(--space-s);
461
461
  text-align: left;
462
462
  width: 100%;
463
463
  }
464
464
 
465
- .item-actions__mark-source-read:hover {
465
+ .ms-item-actions__mark-source-read:hover {
466
466
  background: var(--color-offset);
467
467
  }
468
468
 
469
469
  /* Mark as read button (standalone, no split group) */
470
- .item-actions__mark-read {
470
+ .ms-item-actions__mark-read {
471
471
  margin-left: auto;
472
472
  }
473
473
 
474
474
  /* Save for later button */
475
- .item-actions__save-later--saved {
476
- color: var(--color-accent, #4a9eff);
475
+ .ms-item-actions__save-later--saved {
476
+ color: var(--color-primary-on-background);
477
477
  opacity: 0.6;
478
478
  }
479
479
 
@@ -481,84 +481,84 @@
481
481
  Single Item View
482
482
  ========================================================================== */
483
483
 
484
- .item {
484
+ .ms-item {
485
485
  max-width: 40rem;
486
486
  }
487
487
 
488
- .item__header {
488
+ .ms-item__header {
489
489
  margin-bottom: var(--space-m);
490
490
  }
491
491
 
492
- .item__author {
492
+ .ms-item__author {
493
493
  align-items: center;
494
494
  display: flex;
495
495
  gap: var(--space-s);
496
496
  margin-bottom: var(--space-m);
497
497
  }
498
498
 
499
- .item__author-photo {
499
+ .ms-item__author-photo {
500
500
  border-radius: 50%;
501
501
  height: 48px;
502
502
  object-fit: cover;
503
503
  width: 48px;
504
504
  }
505
505
 
506
- .item__author-info {
506
+ .ms-item__author-info {
507
507
  display: flex;
508
508
  flex-direction: column;
509
509
  }
510
510
 
511
- .item__author-name {
511
+ .ms-item__author-name {
512
512
  font-weight: 600;
513
513
  }
514
514
 
515
- .item__date {
516
- color: var(--color-text-muted);
517
- font-size: var(--font-size-small);
515
+ .ms-item__date {
516
+ color: var(--color-on-offset);
517
+ font-size: var(--font-size-s);
518
518
  }
519
519
 
520
- .item__title {
521
- font-size: var(--font-size-heading-2);
520
+ .ms-item__title {
521
+ font-size: var(--font-size-xl);
522
522
  margin-bottom: var(--space-m);
523
523
  }
524
524
 
525
- .item__content {
525
+ .ms-item__content {
526
526
  line-height: 1.6;
527
527
  margin-bottom: var(--space-m);
528
528
  }
529
529
 
530
- .item__content img {
531
- border-radius: var(--border-radius);
530
+ .ms-item__content img {
531
+ border-radius: var(--border-radius-small);
532
532
  height: auto;
533
533
  max-width: 100%;
534
534
  }
535
535
 
536
- .item__photos {
536
+ .ms-item__photos {
537
537
  display: grid;
538
538
  gap: var(--space-s);
539
539
  margin-bottom: var(--space-m);
540
540
  }
541
541
 
542
- .item__photo {
543
- border-radius: var(--border-radius);
542
+ .ms-item__photo {
543
+ border-radius: var(--border-radius-small);
544
544
  width: 100%;
545
545
  }
546
546
 
547
- .item__context {
547
+ .ms-item__context {
548
548
  background: var(--color-offset);
549
- border-radius: var(--border-radius);
549
+ border-radius: var(--border-radius-small);
550
550
  margin-bottom: var(--space-m);
551
551
  padding: var(--space-m);
552
552
  }
553
553
 
554
- .item__context-label {
555
- color: var(--color-text-muted);
556
- font-size: var(--font-size-small);
554
+ .ms-item__context-label {
555
+ color: var(--color-on-offset);
556
+ font-size: var(--font-size-s);
557
557
  margin-bottom: var(--space-xs);
558
558
  }
559
559
 
560
- .item__actions {
561
- border-top: 1px solid var(--color-offset);
560
+ .ms-item__actions {
561
+ border-top: var(--border-width-thin) solid var(--color-offset);
562
562
  display: flex;
563
563
  flex-wrap: wrap;
564
564
  gap: var(--space-s);
@@ -569,7 +569,7 @@
569
569
  Channel Header
570
570
  ========================================================================== */
571
571
 
572
- .channel__header {
572
+ .ms-channel__header {
573
573
  align-items: center;
574
574
  display: flex;
575
575
  flex-wrap: wrap;
@@ -578,7 +578,7 @@
578
578
  margin-bottom: var(--space-m);
579
579
  }
580
580
 
581
- .channel__actions {
581
+ .ms-channel__actions {
582
582
  display: flex;
583
583
  gap: var(--space-xs);
584
584
  }
@@ -587,13 +587,13 @@
587
587
  Feeds Management
588
588
  ========================================================================== */
589
589
 
590
- .feeds {
590
+ .ms-feeds {
591
591
  display: flex;
592
592
  flex-direction: column;
593
593
  gap: var(--space-m);
594
594
  }
595
595
 
596
- .feeds__header {
596
+ .ms-feeds__header {
597
597
  align-items: center;
598
598
  display: flex;
599
599
  flex-wrap: wrap;
@@ -601,65 +601,65 @@
601
601
  justify-content: space-between;
602
602
  }
603
603
 
604
- .feeds__list {
604
+ .ms-feeds__list {
605
605
  display: flex;
606
606
  flex-direction: column;
607
607
  gap: var(--space-s);
608
608
  }
609
609
 
610
- .feeds__item {
610
+ .ms-feeds__item {
611
611
  align-items: center;
612
612
  background: var(--color-offset);
613
- border-radius: var(--border-radius);
613
+ border-radius: var(--border-radius-small);
614
614
  display: flex;
615
615
  gap: var(--space-m);
616
616
  padding: var(--space-m);
617
617
  }
618
618
 
619
- .feeds__photo {
620
- border-radius: var(--border-radius);
619
+ .ms-feeds__photo {
620
+ border-radius: var(--border-radius-small);
621
621
  flex-shrink: 0;
622
622
  height: 48px;
623
623
  object-fit: cover;
624
624
  width: 48px;
625
625
  }
626
626
 
627
- .feeds__info {
627
+ .ms-feeds__info {
628
628
  flex: 1;
629
629
  min-width: 0;
630
630
  }
631
631
 
632
- .feeds__name {
632
+ .ms-feeds__name {
633
633
  font-weight: 600;
634
634
  overflow: hidden;
635
635
  text-overflow: ellipsis;
636
636
  white-space: nowrap;
637
637
  }
638
638
 
639
- .feeds__url {
640
- color: var(--color-text-muted);
641
- font-size: var(--font-size-small);
639
+ .ms-feeds__url {
640
+ color: var(--color-on-offset);
641
+ font-size: var(--font-size-s);
642
642
  overflow: hidden;
643
643
  text-overflow: ellipsis;
644
644
  white-space: nowrap;
645
645
  }
646
646
 
647
- .feeds__actions {
647
+ .ms-feeds__actions {
648
648
  flex-shrink: 0;
649
649
  }
650
650
 
651
- .feeds__add {
651
+ .ms-feeds__add {
652
652
  background: var(--color-offset);
653
- border-radius: var(--border-radius);
653
+ border-radius: var(--border-radius-small);
654
654
  padding: var(--space-m);
655
655
  }
656
656
 
657
- .feeds__form {
657
+ .ms-feeds__form {
658
658
  display: flex;
659
659
  gap: var(--space-s);
660
660
  }
661
661
 
662
- .feeds__form input {
662
+ .ms-feeds__form input {
663
663
  flex: 1;
664
664
  }
665
665
 
@@ -667,48 +667,48 @@
667
667
  Search
668
668
  ========================================================================== */
669
669
 
670
- .search {
670
+ .ms-search {
671
671
  display: flex;
672
672
  flex-direction: column;
673
673
  gap: var(--space-m);
674
674
  }
675
675
 
676
- .search__form {
676
+ .ms-search__form {
677
677
  display: flex;
678
678
  gap: var(--space-s);
679
679
  }
680
680
 
681
- .search__form input {
681
+ .ms-search__form input {
682
682
  flex: 1;
683
683
  }
684
684
 
685
- .search__results {
685
+ .ms-search__results {
686
686
  margin-top: var(--space-m);
687
687
  }
688
688
 
689
- .search__list {
689
+ .ms-search__list {
690
690
  display: flex;
691
691
  flex-direction: column;
692
692
  gap: var(--space-s);
693
693
  }
694
694
 
695
- .search__item {
695
+ .ms-search__item {
696
696
  align-items: center;
697
697
  background: var(--color-offset);
698
- border-radius: var(--border-radius);
698
+ border-radius: var(--border-radius-small);
699
699
  display: flex;
700
700
  justify-content: space-between;
701
701
  padding: var(--space-m);
702
702
  }
703
703
 
704
- .search__feed {
704
+ .ms-search__feed {
705
705
  flex: 1;
706
706
  min-width: 0;
707
707
  }
708
708
 
709
- .search__url {
710
- color: var(--color-text-muted);
711
- font-size: var(--font-size-small);
709
+ .ms-search__url {
710
+ color: var(--color-on-offset);
711
+ font-size: var(--font-size-s);
712
712
  overflow: hidden;
713
713
  text-overflow: ellipsis;
714
714
  white-space: nowrap;
@@ -718,20 +718,20 @@
718
718
  Compose
719
719
  ========================================================================== */
720
720
 
721
- .compose {
721
+ .ms-compose {
722
722
  max-width: 40rem;
723
723
  }
724
724
 
725
- .compose__context {
725
+ .ms-compose__context {
726
726
  background: var(--color-offset);
727
- border-radius: var(--border-radius);
727
+ border-radius: var(--border-radius-small);
728
728
  margin-bottom: var(--space-m);
729
729
  padding: var(--space-m);
730
730
  }
731
731
 
732
- .compose__counter {
733
- color: var(--color-text-muted);
734
- font-size: var(--font-size-small);
732
+ .ms-compose__counter {
733
+ color: var(--color-on-offset);
734
+ font-size: var(--font-size-s);
735
735
  margin-top: var(--space-xs);
736
736
  text-align: right;
737
737
  }
@@ -740,19 +740,19 @@
740
740
  Settings
741
741
  ========================================================================== */
742
742
 
743
- .settings {
743
+ .ms-settings {
744
744
  max-width: 40rem;
745
745
  }
746
746
 
747
- .settings .divider {
748
- border-top: 1px solid var(--color-offset);
747
+ .ms-settings .divider {
748
+ border-top: var(--border-width-thin) solid var(--color-offset);
749
749
  margin: var(--space-l) 0;
750
750
  }
751
751
 
752
- .settings .danger-zone {
753
- background: rgba(var(--color-error-rgb, 255, 0, 0), 0.1);
754
- border: 1px solid var(--color-error);
755
- border-radius: var(--border-radius);
752
+ .ms-settings .danger-zone {
753
+ background: var(--color-red90);
754
+ border: var(--border-width-thin) solid var(--color-red45);
755
+ border-radius: var(--border-radius-small);
756
756
  padding: var(--space-m);
757
757
  }
758
758
 
@@ -760,8 +760,8 @@
760
760
  Keyboard Navigation Focus
761
761
  ========================================================================== */
762
762
 
763
- .item-card:focus-within,
764
- .item-card.item-card--focused {
763
+ .ms-item-card:focus-within,
764
+ .ms-item-card.ms-item-card--focused {
765
765
  outline: 2px solid var(--color-primary);
766
766
  outline-offset: 2px;
767
767
  }
@@ -770,13 +770,13 @@
770
770
  Empty States
771
771
  ========================================================================== */
772
772
 
773
- .reader__empty {
774
- color: var(--color-text-muted);
773
+ .ms-reader__empty {
774
+ color: var(--color-on-offset);
775
775
  padding: var(--space-xl);
776
776
  text-align: center;
777
777
  }
778
778
 
779
- .reader__empty svg {
779
+ .ms-reader__empty svg {
780
780
  height: 4rem;
781
781
  margin-bottom: var(--space-m);
782
782
  opacity: 0.5;
@@ -788,32 +788,32 @@
788
788
  ========================================================================== */
789
789
 
790
790
  @media (max-width: 640px) {
791
- .item-card__photos--3 {
791
+ .ms-item-card__photos--3 {
792
792
  grid-template-columns: 1fr 1fr;
793
793
  grid-template-rows: auto auto;
794
794
  }
795
795
 
796
- .item-card__photos--3 .item-card__photo:first-child {
796
+ .ms-item-card__photos--3 .ms-item-card__photo:first-child {
797
797
  grid-column: 1 / 3;
798
798
  grid-row: 1;
799
799
  height: 200px;
800
800
  }
801
801
 
802
- .item-card__photos--3 .item-card__photo:nth-child(2),
803
- .item-card__photos--3 .item-card__photo:nth-child(3) {
802
+ .ms-item-card__photos--3 .ms-item-card__photo:nth-child(2),
803
+ .ms-item-card__photos--3 .ms-item-card__photo:nth-child(3) {
804
804
  height: 100px;
805
805
  }
806
806
 
807
- .feeds__item {
807
+ .ms-feeds__item {
808
808
  flex-wrap: wrap;
809
809
  }
810
810
 
811
- .feeds__info {
811
+ .ms-feeds__info {
812
812
  order: 1;
813
813
  width: calc(100% - 64px);
814
814
  }
815
815
 
816
- .feeds__actions {
816
+ .ms-feeds__actions {
817
817
  margin-top: var(--space-s);
818
818
  order: 2;
819
819
  width: 100%;
@@ -826,7 +826,7 @@
826
826
 
827
827
  /* Extend Indiekit badges with small variant for inline use */
828
828
  .badge--small {
829
- font-size: var(--font-size-small);
829
+ font-size: var(--font-size-s);
830
830
  padding: 2px var(--space-xs);
831
831
  }
832
832
 
@@ -834,33 +834,33 @@
834
834
  Search Enhancements (feed validation)
835
835
  ========================================================================== */
836
836
 
837
- .search__name {
837
+ .ms-search__name {
838
838
  display: block;
839
839
  font-weight: 600;
840
840
  margin-bottom: var(--space-xs);
841
841
  }
842
842
 
843
- .search__type {
843
+ .ms-search__type {
844
844
  margin-left: var(--space-xs);
845
845
  }
846
846
 
847
- .search__error {
848
- color: var(--color-error, #ff4444);
847
+ .ms-search__error {
848
+ color: var(--color-red45);
849
849
  display: block;
850
- font-size: var(--font-size-small);
850
+ font-size: var(--font-size-s);
851
851
  margin-top: var(--space-xs);
852
852
  }
853
853
 
854
- .search__item--invalid {
854
+ .ms-search__item--invalid {
855
855
  opacity: 0.7;
856
856
  }
857
857
 
858
- .search__item--comments {
859
- border-left: 3px solid var(--color-warning, #ffcc00);
858
+ .ms-search__item--comments {
859
+ border-left: 3px solid var(--color-yellow50);
860
860
  }
861
861
 
862
862
 
863
- .search__subscribe {
863
+ .ms-search__subscribe {
864
864
  align-items: center;
865
865
  display: flex;
866
866
  gap: var(--space-s);
@@ -870,72 +870,72 @@
870
870
  Notices (inline errors, warnings)
871
871
  ========================================================================== */
872
872
 
873
- .notice {
874
- border-radius: var(--border-radius-small, var(--border-radius));
873
+ .ms-notice {
874
+ border-radius: var(--border-radius-small);
875
875
  margin-bottom: var(--space-m);
876
876
  padding: var(--space-m);
877
877
  }
878
878
 
879
- .notice--error {
880
- background: var(--color-red90, #fef2f2);
881
- border: 1px solid var(--color-error, var(--color-red45));
882
- color: var(--color-red10, #7f1d1d);
879
+ .ms-notice--error {
880
+ background: var(--color-red90);
881
+ border: var(--border-width-thin) solid var(--color-red45);
882
+ color: var(--color-red10);
883
883
  }
884
884
 
885
- .notice--warning {
886
- background: var(--color-yellow90, #fefce8);
887
- border: 1px solid var(--color-yellow50, #eab308);
888
- color: var(--color-yellow10, #713f12);
885
+ .ms-notice--warning {
886
+ background: var(--color-yellow90);
887
+ border: var(--border-width-thin) solid var(--color-yellow50);
888
+ color: var(--color-yellow10);
889
889
  }
890
890
 
891
- .notice--success {
892
- background: var(--color-green90, #f0fdf4);
893
- border: 1px solid var(--color-success, var(--color-green50));
894
- color: var(--color-green10, #14532d);
891
+ .ms-notice--success {
892
+ background: var(--color-green90);
893
+ border: var(--border-width-thin) solid var(--color-green50);
894
+ color: var(--color-green10);
895
895
  }
896
896
 
897
897
  /* ==========================================================================
898
898
  Feed Management Enhancements
899
899
  ========================================================================== */
900
900
 
901
- .feeds__item--error {
902
- border-left: 3px solid var(--color-error, #ff4444);
901
+ .ms-feeds__item--error {
902
+ border-left: 3px solid var(--color-red45);
903
903
  }
904
904
 
905
- .feeds__error {
906
- color: var(--color-error, #ff4444);
905
+ .ms-feeds__error {
906
+ color: var(--color-red45);
907
907
  display: block;
908
- font-size: var(--font-size-small);
908
+ font-size: var(--font-size-s);
909
909
  margin-top: var(--space-xs);
910
910
  }
911
911
 
912
- .feeds__error-count {
913
- color: var(--color-warning, #ffcc00);
912
+ .ms-feeds__error-count {
913
+ color: var(--color-yellow50);
914
914
  display: block;
915
- font-size: var(--font-size-small);
915
+ font-size: var(--font-size-s);
916
916
  }
917
917
 
918
- .feeds__meta {
919
- color: var(--color-text-muted);
918
+ .ms-feeds__meta {
919
+ color: var(--color-on-offset);
920
920
  display: block;
921
- font-size: var(--font-size-small);
921
+ font-size: var(--font-size-s);
922
922
  }
923
923
 
924
- .feeds__details {
924
+ .ms-feeds__details {
925
925
  display: flex;
926
926
  flex-direction: column;
927
927
  flex: 1;
928
928
  min-width: 0;
929
929
  }
930
930
 
931
- .feeds__actions {
931
+ .ms-feeds__actions {
932
932
  align-items: center;
933
933
  display: flex;
934
934
  flex-shrink: 0;
935
935
  gap: var(--space-xs);
936
936
  }
937
937
 
938
- .feeds__actions form {
938
+ .ms-feeds__actions form {
939
939
  display: inline;
940
940
  margin: 0;
941
941
  }
@@ -945,51 +945,51 @@
945
945
  Feed Edit Page
946
946
  ========================================================================== */
947
947
 
948
- .feed-edit {
948
+ .ms-feed-edit {
949
949
  max-width: 40rem;
950
950
  }
951
951
 
952
- .feed-edit__current {
952
+ .ms-feed-edit__current {
953
953
  background: var(--color-offset);
954
- border-radius: var(--border-radius);
954
+ border-radius: var(--border-radius-small);
955
955
  margin-bottom: var(--space-l);
956
956
  padding: var(--space-m);
957
957
  }
958
958
 
959
- .feed-edit__url {
960
- color: var(--color-text-muted);
961
- font-size: var(--font-size-small);
959
+ .ms-feed-edit__url {
960
+ color: var(--color-on-offset);
961
+ font-size: var(--font-size-s);
962
962
  overflow-wrap: break-word;
963
963
  word-break: break-all;
964
964
  }
965
965
 
966
- .feed-edit__title {
966
+ .ms-feed-edit__title {
967
967
  font-weight: 600;
968
968
  }
969
969
 
970
- .feed-edit__form {
970
+ .ms-feed-edit__form {
971
971
  margin-bottom: var(--space-l);
972
972
  }
973
973
 
974
- .feed-edit__help {
975
- color: var(--color-text-muted);
976
- font-size: var(--font-size-small);
974
+ .ms-feed-edit__help {
975
+ color: var(--color-on-offset);
976
+ font-size: var(--font-size-s);
977
977
  margin-bottom: var(--space-m);
978
978
  }
979
979
 
980
- .feed-edit__actions {
980
+ .ms-feed-edit__actions {
981
981
  display: flex;
982
982
  flex-direction: column;
983
983
  gap: var(--space-m);
984
984
  }
985
985
 
986
- .feed-edit__action {
986
+ .ms-feed-edit__action {
987
987
  background: var(--color-offset);
988
- border-radius: var(--border-radius);
988
+ border-radius: var(--border-radius-small);
989
989
  padding: var(--space-m);
990
990
  }
991
991
 
992
- .feed-edit__action p {
992
+ .ms-feed-edit__action p {
993
993
  margin-bottom: var(--space-s);
994
994
  }
995
995
 
@@ -997,54 +997,54 @@
997
997
  Actor Profile
998
998
  ========================================================================== */
999
999
 
1000
- .actor-profile {
1000
+ .ms-actor-profile {
1001
1001
  background: var(--color-offset);
1002
- border-radius: var(--border-radius);
1002
+ border-radius: var(--border-radius-small);
1003
1003
  margin-bottom: var(--space-m);
1004
1004
  padding: var(--space-m);
1005
1005
  }
1006
1006
 
1007
- .actor-profile__header {
1007
+ .ms-actor-profile__header {
1008
1008
  align-items: flex-start;
1009
1009
  display: flex;
1010
1010
  gap: var(--space-m);
1011
1011
  }
1012
1012
 
1013
- .actor-profile__avatar {
1013
+ .ms-actor-profile__avatar {
1014
1014
  border-radius: 50%;
1015
1015
  flex-shrink: 0;
1016
1016
  object-fit: cover;
1017
1017
  }
1018
1018
 
1019
- .actor-profile__info {
1019
+ .ms-actor-profile__info {
1020
1020
  flex: 1;
1021
1021
  min-width: 0;
1022
1022
  }
1023
1023
 
1024
- .actor-profile__name {
1024
+ .ms-actor-profile__name {
1025
1025
  font-size: 1.25em;
1026
1026
  margin: 0 0 2px;
1027
1027
  }
1028
1028
 
1029
- .actor-profile__handle {
1030
- color: var(--color-text-muted, #666);
1029
+ .ms-actor-profile__handle {
1030
+ color: var(--color-on-offset);
1031
1031
  font-size: 0.9em;
1032
1032
  }
1033
1033
 
1034
- .actor-profile__summary {
1034
+ .ms-actor-profile__summary {
1035
1035
  font-size: 0.9em;
1036
1036
  margin: var(--space-xs) 0 0;
1037
1037
  }
1038
1038
 
1039
- .actor-profile__stats {
1040
- color: var(--color-text-muted, #666);
1039
+ .ms-actor-profile__stats {
1040
+ color: var(--color-on-offset);
1041
1041
  display: flex;
1042
1042
  font-size: 0.85em;
1043
1043
  gap: var(--space-m);
1044
1044
  margin-top: var(--space-xs);
1045
1045
  }
1046
1046
 
1047
- .actor-profile__actions {
1047
+ .ms-actor-profile__actions {
1048
1048
  display: flex;
1049
1049
  gap: var(--space-s);
1050
1050
  margin-top: var(--space-s);
@@ -1054,8 +1054,8 @@
1054
1054
  AP Badge
1055
1055
  ========================================================================== */
1056
1056
 
1057
- .item-card__badge {
1058
- border-radius: 3px;
1057
+ .ms-item-card__badge {
1058
+ border-radius: var(--border-radius-small);
1059
1059
  display: inline-block;
1060
1060
  font-size: 0.7em;
1061
1061
  font-weight: 600;
@@ -1066,69 +1066,69 @@
1066
1066
  vertical-align: middle;
1067
1067
  }
1068
1068
 
1069
- .item-card__badge--ap {
1070
- background: #7c3aed20;
1071
- color: #7c3aed;
1069
+ .ms-item-card__badge--ap {
1070
+ background: hsl(var(--tint-purple) 45% / 0.12);
1071
+ color: var(--color-purple45);
1072
1072
  }
1073
1073
 
1074
1074
  /* ==========================================================================
1075
1075
  Breadcrumbs
1076
1076
  ========================================================================== */
1077
1077
 
1078
- .breadcrumbs {
1078
+ .ms-breadcrumbs {
1079
1079
  margin-bottom: var(--space-xs);
1080
1080
  }
1081
1081
 
1082
- .breadcrumbs__list {
1082
+ .ms-breadcrumbs__list {
1083
1083
  align-items: center;
1084
1084
  display: flex;
1085
1085
  flex-wrap: wrap;
1086
- font-size: var(--font-size-small);
1086
+ font-size: var(--font-size-s);
1087
1087
  gap: 0;
1088
1088
  list-style: none;
1089
1089
  margin: 0;
1090
1090
  padding: 0;
1091
1091
  }
1092
1092
 
1093
- .breadcrumbs__item::before {
1094
- color: var(--color-text-muted);
1093
+ .ms-breadcrumbs__item::before {
1094
+ color: var(--color-on-offset);
1095
1095
  content: "/";
1096
1096
  margin: 0 var(--space-xs);
1097
1097
  }
1098
1098
 
1099
- .breadcrumbs__item:first-child::before {
1099
+ .ms-breadcrumbs__item:first-child::before {
1100
1100
  content: none;
1101
1101
  margin: 0;
1102
1102
  }
1103
1103
 
1104
- .breadcrumbs__link {
1104
+ .ms-breadcrumbs__link {
1105
1105
  color: var(--color-primary);
1106
1106
  text-decoration: none;
1107
1107
  }
1108
1108
 
1109
- .breadcrumbs__link:hover {
1109
+ .ms-breadcrumbs__link:hover {
1110
1110
  text-decoration: underline;
1111
1111
  }
1112
1112
 
1113
- .breadcrumbs__current {
1114
- color: var(--color-text-muted);
1113
+ .ms-breadcrumbs__current {
1114
+ color: var(--color-on-offset);
1115
1115
  }
1116
1116
 
1117
1117
  /* ==========================================================================
1118
1118
  View Switcher
1119
1119
  ========================================================================== */
1120
1120
 
1121
- .view-switcher {
1121
+ .ms-view-switcher {
1122
1122
  display: flex;
1123
1123
  gap: var(--space-xs);
1124
1124
  padding: var(--space-xs) 0;
1125
1125
  }
1126
1126
 
1127
- .view-switcher__button {
1127
+ .ms-view-switcher__button {
1128
1128
  align-items: center;
1129
- border: 1px solid var(--color-border, #ddd);
1130
- border-radius: var(--border-radius);
1131
- color: var(--color-text-muted);
1129
+ border: var(--border-width-thin) solid var(--color-outline);
1130
+ border-radius: var(--border-radius-small);
1131
+ color: var(--color-on-offset);
1132
1132
  display: flex;
1133
1133
  justify-content: center;
1134
1134
  padding: var(--space-xs);
@@ -1136,33 +1136,33 @@
1136
1136
  transition: background-color 0.2s ease, color 0.2s ease;
1137
1137
  }
1138
1138
 
1139
- .view-switcher__button:hover {
1139
+ .ms-view-switcher__button:hover {
1140
1140
  background: var(--color-offset);
1141
- color: var(--color-text);
1141
+ color: var(--color-on-background);
1142
1142
  }
1143
1143
 
1144
- .view-switcher__button--active {
1145
- background: var(--color-primary, #333);
1146
- border-color: var(--color-primary, #333);
1147
- color: #fff;
1144
+ .ms-view-switcher__button--active {
1145
+ background: var(--color-primary);
1146
+ border-color: var(--color-primary);
1147
+ color: var(--color-on-primary);
1148
1148
  }
1149
1149
 
1150
- .view-switcher__button--active:hover {
1151
- background: var(--color-primary, #333);
1152
- color: #fff;
1150
+ .ms-view-switcher__button--active:hover {
1151
+ background: var(--color-primary);
1152
+ color: var(--color-on-primary);
1153
1153
  }
1154
1154
 
1155
1155
  /* ==========================================================================
1156
1156
  Timeline View (all channels chronological)
1157
1157
  ========================================================================== */
1158
1158
 
1159
- .timeline-view {
1159
+ .ms-timeline-view {
1160
1160
  display: flex;
1161
1161
  flex-direction: column;
1162
1162
  gap: var(--space-m);
1163
1163
  }
1164
1164
 
1165
- .timeline-view__header {
1165
+ .ms-timeline-view__header {
1166
1166
  align-items: center;
1167
1167
  display: flex;
1168
1168
  flex-wrap: wrap;
@@ -1170,13 +1170,13 @@
1170
1170
  justify-content: space-between;
1171
1171
  }
1172
1172
 
1173
- .timeline-view__item {
1173
+ .ms-timeline-view__item {
1174
1174
  position: relative;
1175
1175
  }
1176
1176
 
1177
- .timeline-view__channel-badge {
1178
- border-radius: 3px;
1179
- color: #fff;
1177
+ .ms-timeline-view__channel-badge {
1178
+ border-radius: var(--border-radius-small);
1179
+ color: var(--color-on-primary);
1180
1180
  display: inline-block;
1181
1181
  font-size: 0.6875rem;
1182
1182
  font-weight: 600;
@@ -1187,14 +1187,14 @@
1187
1187
  text-transform: uppercase;
1188
1188
  }
1189
1189
 
1190
- .timeline-view__filter {
1190
+ .ms-timeline-view__filter {
1191
1191
  position: relative;
1192
1192
  }
1193
1193
 
1194
- .timeline-view__filter-form {
1194
+ .ms-timeline-view__filter-form {
1195
1195
  background: var(--color-background);
1196
- border: 1px solid var(--color-border, #ddd);
1197
- border-radius: var(--border-radius);
1196
+ border: var(--border-width-thin) solid var(--color-outline);
1197
+ border-radius: var(--border-radius-small);
1198
1198
  display: flex;
1199
1199
  flex-direction: column;
1200
1200
  gap: var(--space-xs);
@@ -1206,15 +1206,15 @@
1206
1206
  z-index: 10;
1207
1207
  }
1208
1208
 
1209
- .timeline-view__filter-label {
1209
+ .ms-timeline-view__filter-label {
1210
1210
  align-items: center;
1211
1211
  cursor: pointer;
1212
1212
  display: flex;
1213
1213
  gap: var(--space-xs);
1214
1214
  }
1215
1215
 
1216
- .timeline-view__filter-color {
1217
- border-radius: 2px;
1216
+ .ms-timeline-view__filter-color {
1217
+ border-radius: var(--border-radius-small);
1218
1218
  display: inline-block;
1219
1219
  height: 12px;
1220
1220
  width: 12px;
@@ -1224,27 +1224,27 @@
1224
1224
  Compact Item Card (Deck view)
1225
1225
  ========================================================================== */
1226
1226
 
1227
- .item-card-compact {
1227
+ .ms-item-card-compact {
1228
1228
  background: var(--color-background);
1229
- border: 1px solid var(--color-border, #e0e0e0);
1230
- border-radius: var(--border-radius);
1229
+ border: var(--border-width-thin) solid var(--color-outline);
1230
+ border-radius: var(--border-radius-small);
1231
1231
  overflow: hidden;
1232
1232
  transition: background-color 0.2s ease;
1233
1233
  }
1234
1234
 
1235
- .item-card-compact:hover {
1235
+ .ms-item-card-compact:hover {
1236
1236
  background: var(--color-offset);
1237
1237
  }
1238
1238
 
1239
- .item-card-compact--read {
1239
+ .ms-item-card-compact--read {
1240
1240
  opacity: 0.7;
1241
1241
  }
1242
1242
 
1243
- .item-card-compact:not(.item-card-compact--read) {
1244
- border-left: 3px solid rgba(255, 204, 0, 0.8);
1243
+ .ms-item-card-compact:not(.ms-item-card-compact--read) {
1244
+ border-left: 3px solid hsl(var(--tint-yellow) 50% / 0.8);
1245
1245
  }
1246
1246
 
1247
- .item-card-compact__link {
1247
+ .ms-item-card-compact__link {
1248
1248
  color: inherit;
1249
1249
  display: flex;
1250
1250
  gap: var(--space-xs);
@@ -1252,21 +1252,21 @@
1252
1252
  text-decoration: none;
1253
1253
  }
1254
1254
 
1255
- .item-card-compact__photo {
1256
- border-radius: var(--border-radius);
1255
+ .ms-item-card-compact__photo {
1256
+ border-radius: var(--border-radius-small);
1257
1257
  flex-shrink: 0;
1258
1258
  height: 60px;
1259
1259
  object-fit: cover;
1260
1260
  width: 60px;
1261
1261
  }
1262
1262
 
1263
- .item-card-compact__body {
1263
+ .ms-item-card-compact__body {
1264
1264
  flex: 1;
1265
1265
  min-width: 0;
1266
1266
  overflow: hidden;
1267
1267
  }
1268
1268
 
1269
- .item-card-compact__title {
1269
+ .ms-item-card-compact__title {
1270
1270
  -webkit-box-orient: vertical;
1271
1271
  -webkit-line-clamp: 2;
1272
1272
  display: -webkit-box;
@@ -1277,10 +1277,10 @@
1277
1277
  overflow: hidden;
1278
1278
  }
1279
1279
 
1280
- .item-card-compact__text {
1280
+ .ms-item-card-compact__text {
1281
1281
  -webkit-box-orient: vertical;
1282
1282
  -webkit-line-clamp: 2;
1283
- color: var(--color-text-muted);
1283
+ color: var(--color-on-offset);
1284
1284
  display: -webkit-box;
1285
1285
  font-size: 0.8125rem;
1286
1286
  line-height: 1.4;
@@ -1288,28 +1288,28 @@
1288
1288
  overflow: hidden;
1289
1289
  }
1290
1290
 
1291
- .item-card-compact__meta {
1292
- color: var(--color-text-muted);
1291
+ .ms-item-card-compact__meta {
1292
+ color: var(--color-on-offset);
1293
1293
  display: flex;
1294
1294
  font-size: 0.75rem;
1295
1295
  gap: var(--space-xs);
1296
1296
  margin-top: 2px;
1297
1297
  }
1298
1298
 
1299
- .item-card-compact__source {
1299
+ .ms-item-card-compact__source {
1300
1300
  font-weight: 500;
1301
1301
  overflow: hidden;
1302
1302
  text-overflow: ellipsis;
1303
1303
  white-space: nowrap;
1304
1304
  }
1305
1305
 
1306
- .item-card-compact__date {
1306
+ .ms-item-card-compact__date {
1307
1307
  flex-shrink: 0;
1308
1308
  white-space: nowrap;
1309
1309
  }
1310
1310
 
1311
- .item-card-compact__unread {
1312
- color: rgba(255, 204, 0, 0.9);
1311
+ .ms-item-card-compact__unread {
1312
+ color: hsl(var(--tint-yellow) 50% / 0.9);
1313
1313
  flex-shrink: 0;
1314
1314
  font-size: 0.625rem;
1315
1315
  }
@@ -1318,13 +1318,13 @@
1318
1318
  Deck View (TweetDeck-style columns)
1319
1319
  ========================================================================== */
1320
1320
 
1321
- .deck {
1321
+ .ms-deck {
1322
1322
  display: flex;
1323
1323
  flex-direction: column;
1324
1324
  gap: var(--space-m);
1325
1325
  }
1326
1326
 
1327
- .deck__header {
1327
+ .ms-deck__header {
1328
1328
  align-items: center;
1329
1329
  display: flex;
1330
1330
  flex-wrap: wrap;
@@ -1332,7 +1332,7 @@
1332
1332
  justify-content: space-between;
1333
1333
  }
1334
1334
 
1335
- .deck__columns {
1335
+ .ms-deck__columns {
1336
1336
  display: flex;
1337
1337
  gap: var(--space-m);
1338
1338
  overflow-x: auto;
@@ -1340,16 +1340,16 @@
1340
1340
  scroll-snap-type: x mandatory;
1341
1341
  }
1342
1342
 
1343
- .deck__column {
1343
+ .ms-deck__column {
1344
1344
  flex-shrink: 0;
1345
1345
  scroll-snap-align: start;
1346
1346
  width: 320px;
1347
1347
  }
1348
1348
 
1349
- .deck__column-header {
1349
+ .ms-deck__column-header {
1350
1350
  align-items: center;
1351
1351
  background: var(--color-offset);
1352
- border-radius: var(--border-radius) var(--border-radius) 0 0;
1352
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
1353
1353
  display: flex;
1354
1354
  gap: var(--space-s);
1355
1355
  justify-content: space-between;
@@ -1359,13 +1359,13 @@
1359
1359
  z-index: 1;
1360
1360
  }
1361
1361
 
1362
- .deck__column-name {
1362
+ .ms-deck__column-name {
1363
1363
  color: inherit;
1364
1364
  font-weight: 600;
1365
1365
  text-decoration: none;
1366
1366
  }
1367
1367
 
1368
- .deck__column-items {
1368
+ .ms-deck__column-items {
1369
1369
  display: flex;
1370
1370
  flex-direction: column;
1371
1371
  gap: var(--space-xs);
@@ -1374,28 +1374,28 @@
1374
1374
  padding: var(--space-xs);
1375
1375
  }
1376
1376
 
1377
- .deck__column-empty {
1378
- color: var(--color-text-muted);
1377
+ .ms-deck__column-empty {
1378
+ color: var(--color-on-offset);
1379
1379
  font-size: 0.875rem;
1380
1380
  padding: var(--space-m);
1381
1381
  text-align: center;
1382
1382
  }
1383
1383
 
1384
- .deck__column-more {
1384
+ .ms-deck__column-more {
1385
1385
  display: block;
1386
1386
  margin-top: var(--space-xs);
1387
1387
  text-align: center;
1388
1388
  }
1389
1389
 
1390
1390
  /* Deck settings */
1391
- .deck-settings__channels {
1391
+ .ms-deck-settings__channels {
1392
1392
  display: flex;
1393
1393
  flex-direction: column;
1394
1394
  gap: var(--space-xs);
1395
1395
  margin: var(--space-m) 0;
1396
1396
  }
1397
1397
 
1398
- .deck-settings__channel {
1398
+ .ms-deck-settings__channel {
1399
1399
  align-items: center;
1400
1400
  cursor: pointer;
1401
1401
  display: flex;