// scss/atoms/plugins.module.scss .pluginsPage { display: flex; flex-direction: column; gap: var(--spacing-4); padding: var(--spacing-4); } .header { background-color: var(--color-background-paper); padding: var(--spacing-4); border-radius: var(--border-radius-md); } .headerContent { display: flex; flex-direction: column; gap: var(--spacing-2); } .stats { display: flex; gap: var(--spacing-4); margin-top: var(--spacing-2); } .statItem { display: flex; flex-direction: column; gap: var(--spacing-1); } .filters { display: flex; gap: var(--spacing-2); align-items: center; flex-wrap: wrap; } .searchBar { flex: 1; min-width: 280px; } .filterGroup { display: flex; gap: var(--spacing-1); } .mainContent { display: flex; flex-direction: column; gap: var(--spacing-3); } .resultsCount { padding-bottom: var(--spacing-2); border-bottom: 1px solid var(--color-border); } .gridView { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--spacing-3); } .pluginCard { position: relative; cursor: pointer; transition: transform 0.2s; &:hover { transform: translateY(-2px); } } .pluginIcon { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border-radius: var(--border-radius-md); font-size: 32px; margin-bottom: var(--spacing-2); } .pluginContent { display: flex; flex-direction: column; gap: var(--spacing-2); } .pluginHeader { display: flex; justify-content: space-between; align-items: flex-start; } .pluginTitle { font-weight: 600; } .pluginBadge { padding: var(--spacing-0-5) var(--spacing-1); border-radius: var(--border-radius-sm); font-size: 0.75rem; font-weight: 500; } .installed { background-color: var(--mat-sys-tertiary-container); color: var(--mat-sys-on-tertiary-container); } .pluginDescription { color: var(--mat-sys-on-surface-variant); line-height: 1.5; } .pluginMeta { display: flex; gap: var(--spacing-2); font-size: 0.875rem; color: var(--mat-sys-on-surface-variant); } .metaItem { display: flex; align-items: center; gap: var(--spacing-0-5); } .emptyState { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-2); padding: var(--spacing-6); text-align: center; } .emptyIcon { font-size: 64px; } .dialogContent { display: flex; flex-direction: column; gap: var(--spacing-3); } .dialogIcon { width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; border-radius: var(--border-radius-lg); font-size: 40px; align-self: center; } .dialogHeader { display: flex; justify-content: space-between; align-items: flex-start; } .dialogMeta { display: flex; flex-wrap: wrap; gap: var(--spacing-2); padding: var(--spacing-2); background-color: var(--mat-sys-surface-variant); border-radius: var(--border-radius-md); } .dialogSection { display: flex; flex-direction: column; gap: var(--spacing-1); } .dialogSectionTitle { font-weight: 600; color: var(--mat-sys-on-surface-variant); font-size: 0.875rem; text-transform: uppercase; } .featureList { display: flex; flex-direction: column; gap: var(--spacing-1); list-style: none; padding: 0; margin: 0; } .featureItem { display: flex; align-items: center; gap: var(--spacing-1); color: var(--mat-sys-on-surface-variant); }