.admin-users-container { max-width: 1400px; margin: 0 auto; padding: 2rem; } // Header Section .users-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; .header-left { display: flex; align-items: center; gap: 1rem; flex: 1; .header-title { h1 { margin: 0; font-size: 2rem; font-weight: 600; color: #333; } .subtitle { margin: 0.25rem 0 0 0; color: #666; font-size: 0.95rem; } } } .header-actions { display: flex; gap: 0.75rem; button mat-icon { margin-right: 0.5rem; } } } // Filters Card .filters-card { margin-bottom: 2rem; .filters-form { display: grid; grid-template-columns: 2fr repeat(4, 1fr) auto; gap: 1rem; align-items: start; .search-field { grid-column: 1; } mat-form-field { width: 100%; mat-icon[matPrefix] { margin-right: 0.5rem; color: #666; } } button { margin-top: 0.5rem; } } } // Loading State .loading-container { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 4rem 2rem; gap: 1.5rem; p { color: #666; font-size: 1rem; } } // Error State .error-card { margin-bottom: 2rem; .error-content { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; mat-icon { font-size: 3rem; width: 3rem; height: 3rem; } .error-text { flex: 1; h3 { margin: 0 0 0.5rem 0; color: #d32f2f; font-size: 1.25rem; } p { margin: 0; color: #666; } } } } // Table Card .table-card { margin-bottom: 2rem; .table-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e0e0; h2 { margin: 0; font-size: 1.5rem; font-weight: 600; } .total-count { color: #666; font-size: 0.9rem; } } .table-container { overflow-x: auto; } .users-table { width: 100%; th { font-weight: 600; color: #333; background: #f5f5f5; } td, th { padding: 1rem; } .username-cell { display: flex; align-items: center; gap: 0.5rem; .user-icon { color: #666; font-size: 24px; width: 24px; height: 24px; } } mat-chip { font-size: 0.75rem; min-height: 24px; padding: 0 0.5rem; } tr:hover { background: #f9f9f9; } } } // Mobile Cards .mobile-cards { display: none; flex-direction: column; gap: 1rem; margin-bottom: 2rem; .user-card { mat-card-header { margin-bottom: 1rem; .card-avatar { font-size: 40px; width: 40px; height: 40px; color: #666; } } .card-info { display: flex; flex-direction: column; gap: 0.75rem; .info-row { display: flex; justify-content: space-between; align-items: center; .label { font-weight: 500; color: #666; } } } mat-card-actions { display: flex; gap: 0.5rem; padding: 0.75rem 1rem; border-top: 1px solid #e0e0e0; button { flex: 1; mat-icon { margin-right: 0.25rem; font-size: 18px; width: 18px; height: 18px; } } } } } // Pagination .pagination-container { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem; background: white; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); .pagination-info { color: #666; font-size: 0.9rem; } .pagination-controls { display: flex; gap: 0.25rem; align-items: center; button { &.active { background: #3f51b5; color: white; } } } } // Empty State .empty-card { text-align: center; padding: 4rem 2rem; mat-card-content { mat-icon { font-size: 80px; width: 80px; height: 80px; color: #999; margin-bottom: 1rem; } h3 { margin: 0 0 0.5rem 0; color: #333; font-size: 1.5rem; } p { margin: 0 0 1.5rem 0; color: #666; } } } // Responsive Design @media (max-width: 768px) { .admin-users-container { padding: 1rem; } .users-header { flex-direction: column; align-items: stretch; .header-left { flex-direction: column; align-items: flex-start; .header-title h1 { font-size: 1.5rem; } } .header-actions { width: 100%; button { flex: 1; } } } .filters-card .filters-form { grid-template-columns: 1fr; .search-field { grid-column: 1; } button { width: 100%; } } .desktop-table { display: none; } .mobile-cards { display: flex; } .pagination-container { flex-direction: column; gap: 1rem; .pagination-info { text-align: center; } .pagination-controls { flex-wrap: wrap; justify-content: center; } } } @media (max-width: 1024px) and (min-width: 769px) { .filters-card .filters-form { grid-template-columns: 1fr 1fr; .search-field { grid-column: 1 / -1; } button { grid-column: 1 / -1; } } .users-table { font-size: 0.9rem; td, th { padding: 0.75rem; } } } @media (max-width: 1200px) { .users-table { th:nth-child(6), // Last Login td:nth-child(6) { display: none; } } } // Dark Mode Support @media (prefers-color-scheme: dark) { .users-header .header-title h1 { color: #fff; } .users-header .subtitle { color: #aaa; } .loading-container p { color: #aaa; } .error-card .error-content .error-text p { color: #aaa; } .table-card { .table-header { border-bottom-color: #444; h2 { color: #fff; } .total-count { color: #aaa; } } .users-table { th { background: #2a2a2a; color: #fff; } tr:hover { background: #2a2a2a; } } } .mobile-cards .user-card { mat-card-actions { border-top-color: #444; } } .pagination-container { background: #1a1a1a; .pagination-info { color: #aaa; } } .empty-card mat-card-content { mat-icon { color: #666; } h3 { color: #fff; } p { color: #aaa; } } }