/* Friends Google Reader Theme - Standalone */ /* === Reset & Base === */ .friends-page { margin: 0; padding: 0; font-family: Arial, sans-serif; font-size: 13px; line-height: 1.4; color-scheme: light dark; color: light-dark(#222, #e8eaed); background: light-dark(#fff, #202124); min-height: 100vh; overflow-wrap: break-word; } .friends-page *, .friends-page *::before, .friends-page *::after { box-sizing: border-box; } .friends-page a { color: light-dark(#1a0dab, #8ab4f8); text-decoration: none; } .friends-page a:visited { color: light-dark(#1a0dab, #8ab4f8); } .friends-page a:hover { text-decoration: underline; } .friends-page img { max-width: 100%; height: auto; } .friends-page h1, .friends-page h2, .friends-page h3, .friends-page h4 { margin: 0; font-weight: normal; } .friends-page ul, .friends-page ol { margin: 0; padding: 0; } .friends-page p { margin: 0 0 .5em; } .friends-page code, .friends-page pre { overflow: auto; font-size: 12px; } /* === Off-Canvas Layout === */ .friends-page.off-canvas { display: flex; min-height: 100vh; } .friends-page .off-canvas-sidebar { width: 268px; flex-shrink: 0; background: light-dark(#fff, #292a2d); border-right: 1px solid light-dark(#d4d4d4, #3c4043); margin-top: 32px; overflow-y: auto; padding: 0; position: fixed; top: 0; bottom: 0; left: 0; z-index: 10; } .friends-page .off-canvas-content { flex: 1; margin-left: 268px; margin-top: 32px; min-width: 0; background: light-dark(#fff, #202124); } .friends-page .off-canvas-overlay { display: none; } .friends-page .off-canvas-toggle { display: none; } @media (max-width: 960px) { .friends-page .off-canvas-sidebar { transform: translateX(-100%); transition: transform .2s; } .friends-page .off-canvas-sidebar:target { transform: translateX(0); } .friends-page .off-canvas-content { margin-left: 0; } .friends-page .off-canvas-toggle { display: inline-block; } .friends-page .off-canvas-overlay { display: block; position: fixed; inset: 0; z-index: 5; background: rgba(0,0,0,.3); opacity: 0; pointer-events: none; } .friends-page .off-canvas-sidebar:target ~ .off-canvas-overlay { opacity: 1; pointer-events: auto; } } @media (max-width: 782px) { .friends-page .off-canvas-sidebar, .friends-page .off-canvas-content { margin-top: 46px; } } @media (max-width: 640px) { .friends-page header.navbar { flex-direction: column; align-items: stretch; gap: 6px; } .friends-page .navbar-section.search { margin-left: 0; } } /* === Sidebar === */ .friends-page .friends-brand { padding: 14px 16px 10px; border-bottom: 1px solid light-dark(#d4d4d4, #3c4043); margin-bottom: 8px; } .friends-page .friends-brand h2 { font-size: 22px; font-weight: bold; color: light-dark(#dd4b39, #ea4335); margin: 0; } .friends-page .friends-brand a { color: light-dark(#dd4b39, #ea4335); } .friends-page .friends-brand a:hover { text-decoration: none; } .friends-page .friends-sidebar-customize { font-size: 11px; color: light-dark(#999, #9aa0a6); display: block; margin-top: 4px; } .friends-page .friends-widget { padding: 0 16px; } .friends-page .friends-nav { padding: 4px 0; } /* Accordion/details widgets */ .friends-page .accordion { border: none; margin: 0; } .friends-page .accordion summary, .friends-page .accordion .accordion-header { display: block; padding: 6px 0; font-size: 11px; font-weight: bold; color: light-dark(#555, #bdc1c6); text-transform: uppercase; letter-spacing: .3px; cursor: pointer; list-style: none; } .friends-page .accordion summary::-webkit-details-marker { display: none; } .friends-page .accordion summary::marker { display: none; content: ''; } .friends-page .friends-widget .dashicons { font-size: 14px; width: 14px; height: 14px; vertical-align: text-bottom; } /* Menu lists in sidebar */ .friends-page .menu, .friends-page .menu-nav { list-style: none; padding: 0; margin: 0; } .friends-page .menu-item a, .friends-page .friend-list .menu-item a { display: block; padding: 2px 0 2px 12px; color: light-dark(#222, #e8eaed); font-size: 13px; line-height: 1.8; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .friends-page .menu-item a:hover { background: light-dark(#c2dbff, #3c4043); text-decoration: none; margin: 0 -16px; padding-left: 28px; padding-right: 16px; } .friends-page .friend-stats .menu-item a { font-size: 13px; } /* === Header / Navbar === */ .friends-page header.navbar { display: flex; align-items: center; justify-content: space-between; background: light-dark(#f1f1f1, #292a2d); border-bottom: 1px solid light-dark(#d4d4d4, #3c4043); padding: 4px 16px; margin-bottom: 0; } .friends-page header.navbar.no-bottom-margin { margin-bottom: 0; } .friends-page .navbar-section.author { flex: 1; min-width: 0; } .friends-page .navbar-section.search { flex-shrink: 0; margin-left: 12px; } .friends-page h2#page-title { font-size: 16px; font-weight: bold; color: light-dark(#222, #e8eaed); margin: 2px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .friends-page h2#page-title a { color: light-dark(#222, #e8eaed); } .friends-page h2#page-title a:hover { text-decoration: none; } .friends-page h2#page-title a.dashicons { font-size: 14px; width: 14px; height: 14px; color: #c90; vertical-align: baseline; margin-right: 4px; } /* === Chips === */ .friends-page .chip { display: inline-block; background: light-dark(#e3ecf8, #3c4043); border: 1px solid light-dark(#bcd, #5f6368); border-radius: 2px; padding: 0 5px; margin: 1px; font-size: 11px; color: light-dark(#555, #bdc1c6); line-height: 1.8; text-decoration: none; white-space: nowrap; } .friends-page a.chip:visited { color: light-dark(#555, #bdc1c6); } .friends-page .chip:hover { background: light-dark(#d0e0f5, #4a4d51); text-decoration: none; } .friends-page span.chip { color: light-dark(#666, #bdc1c6); cursor: default; } .friends-page span.chip:hover { background: light-dark(#e3ecf8, #3c4043); } .friends-page .chip.activitypub-follower-check.is-following { background: light-dark(#e4f6e8, rgba(46,160,67,.22)); color: light-dark(#116329, #8ddb8c); } .friends-page .chip.activitypub-follower-check.is-not-following { background: light-dark(#fff4d6, rgba(210,153,34,.22)); color: light-dark(#7a4d00, #eac55f); } .friends-page .chip.activitypub-follower-check.is-error { background: light-dark(#fde7e9, rgba(218,54,51,.22)); color: light-dark(#8a2424, #ff9b9b); } /* === Search === */ .friends-page .form-input, .friends-page input[type="text"] { border: 1px solid light-dark(#d4d4d4, #3c4043); border-radius: 1px; padding: 4px 8px; font-size: 13px; font-family: Arial, sans-serif; outline: none; } .friends-page .form-input:focus, .friends-page input[type="text"]:focus { border-color: #4d90fe; box-shadow: inset 0 1px 2px rgba(0,0,0,.1); } .friends-page .btn, .friends-page button { background: light-dark(#f5f5f5, #3c4043); border: 1px solid light-dark(#dcdcdc, #5f6368); border-radius: 2px; padding: 4px 12px; font-size: 11px; font-family: Arial, sans-serif; color: light-dark(#444, #bdc1c6); cursor: pointer; line-height: 1.6; } .friends-page .btn:hover { background: #e8e8e8; box-shadow: 0 1px 1px rgba(0,0,0,.1); } .friends-page .btn-primary { background: #4d90fe; border-color: #3079ed; color: #fff; } .friends-page .btn-primary:hover { background: #357ae8; } .friends-page .input-group { display: flex; } .friends-page .input-group .form-input, .friends-page .input-group input[type="text"] { flex: 1; border-right: 0; } .friends-page .input-group .input-group-btn, .friends-page .input-group .btn { border-radius: 0 2px 2px 0; } .friends-page .form-autocomplete { position: relative; } .friends-page .form-autocomplete .menu { position: absolute; top: 100%; left: 0; right: 0; background: light-dark(#fff, #292a2d); border: 1px solid light-dark(#d4d4d4, #3c4043); z-index: 100; max-height: 300px; overflow-y: auto; } .friends-page .has-icon-right { position: relative; } .friends-page .has-icon-right .form-icon { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); } /* === Content sections === */ .friends-page section.subscriptions, .friends-page section.followers { padding: 12px 16px; } .friends-page section.followers ul, .friends-page section.subscriptions ul { list-style: none; padding-left: 0; } /* Search form */ .friends-page section.followers .friends-search, .friends-page section.subscriptions .friends-search { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 10px; font-size: 13px; color: #333; } .friends-page section.followers .friends-search-label, .friends-page section.subscriptions .friends-search-label { display: inline-flex; align-items: center; gap: 4px; flex: 1 1 240px; min-width: 0; } .friends-page section.followers .friends-search-input, .friends-page section.subscriptions .friends-search-input { flex: 1 1 auto; min-width: 0; box-sizing: border-box; padding: 4px 8px; font-size: 13px; line-height: 1.3; color: #222; background: #fff; border: 1px solid #bbb; border-radius: 2px; } .friends-page section.followers .friends-search-input:focus, .friends-page section.subscriptions .friends-search-input:focus { outline: none; border-color: #4d90fe; box-shadow: 0 0 0 1px #4d90fe; } .friends-page section.followers .friends-search-submit, .friends-page section.subscriptions .friends-search-submit { padding: 4px 12px; font-size: 13px; line-height: 1.3; background: linear-gradient(#f5f5f5, #f1f1f1); color: #222; border: 1px solid #bbb; border-radius: 2px; cursor: pointer; } .friends-page section.followers .friends-search-submit:hover, .friends-page section.subscriptions .friends-search-submit:hover { background: linear-gradient(#f8f8f8, #f1f1f1); border-color: #999; } .friends-page section.followers .friends-search-clear, .friends-page section.subscriptions .friends-search-clear { color: #15c; font-size: 12px; } .friends-page section.subscriptions .subscription-item { padding: 8px 0; border-bottom: 1px solid #e8e8e8; display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto auto; column-gap: 8px; row-gap: 2px; align-items: center; } .friends-page section.subscriptions .subscription-item:last-child { border-bottom: none; } .friends-page section.subscriptions .subscription-link { display: contents; text-decoration: none; } .friends-page section.subscriptions .subscription-link .avatar { border-radius: 50%; grid-row: 1 / 3; } .friends-page section.subscriptions .subscription-info { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; } .friends-page section.subscriptions .starred { color: #f5a623; } .friends-page section.subscriptions .subscription-folder { font-size: 0.8em; background: #e8e8e8; padding: 1px 6px; border-radius: 3px; color: #666; } .friends-page section.subscriptions .subscription-meta { grid-column: 2; font-size: 0.85em; color: #888; } .friends-page section.subscriptions .subscription-description { grid-column: 2; font-size: 0.85em; color: #666; margin: 0; } .friends-page section.subscriptions .subscription-actions { grid-column: 2; display: flex; align-items: center; margin-top: 2px; } .friends-page section.subscriptions .subscription-action { display: inline-flex; align-items: center; gap: 3px; width: max-content; max-width: 100%; } .friends-page section.followers .follower-actions { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; } .friends-page section.followers .follower-status, .friends-page section.followers .follower-action { display: inline-flex; align-items: center; border-bottom: 0; gap: 3px; line-height: 1.4; margin-left: 0; vertical-align: baseline; } .friends-page section.followers .follower-status .dashicons, .friends-page section.followers .follower-action .dashicons { display: inline-flex; align-items: center; border-bottom: 0; justify-content: center; font-size: 14px; height: 14px; line-height: 1; margin: 0; vertical-align: text-bottom; width: 14px; } /* Direct messages */ .friends-page .friends-dm-view { background: #fff; border: 1px solid #d4d4d4; display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); height: calc(var(--friends-dm-viewport-height, 100vh) - 50px); min-height: 30rem; } .friends-page .friends-dm-sidebar { background: #f5f5f5; border-right: 1px solid #d4d4d4; overflow: auto; } .friends-page .friends-profile-messages { overflow: hidden; padding: 0 !important; } .friends-page .friends-profile-messages-header { align-items: center; border-bottom: 1px solid #e8e8e8; display: flex; justify-content: space-between; padding: 7px 8px; } .friends-page .friends-profile-messages .friends-dm-conversation, .friends-page .friends-profile-messages .friends-dm-conversation:visited { grid-template-columns: minmax(0, 1fr) auto; } .friends-page .friends-dm-conversation, .friends-page .friends-dm-conversation:visited { border-bottom: 1px solid #e8e8e8; color: #222; display: grid; gap: 2px 8px; grid-template-columns: 32px minmax(0, 1fr) auto; padding: 7px 8px; text-decoration: none; } .friends-page .friends-dm-conversation:hover, .friends-page .friends-dm-conversation:focus, .friends-page .friends-dm-conversation.is-selected { background: #fff8d8; text-decoration: none; } .friends-page .friends-dm-conversation.is-unread .friends-dm-conversation-name, .friends-page .friends-dm-conversation.is-unread .friends-dm-conversation-preview { font-weight: 700; } .friends-page .friends-dm-conversation .avatar, .friends-page .friends-dm-thread-header .avatar, .friends-page .friends-dm-message-avatar .avatar { border-radius: 2px; display: block; object-fit: cover; } .friends-page .friends-dm-conversation .avatar { height: 32px; width: 32px; } .friends-page .friends-dm-conversation-main { display: grid; min-width: 0; } .friends-page .friends-dm-conversation-name, .friends-page .friends-dm-conversation-preview { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .friends-page .friends-dm-conversation-preview, .friends-page .friends-dm-conversation-meta, .friends-page .friends-dm-message-meta time { color: #666; } .friends-page .friends-dm-conversation-meta { align-items: end; display: flex; flex-direction: column; font-size: 11px; gap: 4px; } .friends-page .friends-dm-unread-count { background: #dd4b39; border-radius: 2px; color: #fff; font-size: 11px; font-weight: 700; line-height: 1; min-width: 18px; padding: 3px 5px; text-align: center; } .friends-page .friends-dm-thread { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-width: 0; } .friends-page .friends-dm-thread-header { align-items: center; background: #f5f5f5; border-bottom: 1px solid #d4d4d4; display: flex; gap: 8px; min-height: 48px; padding: 7px 10px; } .friends-page .friends-dm-thread-header h3 { color: #222; font-size: 15px; line-height: 1.2; margin: 0; } .friends-page .friends-dm-thread-header a { font-size: 12px; } .friends-page .friends-dm-back { display: none; } .friends-page .friends-dm-messages { background: #fff; overflow: auto; padding: 10px; } .friends-page .friends-dm-message { display: grid; gap: 8px; grid-template-columns: 28px minmax(0, 1fr); margin: 0 0 10px; } .friends-page .friends-dm-message-meta { align-items: baseline; display: flex; flex-wrap: wrap; gap: 6px; line-height: 1.2; } .friends-page .friends-dm-message-meta strong { color: #222; } .friends-page .friends-dm-delivery-status { color: #666; cursor: help; font-size: 11px; } .friends-page .friends-dm-delivery-status::before { content: "·"; margin-right: 6px; } .friends-page .friends-dm-delivery-icon { align-items: center; display: inline-flex; flex: 0 0 auto; height: 16px; justify-content: center; line-height: 1; position: relative; width: 16px; } .friends-page .friends-dm-delivery-icon::before { border: 1.5px solid currentColor; border-radius: 50%; box-sizing: border-box; content: ""; height: 14px; margin: 0; width: 14px; } .friends-page .friends-dm-delivery-icon::after { border: solid currentColor; border-width: 0 1.5px 1.5px 0; content: ""; height: 7px; left: 6px; position: absolute; top: 3px; transform: rotate(45deg); width: 4px; } .friends-page .friends-dm-delivery-icon.is-queued::before { border-style: dotted; } .friends-page .friends-dm-delivery-icon.is-sending::before { border-style: dashed; } .friends-page .friends-dm-delivery-icon.is-failed::after { border: 0; content: "!"; font-size: 11px; font-weight: 700; height: auto; left: auto; position: absolute; top: 2px; transform: none; width: auto; } .friends-page .friends-dm-delivery-tooltip { background: #fff; border: 1px solid #c7c7c7; border-radius: 3px; box-shadow: 0 4px 12px rgb(0 0 0 / 16%); color: #222; font-size: 12px; line-height: 1.3; overflow-wrap: break-word; padding: 6px 8px; pointer-events: none; position: fixed; white-space: normal; width: min(18rem, calc(100vw - 2rem)); z-index: 9999; } .friends-page .friends-dm-delivery-status.is-failed { color: #dd4b39; } .friends-page .friends-dm-message-content { background: #f9f9f9; border: 1px solid #e8e8e8; border-radius: 2px; color: #222; margin-top: 3px; max-width: 720px; padding: 7px 9px; } .friends-page .friends-dm-message.is-own-message .friends-dm-message-content { background: #eef4ff; } .friends-page .friends-dm-message-content > :first-child { margin-top: 0; } .friends-page .friends-dm-message-content > :last-child { margin-bottom: 0; } .friends-page .friends-dm-reply { background: #f5f5f5; border-top: 1px solid #d4d4d4; padding: 8px 10px; } .friends-page .friends-dm-reply .form-horizontal .form-group { display: flex; gap: 8px; margin-bottom: 6px; } .friends-page .friends-dm-reply .form-horizontal .form-group > div:first-child { flex: 0 0 56px; } .friends-page .friends-dm-reply .form-horizontal .form-group > div:nth-child(2) { flex: 1 1 auto; max-width: none; } .friends-page .friends-dm-reply .form-horizontal .form-input { background: #fff; border: 1px solid #bbb; border-radius: 2px; color: #222; padding: 5px 7px; width: 100%; } .friends-page .friends-dm-reply textarea.friends-message-message { min-height: 64px; resize: vertical; } .friends-page .friends-dm-reply .btn { background: linear-gradient(#f5f5f5, #f1f1f1); border: 1px solid #bbb; border-radius: 2px; color: #222; padding: 4px 12px; } .friends-page .friends-dm-reply .delete-conversation { height: auto; line-height: 1.2; max-width: 100%; white-space: normal; } .friends-page .friends-dm-empty { background: #fff; border: 1px solid #d4d4d4; border-radius: 2px; grid-column: 1 / -1; margin: 12px; padding: 12px; } @media (max-width: 840px) { .friends-page .navbar-section.search.hide-mobile-search { display: none; } .friends-page .friends-dm-view { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr); height: min(calc(var(--friends-dm-viewport-height, 100vh) - 50px), 48rem); min-height: 0; overflow: hidden; position: relative; } .friends-page .friends-dm-sidebar { border-right: 0; grid-column: 1; grid-row: 1; height: 100%; max-height: none; min-height: 0; transform: translateX(0); transition: transform .2s ease; width: 100%; z-index: 1; } .friends-page .friends-dm-thread { grid-column: 1; grid-row: 1; height: 100%; min-height: 0; overflow: hidden; transform: translateX(100%); transition: transform .2s ease; width: 100%; z-index: 2; } .friends-page .friends-dm-view.is-focused-conversation .friends-dm-sidebar { transform: translateX(-100%); } .friends-page .friends-dm-view.is-focused-conversation .friends-dm-thread { transform: translateX(0); } .friends-page .friends-dm-back { align-items: center; color: #222; display: flex; font-size: 20px; line-height: 1; text-decoration: none; } .friends-page .friends-dm-messages { min-height: 0; overscroll-behavior: contain; } .friends-page .friends-dm-reply { padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)); } } /* === Posts === */ .friends-page section.posts { padding: 0 16px; margin-top: 4px; } .friends-page .posts > .friends-empty-state > .card-body { padding: 12px 0; } .friends-page .posts > .friends-empty-state h1 { font-size: 22px; line-height: 1.3; margin-bottom: 10px; } .friends-page .posts > .friends-empty-state ul, .friends-page .posts > .friends-empty-state ol { margin: 0 0 .8em; padding-left: 1.25rem; } .friends-page .posts > .friends-empty-state li { margin-bottom: .5em; } .friends-page .posts article.card { border: none; border-bottom: 1px solid light-dark(#e5e5e5, #3c4043); border-radius: 0; padding: 5px 0; margin: 0; background: transparent; box-shadow: none; line-height: 1.6; } /* Post header */ .friends-page .posts .card-header { padding: 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; } .friends-page .posts .card-header .avatar { display: none; } .friends-page .posts .post-meta { display: contents; } .friends-page .posts .author a { color: light-dark(#093, #34a853); font-weight: bold; font-size: 13px; display: inline; } .friends-page .posts .author a strong { font-weight: bold; } .friends-page .posts .permalink { font-size: 11px; color: light-dark(#666, #9aa0a6); } .friends-page .posts .permalink a { color: light-dark(#666, #9aa0a6); } .friends-page .posts .reading-time { color: light-dark(#999, #9aa0a6); font-size: 11px; } /* Post title */ .friends-page .posts .card-title { padding: 2px 0; } .friends-page .posts .card-title a { color: light-dark(#1a0dab, #8ab4f8); font-size: 16px; font-weight: normal; } .friends-page .posts .card-title a:visited { color: light-dark(#1a0dab, #8ab4f8); } .friends-page .posts h4 a { font-size: 14px; } /* Post content */ .friends-page .posts .card-body, .friends-page .posts .entry-content { padding: 4px 0; font-size: 13px; line-height: 1.5; color: light-dark(#222, #e8eaed); } /* Post footer */ .friends-page .posts .card-footer, .friends-page .posts footer.entry-meta { padding: 4px 0; border-top: none; background: transparent; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; } .friends-page .posts .card-footer a, .friends-page .posts .card-footer .btn-link { color: light-dark(#1a0dab, #8ab4f8); font-size: 11px; text-decoration: none; padding: 2px 6px; background: none; border: none; cursor: pointer; } .friends-page .posts .card-footer a:hover, .friends-page .posts .card-footer .btn-link:hover { text-decoration: underline; } .friends-page .posts .card-footer .dashicons { font-size: 14px; width: 14px; height: 14px; vertical-align: text-bottom; } /* Reaction buttons */ .friends-page button.friends-reaction, .friends-page button.friends-reaction-picker { background: light-dark(#fff, #292a2d); border: 1px solid light-dark(#dcdcdc, #5f6368); border-radius: 2px; padding: 1px 6px; font-size: 12px; cursor: pointer; } .friends-page button.friends-reaction:hover, .friends-page button.friends-reaction-picker:hover { background: light-dark(#f5f5f5, #3c4043); } .friends-page button.friends-reaction.pressed { background: light-dark(#e3ecf8, #3c4043); border-color: #bcd; } /* Comments */ .friends-page .comments-content { padding: 8px 0; margin: 8px 0; font-size: 13px; } .friends-page .comments-content.closed { display: none; } .friends-page .comments-content.open { display: block; } .friends-page .comments-content h5 { font-size: 12px; font-weight: bold; color: light-dark(#666, #9aa0a6); margin: 0 0 8px; } .friends-page .comments-content .comment-list { list-style: none; padding: 0; margin: 0; } .friends-page .comments-content .comment { padding: 4px 0; border-bottom: 1px solid #eee; } /* === Google Reader accordion behavior === */ /* In all-collapsed mode (default for Google Reader), posts are compact */ .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-body, .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .entry-content, .friends-page .posts.all-collapsed article.card:not(.uncollapsed) footer.entry-meta { display: none; } .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .permalink { display: inline; font-size: 11px; } .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-title { display: inline; } .friends-page .posts.all-collapsed article.card:not(.uncollapsed) div.teaser { display: inline; font-size: 12px; color: light-dark(#666, #9aa0a6); } .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-header { cursor: pointer; display: inline; } .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .post-meta { display: inline; } .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .author { display: inline; } .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .card-title a { font-size: 13px; } .friends-page .posts.all-collapsed article.card.uncollapsed div.teaser { display: none; } /* Expanded item in collapsed list */ .friends-page .posts.all-collapsed article.card.uncollapsed .card-body, .friends-page .posts.all-collapsed article.card.uncollapsed .entry-content { display: block; } .friends-page .posts.all-collapsed article.card.uncollapsed footer.entry-meta { display: flex; } .friends-page .posts.all-collapsed article.card.uncollapsed { background: light-dark(#f6f7f8, #292a2d); padding: 10px 12px; margin: 0 -12px; } .friends-page .posts.all-collapsed article.card.uncollapsed .card-title { display: block; padding: 4px 0; } .friends-page .posts.all-collapsed article.card.uncollapsed .card-title a { font-size: 16px; } /* Non-collapsed individual items */ .friends-page .posts article.card.collapsed .card-body, .friends-page .posts article.card.collapsed .entry-content, .friends-page .posts article.card.collapsed footer.entry-meta { display: none; } .friends-page .posts article.card.collapsed .card-title { display: inline; } .friends-page .posts article.card.collapsed .card-title a { font-size: 13px; } .friends-page .posts article.card.collapsed .card-header { cursor: pointer; } /* Hide reblog/boost metadata in collapsed mode */ .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .reblog-info, .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .reblogged-by, .friends-page .posts article.card.collapsed .reblog-info, .friends-page .posts article.card.collapsed .reblogged-by { display: none; } /* Sidebar description */ .friends-page .off-canvas-sidebar .description, .friends-page .off-canvas-sidebar p { font-size: 11px; color: light-dark(#999, #9aa0a6); padding: 0 16px; margin: 0 0 8px; line-height: 1.4; } /* Author separator in compact mode */ .friends-page .posts.all-collapsed article.card:not(.uncollapsed) .author::after { content: ' — '; color: light-dark(#999, #9aa0a6); } /* Current item highlight (keyboard navigation) */ .friends-page .posts article.card.gr-current { outline: 2px solid #4d90fe; outline-offset: -2px; background: light-dark(#edf2fc, #2a2d35); } .friends-page .activitypub-custom-emoji { display: inline-block; width: auto; max-width: 1.5em; height: 1em; max-height: 1em; margin: 0 0.05em; object-fit: contain; vertical-align: -0.15em; } .friends-page .posts .boosted .follow-button, .friends-page .posts .boosted .follow-button span.name { display: none; } .friends-page .posts .boosted:hover .follow-button { display: inline; } /* Sidebar toggle (u key) */ .friends-page .off-canvas-content.gr-sidebar-hidden { margin-left: 0; } /* Collapse toggle button - hidden, click handled by card */ .friends-page .collapse-post { display: none; } .friends-page .overflow { display: none; } /* Toggle compact chip */ .friends-page .toggle-compact { cursor: pointer; } /* === Author header === */ .friends-page #main-header, .friends-page .author-header { padding: 0; } .friends-page .author-header .description { font-size: 12px; color: light-dark(#666, #9aa0a6); margin-bottom: 4px; } .friends-page .author-header .avatar { border-radius: 2px; vertical-align: middle; margin-right: 4px; } .friends-page #author-header.has-header-image { background-size: cover; background-position: center; position: relative; padding: 40px 16px 16px; } .friends-page #author-header.has-header-image::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 100%); border-radius: inherit; } .friends-page #author-header.has-header-image > * { position: relative; } .friends-page #author-header.has-header-image h2, .friends-page #author-header.has-header-image p, .friends-page #author-header.has-header-image .chip, .friends-page #author-header.has-header-image a { color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.5); } .friends-page #author-header.has-header-image .chip { background: rgba(255,255,255,.2); } .friends-page header.has-header-image { background-size: cover; background-position: center; position: relative; flex-wrap: wrap; } .friends-page header.has-header-image::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 100%); } .friends-page header.has-header-image > * { position: relative; } .friends-page header.has-header-image #author-header { padding: 16px; } .friends-page header.has-header-image #author-header h2, .friends-page header.has-header-image #author-header p, .friends-page header.has-header-image #author-header .chip, .friends-page header.has-header-image #author-header a { color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.5); } .friends-page header.has-header-image #author-header .chip { background: rgba(255,255,255,.2); } .friends-page header.has-header-image .search { align-self: flex-start; margin-top: 16px; } .friends-page header.has-header-image .search input { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.3); color: #fff; } .friends-page header.has-header-image .search input::placeholder { color: rgba(255,255,255,.7); } .friends-page header.has-header-image .search button { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.3); color: #fff; } /* === Dropdown menus === */ .friends-page .friends-dropdown { position: relative; display: inline-block; } .friends-page .friends-dropdown .menu { display: none; position: absolute; top: 100%; left: 0; background: light-dark(#fff, #292a2d); border: 1px solid light-dark(#d4d4d4, #3c4043); box-shadow: 0 2px 4px rgba(0,0,0,.15); z-index: 100; min-width: 150px; } .friends-page .friends-dropdown.active .menu, .friends-page .friends-dropdown .menu:hover { display: block; } .friends-page .friends-dropdown-right .menu { left: auto; right: 0; } /* === Pagination === */ .friends-page .navigation { padding: 12px 16px; font-size: 12px; } .friends-page .navigation a { color: light-dark(#1a0dab, #8ab4f8); } /* === Loading indicator === */ .friends-page .loading { color: transparent !important; pointer-events: none; position: relative; min-height: 16px; min-width: 16px; animation: none; border: 0; } .friends-page .loading::after { content: ""; display: block; position: absolute; top: 50%; left: 50%; width: 16px; height: 16px; margin-top: -8px; margin-left: -8px; border: 2px solid light-dark(#d4d4d4, #3c4043); border-top-color: #4d90fe; border-radius: 50%; animation: friends-spin .6s linear infinite; } @keyframes friends-spin { to { transform: rotate(360deg); } } /* === Utility === */ .friends-page .d-hide { display: none !important; } .friends-page .mb-2 { margin-bottom: 8px; } .friends-page .ml-1 { margin-left: 4px; } .friends-page .mr-2 { margin-right: 8px; } .friends-page .text { font-size: 11px; } .friends-page .btn-link { background: none; border: none; cursor: pointer; padding: 2px; } /* --- Add friend review flow --- */ .friends-page section.add-friend-subscriptions { display: grid; gap: 8px; padding: 12px 16px; } .friends-page section.add-friend-subscriptions .card { background: light-dark(#fff, #292a2d); border: 1px solid light-dark(#e8e8e8, #3c4043); border-radius: 2px; margin: 0; } .friends-page section.add-friend-subscriptions .card-body { padding: 10px; } .friends-page section.add-friend-subscriptions .hidden { display: none; } .friends-page section.add-friend-subscriptions .add-subscription-input { display: flex; align-items: flex-start; gap: 6px; } .friends-page section.add-friend-subscriptions textarea.form-input { flex: 1 1 auto; min-height: 84px; resize: vertical; width: 100%; } .friends-page section.add-friend-subscriptions .form-select { background: light-dark(#fff, #292a2d); border: 1px solid light-dark(#d4d4d4, #3c4043); border-radius: 1px; color: light-dark(#222, #e8eaed); font: inherit; padding: 4px 8px; width: 100%; } .friends-page section.add-friend-subscriptions .opml-file-hint, .friends-page section.add-friend-subscriptions .subscription-preview-description, .friends-page section.add-friend-subscriptions .subscription-feed-details, .friends-page section.add-friend-subscriptions .subscription-preview-status, .friends-page section.add-friend-subscriptions .bulk-feed-status { color: light-dark(#666, #bdc1c6); font-size: 12px; } .friends-page section.add-friend-subscriptions #preview-subscription:not(:empty) { margin-top: 8px; } .friends-page section.add-friend-subscriptions .bulk-controls, .friends-page section.add-friend-subscriptions .subscription-feed-actions, .friends-page section.add-friend-subscriptions .subscription-preview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 8px; } .friends-page section.add-friend-subscriptions .subscription-preview-results, .friends-page section.add-friend-subscriptions .bulk-feed-list, .friends-page section.add-friend-subscriptions .subscription-feed-list { display: grid; gap: 6px; list-style: none; margin: 8px 0 0; padding: 0; } .friends-page section.add-friend-subscriptions .subscription-feed-list.hidden { display: none; } .friends-page section.add-friend-subscriptions .bulk-feed-row, .friends-page section.add-friend-subscriptions .subscription-feed-option { background: light-dark(#f8fafd, #2f3135); border-radius: 2px; box-shadow: inset 0 0 0 1px light-dark(#eceff3, #3c4043); padding: 8px; } .friends-page section.add-friend-subscriptions .bulk-feed-row > label, .friends-page section.add-friend-subscriptions .subscription-feed-option > label { display: block; font-weight: bold; overflow-wrap: anywhere; } .friends-page section.add-friend-subscriptions .bulk-feed-row > label small, .friends-page section.add-friend-subscriptions .subscription-feed-option > label small { color: light-dark(#666, #bdc1c6); font-weight: normal; } .friends-page section.add-friend-subscriptions .bulk-feed-row.is-reviewing > .label-for-bulkfeed, .friends-page section.add-friend-subscriptions .bulk-feed-row.is-reviewing > .bulk-feed-status { display: none; } .friends-page section.add-friend-subscriptions .bulk-feed-review { margin-top: 6px; } .friends-page section.add-friend-subscriptions .feed-preview { background: light-dark(#fff, #292a2d); border-radius: 2px; box-shadow: inset 3px 0 0 #4d90fe, inset 0 0 0 1px light-dark(#e8e8e8, #3c4043); margin-top: 8px; padding: 8px; } .friends-page section.add-friend-subscriptions .bulk-feed-review .feed-preview { background: transparent; border-radius: 0; box-shadow: none; margin-top: 0; padding: 0; } .friends-page section.add-friend-subscriptions .subscription-preview-header, .friends-page section.add-friend-subscriptions .subscribe-success { display: flex; align-items: center; gap: 8px; } .friends-page section.add-friend-subscriptions .subscription-preview-header .avatar, .friends-page section.add-friend-subscriptions .subscribe-success .avatar { border-radius: 50%; flex: 0 0 auto; } .friends-page section.add-friend-subscriptions .subscription-preview-title, .friends-page section.add-friend-subscriptions .subscription-feed-preview-title { display: flex; flex-direction: column; min-width: 0; } .friends-page section.add-friend-subscriptions .subscription-preview-title small, .friends-page section.add-friend-subscriptions .subscription-feed-preview-title small { color: light-dark(#666, #bdc1c6); overflow-wrap: anywhere; } .friends-page section.add-friend-subscriptions .subscription-settings, .friends-page section.add-friend-subscriptions .subscription-feed-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 8px; } .friends-page section.add-friend-subscriptions .subscription-settings label, .friends-page section.add-friend-subscriptions .subscription-feed-controls label { display: grid; gap: 3px; font-size: 12px; font-weight: bold; } .friends-page section.add-friend-subscriptions .subscription-feed-url-label { grid-column: 1 / -1; } .friends-page section.add-friend-subscriptions .subscription-feed-preview { background: light-dark(#fff, #292a2d); border-radius: 2px; box-shadow: inset 0 0 0 1px light-dark(#e8e8e8, #3c4043); margin-top: 6px; padding: 8px; } .friends-page section.add-friend-subscriptions .subscription-feed-preview ul { display: grid; gap: 6px; list-style: none; margin: 0; padding: 0; } .friends-page section.add-friend-subscriptions .subscription-feed-preview p { color: light-dark(#666, #bdc1c6); font-size: 12px; margin: 2px 0 0; } .friends-page section.add-friend-subscriptions .error, .friends-page section.add-friend-subscriptions .subscription-preview-status.error, .friends-page section.add-friend-subscriptions .bulk-feed-status.error { color: light-dark(#dd4b39, #ea4335); } @media (max-width: 640px) { .friends-page section.add-friend-subscriptions .add-subscription-input { flex-direction: column; } .friends-page section.add-friend-subscriptions .add-subscription-input .btn, .friends-page section.add-friend-subscriptions .bulk-controls .btn, .friends-page section.add-friend-subscriptions .subscription-feed-actions .btn, .friends-page section.add-friend-subscriptions .subscription-preview-actions .btn { width: 100%; } .friends-page section.add-friend-subscriptions .subscription-settings, .friends-page section.add-friend-subscriptions .subscription-feed-controls { grid-template-columns: 1fr; } } /* Mention indicator */ .friends-page .mention-indicator { color: light-dark(#dd4b39, #ea4335); font-weight: bold; } /* === Dark Mode === */ /* Dark mode handled entirely by light-dark() above. The color-scheme: light dark on .friends-page enables it. */ /* Migration notification */ .friends-page .friends-migration-notification { display: flex; align-items: center; gap: .4rem; padding: 6px 16px; background: light-dark(#fef9e7, #2a2410); border-bottom: 1px solid light-dark(#e8c840, #5a4a00); font-size: .85rem; white-space: nowrap; overflow: hidden; } .friends-page .friends-migration-notification .friends-migration-notification-meta { margin-left: auto; display: flex; align-items: center; gap: .5rem; white-space: nowrap; opacity: .75; } .friends-page .friends-migration-notification button { background: none; border: 1px solid currentColor; border-radius: 3px; cursor: pointer; font-size: .8rem; padding: 1px 6px; } /* === Link Previews === */ .friends-page a.friends-link-preview { display: flex; gap: 10px; margin-top: 8px; padding: 8px; border: 1px solid light-dark(#dadce0, #3c4043); border-radius: 4px; background: light-dark(#f8f9fa, #292a2d); color: inherit; text-decoration: none; } .friends-page a.friends-link-preview:hover { background: light-dark(#f1f3f4, #35363a); text-decoration: none; } .friends-page a.friends-link-preview .friends-link-preview-image { flex: 0 0 auto; } .friends-page a.friends-link-preview .friends-link-preview-image img { display: block; width: 100px; height: 75px; object-fit: cover; border-radius: 2px; } .friends-page a.friends-link-preview .friends-link-preview-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .friends-page a.friends-link-preview .friends-link-preview-host { color: light-dark(#5f6368, #9aa0a6); font-size: 11px; text-transform: uppercase; } .friends-page a.friends-link-preview .friends-link-preview-title { font-size: 13px; font-weight: bold; line-height: 1.3; } .friends-page a.friends-link-preview .friends-link-preview-description { color: light-dark(#5f6368, #9aa0a6); font-size: 12px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }