/* SaoExpress overrides on Material Dashboard */

/* MD forces .navbar-vertical .navbar-brand > img { max-height: 2rem } — override it */
.navbar-vertical .navbar-brand > .saoexpress-logo-sidenav,
.sidenav .navbar-brand .saoexpress-logo-sidenav {
    max-height: none !important;
    height: 140px !important;
    width: auto !important;
    max-width: 92% !important;
    object-fit: contain;
}

.sidenav .sidenav-header {
    min-height: auto;
    padding-bottom: 0.5rem;
}

.sidenav .navbar-brand {
    width: 100%;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
}

.saoexpress-logo-account {
    max-height: 90px;
    width: auto;
    max-width: 200px;
    object-fit: contain;
}

.saoexpress-logo-auth {
    max-height: 100px;
    width: auto;
    max-width: 220px;
    object-fit: contain;
}

.saoexpress-logo-auth-header {
    max-height: 70px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
}

.saoexpress-logo-navbar-mobile {
    height: 64px;
    width: auto;
    max-width: min(72vw, 260px);
    object-fit: contain;
}

@media (max-width: 1199.98px) {
    .navbar-main .navbar-brand.d-xl-none {
        display: flex !important;
        align-items: center;
        min-height: 64px;
    }

    /* One logo on mobile: navbar when closed, hide when sidebar open */
    body.g-sidenav-pinned .navbar-main .navbar-brand.d-xl-none {
        visibility: hidden;
    }

    .sidenav .sidenav-header {
        min-height: 2.5rem;
        padding-top: 0.25rem;
    }
}

.saoexpress-logo-login {
    max-height: 140px;
    width: auto;
    max-width: 320px;
    object-fit: contain;
}

.btn-saoexpress-primary {
    background-color: #1D496E !important;
    color: #fff !important;
    border: none;
}

.btn-saoexpress-primary:hover,
.btn-saoexpress-primary:focus {
    background-color: #163a58 !important;
    color: #fff !important;
}

.btn-saoexpress-warning {
    background-color: #fb8c00 !important;
    color: #fff !important;
    border: none;
}

.btn-saoexpress-warning:hover,
.btn-saoexpress-warning:focus {
    background-color: #e65100 !important;
    color: #fff !important;
}

/* Material Dashboard moving-tab: active label was white-on-white */
.nav.nav-pills .moving-tab {
    display: none !important;
}

