/* SPDX-License-Identifier: AGPL-3.0-or-later */ .card { --crosspost-card-surface: var(--background-secondary); --crosspost-card-banner-height: 7.5rem; position: relative; display: flex; flex-direction: column; width: 18.75rem; max-width: 100%; overflow: hidden; background: var(--crosspost-card-surface); color: var(--text-primary); border: 0.0625rem solid var(--background-modifier-accent); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); } .sheetCard { width: 100%; border: none; border-radius: 0; box-shadow: none; } .banner { position: relative; display: block; height: var(--crosspost-card-banner-height); flex: 0 0 auto; overflow: hidden; background-color: var(--background-tertiary); } .bannerImage { position: absolute; inset: 0; display: block; background-position: center center; background-repeat: no-repeat; background-size: cover; } .bannerScrim { position: absolute; inset: 0; display: block; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.04) 0%, rgba(0, 0, 0, 0.42) 100%); } .icon { position: absolute; top: calc(var(--crosspost-card-banner-height) - 1.75rem); left: var(--spacing-4); z-index: 1; box-shadow: 0 0 0 0.1875rem var(--crosspost-card-surface); pointer-events: none; } .body { display: flex; flex-direction: column; gap: var(--spacing-2); padding: var(--spacing-10) var(--spacing-4) var(--spacing-4); min-width: 0; } .titleRow { display: flex; align-items: center; gap: 0.25rem; height: 1.25rem; min-width: 0; } .nameText { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1rem; font-weight: 600; line-height: 1.25; color: var(--text-primary); } .description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; font-size: 0.875rem; line-height: 1.5; color: var(--text-secondary); overflow-wrap: anywhere; } .footer { display: flex; align-items: center; gap: var(--spacing-3); flex: 0 0 auto; min-width: 0; padding: var(--spacing-3) var(--spacing-4); border-top: 0.0625rem solid var(--background-modifier-accent); } .stat { display: flex; align-items: center; gap: var(--count-indicator-gap); flex: 0 1 auto; height: 0.9rem; min-width: 0; } .statDot { height: 0.5rem; width: 0.5rem; border-radius: var(--radius-full); flex: 0 0 auto; } .statDotOnline { composes: statDot; background-color: var(--status-online); } .statDotMembers { composes: statDot; background-color: var(--text-tertiary-secondary); } .statText { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-tertiary); font-size: 0.75rem; line-height: 1.2; } .notice { color: var(--text-tertiary); font-size: 0.875rem; line-height: 1.3; } .action { padding: 0 var(--spacing-4) var(--spacing-4); } .loading { display: flex; justify-content: center; padding-block: var(--spacing-1); }