:host { display: block; } .card-header { background-color: #f8f9fa; border-bottom: 1px solid rgba(0, 0, 0, 0.125); } .search-box { position: relative; min-width: 200px; .form-control { padding-left: 2.5rem; padding-right: 1rem; } .search-icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: #6c757d; pointer-events: none; } } .table { th { font-weight: 600; background-color: #f8f9fa; border-bottom: 2px solid #dee2e6; white-space: nowrap; } td { vertical-align: middle; } } .btn-group-sm > .btn { padding: 0.25rem 0.5rem; font-size: 0.875rem; } .badge { font-size: 0.75em; } .alert-info { background-color: #e7f3ff; border-color: #b3d7ff; color: #004085; .btn-close { padding: 0.5rem; } } .spinner-border { width: 3rem; height: 3rem; } // Responsive adjustments @media (max-width: 768px) { .card-header .d-flex { flex-direction: column; align-items: stretch !important; gap: 0.75rem !important; } .search-box { min-width: 100%; } .table-responsive { font-size: 0.875rem; } .d-flex.justify-content-between { flex-direction: column; gap: 1rem; > div { width: 100%; justify-content: center !important; } } .btn-group { width: 100%; .btn { flex: 1; } } } // Loading overlay .text-center.py-5 { min-height: 200px; display: flex; flex-direction: column; justify-content: center; align-items: center; } // Hover effects .table-hover tbody tr:hover { background-color: rgba(0, 123, 255, 0.05); } // Date filter styles .form-control-sm { min-width: 120px; } // Active state for filter buttons .btn-outline-primary.active { background-color: #0d6efd; color: white; border-color: #0d6efd; }