/* MAE — Botones (carga al final de las hojas de tema; unifica toda la app) */

:root {
    --mae-btn-radius: 7px;
    --mae-btn-radius-sm: 5px;
    --mae-btn-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    --mae-btn-shadow-hover: 0 2px 6px rgba(15, 23, 42, 0.1);
    --mae-btn-shadow-inset: inset 0 2px 4px rgba(0, 0, 0, 0.08);
    --mae-btn-transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

/* Anula el borde inferior “grueso” del tema legacy (style.css) */
.btn {
    font-weight: 500;
    letter-spacing: 0.01em;
    border-radius: var(--mae-btn-radius);
    border: 1px solid transparent;
    border-bottom: 1px solid transparent;
    padding: 0.5rem 1rem;
    box-shadow: var(--mae-btn-shadow);
    transition: var(--mae-btn-transition);
    -webkit-font-smoothing: antialiased;
}

.btn:hover,
.btn:focus {
    text-decoration: none;
}

.btn:focus-visible {
    outline: 2px solid var(--mae-primary, #368ee0);
    outline-offset: 2px;
}

.btn:focus:not(:focus-visible) {
    outline: none;
}

.btn:active,
.btn.active {
    box-shadow: var(--mae-btn-shadow-inset);
}

.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
    box-shadow: none;
    opacity: 0.58;
}

/* Default */
.btn-default {
    color: var(--mae-text, #1a1d24);
    background-color: #fff;
    border-color: var(--mae-border, #dce1ea);
    box-shadow: var(--mae-btn-shadow);
}

.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
    color: var(--mae-text, #1a1d24);
    background-color: #f0f3f8;
    border-color: #c5cdd8;
    box-shadow: var(--mae-btn-shadow-hover);
}

/* Primario y acciones (paleta MAE) */
.btn-primary {
    color: #fff;
    background: linear-gradient(180deg, var(--mae-primary, #368ee0) 0%, var(--mae-primary-dark, #2a6cb5) 100%);
    border-color: rgba(0, 0, 0, 0.1);
    box-shadow: 0 1px 2px rgba(30, 80, 140, 0.25);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
    color: #fff;
    background: linear-gradient(180deg, #4a9ae8 0%, var(--mae-primary-dark, #2a6cb5) 100%);
    box-shadow: 0 2px 8px rgba(30, 90, 160, 0.35);
}

.btn-primary:focus-visible {
    outline-color: var(--mae-primary-dark, #2a6cb5);
}

.btn-success {
    color: #fff;
    background: linear-gradient(180deg, #1dc59a 0%, #0ea080 100%);
    border-color: rgba(0, 0, 0, 0.1);
    box-shadow: 0 1px 2px rgba(10, 120, 90, 0.25);
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
    color: #fff;
    background: linear-gradient(180deg, #2ad4ae 0%, #0c9075 100%);
    box-shadow: 0 2px 8px rgba(10, 130, 100, 0.35);
}

.btn-info {
    color: #fff;
    background: linear-gradient(180deg, #3aa3eb 0%, #2b87d4 100%);
    border-color: rgba(0, 0, 0, 0.1);
    box-shadow: 0 1px 2px rgba(30, 100, 170, 0.25);
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
    color: #fff;
    background: linear-gradient(180deg, #4db0f5 0%, #2e86c1 100%);
    box-shadow: 0 2px 8px rgba(30, 100, 170, 0.35);
}

.btn-warning {
    color: #fff;
    background: linear-gradient(180deg, #f4b24e 0%, #e89520 100%);
    border-color: rgba(0, 0, 0, 0.12);
    box-shadow: 0 1px 2px rgba(180, 100, 20, 0.25);
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
    color: #fff;
    background: linear-gradient(180deg, #f8c16a 0%, #d98518 100%);
    box-shadow: 0 2px 8px rgba(180, 100, 20, 0.35);
}

.btn-danger {
    color: #fff;
    background: linear-gradient(180deg, #e75a5b 0%, #c9302c 100%);
    border-color: rgba(0, 0, 0, 0.1);
    box-shadow: 0 1px 2px rgba(160, 40, 40, 0.3);
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
    color: #fff;
    background: linear-gradient(180deg, #f06e6f 0%, #b52a26 100%);
    box-shadow: 0 2px 8px rgba(160, 50, 50, 0.35);
}

.btn-dark {
    color: #fff;
    background: linear-gradient(180deg, #2a2a2a 0%, #171717 100%);
    border-color: rgba(0, 0, 0, 0.35);
    text-shadow: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.btn-dark:hover,
.btn-dark:focus,
.btn-dark:active,
body .btn-dark:focus {
    color: #fff;
    background: linear-gradient(180deg, #3a3a3a 0%, #242424 100%);
    border-color: rgba(0, 0, 0, 0.4);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}

/* Enlace */
.btn-link {
    font-weight: 500;
    box-shadow: none;
    border: none;
    background: transparent;
    color: var(--mae-link, #2b6ead);
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.btn-link:hover,
.btn-link:focus {
    color: var(--mae-link-hover, #1f5a8c);
    text-decoration: underline;
}

/* Tamaños */
.btn-lg,
.btn-group-lg > .btn {
    padding: 0.65rem 1.35rem;
    font-size: 1rem;
    line-height: 1.4;
    border-radius: var(--mae-btn-radius);
}

.btn-sm,
.btn-group-sm > .btn {
    padding: 0.32rem 0.7rem;
    font-size: 0.85rem;
    line-height: 1.45;
    border-radius: var(--mae-btn-radius-sm);
}

.btn-xs,
.btn-group-xs > .btn {
    padding: 0.15rem 0.5rem;
    font-size: 0.85rem;
    line-height: 1.4;
    border-radius: 4px;
}

.modal-footer .btn + .btn {
    margin-left: 0.5rem;
}

/* DataTables: filas con acciones */
table.dataTable .btn {
    font-size: 1rem;
    padding: 0.28rem 0.55rem;
    line-height: 1.4;
    border-radius: var(--mae-btn-radius-sm);
}

table.dataTable .btn + .btn {
    margin-left: 0.28rem;
}

.fc .btn {
    border-radius: var(--mae-btn-radius-sm);
}

.main .panel .btn-lg {
    font-weight: 600;
    border-radius: var(--mae-btn-radius);
}
