.view-mode-btn{transition:background-color .2s ease,color .2s ease}.view-mode-btn:hover{background-color:var(--bs-primary);color:#fff}.view-mode-btn.active{background-color:var(--bs-primary);color:#fff;border-color:var(--bs-primary)}.class-card:hover:before{opacity:1}.class-card:hover .selection-checkbox{position:absolute;top:10px;left:10px;z-index:10;opacity:0;transition:opacity .2s ease}.class-card:hover .selection-checkbox{opacity:1}.progress{background-color:#0000001a;border-radius:10px;overflow:hidden}.progress-bar{transition:width .6s ease;background:linear-gradient(90deg,var(--bs-primary),var(--bs-info))}.bulk-actions-panel{transform:translateY(-100%);transition:transform .3s ease}.bulk-actions-panel.show{transform:translateY(0)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.filter-btn{transition:background-color .2s ease}.filter-btn:hover{background-color:var(--bs-primary);color:#fff}.empty-state{text-align:center;padding:2rem}@media (max-width: 768px){.bulk-actions-panel{flex-direction:column;gap:.5rem}}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.tooltip-custom:hover:after{opacity:1}.btn-enhanced:hover:before{width:300px;height:300px}.fade-in{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@keyframes ripple-animation{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.searching .input-group-text:after{content:"";width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite;display:inline-block;margin-left:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast-container{z-index:9999}.form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary)}.form-check-input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem #007bff40}.signup-selection{margin-bottom:1.5rem}.btn-role-joined{flex:1;padding:.875rem 1.5rem;font-size:1rem;font-weight:500;border:1px solid rgba(255,255,255,.2);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}.btn-role-joined:first-child{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem;border-right:1px solid rgba(255,255,255,.2)}.btn-role-joined:last-child{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;border-left:1px solid rgba(255,255,255,.2)}.btn-role-default{background:#ffffff1a;color:#fff}.btn-role-default:hover{background:#fff3;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.btn-role-active{background:#ffffff40;color:var(--secondary);border-color:#ffffff4d;box-shadow:0 4px 12px #0003}.btn-role-active:hover{background:#ffffff59;color:var(--secondary);transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.btn-role-joined:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff1a;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-role-joined:active:before{width:300px;height:300px}@media (max-width: 768px){.btn-role-joined{padding:.75rem 1rem;font-size:.9rem}}@media (max-width: 480px){.btn-role-joined{padding:.625rem .75rem;font-size:.85rem}}
