/* Para casos específicos */
.word-wrap-normal {
    word-wrap: normal;
    overflow-wrap: normal;
}

.word-wrap-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.word-wrap-break-all {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
}

.word-wrap-break-word {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Para URLs muy largas */
.url-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    hyphens: none;
}

/* Para códigos y tokens */
.code-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    font-family: monospace;
    hyphens: none;
}

/* Para emails */
.email-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    hyphens: none;
}

/* Para títulos largos */
.title-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    line-height: 1.2;
}

/* Para descripciones largas */
.description-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    line-height: 1.4;
}

/* Para contenido de tablas */
.table-cell-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    max-width: 200px;
    white-space: normal;
}

/* Para contenido de modales */
.modal-content-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}

/* Para contenido de cards */
.card-content-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}

/* Para botones con texto largo (cuidado) */
.btn-text-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    text-align: center;
}

/* Para elementos de navegación (cuidado) */
.nav-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Para elementos flex */
.flex-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    min-width: 0; /* Importante para flex items */
}

/* Responsive utilities */
@media (max-width: 576px) {
    .mobile-break {
        word-wrap: break-word;
        overflow-wrap: break-word;
        word-break: break-word;
        hyphens: auto;
    }

    .mobile-break-all {
        word-wrap: break-word;
        overflow-wrap: break-word;
        word-break: break-all;
    }
}

@media (max-width: 768px) {
    .tablet-break {
        word-wrap: break-word;
        overflow-wrap: break-word;
        word-break: break-word;
        hyphens: auto;
    }
}

/* Para elementos que nunca deben romper */
.no-break {
    word-wrap: normal;
    overflow-wrap: normal;
    white-space: nowrap;
}

/* Para elementos que deben mantener formato */
.preserve-format {
    word-wrap: normal;
    overflow-wrap: normal;
    white-space: pre-wrap;
    font-family: monospace;
}
