/* Icon Alignment Fixes */
/* Arregla la alineación de iconos Material Icons con texto en botones y alerts */

/* Material Icons base alignment */
.material-icons {
    font-size: 1rem !important;
    vertical-align: middle !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* Button icon alignment */
.btn .material-icons {
    font-size: 1em !important;
    vertical-align: middle !important;
    margin-right: 0.375rem;
    margin-left: 0;
    line-height: 1 !important;
}

.btn .material-icons:last-child {
    margin-right: 0;
    margin-left: 0.375rem;
}

/* Buttons with flex for better alignment */
.btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.375rem !important;
}

.btn .material-icons {
    margin: 0 !important; /* Remove margins when using gap */
    flex-shrink: 0;
}

/* Alert icon alignment */
.alert .material-icons {
    font-size: 1.125rem !important;
    vertical-align: middle !important;
    margin-right: 0.5rem;
    margin-left: 0;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* Service button specific fixes */
.btn-service {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

.btn-service .material-icons {
    font-size: 1rem !important;
    margin: 0 !important;
    flex-shrink: 0;
    line-height: 1 !important;
}

/* Iframe header button fixes */
.iframe-header .btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.375rem !important;
}

.iframe-header .btn .material-icons {
    font-size: 1rem !important;
    margin: 0 !important;
    line-height: 1 !important;
}

/* Logout button fixes */
.btn-logout {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.375rem !important;
}

.btn-logout .material-icons {
    font-size: 1rem !important;
    margin: 0 !important;
    line-height: 1 !important;
}

/* Toolbar actions fixes */
.toolbar-actions .btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.375rem !important;
}

.toolbar-actions .btn .material-icons {
    font-size: 1rem !important;
    margin: 0 !important;
    line-height: 1 !important;
}

/* Brand logo fixes */
.brand-logo .material-icons {
    vertical-align: middle !important;
    line-height: 1 !important;
}

/* Form label icon fixes */
.form-label .material-icons {
    font-size: 1rem !important;
    vertical-align: middle !important;
    margin-right: 0.375rem;
    line-height: 1 !important;
}

/* General flex containers with icons */
.d-flex .material-icons,
.d-inline-flex .material-icons {
    align-self: center !important;
    line-height: 1 !important;
}

/* Password toggle icon fix */
.password-toggle .material-icons {
    font-size: 1.125rem !important;
    vertical-align: middle !important;
    line-height: 1 !important;
}

/* Small button icons */
.btn-sm .material-icons {
    font-size: 0.875rem !important;
}

/* Large button icons */
.btn-lg .material-icons {
    font-size: 1.125rem !important;
}

/* Alert with icons using flexbox */
.alert-with-icon {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
}

.alert-with-icon .material-icons {
    margin: 0 !important;
    flex-shrink: 0;
    margin-top: 0.125rem; /* Slight adjustment for text alignment */
}

/* Fix for inline elements with icons */
span.material-icons + span,
i.material-icons + span {
    vertical-align: middle !important;
}

/* Ensure consistent line-height for text elements adjacent to icons */
.btn,
.alert,
.form-label {
    line-height: 1.5 !important;
}

/* Override for specific Bootstrap button alignments */
.btn:not(:disabled):not(.disabled) {
    vertical-align: middle !important;
}