/**
 * Modais Guepardo — design system unificado
 * JS depende de: .modal, .modal-header, .modal-title, .modal-body, .modal-footer
 */

/* ── Shell ── */
.modal .modal-content {
    border: none;
    border-radius: var(--gp-card-radius, 14px);
    box-shadow: 0 20px 50px rgba(0, 40, 80, 0.2);
    overflow: hidden;
}

.modal .modal-dialog {
    margin: 1rem auto;
}

/* Header padrão (azul Guepardo) — modais de acção */
.modal .modal-header:not(.border-0):not(.bg-dark):not(.gp-modal-header--plain):not(.gp-modal-header--warning) {
    background: linear-gradient(135deg, var(--primary-blue) 0%, var(--primary-blue-dark, #005a8a) 100%);
    padding: 1.1rem 1.35rem;
    border-bottom: none;
}

.modal .modal-header:not(.border-0):not(.bg-dark):not(.gp-modal-header--plain):not(.gp-modal-header--warning) .modal-title,
.modal .modal-header:not(.border-0):not(.bg-dark):not(.gp-modal-header--plain):not(.gp-modal-header--warning) h2 {
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.modal .modal-header:not(.border-0):not(.bg-dark) .btn-close-white,
.modal .modal-header:not(.border-0):not(.bg-dark) .btn-close {
    filter: brightness(0) invert(1);
    opacity: 0.85;
}

.modal .modal-header:not(.border-0):not(.bg-dark) .btn-close:hover {
    opacity: 1;
}

/* Alias explícito usado em contratos / empresa */
.modal-guepardo-header {
    background: linear-gradient(135deg, var(--primary-blue) 0%, var(--primary-blue-dark, #005a8a) 100%) !important;
    color: #fff !important;
    border-bottom: none !important;
    padding: 1.1rem 1.35rem !important;
}

.modal-guepardo-header .modal-title,
.modal-guepardo-header h2 {
    color: #fff !important;
    font-weight: 700;
}

/* Header escuro (coordenador carrinhas, etc.) */
.modal .modal-header.bg-dark {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%) !important;
    border-bottom: none;
}

/* Header incidência / alerta */
.gp-modal-header--warning,
.modal .modal-header.gp-modal-header--warning {
    background: linear-gradient(135deg, #ea580c 0%, #c2410c 100%) !important;
    color: #fff;
    border-bottom: none;
}

/* Confirm / sub-modais — header discreto */
.modal .modal-header.border-0,
.gp-modal-confirm .modal-header {
    background: transparent;
    color: var(--text-dark);
    padding: 1.25rem 1.25rem 0;
}

.modal .modal-header.border-0 .modal-title,
.gp-modal-confirm .modal-title {
    color: var(--text-dark);
    font-weight: 700;
}

/* ── Corpo ── */
.modal .modal-body {
    padding: 1.25rem 1.35rem;
    color: var(--text-dark);
}

.modal .modal-body .form-floating > .form-control,
.modal .modal-body .form-floating > .form-select {
    border-color: var(--borda);
    border-radius: 10px;
}

.modal .modal-body .form-floating > .form-control:focus,
.modal .modal-body .form-floating > .form-select:focus {
    border-color: var(--secondary-blue);
    box-shadow: 0 0 0 3px rgba(41, 121, 255, 0.15);
}

.modal .modal-body .form-control.border-danger,
.modal .modal-body .form-select.border-danger {
    box-shadow: 0 0 0 3px rgba(207, 19, 34, 0.12);
}

/* ── Footer ── */
.modal .modal-footer {
    padding: 0.85rem 1.35rem 1.15rem;
    border-top: 1px solid var(--borda);
    background: var(--gp-surface-muted, #f8fafc);
    gap: 0.5rem;
}

.modal .modal-footer.border-0,
.modal .modal-footer.bg-light {
    background: var(--gp-surface-muted, #f8fafc);
}

.modal .modal-footer .btn {
    border-radius: 10px;
    font-weight: 600;
    padding: 0.45rem 1.15rem;
}

.modal .modal-footer #btnSalvarActionModal,
.modal .modal-footer #btnSubModalValida {
    min-width: 100px;
}

/* Botões de acção primária nos modais */
.modal .modal-footer .btn-success {
    background: linear-gradient(135deg, #059669 0%, #047857 100%);
    border: none;
    box-shadow: 0 2px 8px rgba(5, 150, 105, 0.35);
}

.modal .modal-footer .btn-success:hover {
    filter: brightness(1.05);
    box-shadow: 0 4px 12px rgba(5, 150, 105, 0.45);
}

.modal .modal-footer .btn-primary {
    background: linear-gradient(135deg, var(--primary-blue) 0%, var(--primary-blue-dark, #005a8a) 100%);
    border: none;
}

/* ── Backdrop ── */
.modal-backdrop.show {
    opacity: 0.45;
    backdrop-filter: blur(2px);
}

/* ── Container AJAX (global.js inject) ── */
#modal-container .modal,
#subModal-container .modal {
    z-index: 1055;
}

#subModal-container .modal {
    z-index: 1065;
}

/* ── Overlay (alert / confirm / prompt) — acima de modais Bootstrap ── */
#overlayModal-container {
    position: relative;
    z-index: 1300;
}

#overlayModal-container .modal,
.gp-modal-overlay {
    z-index: 1300 !important;
}

.modal-backdrop.gp-overlay-backdrop {
    z-index: 1295 !important;
}

/* ── Modal exportar / calendário embutido ── */
.modal .calendar-card {
    border: 1px solid var(--borda) !important;
    border-radius: var(--gp-card-radius, 14px);
    background: var(--card-bg);
}

@media (max-width: 576px) {
    .modal .modal-body {
        padding: 1rem;
    }
    .modal .modal-footer {
        flex-direction: column;
    }
    .modal .modal-footer .btn {
        width: 100%;
    }
}
