/* ============================================
   ESTANDARIZACIÓN DE BOTONES PREMIUM - APPO
   Foco: Institucionalidad, Sombras y Geometría
   ============================================ */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.7rem 1.6rem;
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 10px !important; /* Forzado a 10px */
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    cursor: pointer;
    border: 1.5px solid transparent;
    box-shadow: 0 2px 4px rgba(0,0,0,0.04);
    letter-spacing: -0.01em;
    user-select: none;
}

/* --- PRIMARIO (AZUL LOGO - INSTITUCIONAL) --- */
.btn-primary, .btn-accent, .btn-success, .btn-warning {
    background-color: #133A7F !important; /* Azul APPO */
    color: #FFFFFF !important;
    border-color: #133A7F !important;
    box-shadow: 0 4px 8px -1px rgba(19, 58, 127, 0.15);
}

.btn-primary:hover, .btn-accent:hover, .btn-success:hover, .btn-warning:hover {
    background-color: #0A1F45 !important; /* Azul Oscuro */
    border-color: #0A1F45 !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(19, 58, 127, 0.12);
}

/* --- SECUNDARIO (GRISÁCEO BLANCUZCO - FRESCO) --- */
.btn-secondary, .btn-outline-secondary, .btn-outline-dark, .btn-light {
    background-color: #F8FAFC !important;
    color: #334155 !important;
    border: 1px solid #E2E8F0 !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.04);
}

.btn-secondary:hover, .btn-outline-secondary:hover, .btn-outline-dark:hover, .btn-light:hover {
    background-color: #FFFFFF !important;
    border-color: #133A7F !important;
    color: #133A7F !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0,0,0,0.05);
}

/* --- OUTLINE (ELEGANTE) --- */
.btn-outline-primary {
    background-color: transparent !important;
    border-color: #133A7F !important;
    color: #133A7F !important;
}

.btn-outline-primary:hover {
    background-color: #EBF1FF !important;
    transform: translateY(-2px);
}

/* TAMAÑOS REFINADOS */
.btn-lg {
    padding: 0.9rem 2.2rem;
    font-size: 1.05rem;
}

.btn-sm {
    padding: 0.4rem 1.1rem;
    font-size: 0.8rem;
}

/* ICONOS */
.btn i, .btn .bi {
    font-size: 1.15em;
    line-height: 1;
}

/* EVITAR EL OVALADO EN MÓVIL */
@media (max-width: 768px) {
    .btn {
        width: auto;
        border-radius: 10px !important;
    }
}
