.icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
}
.btn .icon {
    vertical-align: text-bottom;
    margin-right: 0.25em;
}
.btn {
    display: flex;
    align-items: center;
}


/* Spinner animation */
.icon-spinner {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* Icon sizing utilities */
.icon-sm {
    width: 0.875em;
    height: 0.875em;
}

.icon-lg {
    width: 1.33em;
    height: 1.33em;
}

.icon-xl {
    width: 1.5em;
    height: 1.5em;
}

/* Color utilities for icons */
.icon-primary {
    filter: invert(9%) sepia(100%) saturate(6148%) hue-rotate(354deg) brightness(98%) contrast(98%);
}

.icon-link {
    filter: invert(47%) sepia(75%) saturate(6366%) hue-rotate(208deg) brightness(98%) contrast(103%);
    margin-bottom: 3px;
}
.icon-link:hover {
    filter: invert(20%) sepia(61%) saturate(4133%) hue-rotate(211deg) brightness(92%) contrast(92%);
}


.icon-warning {
    filter: brightness(0) saturate(100%) invert(84%) sepia(31%) saturate(638%) hue-rotate(359deg) brightness(103%) contrast(107%);
}

.icon-danger {
    filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(346deg) brightness(104%) contrast(97%);
}

.icon-secondary {
    filter: brightness(0) saturate(100%) invert(44%) sepia(8%) saturate(1237%) hue-rotate(202deg) brightness(94%) contrast(86%);
} 


/* Icons */

.icon-cog {
    background-image: url("../icons/cog.e9ad88507fce.svg");
}

.icon-user {
    background-image: url("../icons/user.a5383f7524c3.svg");
}

.icon-key {
    background-image: url("../icons/key.8ab2d54c4439.svg");
}

.icon-sign-out {
    background-image: url("../icons/sign-out.675c325525a1.svg");
}

.icon-plus-circle {
    background-image: url("../icons/plus-circle.25578cc7c843.svg");
}

.icon-plus {
    background-image: url("../icons/plus.fe00aefb5d34.svg");
}

.icon-edit {
    background-image: url("../icons/edit.1db49171ec45.svg");
}

.icon-save {
    background-image: url("../icons/save.813ba9533522.svg");
}

.icon-robot {
    background-image: url("../icons/robot.f26b27984083.svg");
}

.icon-comments {
    background-image: url("../icons/chat-bubbles.68d1b4c798fd.svg");
}

.icon-users {
    background-image: url("../icons/users.d827434aa1c7.svg");
}

.icon-files {
    background-image: url("../icons/files.3393a35fd0c1.svg");
}

.icon-files-white {
    background-image: url("../icons/files-white.5f3d1a0fe0a4.svg");
}

.icon-spinner {
    background-image: url("../icons/spinner.f06dde498b7a.svg");
}

.icon-exclamation-triangle {
    background-image: url("../icons/exclamation-triangle.2f847ea263f8.svg");
}

.icon-file-pdf {
    background-image: url("../icons/pdf.9bfc0ae58c33.svg");
}

.icon-file-excel {
    background-image: url("../icons/xlsx.97eec511c415.svg");
}

.icon-link {
    background-image: url("../icons/link.630baf17bbff.svg");
}
.icon-link-lime {
    background-image: url("../icons/link-lime.131cab3f9087.svg");
    margin-bottom: 3px;
}

.icon-file-text {
    background-image: url("../icons/txt.4d80231352f0.svg");
}