/*!
 * theme-blue.css
 * Overrides para Material Dashboard / Bootstrap 5
 * Cor principal: Azul
 * Carregar este ficheiro DEPOIS do material-dashboard.css
 */

/* =========================
   Light theme (default)
   ========================= */
:root,
[data-bs-theme="light"] {
    /* Cores principais */
    --bs-primary: #0092c4 !important;
    --bs-primary-rgb: 0, 146, 196;

    /* Links e código */
    --bs-link-color: #0092c4;
    --bs-link-hover-color: #0cb1e0;
    --bs-code-color: #0cb1e0;

    /* Focus ring */
    --bs-focus-ring-color: rgba(0, 146, 196, 0.25);

    /* Variáveis auxiliares do tema */
    --theme-primary-1: #0cb1e0;
    --theme-primary-2: #0092c4;
    --theme-primary-active: #007aa3;
}

/* =========================
   Dark theme (opcional)
   ========================= */
[data-bs-theme="dark"] {
    --bs-primary: #0cb1e0;
    --bs-primary-rgb: 12, 177, 224;

    --bs-link-color: #0cb1e0;
    --bs-link-hover-color: #0092c4;
    --bs-code-color: #0cb1e0;

    --bs-focus-ring-color: rgba(12, 177, 224, 0.25);

    --theme-primary-1: #0cb1e0;
    --theme-primary-2: #0092c4;
    --theme-primary-active: #007aa3;
}

/* =========================
   Componentes hardcoded a rosa
   ========================= */

/* Range slider */
.form-range::-webkit-slider-thumb {
    background-color: var(--bs-primary);
}

.form-range::-moz-range-thumb {
    background-color: var(--bs-primary);
}

/* noUiSlider */
.noUi-handle {
    border-color: var(--bs-primary);
}

/* Checkbox e Radio (gradient) */
.form-check-input:checked[type="checkbox"],
.form-check-input:checked[type="radio"] {
    --bs-form-check-bg-image: linear-gradient(
        195deg,
        var(--theme-primary-1) 0%,
        var(--theme-primary-2) 100%
    );
}

/* Alert primary */
.alert-primary {
    background-image: linear-gradient(
        195deg,
        var(--theme-primary-1) 0%,
        var(--theme-primary-2) 100%
    );
}

.text-primary {
    color: var(--bs-primary) !important;
}

    /* Texto com gradiente */
.text-gradient.text-primary {
    background-image: linear-gradient(
        195deg,
        var(--theme-primary-1),
        var(--theme-primary-2)
    );
}

/* DataTables paginação ativa */
.dataTable-wrapper
.dataTable-bottom
.dataTable-pagination
.dataTable-pagination-list
.active a,
.dataTable-wrapper
.dataTable-bottom
.dataTable-pagination
.dataTable-pagination-list
.active a:hover {
    background-image: linear-gradient(
        195deg,
        var(--theme-primary-1) 0%,
        var(--theme-primary-2) 100%
    );
}

/* Rotating cards overlay */
.rotating-card-container .card .back:after,
.rotating-card-container .card .front:after {
    background-image: linear-gradient(
        195deg,
        var(--theme-primary-1),
        var(--theme-primary-2)
    );
}

