/*
 * Contrato canônico de botões do tema Comunica.
 *
 * As variantes preenchidas e outline compartilham a mesma apresentação
 * tonal: fundo suave, borda visível e texto na cor semântica da ação.
 * O arquivo é carregado depois dos estilos locais para manter o resultado
 * consistente no Portal, na área do cliente e nas telas de formulário/popup.
 */

:is(
    .btn,
    .liotto-btn-primary,
    .btn-primary,
    .btn-outline-primary,
    .btn-secondary,
    .btn-outline-secondary,
    .btn-default,
    .btn-outline-secondary-modal,
    .btn-success,
    .btn-outline-success,
    .btn-danger,
    .btn-outline-danger,
    .btn-warning,
    .btn-outline-warning,
    .btn-info,
    .btn-outline-info,
    .btn-light,
    .btn-outline-light,
    .btn-dark,
    .btn-outline-dark,
    .btn-pink
) {
    --comunica-button-bg: #f8fafc;
    --comunica-button-border: #cbd5e1;
    --comunica-button-text: #475569;
    --comunica-button-hover-bg: #f1f5f9;
    --comunica-button-hover-border: #94a3b8;
    --comunica-button-hover-text: #334155;
    --comunica-button-focus: rgba(100, 116, 139, 0.18);

    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 12px;
    border-width: 1px;
    border-style: solid;
    border-color: var(--comunica-button-border) !important;
    border-radius: 8px;
    background: var(--comunica-button-bg) !important;
    box-shadow: none !important;
    color: var(--comunica-button-text) !important;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none !important;
    white-space: nowrap;
}

.btn-primary,
.btn-outline-primary,
.liotto-btn-primary {
    --comunica-button-bg: #eff6ff;
    --comunica-button-border: #93c5fd;
    --comunica-button-text: #1d4ed8;
    --comunica-button-hover-bg: #dbeafe;
    --comunica-button-hover-border: #60a5fa;
    --comunica-button-hover-text: #1e40af;
    --comunica-button-focus: rgba(37, 99, 235, 0.18);
}

.btn-secondary,
.btn-outline-secondary,
.btn-default,
.btn-outline-secondary-modal {
    --comunica-button-bg: #f8fafc;
    --comunica-button-border: #cbd5e1;
    --comunica-button-text: #475569;
    --comunica-button-hover-bg: #f1f5f9;
    --comunica-button-hover-border: #94a3b8;
    --comunica-button-hover-text: #334155;
    --comunica-button-focus: rgba(100, 116, 139, 0.18);
}

.btn-success,
.btn-outline-success {
    --comunica-button-bg: #ecfdf5;
    --comunica-button-border: #6ee7b7;
    --comunica-button-text: #047857;
    --comunica-button-hover-bg: #d1fae5;
    --comunica-button-hover-border: #34d399;
    --comunica-button-hover-text: #065f46;
    --comunica-button-focus: rgba(16, 185, 129, 0.18);
}

.btn-danger,
.btn-outline-danger {
    --comunica-button-bg: #fef2f2;
    --comunica-button-border: #fca5a5;
    --comunica-button-text: #b91c1c;
    --comunica-button-hover-bg: #fee2e2;
    --comunica-button-hover-border: #f87171;
    --comunica-button-hover-text: #991b1b;
    --comunica-button-focus: rgba(239, 68, 68, 0.18);
}

.btn-warning,
.btn-outline-warning {
    --comunica-button-bg: #fffbeb;
    --comunica-button-border: #fcd34d;
    --comunica-button-text: #92400e;
    --comunica-button-hover-bg: #fef3c7;
    --comunica-button-hover-border: #fbbf24;
    --comunica-button-hover-text: #78350f;
    --comunica-button-focus: rgba(245, 158, 11, 0.2);
}

.btn-info,
.btn-outline-info {
    --comunica-button-bg: #f0f9ff;
    --comunica-button-border: #7dd3fc;
    --comunica-button-text: #0369a1;
    --comunica-button-hover-bg: #e0f2fe;
    --comunica-button-hover-border: #38bdf8;
    --comunica-button-hover-text: #075985;
    --comunica-button-focus: rgba(14, 165, 233, 0.18);
}

.btn-light,
.btn-outline-light {
    --comunica-button-bg: #ffffff;
    --comunica-button-border: #e2e8f0;
    --comunica-button-text: #475569;
    --comunica-button-hover-bg: #f8fafc;
    --comunica-button-hover-border: #cbd5e1;
    --comunica-button-hover-text: #334155;
    --comunica-button-focus: rgba(100, 116, 139, 0.14);
}

