/* ==================== STIS THEME ACCENTS ==================== */
.room-card-header::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 200px;
    height: 200px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 50%;
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: var(--stis-accent); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--stis-secondary); }

/* Selection color */
::selection { background: var(--stis-accent); color: white; }

/* Loading spinner */
.spinner { margin: 20px auto; }

/* Pulse animation for notifications */
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }

/* Posisi Absolut di Tengah Layar */
.toast-container { 
    position: fixed; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); /* Menarik ke pusat secara vertikal & horizontal */
    z-index: 9999; 
    display: flex; 
    flex-direction: column; 
    gap: 12px; 
    align-items: center; 
    pointer-events: none; /* Agar area transparan tidak menghalangi klik mouse */
}

/* Kotak Alert dengan Kontras Tinggi (Bayangan Dalam & Luar) */
.toast { 
    background: #ffffff; 
    color: #1d1d1f;
    border-radius: 16px; 
    padding: 18px 26px; 
    /* Kombinasi bayangan tebal (shadow) dan garis tipis agar sangat kontras dengan background */
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.05); 
    display: flex; 
    align-items: center; 
    gap: 14px; 
    min-width: 320px; 
    font-size: 15px;
    font-weight: 600;
    pointer-events: auto;
    animation: popIn 0.4s cubic-bezier(0.16, 1, 0.3, 1), fadeOutCenter 0.4s ease 2.7s forwards; 
    border-left: 5px solid; 
}

/* Menyesuaikan warna ikon agar tetap menyala */
.toast i { font-size: 22px; }
.toast.success { border-left-color: #34C759; }
.toast.success i { color: #34C759; }
.toast.error { border-left-color: #FF3B30; }
.toast.error i { color: #FF3B30; }
.toast.warning { border-left-color: #FF9500; }
.toast.warning i { color: #FF9500; }
.toast.info { border-left-color: #5AC8FA; }
.toast.info i { color: #5AC8FA; }

/* Animasi Muncul Bergaya Pop-up */
@keyframes popIn { 
    from { transform: scale(0.85); opacity: 0; } 
    to { transform: scale(1); opacity: 1; } 
}

/* Animasi Hilang Memudar di Tengah */
@keyframes fadeOutCenter { 
    to { opacity: 0; transform: scale(0.9); } 
}

/* Badges */
.badge { padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; display: inline-block; }
.badge-success { background: #d4edda; color: #155724; }
.badge-warning { background: #fff3cd; color: #856404; }
.badge-danger { background: #f8d7da; color: #721c24; }
.badge-info { background: #d1ecf1; color: #0c5460; }
.badge-primary { background: var(--stis-light); color: var(--stis-primary); }

/* Card hover effects */
.stat-card, .room-card, .table-container { position: relative; }
.stat-card::before, .room-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(135deg, transparent 0%, rgba(0, 163, 224, 0.03) 100%);
    opacity: 0; transition: var(--transition); border-radius: inherit;
}
.stat-card:hover::before, .room-card:hover::before { opacity: 1; }