/* Link primary hover (forçar azul) */
.link-primary:hover,
.link-primary:focus {
    color: rgba(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
    text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
}

/* Botão primary */
.btn-primary {
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);

    --bs-btn-hover-bg: var(--theme-primary-1);
    --bs-btn-hover-border-color: var(--theme-primary-1);

    --bs-btn-active-bg: var(--theme-primary-active);
    --bs-btn-active-border-color: var(--theme-primary-active);

    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

.bg-gradient-primary{
    background-image: linear-gradient(
        195deg,
        var(--theme-primary-1) 0%,
        var(--theme-primary-2) 100%
    ) !important;
}

/* =========================
   Primary button shadows (Material Dashboard style)
   ========================= */

/* sombra normal */
.btn-primary,
.btn.bg-gradient-primary {
    box-shadow:
        0 2px 2px 0 rgba(var(--bs-primary-rgb), 0.10),
        0 3px 1px -2px rgba(var(--bs-primary-rgb), 0.18),
        0 1px 5px 0 rgba(var(--bs-primary-rgb), 0.15);
}

/* hover: sombra mais forte */
.btn-primary:hover,
.btn.bg-gradient-primary:hover {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    box-shadow:
        0 8px 14px -8px rgba(var(--bs-primary-rgb), 0.30),
        0 3px 18px 0 rgba(var(--bs-primary-rgb), 0.10),
        0 7px 8px -4px rgba(var(--bs-primary-rgb), 0.18);
}

/* outline primary (no teu snippet vinha com seletor errado: ".btn-primary .btn...") */
.btn.bg-outline-primary {
    border: 1px solid var(--bs-primary);
}

/* active / pressed */
.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle,
.btn.bg-gradient-primary:not(:disabled):not(.disabled).active,
.btn.bg-gradient-primary:not(:disabled):not(.disabled):active,
.show > .btn.bg-gradient-primary.dropdown-toggle {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.btn:disabled, .btn.disabled, fieldset:disabled .btn{
    background-color: var(--bs-primary);
}

/* =========================
   Material Dashboard – Input outline (focus / filled)
   ========================= */

/* Border do input */
.input-group.input-group-outline.is-focused .form-label + .form-control,
.input-group.input-group-outline.is-filled .form-label + .form-control {
    border-color: var(--bs-primary) !important;
    border-top-color: transparent !important;
    box-shadow:
        inset 1px 0 var(--bs-primary),
        inset -1px 0 var(--bs-primary),
        inset 0 -1px var(--bs-primary);
}

/* Label ativa */
.input-group.input-group-outline.is-focused .form-label,
.input-group.input-group-outline.is-filled .form-label {
    width: 100%;
    height: 100%;
    font-size: 0.6875rem !important;
    color: var(--bs-primary);
    display: flex;
    line-height: 1.25 !important;
}

/* Tornar visíveis os pseudo-elementos */
.input-group.input-group-outline.is-focused .form-label:before,
.input-group.input-group-outline.is-focused .form-label:after,
.input-group.input-group-outline.is-filled .form-label:before,
.input-group.input-group-outline.is-filled .form-label:after {
    opacity: 1;
}

/* Linha superior da label */
.input-group.input-group-outline.is-focused .form-label:before,
.input-group.input-group-outline.is-focused .form-label:after,
.input-group.input-group-outline.is-filled .form-label:before,
.input-group.input-group-outline.is-filled .form-label:after {
    border-top-color: var(--bs-primary);
    box-shadow: inset 0 1px var(--bs-primary);
}

/* =========================
   Material Dashboard – Input dynamic / static underline
   ========================= */

.input-group.input-group-dynamic .form-control,
.input-group.input-group-dynamic .form-control:focus,
.input-group.input-group-static .form-control,
.input-group.input-group-static .form-control:focus {
    background-image:
        linear-gradient(
            0deg,
            var(--bs-primary) 2px,
            rgba(var(--bs-primary-rgb), 0) 0
        ),
        linear-gradient(
            0deg,
            #d2d2d2 1px,
            hsla(0, 0%, 82%, 0) 0
        );
    border-radius: 0 !important;
}

.input-group.input-group-dynamic.is-focused label,
.input-group.input-group-static.is-focused label {
    color: var(--bs-primary);
}

.form-check:not(.form-switch) .form-check-input[type=checkbox]:checked{
    background-color: var(--bs-primary);
    background: var(--bs-primary);
    border-color: var(--bs-primary);
}

.form-check:not(.form-switch) .form-check-input[type=checkbox]:checked, .form-check:not(.form-switch) .form-check-input[type=radio]:checked{
    border-color: var(--bs-primary);
}
