.bg-primary-soft { background-color: rgba(var(--bs-primary-rgb), 0.1); }
.stat { background: rgba(0,0,0,0.05); padding: 10px; border-radius: 50%; width: 45px; height: 45px; display: flex; align-items: center; justify-content: center; }
.bg-success-soft { background-color: rgba(40,167,69,0.1); }
.bg-danger-soft { background-color: rgba(220,53,69,0.1); }
.search-box .form-control:focus { box-shadow: none; background-color: #fff !important; border: 1px solid #dee2e6 !important; }
.search-box .input-group-text { border-right: 0; }
.search-box .form-control { border-left: 0; }
#vs30Table th { font-weight: 600; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; }
.page-link { border: 0; border-radius: 8px !important; margin: 0 2px; color: #495057; }
.page-item.active .page-link { background-color: var(--bs-primary); }
.filter-item.active { background-color: rgba(var(--bs-primary-rgb), 0.05); }
.filter-item:hover { background-color: #f8f9fa; }
.vs30-opacity-control {
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(8px);
    border-radius: 10px;
    padding: 10px 14px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.15);
    font-size: 0.8rem;
    min-width: 180px;
    transition: opacity 0.3s, transform 0.3s;
}
.vs30-opacity-control.hidden { opacity: 0; transform: translateY(10px); pointer-events: none; }
.vs30-opacity-control label { font-weight: 600; color: #333; margin-bottom: 4px; display: block; }
.vs30-opacity-control input[type=range] { width: 100%; accent-color: var(--bs-primary); cursor: pointer; }
.vs30-opacity-control .opacity-val { font-weight: 700; color: var(--bs-primary); }
