PluginProbe
Friends / 4.2.1
Friends v4.2.1
4.3.2 4.3.1 4.3.0 4.2.2 4.2.1 4.2.0 4.1.0 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.0 2.9.1 All 88 releases
friends / templates / twitter / twitter.css

twitter.css in Friends 4.2.1, at templates/twitter/twitter.css

2,359 lines 51.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* Friends Twitter/X Theme */
2
3 /* === Base === */
4 .friends-page {
5 margin: 0;
6 padding: 0;
7 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
8 font-size: 15px;
9 line-height: 1.5;
10 color-scheme: light dark;
11 color: light-dark(#0f1419, #e7e9ea);
12 background: light-dark(#fff, #000);
13 overflow-wrap: break-word;
14 }
15
16 .friends-page *, .friends-page *::before, .friends-page *::after {
17 box-sizing: border-box;
18 }
19
20 .friends-page a { color: light-dark(#1d9bf0, #1d9bf0); text-decoration: none; }
21 .friends-page a:visited { color: light-dark(#1d9bf0, #1d9bf0); }
22 .friends-page a:hover { text-decoration: underline; }
23 .friends-page img { max-width: 100%; height: auto; }
24 .friends-page h1, .friends-page h2, .friends-page h3, .friends-page h4 { margin: 0; }
25 .friends-page ul, .friends-page ol { margin: 0; padding: 0; }
26 .friends-page p { margin: 0 0 .8em; }
27 .friends-page p:last-child { margin-bottom: 0; }
28 .friends-page code, .friends-page pre { overflow: auto; font-size: 13px; }
29
30 /* === 3-Column Layout === */
31 body.friends-page {
32 display: flex;
33 justify-content: center;
34 min-height: 100vh;
35 padding-top: 32px; /* wp admin bar */
36 }
37
38 /* --- Left column: navigation --- */
39 .twitter-left-col {
40 width: 275px;
41 flex-shrink: 0;
42 padding: 12px;
43 position: sticky;
44 top: 32px;
45 height: calc(100vh - 32px);
46 overflow-y: auto;
47 display: flex;
48 flex-direction: column;
49 }
50
51 /* --- Center column: timeline --- */
52 .twitter-center-col {
53 flex: 1;
54 min-width: 0;
55 max-width: 600px;
56 border-left: 1px solid light-dark(#eff3f4, #2f3336);
57 border-right: 1px solid light-dark(#eff3f4, #2f3336);
58 min-height: calc(100vh - 32px);
59 }
60
61 /* --- Right column: search + sidebar --- */
62 .twitter-right-col {
63 width: 350px;
64 flex-shrink: 0;
65 position: sticky;
66 top: 32px;
67 height: calc(100vh - 32px);
68 overflow-y: auto;
69 padding: 12px 24px;
70 }
71
72 /* Sidebar close button (mobile only) */
73 .twitter-sidebar-close {
74 display: none;
75 position: absolute;
76 top: 10px;
77 right: 12px;
78 font-size: 24px;
79 line-height: 1;
80 color: light-dark(#536471, #71767b);
81 text-decoration: none;
82 z-index: 1;
83 }
84
85 .twitter-sidebar-close:hover {
86 color: light-dark(#0f1419, #e7e9ea);
87 text-decoration: none;
88 }
89
90 /* Mobile overlay */
91 .twitter-overlay { display: none; }
92
93 /* Mobile panel */
94 .twitter-mobile-panel {
95 display: none;
96 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
97 }
98
99 .twitter-mobile-panel-toggle {
100 display: flex;
101 align-items: center;
102 gap: 8px;
103 padding: 10px 16px;
104 cursor: pointer;
105 color: light-dark(#0f1419, #e7e9ea);
106 font-weight: 700;
107 font-size: 14px;
108 list-style: none;
109 }
110
111 .twitter-mobile-panel-toggle::-webkit-details-marker { display: none; }
112 .twitter-mobile-panel-toggle::marker { display: none; content: ""; }
113
114 .twitter-mobile-panel-toggle img {
115 width: 32px;
116 height: 32px;
117 border-radius: 50%;
118 }
119
120 .twitter-mobile-panel-toggle span {
121 flex: 1;
122 min-width: 0;
123 overflow: hidden;
124 text-overflow: ellipsis;
125 white-space: nowrap;
126 }
127
128 .twitter-mobile-panel-toggle .dashicons {
129 font-size: 18px;
130 width: 18px;
131 height: 18px;
132 transition: transform .2s;
133 color: light-dark(#536471, #71767b);
134 }
135
136 .twitter-mobile-panel[open] > .twitter-mobile-panel-toggle .dashicons {
137 transform: rotate(180deg);
138 }
139
140 .twitter-mobile-panel-content {
141 padding: 0 16px 12px;
142 }
143
144 @media (max-width: 1100px) {
145 .twitter-left-col {
146 width: 88px;
147 }
148 .twitter-left-col .twitter-left-nav .menu-item a span,
149 .twitter-left-col .twitter-left-nav .description,
150 .twitter-left-col .twitter-left-nav p,
151 .twitter-left-col .twitter-left-customize,
152 .twitter-left-col .twitter-user-info {
153 display: none;
154 }
155 .twitter-left-col .twitter-left-nav .menu-item a {
156 justify-content: center;
157 padding: 12px;
158 }
159 }
160
161 @media (max-width: 1000px) {
162 .twitter-right-col {
163 display: none;
164 }
165 .twitter-mobile-panel {
166 display: block;
167 }
168 }
169
170 @media (max-width: 782px) {
171 body.friends-page {
172 padding-top: 46px;
173 }
174 .twitter-left-col {
175 top: 46px;
176 height: calc(100vh - 46px);
177 }
178 .twitter-center-col {
179 min-height: calc(100vh - 46px);
180 }
181 .twitter-right-col {
182 top: 46px;
183 height: calc(100vh - 46px);
184 }
185 .twitter-col-title-row {
186 top: 46px;
187 }
188 }
189
190 @media (max-width: 500px) {
191 body.friends-page {
192 display: block;
193 }
194 .twitter-left-col {
195 display: none;
196 }
197 .twitter-center-col {
198 max-width: 100%;
199 border: none;
200 min-height: 0;
201 }
202 .twitter-right-col {
203 display: none;
204 position: fixed;
205 top: 46px;
206 right: 0;
207 width: 300px;
208 height: calc(100vh - 46px);
209 z-index: 20;
210 background: light-dark(#fff, #000);
211 box-shadow: -4px 0 16px rgba(0,0,0,.2);
212 }
213 .twitter-right-col:target {
214 display: block;
215 }
216 .twitter-sidebar-close {
217 display: block;
218 }
219 .twitter-overlay {
220 display: block;
221 position: fixed;
222 inset: 0;
223 z-index: 15;
224 background: rgba(0,0,0,.4);
225 opacity: 0;
226 pointer-events: none;
227 }
228 .twitter-right-col:target ~ .twitter-overlay {
229 opacity: 1;
230 pointer-events: auto;
231 }
232 }
233
234 /* === Left Column === */
235 .twitter-logo {
236 padding: 8px 12px 16px;
237 }
238
239 .twitter-logo a {
240 color: #1d9bf0;
241 font-size: 22px;
242 font-weight: 800;
243 letter-spacing: -.5px;
244 text-decoration: none;
245 }
246
247 .twitter-logo a:hover {
248 text-decoration: none;
249 }
250
251 .twitter-left-nav {
252 flex: 1;
253 padding: 4px 0;
254 }
255
256 .twitter-left-customize {
257 padding: 8px 12px;
258 font-size: 12px;
259 }
260
261 .twitter-left-customize a {
262 color: light-dark(#536471, #71767b);
263 font-size: 12px;
264 }
265
266 .twitter-user-card {
267 display: flex;
268 align-items: center;
269 gap: 12px;
270 padding: 12px;
271 margin-top: 8px;
272 text-decoration: none;
273 border-radius: 9999px;
274 color: light-dark(#0f1419, #e7e9ea);
275 }
276
277 .twitter-user-card:hover { background: light-dark(rgba(15,20,25,.1), rgba(231,233,234,.1)); text-decoration: none; }
278
279 .twitter-user-card .twitter-avatar,
280 .twitter-user-card img {
281 width: 40px;
282 height: 40px;
283 border-radius: 50%;
284 display: block;
285 flex-shrink: 0;
286 }
287
288 .twitter-user-info {
289 display: flex;
290 flex-direction: column;
291 min-width: 0;
292 }
293
294 .twitter-display-name {
295 font-size: 15px;
296 font-weight: 700;
297 color: light-dark(#0f1419, #e7e9ea);
298 white-space: nowrap;
299 overflow: hidden;
300 text-overflow: ellipsis;
301 }
302
303 .twitter-handle {
304 font-size: 13px;
305 color: light-dark(#536471, #71767b);
306 white-space: nowrap;
307 overflow: hidden;
308 text-overflow: ellipsis;
309 }
310
311 /* Compose box inline (center column, Twitter-style) */
312 .twitter-compose-inline {
313 display: flex;
314 gap: 12px;
315 padding: 12px 16px;
316 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
317 }
318
319 .twitter-compose-inline .twitter-compose-avatar img {
320 width: 40px;
321 height: 40px;
322 border-radius: 50%;
323 }
324
325 .twitter-compose-inline .twitter-compose-form {
326 flex: 1;
327 background: transparent;
328 border: none;
329 padding: 0;
330 }
331
332 .twitter-compose-form {
333 margin-bottom: 12px;
334 background: light-dark(#fff, #000);
335 border: 1px solid light-dark(#eff3f4, #2f3336);
336 border-radius: 16px;
337 padding: 10px 12px;
338 }
339
340 .twitter-compose-form textarea {
341 width: 100%;
342 background: transparent;
343 border: none;
344 outline: none;
345 resize: none;
346 font-size: 20px;
347 font-family: inherit;
348 color: light-dark(#0f1419, #e7e9ea);
349 min-height: 52px;
350 }
351
352 .twitter-compose-form textarea::placeholder {
353 color: light-dark(#536471, #71767b);
354 font-size: 20px;
355 }
356
357 .twitter-compose-footer {
358 display: flex;
359 align-items: center;
360 justify-content: flex-end;
361 gap: 8px;
362 margin-top: 8px;
363 padding-top: 8px;
364 border-top: 1px solid light-dark(#eff3f4, #2f3336);
365 }
366
367 .twitter-compose-settings {
368 color: light-dark(#536471, #71767b);
369 display: flex;
370 align-items: center;
371 margin-right: auto;
372 }
373
374 .twitter-compose-settings:hover { color: light-dark(#1d9bf0, #1d9bf0); text-decoration: none; }
375
376 .twitter-compose-submit {
377 background: #1d9bf0;
378 color: #fff;
379 border: none;
380 border-radius: 9999px;
381 padding: 8px 20px;
382 font-size: 15px;
383 font-weight: 700;
384 cursor: pointer;
385 font-family: inherit;
386 }
387
388 .twitter-compose-submit:hover { background: #1a8cd8; }
389
390 /* @ mention dropdown */
391 .twitter-mention-dropdown {
392 position: absolute;
393 z-index: 200;
394 list-style: none;
395 background: light-dark(#fff, #16181c);
396 border: none;
397 border-radius: 16px;
398 box-shadow: light-dark(rgba(101,119,134,.2), rgba(255,255,255,.2)) 0 0 15px, light-dark(rgba(101,119,134,.15), rgba(255,255,255,.1)) 0 0 3px 1px;
399 padding: 0;
400 max-height: 220px;
401 overflow-y: auto;
402 }
403
404 .twitter-mention-dropdown li a {
405 display: flex;
406 align-items: center;
407 gap: 12px;
408 padding: 12px 16px;
409 color: light-dark(#0f1419, #e7e9ea);
410 text-decoration: none;
411 transition: background .1s;
412 }
413
414 .twitter-mention-dropdown li a:hover,
415 .twitter-mention-dropdown li.active a {
416 background: light-dark(rgba(0,0,0,.03), rgba(231,233,234,.1));
417 text-decoration: none;
418 }
419
420 .twitter-mention-dropdown li a img {
421 width: 40px;
422 height: 40px;
423 border-radius: 50%;
424 flex-shrink: 0;
425 }
426
427 .twitter-mention-name {
428 font-size: 15px;
429 font-weight: 700;
430 }
431
432 .twitter-mention-handle {
433 font-size: 13px;
434 color: light-dark(#536471, #71767b);
435 margin-left: auto;
436 }
437
438 .twitter-mention-no-results span {
439 display: block;
440 padding: 12px 16px;
441 font-size: 15px;
442 color: light-dark(#536471, #71767b);
443 }
444
445 /* Search in right col */
446 .twitter-search-form {
447 width: 100%;
448 margin-bottom: 12px;
449 }
450
451 .twitter-search-wrap {
452 position: relative;
453 display: flex;
454 align-items: center;
455 }
456
457 .twitter-search-wrap::before {
458 content: "\f179";
459 font-family: dashicons;
460 position: absolute;
461 left: 14px;
462 top: 50%;
463 transform: translateY(-50%);
464 color: light-dark(#536471, #71767b);
465 font-size: 16px;
466 line-height: 1;
467 pointer-events: none;
468 z-index: 1;
469 }
470
471 .twitter-search-wrap .form-icon {
472 position: absolute;
473 right: 10px;
474 top: 50%;
475 transform: translateY(-50%);
476 width: .8rem;
477 height: .8rem;
478 pointer-events: none;
479 }
480
481 .friends-page .twitter-search-wrap .twitter-search-input {
482 width: 100%;
483 background: light-dark(#eff3f4, #202327);
484 border: 1px solid transparent;
485 border-radius: 9999px;
486 padding: 10px 16px 10px 40px;
487 font-size: 15px;
488 font-family: inherit;
489 color: light-dark(#0f1419, #e7e9ea);
490 outline: none;
491 }
492
493 .friends-page .twitter-search-wrap .twitter-search-input:focus {
494 border-color: #1d9bf0;
495 background: transparent;
496 box-shadow: 0 0 0 1px #1d9bf0;
497 }
498
499 .friends-page .twitter-search-wrap .twitter-search-input::placeholder {
500 color: light-dark(#536471, #71767b);
501 }
502
503 .twitter-right-widgets {
504 margin-bottom: 12px;
505 }
506
507 .twitter-right-widgets:empty {
508 display: none;
509 }
510
511 .twitter-right-widgets .friends-widget + .friends-widget {
512 border-top: 1px solid light-dark(#eff3f4, #2f3336);
513 margin-top: 4px;
514 padding-top: 4px;
515 }
516
517 .twitter-right-customize {
518 padding: 8px 0;
519 font-size: 12px;
520 }
521
522 .twitter-right-customize a {
523 color: light-dark(#536471, #71767b);
524 font-size: 12px;
525 }
526
527 /* === Center Column Header === */
528 .twitter-col-header {
529 z-index: 5;
530 }
531
532 .twitter-col-title-row {
533 display: flex;
534 align-items: center;
535 justify-content: space-between;
536 padding: 12px 16px;
537 gap: 8px;
538 position: sticky;
539 top: 32px;
540 z-index: 5;
541 background: light-dark(rgba(255,255,255,.85), rgba(0,0,0,.65));
542 backdrop-filter: blur(12px);
543 -webkit-backdrop-filter: blur(12px);
544 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
545 }
546
547 .twitter-col-title-row h2,
548 .twitter-col-title-row #page-title {
549 font-size: 20px;
550 font-weight: 800;
551 color: light-dark(#0f1419, #e7e9ea);
552 letter-spacing: -.2px;
553 margin: 0;
554 flex: 1;
555 min-width: 0;
556 white-space: nowrap;
557 overflow: hidden;
558 text-overflow: ellipsis;
559 }
560
561 .twitter-col-title-row #page-title a {
562 color: light-dark(#0f1419, #e7e9ea);
563 }
564
565 .twitter-col-title-row #page-title a:hover { text-decoration: none; }
566
567 .twitter-title-avatar {
568 width: 24px;
569 height: 24px;
570 border-radius: 50%;
571 vertical-align: middle;
572 margin-right: 4px;
573 }
574
575 /* Mobile sidebar toggle */
576 .off-canvas-toggle {
577 display: none;
578 color: light-dark(#536471, #71767b);
579 padding: 8px;
580 border-radius: 50%;
581 border: none;
582 background: none;
583 cursor: pointer;
584 }
585
586 .off-canvas-toggle:hover {
587 background: light-dark(rgba(15,20,25,.1), rgba(231,233,234,.1));
588 }
589
590 @media (max-width: 500px) {
591 .off-canvas-toggle {
592 display: inline-flex;
593 align-items: center;
594 }
595 .twitter-col-header {
596 position: static;
597 }
598 }
599
600 /* Chips area */
601 .twitter-chips-area {
602 padding: 0 16px 12px;
603 border-top: 1px solid light-dark(#eff3f4, #2f3336);
604 }
605
606 .twitter-chips-area h2,
607 .twitter-chips-area #page-title,
608 .twitter-chips-area #author-header > h2,
609 .twitter-chips-area #main-header > h2 {
610 display: none;
611 }
612
613 /* === Chips === */
614 .friends-page .chip {
615 display: inline-block;
616 background: transparent;
617 border: 1px solid light-dark(#cfd9de, #2f3336);
618 border-radius: 9999px;
619 padding: 4px 14px;
620 margin: 3px 2px;
621 font-size: 13px;
622 color: light-dark(#0f1419, #e7e9ea);
623 line-height: 1.6;
624 text-decoration: none;
625 white-space: nowrap;
626 cursor: pointer;
627 }
628
629 .friends-page a.chip:visited { color: light-dark(#0f1419, #e7e9ea); }
630 .friends-page .chip:hover { background: light-dark(rgba(15,20,25,.1), rgba(231,233,234,.1)); text-decoration: none; }
631 .friends-page span.chip { cursor: default; }
632 .friends-page .chip.activitypub-follower-check.is-following {
633 background: light-dark(#e4f6e8, rgba(46,160,67,.22));
634 color: light-dark(#116329, #8ddb8c);
635 }
636 .friends-page .chip.activitypub-follower-check.is-not-following {
637 background: light-dark(#fff4d6, rgba(210,153,34,.22));
638 color: light-dark(#7a4d00, #eac55f);
639 }
640 .friends-page .chip.activitypub-follower-check.is-error {
641 background: light-dark(#fde7e9, rgba(218,54,51,.22));
642 color: light-dark(#8a2424, #ff9b9b);
643 }
644
645 .twitter-chips-area p {
646 font-size: 14px;
647 color: light-dark(#536471, #71767b);
648 margin-bottom: 10px;
649 }
650
651 /* === Timeline === */
652 .friends-page section.posts {
653 padding: 0;
654 margin: 0;
655 }
656
657 .friends-page .posts > .friends-empty-state {
658 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
659 background: transparent;
660 }
661
662 .friends-page .posts > .friends-empty-state > .card-body {
663 padding: 16px;
664 }
665
666 .friends-page .posts > .friends-empty-state h1 {
667 font-size: 22px;
668 line-height: 1.3;
669 margin-bottom: 12px;
670 }
671
672 .friends-page .posts > .friends-empty-state ul,
673 .friends-page .posts > .friends-empty-state ol {
674 margin: 0 0 .8em;
675 padding-left: 1.25rem;
676 }
677
678 .friends-page .posts > .friends-empty-state li {
679 margin-bottom: .6em;
680 }
681
682 /* === Individual Tweet Card === */
683 .friends-page .posts article.card {
684 position: relative;
685 padding: 12px 16px 12px 68px;
686 border: none;
687 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
688 border-radius: 0;
689 background: transparent;
690 box-shadow: none;
691 transition: background .15s;
692 }
693
694 .friends-page .posts article.card:hover {
695 background: light-dark(rgba(0,0,0,.03), rgba(231,233,234,.03));
696 }
697
698 .friends-page .posts article.card:last-child {
699 border-bottom: none;
700 }
701
702 /* === Card Header === */
703 .friends-page .posts .card-header {
704 display: flex;
705 align-items: flex-start;
706 justify-content: space-between;
707 padding: 0;
708 margin-bottom: 4px;
709 gap: 8px;
710 }
711
712 /* Avatar */
713 .friends-page .posts .card-header > div.avatar {
714 position: absolute;
715 left: 16px;
716 top: 12px;
717 flex-shrink: 0;
718 }
719
720 .friends-page .posts .card-header .avatar a,
721 .friends-page .posts .card-header .avatar .author-avatar {
722 display: block;
723 }
724
725 .friends-page .posts .card-header .avatar img {
726 width: 40px;
727 height: 40px;
728 max-width: none;
729 border-radius: 50%;
730 display: block;
731 }
732
733 .friends-page .posts .card-header .avatar img.avatar-overlay {
734 position: absolute;
735 bottom: -4px;
736 right: -4px;
737 width: 20px;
738 height: 20px;
739 border-radius: 50%;
740 border: 2px solid light-dark(#fff, #000);
741 }
742
743 /* Post meta */
744 .friends-page .posts .post-meta {
745 flex: 1;
746 min-width: 0;
747 display: flex;
748 align-items: baseline;
749 flex-wrap: wrap;
750 gap: 0 4px;
751 line-height: 1.4;
752 }
753
754 .friends-page .posts .author {
755 font-weight: 700;
756 font-size: 15px;
757 color: light-dark(#0f1419, #e7e9ea);
758 white-space: nowrap;
759 overflow: hidden;
760 text-overflow: ellipsis;
761 max-width: 100%;
762 }
763
764 .friends-page .posts .author a {
765 color: light-dark(#0f1419, #e7e9ea);
766 font-weight: 700;
767 }
768
769 .friends-page .posts .author a:hover { text-decoration: underline; }
770 .friends-page .posts .author strong { font-weight: 700; }
771
772 /* Separator dot */
773 .friends-page .posts .author::after {
774 content: ' ·';
775 color: light-dark(#536471, #71767b);
776 font-weight: 400;
777 margin-left: 2px;
778 }
779
780 .friends-page .posts .permalink {
781 font-size: 15px;
782 color: light-dark(#536471, #71767b);
783 white-space: nowrap;
784 overflow: hidden;
785 text-overflow: ellipsis;
786 }
787
788 .friends-page .posts .permalink a { color: light-dark(#536471, #71767b); }
789 .friends-page .posts .permalink a:hover { text-decoration: underline; }
790 .friends-page .posts .reading-time { color: light-dark(#536471, #71767b); font-size: 13px; }
791
792 /* Overflow menu */
793 .friends-page .posts .overflow {
794 flex-shrink: 0;
795 display: flex;
796 align-items: center;
797 opacity: 0;
798 transition: opacity .1s;
799 }
800
801 .friends-page .posts article.card:hover .overflow {
802 opacity: 1;
803 }
804
805 .friends-page .collapse-post { display: none; }
806 .friends-page .posts:not(.all-collapsed) .teaser { display: none; }
807
808 /* === Post Title === */
809 .friends-page .posts .card-title {
810 margin-bottom: 4px;
811 }
812
813 .friends-page .posts article.card > header.card-header {
814 margin-bottom: 4px;
815 }
816
817 .friends-page .posts .card-title a {
818 font-size: 15px;
819 font-weight: 700;
820 color: light-dark(#0f1419, #e7e9ea);
821 line-height: 1.4;
822 }
823
824 .friends-page .posts .card-title a:visited { color: light-dark(#0f1419, #e7e9ea); }
825 .friends-page .posts .card-title a:hover { text-decoration: underline; }
826 .friends-page .posts h4 a { font-size: 15px; font-weight: 700; }
827
828 /* === Post Body === */
829 .friends-page .posts .card-body,
830 .friends-page .posts .entry-content {
831 font-size: 15px;
832 line-height: 1.5;
833 color: light-dark(#0f1419, #e7e9ea);
834 padding: 0;
835 }
836
837 .friends-page .posts .card-body p,
838 .friends-page .posts .entry-content p {
839 margin: 0 0 .6em;
840 }
841
842 .friends-page .posts .card-body p:last-child,
843 .friends-page .posts .entry-content p:last-child {
844 margin-bottom: 0;
845 }
846
847 .friends-page .posts .card-body img,
848 .friends-page .posts .entry-content img {
849 max-width: 100%;
850 border-radius: 16px;
851 height: auto;
852 margin: 10px 0;
853 display: block;
854 border: 1px solid light-dark(#eff3f4, #2f3336);
855 }
856
857 /* Image gallery */
858 .friends-page .posts .card-body .friends-gallery {
859 display: grid;
860 grid-template-columns: repeat(2, 1fr);
861 gap: 2px;
862 border-radius: 16px;
863 overflow: hidden;
864 margin: 10px 0;
865 border: 1px solid light-dark(#eff3f4, #2f3336);
866 }
867
868 .friends-page .posts .card-body .friends-gallery img {
869 width: 100%;
870 height: 100%;
871 object-fit: cover;
872 margin: 0;
873 border-radius: 0;
874 border: none;
875 }
876
877 .friends-page .posts .card-body .friends-gallery.gallery-1 {
878 grid-template-columns: 1fr;
879 }
880
881 .friends-page .posts .card-body .friends-gallery.gallery-3 img:first-child {
882 grid-column: 1 / -1;
883 }
884
885 /* === Post Footer / Action Bar === */
886 .friends-page .posts .card-footer,
887 .friends-page .posts footer.entry-meta {
888 display: flex;
889 align-items: center;
890 flex-wrap: wrap;
891 gap: 0;
892 padding: 0;
893 border-top: none;
894 background: transparent;
895 margin-top: 12px;
896 max-width: 425px;
897 justify-content: space-between;
898 }
899
900 .friends-page .posts .card-footer a,
901 .friends-page .posts .card-footer .btn-link {
902 display: inline-flex;
903 align-items: center;
904 gap: 4px;
905 color: light-dark(#536471, #71767b);
906 font-size: 13px;
907 padding: 8px;
908 border-radius: 9999px;
909 background: none;
910 border: none;
911 cursor: pointer;
912 transition: color .15s, background .15s;
913 text-decoration: none;
914 }
915
916 .friends-page .posts .card-footer a:hover,
917 .friends-page .posts .card-footer .btn-link:hover {
918 color: #1d9bf0;
919 background: rgba(29,155,240,.1);
920 text-decoration: none;
921 }
922
923 .friends-page .posts .card-footer .dashicons {
924 font-size: 18px;
925 width: 18px;
926 height: 18px;
927 vertical-align: text-bottom;
928 }
929
930 /* Reaction buttons */
931 .friends-page button.friends-reaction,
932 .friends-page button.friends-reaction-picker {
933 display: inline-flex;
934 align-items: center;
935 gap: 4px;
936 background: none;
937 border: none;
938 border-radius: 9999px;
939 padding: 8px;
940 font-size: 13px;
941 color: light-dark(#536471, #71767b);
942 cursor: pointer;
943 transition: color .15s, background .15s;
944 font-family: inherit;
945 }
946
947 .friends-page button.friends-reaction:hover,
948 .friends-page button.friends-reaction-picker:hover {
949 color: #f91880;
950 background: rgba(249,24,128,.1);
951 }
952
953 .friends-page button.friends-reaction.pressed { color: #f91880; }
954
955 /* === Boost / Retweet Indicator === */
956 .friends-page .posts .reblogged-by,
957 .friends-page .posts .reblog-info {
958 font-size: 13px;
959 color: light-dark(#536471, #71767b);
960 margin-bottom: 4px;
961 display: flex;
962 align-items: center;
963 gap: 6px;
964 padding-left: 26px;
965 font-weight: 700;
966 }
967
968 .friends-page .posts .boosted {
969 font-weight: 400;
970 }
971
972 .friends-page .activitypub-custom-emoji {
973 display: inline-block;
974 width: auto;
975 max-width: 1.5em;
976 height: 1em;
977 max-height: 1em;
978 margin: 0 0.05em;
979 object-fit: contain;
980 vertical-align: -0.15em;
981 }
982
983 .friends-page .posts .boosted .follow-button,
984 .friends-page .posts .boosted .follow-button span.name {
985 display: none;
986 }
987
988 .friends-page .posts .boosted:hover .follow-button {
989 display: inline;
990 }
991
992 @media (max-width: 500px) {
993 .friends-page .posts .boosted:hover .follow-button {
994 display: none;
995 }
996 }
997
998 /* === Comments === */
999 .friends-page .comments-content {
1000 padding: 12px 0 12px 16px;
1001 margin: 12px 0;
1002 font-size: 14px;
1003 }
1004
1005 .friends-page .comments-content textarea {
1006 max-width: 100%;
1007 box-sizing: border-box;
1008 }
1009
1010 .friends-page .comments-content.closed { display: none; }
1011 .friends-page .comments-content.open { display: block; }
1012
1013 .friends-page .comments-content h5 {
1014 font-size: 13px;
1015 font-weight: 700;
1016 color: light-dark(#536471, #71767b);
1017 margin: 0 0 8px;
1018 }
1019
1020 .friends-page .comments-content .comment-list {
1021 list-style: none;
1022 padding: 0;
1023 margin: 0;
1024 }
1025
1026 .friends-page .comments-content .comment {
1027 padding: 6px 0;
1028 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1029 }
1030
1031 /* === Right Column === */
1032
1033 /* Keep sidebar dashicons from blowing up */
1034 .twitter-right-col .dashicons {
1035 font-size: 16px !important;
1036 width: 16px !important;
1037 height: 16px !important;
1038 vertical-align: text-bottom;
1039 flex-shrink: 0;
1040 }
1041
1042 .twitter-right-col .friends-widget h5 {
1043 display: flex;
1044 align-items: center;
1045 gap: 8px;
1046 padding: 12px 16px 0;
1047 margin: 0;
1048 font-size: 15px;
1049 font-weight: 800;
1050 color: light-dark(#0f1419, #e7e9ea);
1051 }
1052
1053 .twitter-right-col .friends-widget .accordion-header h5,
1054 .twitter-right-col .friends-widget summary h5 {
1055 padding: 16px 0 6px;
1056 margin: 8px 0 0;
1057 border-top: 1px solid light-dark(#eff3f4, #2f3336);
1058 }
1059
1060 .twitter-right-col .friends-widget .form-group {
1061 padding: 0 16px;
1062 margin-bottom: 8px;
1063 }
1064
1065 /* Left column sidebar nav */
1066 .twitter-left-nav .dashicons {
1067 font-size: 20px !important;
1068 width: 20px !important;
1069 height: 20px !important;
1070 vertical-align: text-bottom;
1071 flex-shrink: 0;
1072 }
1073
1074 .twitter-left-nav .friends-widget h5 {
1075 display: flex;
1076 align-items: center;
1077 gap: 10px;
1078 padding: 8px 12px 0;
1079 margin: 0;
1080 font-size: 13px;
1081 font-weight: 700;
1082 color: light-dark(#536471, #71767b);
1083 text-transform: uppercase;
1084 letter-spacing: .5px;
1085 }
1086
1087 .twitter-left-nav .friends-widget .accordion-header h5,
1088 .twitter-left-nav .friends-widget summary h5 {
1089 padding: 12px 0 4px;
1090 margin: 4px 0 0;
1091 border-top: 1px solid light-dark(#eff3f4, #2f3336);
1092 }
1093
1094 .twitter-left-nav .friends-widget .form-group {
1095 padding: 0 12px;
1096 margin-bottom: 8px;
1097 }
1098
1099 /* Sidebar accordion */
1100 .friends-page .accordion,
1101 .twitter-right-col details,
1102 .twitter-left-col details {
1103 border: none;
1104 margin: 0;
1105 padding: 0;
1106 }
1107
1108 .friends-page .accordion summary,
1109 .friends-page .accordion .accordion-header {
1110 display: block;
1111 padding: 0 16px;
1112 font-size: 13px;
1113 font-weight: 700;
1114 color: light-dark(#536471, #71767b);
1115 text-transform: uppercase;
1116 letter-spacing: .5px;
1117 cursor: pointer;
1118 list-style: none;
1119 }
1120
1121 .friends-page .accordion summary::-webkit-details-marker { display: none; }
1122 .friends-page .accordion summary::marker { display: none; content: ''; }
1123
1124 .friends-page .friends-widget .dashicons {
1125 font-size: 14px;
1126 width: 14px;
1127 height: 14px;
1128 vertical-align: text-bottom;
1129 }
1130
1131 /* Sidebar nav menu */
1132 .friends-page .menu, .friends-page .menu-nav {
1133 list-style: none;
1134 padding: 0;
1135 margin: 0;
1136 }
1137
1138 .friends-page .menu-item,
1139 .friends-page .friend-list .menu-item {
1140 margin: 0;
1141 }
1142
1143 .friends-page .menu-item a,
1144 .friends-page .friend-list .menu-item a {
1145 display: flex !important;
1146 align-items: center;
1147 gap: 16px;
1148 padding: 12px;
1149 color: light-dark(#0f1419, #e7e9ea);
1150 font-size: 15px;
1151 font-weight: 400;
1152 line-height: 1.3;
1153 text-decoration: none;
1154 transition: background .15s;
1155 white-space: nowrap;
1156 overflow: hidden;
1157 text-overflow: ellipsis;
1158 border-radius: 9999px;
1159 }
1160
1161 .friends-page .menu-item a:hover {
1162 background: light-dark(rgba(15,20,25,.1), rgba(231,233,234,.1));
1163 text-decoration: none;
1164 }
1165
1166 .friends-page .friend-stats .menu-item a {
1167 font-size: 15px;
1168 padding: 8px 12px;
1169 }
1170
1171 .friends-page .off-canvas-sidebar .description,
1172 .friends-page .off-canvas-sidebar p,
1173 .twitter-right-col .description,
1174 .twitter-right-col p,
1175 .twitter-left-col .description,
1176 .twitter-left-col p {
1177 font-size: 13px;
1178 color: light-dark(#536471, #71767b);
1179 padding: 2px 16px;
1180 margin: 0 0 4px;
1181 line-height: 1.4;
1182 }
1183
1184 /* === Inputs & Forms === */
1185 .friends-page .form-input,
1186 .friends-page input[type="text"] {
1187 background: light-dark(#eff3f4, #202327);
1188 border: 1px solid transparent;
1189 border-radius: 9999px;
1190 padding: 10px 16px;
1191 font-size: 15px;
1192 font-family: inherit;
1193 color: light-dark(#0f1419, #e7e9ea);
1194 outline: none;
1195 }
1196
1197 .friends-page .form-input:focus,
1198 .friends-page input[type="text"]:focus {
1199 border-color: #1d9bf0;
1200 background: transparent;
1201 }
1202
1203 .friends-page .btn,
1204 .friends-page button {
1205 font-family: inherit;
1206 font-size: 15px;
1207 cursor: pointer;
1208 }
1209
1210 .friends-page .btn {
1211 border-radius: 9999px;
1212 padding: 8px 20px;
1213 font-weight: 700;
1214 border: none;
1215 transition: background .15s;
1216 background: light-dark(#eff3f4, #202327);
1217 color: light-dark(#0f1419, #e7e9ea);
1218 }
1219
1220 .friends-page .btn:hover { background: light-dark(#d7dbdc, #2c3033); box-shadow: none; }
1221
1222 .friends-page .btn-primary {
1223 background: #1d9bf0;
1224 color: #fff;
1225 }
1226
1227 .friends-page .btn-primary:hover { background: #1a8cd8; }
1228
1229 .friends-page .btn-link {
1230 background: none;
1231 border: none;
1232 cursor: pointer;
1233 padding: 8px;
1234 color: light-dark(#536471, #71767b);
1235 border-radius: 9999px;
1236 }
1237
1238 .friends-page .btn-link:hover {
1239 background: rgba(29,155,240,.1);
1240 color: #1d9bf0;
1241 box-shadow: none;
1242 }
1243
1244 .friends-page .input-group { display: flex; }
1245
1246 .friends-page .input-group .form-input,
1247 .friends-page .input-group input[type="text"] {
1248 flex: 1;
1249 border-radius: 9999px 0 0 9999px;
1250 }
1251
1252 .friends-page .input-group .input-group-btn,
1253 .friends-page .input-group .btn {
1254 border-radius: 0 9999px 9999px 0;
1255 }
1256
1257 .friends-page .form-autocomplete { position: relative; }
1258
1259 .friends-page .form-autocomplete .menu {
1260 position: absolute;
1261 top: 100%;
1262 left: 0;
1263 right: 0;
1264 background: light-dark(#fff, #16181c);
1265 border: none;
1266 border-radius: 16px;
1267 z-index: 100;
1268 box-shadow: light-dark(rgba(101,119,134,.2), rgba(255,255,255,.2)) 0 0 15px, light-dark(rgba(101,119,134,.15), rgba(255,255,255,.1)) 0 0 3px 1px;
1269 overflow: hidden;
1270 padding: 0;
1271 }
1272
1273 .friends-page .form-autocomplete .menu .menu-item {
1274 padding: 0;
1275 margin: 0;
1276 }
1277
1278 .friends-page .form-autocomplete .menu .menu-item + .menu-item {
1279 margin-top: 0;
1280 }
1281
1282 .friends-page .form-autocomplete .menu .menu-item > a {
1283 display: block !important;
1284 white-space: normal;
1285 margin: 0;
1286 padding: 12px 16px;
1287 border-radius: 0;
1288 color: light-dark(#0f1419, #e7e9ea);
1289 font-size: 15px;
1290 font-weight: normal;
1291 line-height: 1.4;
1292 }
1293
1294 .friends-page .form-autocomplete .menu .menu-item > a:hover,
1295 .friends-page .form-autocomplete .menu .menu-item > a:focus,
1296 .friends-page .form-autocomplete .menu .menu-item > a:active {
1297 background: light-dark(rgba(0,0,0,.03), rgba(231,233,234,.1));
1298 color: light-dark(#0f1419, #e7e9ea);
1299 outline: none;
1300 }
1301
1302 .friends-page .form-autocomplete .menu .menu-item > a > .ab-icon {
1303 margin-right: 6px;
1304 vertical-align: middle;
1305 }
1306
1307 .friends-page .form-autocomplete .menu .menu-item > a small {
1308 margin-left: .3em;
1309 color: light-dark(#536471, #71767b);
1310 }
1311
1312 .friends-page .form-autocomplete .menu .menu-item > a mark {
1313 background: rgba(29,155,240,.2);
1314 color: inherit;
1315 border: none;
1316 border-radius: 2px;
1317 padding: 0 1px;
1318 }
1319
1320 /* === Dropdown Menus === */
1321 .friends-page .friends-dropdown {
1322 position: relative;
1323 display: inline-block;
1324 }
1325
1326 .friends-page .friends-dropdown .menu {
1327 display: none;
1328 position: absolute;
1329 top: 100%;
1330 right: 0;
1331 left: auto;
1332 background: light-dark(#fff, #16181c);
1333 border: none;
1334 border-radius: 16px;
1335 box-shadow: light-dark(rgba(101,119,134,.2), rgba(255,255,255,.2)) 0 0 15px, light-dark(rgba(101,119,134,.15), rgba(255,255,255,.1)) 0 0 3px 1px;
1336 z-index: 100;
1337 min-width: 200px;
1338 overflow: hidden;
1339 }
1340
1341 .friends-page .friends-dropdown.active .menu,
1342 .friends-page .friends-dropdown .menu:hover {
1343 display: block;
1344 }
1345
1346 .friends-page .friends-dropdown .menu .menu-item a {
1347 padding: 12px 16px;
1348 font-size: 15px;
1349 }
1350
1351 .friends-page .friends-dropdown-right .menu {
1352 left: auto;
1353 right: 0;
1354 }
1355
1356 /* === Author Header === */
1357 .friends-page #author-header,
1358 .friends-page .author-header {
1359 padding: 16px;
1360 }
1361
1362 .friends-page #author-header.has-header-image {
1363 background-size: cover;
1364 background-position: center;
1365 position: relative;
1366 padding: 60px 16px 16px;
1367 }
1368
1369 .friends-page #author-header.has-header-image::before {
1370 content: '';
1371 position: absolute;
1372 inset: 0;
1373 background: linear-gradient(to bottom, rgba(0,0,0,.2) 0%, rgba(0,0,0,.6) 100%);
1374 border-radius: inherit;
1375 }
1376
1377 .friends-page #author-header.has-header-image > * {
1378 position: relative;
1379 }
1380
1381 .friends-page #author-header.has-header-image h2,
1382 .friends-page #author-header.has-header-image p,
1383 .friends-page #author-header.has-header-image .chip,
1384 .friends-page #author-header.has-header-image a {
1385 color: #fff;
1386 text-shadow: 0 1px 3px rgba(0,0,0,.5);
1387 }
1388
1389 .friends-page #author-header.has-header-image .chip {
1390 background: rgba(255,255,255,.2);
1391 border-color: rgba(255,255,255,.3);
1392 }
1393
1394 .friends-page .author-header .avatar img {
1395 border-radius: 50%;
1396 vertical-align: middle;
1397 margin-right: 8px;
1398 margin-bottom: 10px;
1399 border: 3px solid light-dark(#fff, #000);
1400 }
1401
1402 .friends-page #author-header > p {
1403 margin-bottom: 12px;
1404 }
1405
1406 /* Folder dropdown */
1407 .friends-page .friends-folder-selector select {
1408 appearance: none;
1409 -webkit-appearance: none;
1410 background: transparent;
1411 border: none;
1412 color: inherit;
1413 font: inherit;
1414 font-size: 13px;
1415 cursor: pointer;
1416 padding: 0;
1417 margin: 0;
1418 }
1419
1420 .friends-page .friends-folder-selector select:focus {
1421 outline: none;
1422 }
1423
1424 /* Message section */
1425 .friends-page .card.mt-2.p-2 {
1426 padding: 12px 16px 12px 68px !important;
1427 margin: 0 !important;
1428 border: none;
1429 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1430 border-radius: 0;
1431 background: transparent;
1432 box-shadow: none;
1433 }
1434
1435 .friends-page #friends-send-new-message {
1436 padding: 16px !important;
1437 }
1438
1439 .friends-page .card.mt-2.p-2:has(.friend-message) {
1440 background: transparent;
1441 border: none;
1442 box-shadow: none;
1443 padding: 0 !important;
1444 margin: 0;
1445 }
1446
1447 .friends-page .card.mt-2.p-2:has(.friend-message) > strong {
1448 display: block;
1449 padding: 12px 16px;
1450 font-size: 15px;
1451 color: light-dark(#0f1419, #e7e9ea);
1452 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1453 }
1454
1455 .friends-page .friend-message {
1456 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1457 }
1458
1459 .friends-page a.display-message {
1460 display: block;
1461 padding: 12px 16px;
1462 color: light-dark(#0f1419, #e7e9ea);
1463 font-size: 15px;
1464 transition: background .15s;
1465 }
1466
1467 .friends-page a.display-message:hover {
1468 background: light-dark(rgba(0,0,0,.03), rgba(231,233,234,.03));
1469 text-decoration: none;
1470 }
1471
1472 .friends-page a.display-message.unread {
1473 font-weight: 700;
1474 border-left: 3px solid #1d9bf0;
1475 padding-left: 13px;
1476 }
1477
1478 .friends-page .friend-message .conversation {
1479 background: light-dark(#f7f9fa, #16181c);
1480 border-top: 1px solid light-dark(#eff3f4, #2f3336);
1481 }
1482
1483 .friends-page .friend-message .conversation .messages {
1484 max-height: 50vh;
1485 overflow-y: auto;
1486 padding: 8px 0;
1487 }
1488
1489 .friends-page .friend-message .conversation .message {
1490 padding: 10px 16px;
1491 font-size: 15px;
1492 color: light-dark(#536471, #71767b);
1493 }
1494
1495 .friends-page .friend-message .conversation .message .author {
1496 font-weight: 700;
1497 color: light-dark(#0f1419, #e7e9ea);
1498 }
1499
1500 .friends-page .friend-message .conversation .message .time {
1501 font-size: 13px;
1502 }
1503
1504 .friends-page .friend-message .conversation .message blockquote {
1505 margin: 6px 0 0;
1506 padding: 12px 16px;
1507 background: light-dark(#fff, #000);
1508 border-radius: 16px;
1509 border: 1px solid light-dark(#eff3f4, #2f3336);
1510 border-left: none;
1511 color: light-dark(#0f1419, #e7e9ea);
1512 font-size: 15px;
1513 }
1514
1515 .friends-page .friend-message .conversation .message blockquote p:last-child {
1516 margin-bottom: 0;
1517 }
1518
1519 .friends-page .friend-message .conversation .form-horizontal {
1520 padding: 12px 16px;
1521 border-top: 1px solid light-dark(#eff3f4, #2f3336);
1522 }
1523
1524 .friends-page .friend-message .conversation .form-horizontal .form-input {
1525 background: transparent;
1526 border: 1px solid light-dark(#eff3f4, #2f3336);
1527 border-radius: 16px;
1528 padding: 10px 16px;
1529 font-size: 15px;
1530 font-family: inherit;
1531 color: light-dark(#0f1419, #e7e9ea);
1532 width: 100%;
1533 }
1534
1535 .friends-page .friend-message .conversation .form-horizontal .form-input:focus {
1536 border-color: #1d9bf0;
1537 outline: none;
1538 }
1539
1540 .friends-page .friend-message .conversation .form-horizontal textarea.form-input {
1541 min-height: 60px;
1542 resize: vertical;
1543 }
1544
1545 .friends-page .friend-message .conversation .form-horizontal .btn {
1546 background: #1d9bf0;
1547 color: #fff;
1548 border: none;
1549 border-radius: 9999px;
1550 padding: 8px 20px;
1551 font-size: 15px;
1552 font-weight: 700;
1553 cursor: pointer;
1554 font-family: inherit;
1555 }
1556
1557 .friends-page .friend-message .conversation .form-horizontal .btn:hover {
1558 background: #1a8cd8;
1559 }
1560
1561 .friends-page .friend-message .conversation .form-horizontal .btn.delete-conversation {
1562 background: transparent;
1563 color: light-dark(#f4212e, #f4212e);
1564 font-size: 13px;
1565 padding: 4px 8px;
1566 }
1567
1568 .friends-page .friend-message .conversation .form-horizontal .form-group {
1569 margin-bottom: 8px;
1570 }
1571
1572 .friends-page .friend-message .conversation .form-horizontal .form-label {
1573 font-size: 13px;
1574 color: light-dark(#536471, #71767b);
1575 font-weight: 700;
1576 }
1577
1578 /* Direct messages */
1579 .friends-page .friends-dm-view {
1580 background: light-dark(#fff, #000);
1581 border-top: 1px solid light-dark(#eff3f4, #2f3336);
1582 display: grid;
1583 grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
1584 height: calc(100vh - 54px);
1585 min-height: 32rem;
1586 }
1587
1588 .friends-page .friends-dm-sidebar {
1589 background: light-dark(#fff, #000);
1590 border-right: 1px solid light-dark(#eff3f4, #2f3336);
1591 overflow: auto;
1592 }
1593
1594 .friends-page .friends-profile-messages {
1595 background: transparent;
1596 border: none;
1597 box-shadow: none;
1598 overflow: hidden;
1599 padding: 0 !important;
1600 }
1601
1602 .friends-page .friends-profile-messages-header {
1603 align-items: center;
1604 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1605 display: flex;
1606 justify-content: space-between;
1607 padding: 12px 16px;
1608 }
1609
1610 .friends-page .friends-profile-messages-header strong {
1611 color: light-dark(#0f1419, #e7e9ea);
1612 font-size: 15px;
1613 }
1614
1615 .friends-page .friends-profile-messages .friends-dm-conversation,
1616 .friends-page .friends-profile-messages .friends-dm-conversation:visited {
1617 grid-template-columns: minmax(0, 1fr) auto;
1618 }
1619
1620 .friends-page .friends-dm-conversation,
1621 .friends-page .friends-dm-conversation:visited {
1622 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1623 color: light-dark(#0f1419, #e7e9ea);
1624 display: grid;
1625 gap: 3px 10px;
1626 grid-template-columns: 40px minmax(0, 1fr) auto;
1627 padding: 12px 16px;
1628 text-decoration: none;
1629 }
1630
1631 .friends-page .friends-dm-conversation:hover,
1632 .friends-page .friends-dm-conversation:focus,
1633 .friends-page .friends-dm-conversation.is-selected {
1634 background: light-dark(rgba(15,20,25,.04), rgba(231,233,234,.08));
1635 text-decoration: none;
1636 }
1637
1638 .friends-page .friends-dm-conversation.is-unread .friends-dm-conversation-name,
1639 .friends-page .friends-dm-conversation.is-unread .friends-dm-conversation-preview {
1640 font-weight: 700;
1641 }
1642
1643 .friends-page .friends-dm-conversation .avatar,
1644 .friends-page .friends-dm-thread-header .avatar,
1645 .friends-page .friends-dm-message-avatar .avatar {
1646 border-radius: 50%;
1647 display: block;
1648 object-fit: cover;
1649 }
1650
1651 .friends-page .friends-dm-conversation-main {
1652 display: grid;
1653 min-width: 0;
1654 }
1655
1656 .friends-page .friends-dm-conversation-name,
1657 .friends-page .friends-dm-conversation-preview {
1658 overflow: hidden;
1659 text-overflow: ellipsis;
1660 white-space: nowrap;
1661 }
1662
1663 .friends-page .friends-dm-conversation-preview,
1664 .friends-page .friends-dm-conversation-meta,
1665 .friends-page .friends-dm-message-meta time {
1666 color: light-dark(#536471, #71767b);
1667 }
1668
1669 .friends-page .friends-dm-conversation-meta {
1670 align-items: end;
1671 display: flex;
1672 flex-direction: column;
1673 font-size: 13px;
1674 gap: 5px;
1675 }
1676
1677 .friends-page .friends-dm-unread-count {
1678 background: #1d9bf0;
1679 border-radius: 999px;
1680 color: #fff;
1681 font-size: 11px;
1682 font-weight: 700;
1683 line-height: 1;
1684 min-width: 20px;
1685 padding: 4px 6px;
1686 text-align: center;
1687 }
1688
1689 .friends-page .friends-dm-thread {
1690 display: grid;
1691 grid-template-rows: auto minmax(0, 1fr) auto;
1692 min-width: 0;
1693 }
1694
1695 .friends-page .friends-dm-thread-header {
1696 align-items: center;
1697 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1698 display: flex;
1699 gap: 12px;
1700 min-height: 64px;
1701 padding: 10px 16px;
1702 }
1703
1704 .friends-page .friends-dm-thread-header h3 {
1705 color: light-dark(#0f1419, #e7e9ea);
1706 font-size: 17px;
1707 line-height: 1.2;
1708 margin: 0;
1709 }
1710
1711 .friends-page .friends-dm-thread-header a {
1712 font-size: 13px;
1713 }
1714
1715 .friends-page .friends-dm-messages {
1716 background: light-dark(#fff, #000);
1717 overflow: auto;
1718 padding: 16px;
1719 }
1720
1721 .friends-page .friends-dm-message {
1722 display: grid;
1723 gap: 10px;
1724 grid-template-columns: 32px minmax(0, 1fr);
1725 margin: 0 0 16px;
1726 }
1727
1728 .friends-page .friends-dm-message-meta {
1729 align-items: baseline;
1730 display: flex;
1731 gap: 8px;
1732 line-height: 1.2;
1733 }
1734
1735 .friends-page .friends-dm-message-meta strong {
1736 color: light-dark(#0f1419, #e7e9ea);
1737 }
1738
1739 .friends-page .friends-dm-message-content {
1740 background: light-dark(#f7f9fa, #16181c);
1741 border: 1px solid light-dark(#eff3f4, #2f3336);
1742 border-radius: 18px;
1743 color: light-dark(#0f1419, #e7e9ea);
1744 margin-top: 4px;
1745 max-width: 720px;
1746 padding: 12px 16px;
1747 }
1748
1749 .friends-page .friends-dm-message.is-own-message .friends-dm-message-content {
1750 background: light-dark(#e8f5fe, #031d31);
1751 }
1752
1753 .friends-page .friends-dm-message-content > :first-child { margin-top: 0; }
1754 .friends-page .friends-dm-message-content > :last-child { margin-bottom: 0; }
1755
1756 .friends-page .friends-dm-reply {
1757 background: light-dark(#fff, #000);
1758 border-top: 1px solid light-dark(#eff3f4, #2f3336);
1759 padding: 12px 16px;
1760 }
1761
1762 .friends-page .friends-dm-reply .form-horizontal .form-group {
1763 display: flex;
1764 gap: 10px;
1765 margin-bottom: 8px;
1766 }
1767
1768 .friends-page .friends-dm-reply .form-horizontal .form-group > div:first-child {
1769 flex: 0 0 72px;
1770 }
1771
1772 .friends-page .friends-dm-reply .form-horizontal .form-group > div:nth-child(2) {
1773 flex: 1 1 auto;
1774 max-width: none;
1775 }
1776
1777 .friends-page .friends-dm-reply .form-horizontal .form-input {
1778 background: transparent;
1779 border: 1px solid light-dark(#eff3f4, #2f3336);
1780 border-radius: 18px;
1781 color: light-dark(#0f1419, #e7e9ea);
1782 padding: 10px 16px;
1783 width: 100%;
1784 }
1785
1786 .friends-page .friends-dm-reply textarea.friends-message-message {
1787 min-height: 76px;
1788 resize: vertical;
1789 }
1790
1791 .friends-page .friends-dm-reply .btn {
1792 background: #1d9bf0;
1793 border: none;
1794 border-radius: 999px;
1795 color: #fff;
1796 font-weight: 700;
1797 padding: 8px 20px;
1798 }
1799
1800 .friends-page .friends-dm-empty {
1801 background: light-dark(#fff, #000);
1802 border: 1px solid light-dark(#eff3f4, #2f3336);
1803 border-radius: 16px;
1804 grid-column: 1 / -1;
1805 margin: 16px;
1806 padding: 16px;
1807 }
1808
1809 @media (max-width: 840px) {
1810 .friends-page .friends-dm-view {
1811 grid-template-columns: 1fr;
1812 height: auto;
1813 }
1814
1815 .friends-page .friends-dm-sidebar {
1816 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1817 border-right: 0;
1818 max-height: 16rem;
1819 }
1820 }
1821
1822 /* Header image as banner */
1823 .twitter-col-title-row.has-header-image {
1824 position: relative;
1825 background-size: cover;
1826 background-position: center;
1827 min-height: 200px;
1828 align-items: flex-end;
1829 padding-bottom: 12px;
1830 }
1831
1832 .twitter-col-title-row.has-header-image::before {
1833 content: '';
1834 position: absolute;
1835 inset: 0;
1836 background: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.7) 100%);
1837 }
1838
1839 .twitter-col-title-row.has-header-image > * {
1840 position: relative;
1841 z-index: 1;
1842 }
1843
1844 .twitter-col-title-row.has-header-image h2 a,
1845 .twitter-col-title-row.has-header-image #page-title a {
1846 color: #fff;
1847 text-shadow: 0 1px 3px rgba(0,0,0,.5);
1848 }
1849
1850 .twitter-col-title-row.has-header-image .twitter-title-avatar {
1851 width: 64px;
1852 height: 64px;
1853 border-radius: 50%;
1854 border: 3px solid #fff;
1855 box-shadow: 0 1px 4px rgba(0,0,0,.3);
1856 }
1857
1858 .twitter-col-title-row.has-header-image h2,
1859 .twitter-col-title-row.has-header-image #page-title {
1860 font-size: 20px;
1861 }
1862
1863 /* === Content Sections === */
1864 .friends-page section.subscriptions,
1865 .friends-page section.followers {
1866 padding: 16px;
1867 }
1868
1869 .friends-page section.followers ul,
1870 .friends-page section.subscriptions ul {
1871 list-style: none;
1872 padding-left: 0;
1873 }
1874
1875 /* Subscription items */
1876 .friends-page section.subscriptions .subscription-item {
1877 padding: 12px 0;
1878 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1879 display: grid;
1880 grid-template-columns: 40px 1fr;
1881 grid-template-rows: auto auto auto;
1882 column-gap: 12px;
1883 row-gap: 2px;
1884 align-items: center;
1885 }
1886
1887 .friends-page section.subscriptions .subscription-item:last-child {
1888 border-bottom: none;
1889 }
1890
1891 .friends-page section.subscriptions .subscription-link {
1892 display: contents;
1893 text-decoration: none;
1894 color: light-dark(#0f1419, #e7e9ea);
1895 }
1896
1897 .friends-page section.subscriptions .subscription-link .avatar {
1898 border-radius: 50%;
1899 grid-row: 1 / 3;
1900 width: 40px;
1901 height: 40px;
1902 }
1903
1904 .friends-page section.subscriptions .subscription-info {
1905 display: inline-flex;
1906 align-items: center;
1907 gap: 6px;
1908 flex-wrap: wrap;
1909 }
1910
1911 .friends-page section.subscriptions .subscription-name {
1912 font-size: 15px;
1913 font-weight: 700;
1914 color: light-dark(#0f1419, #e7e9ea);
1915 }
1916
1917 .friends-page section.subscriptions .starred {
1918 color: #f91880;
1919 }
1920
1921 .friends-page section.subscriptions .subscription-folder {
1922 font-size: 12px;
1923 background: rgba(29,155,240,.1);
1924 padding: 2px 8px;
1925 border-radius: 9999px;
1926 color: #1d9bf0;
1927 }
1928
1929 .friends-page section.subscriptions .subscription-meta {
1930 grid-column: 2;
1931 font-size: 13px;
1932 color: light-dark(#536471, #71767b);
1933 }
1934
1935 .friends-page section.subscriptions .subscription-description {
1936 grid-column: 2;
1937 font-size: 15px;
1938 color: light-dark(#536471, #71767b);
1939 margin: 4px 0 0;
1940 }
1941
1942 .friends-page section.subscriptions .subscription-actions {
1943 grid-column: 2;
1944 margin-top: 4px;
1945 }
1946
1947 .friends-page section.subscriptions .subscription-action {
1948 display: inline-flex;
1949 align-items: center;
1950 gap: 4px;
1951 padding: 4px 10px;
1952 border-radius: 9999px;
1953 font-size: 13px;
1954 color: light-dark(#536471, #71767b);
1955 transition: color .15s, background .15s;
1956 text-decoration: none;
1957 }
1958
1959 .friends-page section.subscriptions .subscription-unfollow:hover {
1960 color: #f4212e;
1961 background: rgba(244,33,46,.1);
1962 text-decoration: none;
1963 }
1964
1965 .friends-page section.subscriptions .subscription-action .dashicons {
1966 font-size: 16px;
1967 width: 16px;
1968 height: 16px;
1969 vertical-align: middle;
1970 }
1971
1972 /* Follower items */
1973 .friends-page section.followers .follower-item {
1974 padding: 12px 0;
1975 border-bottom: 1px solid light-dark(#eff3f4, #2f3336);
1976 }
1977
1978 .friends-page section.followers .follower-item:last-child {
1979 border-bottom: none;
1980 }
1981
1982 .friends-page section.followers .follower-details > summary {
1983 list-style: none;
1984 display: grid;
1985 grid-template-columns: 40px 1fr auto;
1986 column-gap: 12px;
1987 row-gap: 0;
1988 align-items: start;
1989 cursor: pointer;
1990 }
1991
1992 .friends-page section.followers .follower-details > summary::-webkit-details-marker { display: none; }
1993 .friends-page section.followers .follower-details > summary::marker { display: none; content: ''; }
1994
1995 .friends-page section.followers .follower-link {
1996 display: contents;
1997 text-decoration: none;
1998 color: light-dark(#0f1419, #e7e9ea);
1999 }
2000
2001 .friends-page section.followers .follower-link .avatar {
2002 border-radius: 50%;
2003 grid-row: 1 / -1;
2004 width: 40px;
2005 height: 40px;
2006 max-width: none;
2007 }
2008
2009 .friends-page section.followers .follower-info {
2010 display: flex;
2011 align-items: baseline;
2012 gap: 6px;
2013 flex-wrap: wrap;
2014 min-width: 0;
2015 }
2016
2017 .friends-page section.followers .follower-name {
2018 font-size: 15px;
2019 font-weight: 700;
2020 color: light-dark(#0f1419, #e7e9ea);
2021 }
2022
2023 .friends-page section.followers .follower-handle {
2024 font-size: 15px;
2025 color: light-dark(#536471, #71767b);
2026 }
2027
2028 .friends-page section.followers .follower-meta {
2029 grid-column: 2;
2030 font-size: 13px;
2031 color: light-dark(#536471, #71767b);
2032 line-height: 1.3;
2033 }
2034
2035 .friends-page section.followers .follower-actions {
2036 display: flex;
2037 align-items: center;
2038 gap: 4px;
2039 grid-row: 1 / -1;
2040 }
2041
2042 .friends-page section.followers .follower-action,
2043 .friends-page section.followers .follower-status {
2044 display: inline-flex;
2045 align-items: center;
2046 gap: 4px;
2047 padding: 6px 16px;
2048 border-radius: 9999px;
2049 font-size: 14px;
2050 font-weight: 700;
2051 color: light-dark(#0f1419, #e7e9ea);
2052 border: 1px solid light-dark(#cfd9de, #536471);
2053 transition: background .15s;
2054 }
2055
2056 .friends-page section.followers .follower-action:hover {
2057 background: light-dark(rgba(15,20,25,.1), rgba(231,233,234,.1));
2058 text-decoration: none;
2059 }
2060
2061 .friends-page section.followers .follower-delete:hover {
2062 color: #f4212e;
2063 border-color: rgba(244,33,46,.5);
2064 background: rgba(244,33,46,.1);
2065 }
2066
2067 .friends-page section.followers .follower-status {
2068 color: #00ba7c;
2069 border-color: #00ba7c;
2070 }
2071
2072 .friends-page section.followers .follower-actions .dashicons {
2073 font-size: 18px;
2074 width: 18px;
2075 height: 18px;
2076 vertical-align: middle;
2077 }
2078
2079 .friends-page section.followers .follower-description {
2080 grid-column: 2 / -1;
2081 font-size: 15px;
2082 color: light-dark(#536471, #71767b);
2083 margin: 4px 0 0;
2084 display: -webkit-box;
2085 -webkit-line-clamp: 2;
2086 -webkit-box-orient: vertical;
2087 overflow: hidden;
2088 }
2089
2090 .friends-page section.followers .loading-posts {
2091 grid-column: 2;
2092 font-size: 13px;
2093 color: light-dark(#536471, #71767b);
2094 padding: 8px 0;
2095 }
2096
2097 /* Filter & sort controls */
2098 .friends-page section.followers > p,
2099 .friends-page section.subscriptions > p {
2100 font-size: 15px;
2101 color: light-dark(#536471, #71767b);
2102 margin-bottom: 8px;
2103 }
2104
2105 .friends-page section.followers > p a,
2106 .friends-page section.subscriptions > p a {
2107 color: #1d9bf0;
2108 }
2109
2110 .friends-page section.followers > p strong,
2111 .friends-page section.subscriptions > p strong {
2112 color: light-dark(#0f1419, #e7e9ea);
2113 }
2114
2115 /* Search form */
2116 .friends-page section.followers .friends-search,
2117 .friends-page section.subscriptions .friends-search {
2118 display: flex;
2119 flex-wrap: wrap;
2120 align-items: center;
2121 gap: 8px;
2122 margin: 0 0 12px;
2123 font-size: 15px;
2124 color: light-dark(#536471, #71767b);
2125 }
2126
2127 .friends-page section.followers .friends-search-label,
2128 .friends-page section.subscriptions .friends-search-label {
2129 display: inline-flex;
2130 align-items: center;
2131 gap: 6px;
2132 flex: 1 1 240px;
2133 min-width: 0;
2134 }
2135
2136 .friends-page section.followers .friends-search-input,
2137 .friends-page section.subscriptions .friends-search-input {
2138 flex: 1 1 auto;
2139 min-width: 0;
2140 box-sizing: border-box;
2141 padding: 8px 14px;
2142 font-size: 15px;
2143 line-height: 1.3;
2144 color: light-dark(#0f1419, #e7e9ea);
2145 background: light-dark(#fff, #16181c);
2146 border: 1px solid light-dark(#eff3f4, #2f3336);
2147 border-radius: 9999px;
2148 }
2149
2150 .friends-page section.followers .friends-search-input:focus,
2151 .friends-page section.subscriptions .friends-search-input:focus {
2152 outline: none;
2153 border-color: #1d9bf0;
2154 box-shadow: 0 0 0 1px #1d9bf0;
2155 }
2156
2157 .friends-page section.followers .friends-search-submit,
2158 .friends-page section.subscriptions .friends-search-submit {
2159 padding: 8px 18px;
2160 font-size: 15px;
2161 font-weight: 700;
2162 line-height: 1.3;
2163 background: #1d9bf0;
2164 color: #fff;
2165 border: 0;
2166 border-radius: 9999px;
2167 cursor: pointer;
2168 }
2169
2170 .friends-page section.followers .friends-search-submit:hover,
2171 .friends-page section.subscriptions .friends-search-submit:hover {
2172 background: #1a8cd8;
2173 }
2174
2175 .friends-page section.followers .friends-search-clear,
2176 .friends-page section.subscriptions .friends-search-clear {
2177 color: #1d9bf0;
2178 font-size: 14px;
2179 }
2180
2181 /* === Pagination === */
2182 .friends-page .navigation {
2183 padding: 16px;
2184 font-size: 15px;
2185 border-top: 1px solid light-dark(#eff3f4, #2f3336);
2186 }
2187
2188 .friends-page .navigation a { color: #1d9bf0; }
2189
2190 /* === Loading === */
2191 .friends-page .loading {
2192 color: transparent !important;
2193 pointer-events: none;
2194 position: relative;
2195 min-height: 20px;
2196 min-width: 20px;
2197 animation: none;
2198 border: 0;
2199 }
2200
2201 .friends-page .loading::after {
2202 content: "";
2203 display: block;
2204 position: absolute;
2205 top: 50%;
2206 left: 50%;
2207 width: 20px;
2208 height: 20px;
2209 margin-top: -10px;
2210 margin-left: -10px;
2211 border: 2px solid light-dark(#eff3f4, #2f3336);
2212 border-top-color: #1d9bf0;
2213 border-radius: 50%;
2214 animation: twitter-spin .7s linear infinite;
2215 }
2216
2217 @keyframes twitter-spin {
2218 to { transform: rotate(360deg); }
2219 }
2220
2221 /* === Utility === */
2222 .friends-page .d-hide { display: none !important; }
2223 .friends-page .mb-2 { margin-bottom: 8px; }
2224 .friends-page .ml-1 { margin-left: 4px; }
2225 .friends-page .mr-2 { margin-right: 8px; }
2226 .friends-page .text { font-size: 13px; }
2227 .friends-page .mention-indicator { color: #1d9bf0; font-weight: 700; }
2228 .friends-page .toggle-compact { cursor: pointer; }
2229 .friends-page .overflow { display: none; }
2230
2231 /* Migration notification */
2232 .friends-page .friends-migration-notification {
2233 display: flex;
2234 align-items: center;
2235 gap: .4rem;
2236 padding: .5rem 1rem;
2237 background: light-dark(#fef9e7, #2a2410);
2238 border-bottom: 1px solid light-dark(#e8c840, #5a4a00);
2239 font-size: .85rem;
2240 white-space: nowrap;
2241 overflow: hidden;
2242 }
2243 .friends-page .friends-migration-notification .friends-migration-notification-meta {
2244 margin-left: auto;
2245 display: flex;
2246 align-items: center;
2247 gap: .5rem;
2248 white-space: nowrap;
2249 opacity: .75;
2250 }
2251 .friends-page .friends-migration-notification button {
2252 background: none;
2253 border: 1px solid currentColor;
2254 border-radius: 9999px;
2255 cursor: pointer;
2256 font-size: .8rem;
2257 padding: 2px 8px;
2258 }
2259
2260 /* === Compact (all-collapsed) Mode === */
2261
2262 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-body,
2263 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .entry-content,
2264 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) footer.entry-meta {
2265 display: none;
2266 }
2267
2268 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-title {
2269 margin: 2px 0 0;
2270 white-space: nowrap;
2271 overflow: hidden;
2272 text-overflow: ellipsis;
2273 }
2274
2275 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-title a {
2276 font-size: 13px;
2277 font-weight: 400;
2278 color: light-dark(#536471, #71767b);
2279 }
2280
2281 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) {
2282 padding: 8px 12px 8px 52px;
2283 cursor: pointer;
2284 }
2285
2286 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-header > div.avatar {
2287 top: 8px;
2288 left: 12px;
2289 }
2290
2291 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-header .avatar img {
2292 width: 28px;
2293 height: 28px;
2294 }
2295
2296 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-header {
2297 margin-bottom: 0;
2298 align-items: center;
2299 }
2300
2301 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .post-meta {
2302 display: flex;
2303 align-items: center;
2304 gap: 6px;
2305 flex-wrap: nowrap;
2306 overflow: hidden;
2307 }
2308
2309 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .author {
2310 flex-shrink: 0;
2311 }
2312
2313 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .author::after {
2314 content: '\00b7';
2315 margin-left: 6px;
2316 color: light-dark(#536471, #71767b);
2317 }
2318
2319 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .permalink {
2320 flex-shrink: 0;
2321 font-size: 13px;
2322 }
2323
2324 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .reading-time {
2325 display: none;
2326 }
2327
2328 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) div.teaser {
2329 display: block;
2330 font-size: 13px;
2331 color: light-dark(#536471, #71767b);
2332 white-space: nowrap;
2333 overflow: hidden;
2334 text-overflow: ellipsis;
2335 margin-top: 2px;
2336 }
2337
2338 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) div.teaser p {
2339 display: inline;
2340 margin: 0;
2341 }
2342
2343 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .reblog-info,
2344 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .reblogged-by {
2345 display: none;
2346 }
2347
2348 .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .overflow {
2349 display: none;
2350 }
2351
2352 .friends-page .posts.all-collapsed article.card.uncollapsed div.teaser {
2353 display: none;
2354 }
2355
2356 .friends-page .posts.all-collapsed article.card.mast-current:not(.uncollapsed) {
2357 background: light-dark(rgba(0,0,0,.03), rgba(231,233,234,.03));
2358 }
2359