@keyframes float {
    0%   { transform: translateY(0px);  }
    50%  { transform: translateY(-8px); }
    100% { transform: translateY(0px);  }
}

.float-animation {
    animation: float 2.5s ease-in-out infinite;
}

.sidebar-transition {
      transition: transform 0.3s ease-in-out;
}

@keyframes bounceSparkle {
    0%   { transform: translateY(0);    opacity: 1;   }
    50%  { transform: translateY(-4px); opacity: 0.8; }
    100% { transform: translateY(0);    opacity: 1;   }
}

.sparkle-animate {
    animation: bounceSparkle 0.6s ease-in-out infinite;
}

.floating-icon {
    position: absolute;
    opacity: 0.12;
    font-size: 2.5rem;
    color: #4f46e5;
    animation: float 6s ease-in-out infinite alternate;
    pointer-events: none;
}

.notif-banner {
    background: linear-gradient(90deg, #4f46e5, #7c3aed);
    animation: slideDown 0.4s ease;
}
@keyframes slideDown {
    from { transform: translateY(-20px); opacity: 0; }
    to   { transform: translateY(0);     opacity: 1; }
}
.badge-scheduled   { background:#dbeafe; color:#1e40af; }
.badge-rescheduled { background:#fef3c7; color:#92400e; }
.badge-completed   { background:#d1fae5; color:#065f46; }
.badge-conducted   { background:#d1fae5; color:#065f46; }
.badge-cancelled   { background:#fee2e2; color:#991b1b; }
.badge-delayed     { background:#fee2e2; color:#b91c1c; }
.modal-backdrop { background: rgba(0,0,0,0.45); backdrop-filter: blur(2px); }
@keyframes shimmer {
    0%   { background-position: -400px 0; }
    100% { background-position:  400px 0; }
}
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 400px 100%;
    animation: shimmer 1.4s infinite;
    border-radius: 6px;
}
.question-card { transition: all 0.2s ease; }
.question-card:hover { background:#f5f3ff; border-color:#a5b4fc; transform: translateX(3px); }
.field-error { display:none; color:#dc2626; font-size:0.75rem; margin-top:4px; align-items:center; gap:4px; }
.field-error.show { display:flex; }
.input-error { border-color:#dc2626 !important; box-shadow:0 0 0 2px rgba(220,38,38,0.15) !important; }