.btn-dark,
.btn-outline-dark {
    --comunica-button-bg: #f1f5f9;
    --comunica-button-border: #94a3b8;
    --comunica-button-text: #1e293b;
    --comunica-button-hover-bg: #e2e8f0;
    --comunica-button-hover-border: #64748b;
    --comunica-button-hover-text: #0f172a;
    --comunica-button-focus: rgba(51, 65, 85, 0.18);
}

.btn-pink {
    --comunica-button-bg: #fdf2f8;
    --comunica-button-border: #f9a8d4;
    --comunica-button-text: #be185d;
    --comunica-button-hover-bg: #fce7f3;
    --comunica-button-hover-border: #f472b6;
    --comunica-button-hover-text: #9d174d;
    --comunica-button-focus: rgba(236, 72, 153, 0.18);
}

:is(
    .btn,
    .liotto-btn-primary,
    .btn-primary,
    .btn-outline-primary,
    .btn-secondary,
    .btn-outline-secondary,
    .btn-default,
    .btn-outline-secondary-modal,
    .btn-success,
    .btn-outline-success,
    .btn-danger,
    .btn-outline-danger,
    .btn-warning,
    .btn-outline-warning,
    .btn-info,
    .btn-outline-info,
    .btn-light,
    .btn-outline-light,
    .btn-dark,
    .btn-outline-dark,
    .btn-pink
):not(:disabled):not(.disabled):hover,
:is(
    .btn,
    .liotto-btn-primary,
    .btn-primary,
    .btn-outline-primary,
    .btn-secondary,
    .btn-outline-secondary,
    .btn-default,
    .btn-outline-secondary-modal,
    .btn-success,
    .btn-outline-success,
    .btn-danger,
    .btn-outline-danger,
    .btn-warning,
    .btn-outline-warning,
    .btn-info,
    .btn-outline-info,
    .btn-light,
    .btn-outline-light,
    .btn-dark,
    .btn-outline-dark,
    .btn-pink
):not(:disabled):not(.disabled):active,
:is(
    .btn,
    .liotto-btn-primary,
    .btn-primary,
    .btn-outline-primary,
    .btn-secondary,
    .btn-outline-secondary,
    .btn-default,
    .btn-outline-secondary-modal,
    .btn-success,
    .btn-outline-success,
    .btn-danger,
    .btn-outline-danger,
    .btn-warning,
    .btn-outline-warning,
    .btn-info,
    .btn-outline-info,
    .btn-light,
    .btn-outline-light,
    .btn-dark,
    .btn-outline-dark,
    .btn-pink
):not(:disabled):not(.disabled).active,
.show > .btn.dropdown-toggle {
    border-color: var(--comunica-button-hover-border) !important;
    background: var(--comunica-button-hover-bg) !important;
    color: var(--comunica-button-hover-text) !important;
}

:is(
    .btn,
    .liotto-btn-primary,
    .btn-primary,
    .btn-outline-primary,
    .btn-secondary,
    .btn-outline-secondary,
    .btn-default,
    .btn-outline-secondary-modal,
    .btn-success,
    .btn-outline-success,
    .btn-danger,
    .btn-outline-danger,
    .btn-warning,
    .btn-outline-warning,
    .btn-info,
    .btn-outline-info,
    .btn-light,
    .btn-outline-light,
    .btn-dark,
    .btn-outline-dark,
    .btn-pink
):focus,
.btn.focus {
    border-color: var(--comunica-button-hover-border) !important;
    background: var(--comunica-button-hover-bg) !important;
    box-shadow: 0 0 0 3px var(--comunica-button-focus) !important;
    color: var(--comunica-button-hover-text) !important;
    outline: 0;
}

.btn i,
.btn svg,
.liotto-btn-primary i,
.liotto-btn-primary svg {
    flex: 0 0 auto;
    margin: 0;
}

.btn-sm,
.btn-group-sm > .btn {
    min-height: 32px;
    padding: 5px 10px;
    font-size: 0.75rem;
}

.btn-lg,
.btn-group-lg > .btn {
    min-height: 44px;
    padding: 10px 16px;
    font-size: 0.9375rem;
}

.btn-block {
    width: 100%;
}

.btn.disabled,
.btn:disabled,
.liotto-btn-primary.disabled,
.liotto-btn-primary:disabled {
    pointer-events: none;
    filter: saturate(0.55);
    opacity: 0.52;
}

/* Botões-link continuam apropriados para ações inline e compactas. */
.btn-link {
    min-height: auto;
    padding: 0;
    border-color: transparent !important;
    background: transparent !important;
    color: #2563eb !important;
    box-shadow: none !important;
}

.btn-link:hover,
.btn-link:focus {
    border-color: transparent !important;
    background: transparent !important;
    color: #1d4ed8 !important;
    box-shadow: none !important;
    text-decoration: underline !important;
}