.nav.nav-pills .nav-link.active {
    background: linear-gradient(195deg, #42424a, #191919) !important;
    color: #fff !important;
}

/* Material Dashboard primary (#e91e63) on inputs is too aggressive — use grey/blue */
.input-group.input-group-outline.is-filled:not(.is-focused) .form-label + .form-control {
    border-color: #a3a3a3 !important;
    border-top-color: transparent !important;
    box-shadow: inset 1px 0 #a3a3a3, inset -1px 0 #a3a3a3, inset 0 -1px #a3a3a3;
}

.input-group.input-group-outline.is-filled:not(.is-focused) .form-label {
    color: #737373;
    width: 100%;
    height: 100%;
    font-size: 0.6875rem !important;
    display: flex;
    line-height: 1.25 !important;
}

.input-group.input-group-outline.is-filled:not(.is-focused) .form-label:before,
.input-group.input-group-outline.is-filled:not(.is-focused) .form-label:after {
    opacity: 1;
    border-top-color: #a3a3a3;
    box-shadow: inset 0 1px #a3a3a3;
}

.input-group.input-group-outline.is-focused .form-label + .form-control,
.input-group.input-group-outline.is-filled.is-focused .form-label + .form-control {
    border-color: #1a73e8 !important;
    border-top-color: transparent !important;
    box-shadow: inset 1px 0 #1a73e8, inset -1px 0 #1a73e8, inset 0 -1px #1a73e8;
}

.input-group.input-group-outline.is-focused .form-label,
.input-group.input-group-outline.is-filled.is-focused .form-label {
    color: #1a73e8;
}

.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.is-focused .form-label:before,
.input-group.input-group-outline.is-filled.is-focused .form-label:after {
    opacity: 1;
    border-top-color: #1a73e8;
    box-shadow: inset 0 1px #1a73e8;
}

/* input-group-dynamic — grey when filled, blue (#1D496E) when focused */
.input-group.input-group-dynamic.is-filled:not(.is-focused) .form-control,
.input-group.input-group-dynamic.is-filled:not(.is-focused) .form-control:focus {
    background-image: linear-gradient(0deg, #a3a3a3 2px, rgba(0, 0, 0, 0) 0),
        linear-gradient(0deg, #d2d2d2 1px, hsla(0, 0%, 82%, 0) 0) !important;
    background-size: 100% 100%, 100% 100% !important;
}

.input-group.input-group-dynamic.is-filled:not(.is-focused) .form-label,
.input-group.input-group-dynamic.is-filled:not(.is-focused) label {
    color: #737373 !important;
}

.input-group.input-group-dynamic.is-focused .form-control,
.input-group.input-group-dynamic.is-focused .form-control:focus,
.input-group.input-group-dynamic.is-filled.is-focused .form-control,
.input-group.input-group-dynamic.is-filled.is-focused .form-control:focus {
    background-image: linear-gradient(0deg, #1D496E 2px, rgba(0, 0, 0, 0) 0),
        linear-gradient(0deg, #d2d2d2 1px, hsla(0, 0%, 82%, 0) 0) !important;
    background-size: 100% 100%, 100% 100% !important;
}

.input-group.input-group-dynamic.is-focused .form-label,
.input-group.input-group-dynamic.is-focused label,
.input-group.input-group-dynamic.is-filled.is-focused .form-label,
.input-group.input-group-dynamic.is-filled.is-focused label {
    color: #1D496E !important;
}

/* input-group-static — same grey/blue underline as dynamic */
.input-group.input-group-static.is-filled:not(.is-focused) .form-control,
.input-group.input-group-static.is-filled:not(.is-focused) .form-control:focus {
    background-image: linear-gradient(0deg, #a3a3a3 2px, rgba(0, 0, 0, 0) 0),
        linear-gradient(0deg, #d2d2d2 1px, hsla(0, 0%, 82%, 0) 0) !important;
    background-size: 100% 100%, 100% 100% !important;
}

.input-group.input-group-static.is-filled:not(.is-focused) .form-label,
.input-group.input-group-static.is-filled:not(.is-focused) label {
    color: #737373 !important;
}

.input-group.input-group-static.is-focused .form-control,
.input-group.input-group-static.is-focused .form-control:focus,
.input-group.input-group-static.is-filled.is-focused .form-control,
.input-group.input-group-static.is-filled.is-focused .form-control:focus {
    background-image: linear-gradient(0deg, #1D496E 2px, rgba(0, 0, 0, 0) 0),
        linear-gradient(0deg, #d2d2d2 1px, hsla(0, 0%, 82%, 0) 0) !important;
    background-size: 100% 100%, 100% 100% !important;
}

.input-group.input-group-static.is-focused .form-label,
.input-group.input-group-static.is-focused label,
.input-group.input-group-static.is-filled.is-focused .form-label,
.input-group.input-group-static.is-filled.is-focused label {
    color: #1D496E !important;
}

/* Mobile sidenav: MD theme removes bg-white on close and does not restore it on reopen */
@media (max-width: 1199.98px) {
    body.g-sidenav-pinned #sidenav-main {
        background-color: #fff !important;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
        z-index: 1040;
    }

    body.g-sidenav-pinned .main-content::before {
        content: "";
        position: fixed;
        inset: 0;
        background-color: rgba(0, 0, 0, 0.45);
        z-index: 1030;
        pointer-events: none;
    }

    body.g-sidenav-pinned .navbar-main {
        z-index: 1050 !important;
    }
}

/* Responsive stack tables — card layout on small screens */
@media screen and (max-width: 600px) {
    .table.saoexpress-responsive-table {
        border: 0;
        table-layout: auto;
    }

    .table.saoexpress-responsive-table thead {
        border: none;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
    }

    .table.saoexpress-responsive-table tbody tr {
        background-color: #fff;
        border: 1px solid #ddd;
        border-radius: 0.5rem;
        display: block;
        margin-bottom: 0.75rem;
        padding: 0.35rem;
    }

    .table.saoexpress-responsive-table tbody td {
        border-bottom: 1px solid #eee;
        display: block;
        font-size: 0.875rem;
        text-align: right;
        padding: 0.625rem;
    }

    .table.saoexpress-responsive-table tbody td::before {
        content: attr(data-label);
        float: left;
        font-weight: 700;
        font-size: 0.7rem;
        text-transform: uppercase;
        color: #737373;
        letter-spacing: 0.05em;
    }

    .table.saoexpress-responsive-table tbody td::after {
        content: "";
        display: table;
        clear: both;
    }

    .table.saoexpress-responsive-table tbody td:last-child {
        border-bottom: 0;
    }

    .table.saoexpress-responsive-table tbody td.ps-3,
    .table.saoexpress-responsive-table tbody td .ps-3 {
        padding-left: 0 !important;
    }

    .table.saoexpress-responsive-table tr.saoexpress-table-empty td {
        text-align: center;
    }

    .table.saoexpress-responsive-table tr.saoexpress-table-empty td::before {
        content: none;
        display: none;
    }
}
