/* Font Awesome Icon Classes */
.fas,
.fa-solid {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
}

.far,
.fa-regular {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 400 !important;
}

.fab,
.fa-brands {
    font-family: 'Font Awesome 6 Brands' !important;
    font-weight: 400 !important;
}

/* Common icon styles */
.fas,
.far,
.fab,
.fa,
.fa-solid,
.fa-regular,
.fa-brands {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
}

/* Specific icon definitions */
.fa-circle-check:before {
    content: "\f058";
}

.fa-triangle-exclamation:before {
    content: "\f071";
}

.fa-info-circle:before {
    content: "\f05a";
}

.fa-search:before {
    content: "\f002";
}

.fa-times:before {
    content: "\f00d";
}

.fa-eye:before {
    content: "\f06e";
}

.fa-hand-pointer:before {
    content: "\f25a";
}

.fa-box-open:before {
    content: "\f49e";
}

.fa-circle-info:before {
    content: "\f05a";
}

.fa-magnifying-glass:before {
    content: "\f002";
}

.fa-hand:before {
    content: "\f256";
}

/* Animation classes */
.icon-bounce {
    animation: icon-bounce 0.6s ease-in-out;
}

.icon-shake {
    animation: icon-shake 0.5s ease-in-out;
}

.icon-hover:hover {
    transform: scale(1.1);
}

@keyframes icon-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

@keyframes icon-shake {
    0%, 100% { transform: rotate(0deg); }
    20%, 60% { transform: rotate(6deg); }
    40%, 80% { transform: rotate(-6deg); }
}

/* Icon sizes */
.icon-lg {
    font-size: 1.25rem;
}

.icon-xl {
    font-size: 1.5rem;
}

.icon-2xl {
    font-size: 2rem;
}

/* Icon colors */
.icon-success {
    color: var(--bs-success, #28a745);
}

.icon-warning {
    color: var(--bs-warning, #ffc107);
}

.icon-danger {
    color: var(--bs-danger, #dc3545);
}

.icon-info {
    color: var(--bs-info, #17a2b8);
}

.icon-primary {
    color: var(--bs-primary, #007bff);
} 