/* Correções responsivas carregadas independentemente do build do Vite. */
@media (max-width: 991.98px) {
    html,
    body {
        overflow-x: hidden;
    }

    body.cardiocare-menu-open {
        overflow: hidden !important;
    }

    .cardiocare-menu-backdrop {
        display: none;
        position: fixed;
        top: var(--cardiocare-mobile-header-height, 72px);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1050;
        width: 100%;
        height: auto;
        padding: 0;
        border: 0;
        background: rgba(7, 18, 31, .48);
        -webkit-tap-highlight-color: transparent;
    }

    .cardiocare-menu-backdrop.show {
        display: block;
    }

    .page {
        display: block;
        min-height: 100vh;
    }

    .navbar-vertical,
    .navbar-vertical.navbar-expand-lg {
        position: relative !important;
        z-index: 1060;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0 !important;
    }

    .navbar-vertical > .container-fluid {
        display: grid !important;
        grid-template-columns: 48px minmax(0, 1fr) 44px;
        grid-template-rows: 56px;
        align-items: center !important;
        align-content: start !important;
        justify-content: stretch !important;
        min-height: 72px !important;
        height: 72px !important;
        max-height: 72px !important;
        padding: .5rem .75rem !important;
        overflow: visible !important;
    }

    .navbar-vertical .navbar-toggler {
        display: inline-flex !important;
        grid-column: 1;
        grid-row: 1;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        margin: 0 !important;
        padding: .5rem !important;
        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: 8px;
    }

    .navbar-vertical .navbar-brand {
        grid-column: 2;
        grid-row: 1;
        display: block !important;
        align-self: center !important;
        width: auto !important;
        min-width: 0 !important;
        min-height: 44px;
        max-height: 56px;
        margin: 0 !important;
        padding: 0 .5rem !important;
        text-align: left !important;
    }

    .navbar-vertical.navbar-expand-lg .navbar-brand > a {
        width: 100% !important;
        justify-content: flex-start !important;
    }

    .navbar-vertical .navbar-brand .fs-2 {
        font-size: 1.3rem !important;
    }

    .navbar-vertical .cardiocare-clinic-brand {
        grid-column: 3;
        grid-row: 1;
        display: flex !important;
        width: 44px !important;
        max-width: 44px !important;
        min-height: 44px;
        height: 44px !important;
        max-height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        justify-content: flex-end !important;
    }

    .navbar-vertical .cardiocare-clinic-name {
        display: none;
    }

    #cardiocare-sidebar-menu {
        grid-column: 1 / -1;
        grid-row: 2;
        align-self: start !important;
        flex: none !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: calc(100dvh - var(--cardiocare-mobile-header-height, 72px)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        padding: .5rem 0 0;
        border-top: 1px solid rgba(255, 255, 255, .1);
    }

    #cardiocare-sidebar-menu:not(.show):not(.collapsing) {
        display: none !important;
    }

    #cardiocare-sidebar-menu.show {
        display: block !important;
        position: fixed !important;
        top: var(--cardiocare-mobile-header-height, 72px) !important;
        right: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        z-index: 1055 !important;
        width: min(88vw, 360px) !important;
        height: auto !important;
        max-height: none !important;
        padding: .75rem .75rem max(1rem, env(safe-area-inset-bottom)) !important;
        color: #f7f9fc !important;
        background-color: #1d2939 !important;
        background-image: none !important;
        opacity: 1 !important;
        isolation: isolate;
        box-shadow: 12px 0 32px rgba(0, 0, 0, .34);
    }

    .navbar-vertical .navbar-toggler.is-open .navbar-toggler-icon {
        background-image: none !important;
        position: relative;
        display: block !important;
        width: 28px !important;
        height: 28px !important;
        overflow: visible !important;
    }

    .navbar-vertical .navbar-toggler.is-open .navbar-toggler-icon::before,
    .navbar-vertical .navbar-toggler.is-open .navbar-toggler-icon::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 2px;
        width: 24px;
        height: 2px;
        border-radius: 2px;
        background: currentColor;
    }

    .navbar-vertical .navbar-toggler.is-open .navbar-toggler-icon::before { transform: rotate(45deg); }
    .navbar-vertical .navbar-toggler.is-open .navbar-toggler-icon::after { transform: rotate(-45deg); }

    #cardiocare-sidebar-menu.collapsing {
        display: block !important;
        overflow: hidden !important;
    }

    #cardiocare-sidebar-menu > .navbar-nav {
        display: block !important;
        flex: none !important;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        border-left: 0 !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        color: #f7f9fc !important;
        background: transparent !important;
    }

    #cardiocare-sidebar-menu .nav-item,
    #cardiocare-sidebar-menu .sidebar-menu-group {
        display: block !important;
        position: static !important;
        flex: none !important;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #cardiocare-sidebar-menu .nav-link,
    #cardiocare-sidebar-menu .sidebar-menu-summary {
        display: grid !important;
        grid-template-columns: 24px minmax(0, 1fr) 20px;
        column-gap: .75rem;
        align-items: center !important;
        justify-content: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        height: auto !important;
        margin: 0 !important;
        padding: .65rem .8rem !important;
        text-align: left !important;
        transform: none !important;
        border-radius: 9px !important;
        color: rgba(255, 255, 255, .82) !important;
        background: transparent !important;
        opacity: 1 !important;
    }

    #cardiocare-sidebar-menu .nav-link:hover,
    #cardiocare-sidebar-menu .nav-link.active,
    #cardiocare-sidebar-menu .sidebar-menu-summary:hover,
    #cardiocare-sidebar-menu .sidebar-menu-summary.active {
        color: #fff !important;
        background: rgba(255, 255, 255, .10) !important;
    }

    #cardiocare-sidebar-menu .nav-link-icon {
        display: inline-flex !important;
        visibility: visible !important;
        grid-column: 1;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 24px !important;
        width: 24px !important;
        min-width: 24px !important;
        height: 24px !important;
        margin: 0 !important;
        opacity: 1 !important;
    }

    #cardiocare-sidebar-menu .nav-link-title {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        grid-column: 2;
        min-width: 0 !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        opacity: 1 !important;
        overflow: visible !important;
        clip: auto !important;
        clip-path: none !important;
        transform: none !important;
        text-indent: 0 !important;
        font-size: .95rem !important;
        line-height: 1.35 !important;
        color: inherit !important;
        white-space: normal !important;
    }

    #cardiocare-sidebar-menu .sidebar-menu-arrow {
        display: inline-flex !important;
        visibility: visible !important;
        grid-column: 3;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 auto;
        width: 20px !important;
        margin: 0 !important;
        opacity: 1 !important;
    }

    #cardiocare-sidebar-menu .sidebar-submenu {
        display: block !important;
        flex: none !important;
        width: calc(100% - .75rem) !important;
        min-height: 0 !important;
        height: auto !important;
        margin: .25rem 0 .25rem .75rem !important;
        padding: 0 0 0 .75rem !important;
        border-left: 1px solid rgba(255, 255, 255, .14) !important;
    }

    #cardiocare-sidebar-menu details:not([open]) > .sidebar-submenu {
        display: none !important;
    }

    #cardiocare-sidebar-menu details[open] > .sidebar-submenu {
        display: block !important;
    }

    #cardiocare-sidebar-menu .cardiocare-sidebar-footer {
        position: static !important;
        display: block !important;
        flex: 0 0 auto;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin-top: .75rem !important;
        padding-bottom: max(.75rem, env(safe-area-inset-bottom));
        background: #1d2939 !important;
    }

    /*
     * Drawer móvel definitivo: ao abrir, todo o sidebar vira uma camada
     * sólida independente. Isso impede que estilos transparentes do tema
     * façam os itens aparecerem por cima do dashboard.
     */
    body.cardiocare-menu-open .cardiocare-menu-backdrop {
        top: 0 !important;
    }

    body.cardiocare-menu-open .navbar-vertical,
    body.cardiocare-menu-open .navbar-vertical.navbar-expand-lg {
        position: fixed !important;
        top: 0 !important;
        right: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        z-index: 1060 !important;
        width: min(88vw, 360px) !important;
        min-width: 0 !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
        color: #f7f9fc !important;
        background: #1d2939 !important;
        box-shadow: 14px 0 36px rgba(0, 0, 0, .38) !important;
    }

    body.cardiocare-menu-open .navbar-vertical > .container-fluid {
        display: grid !important;
        grid-template-columns: 48px minmax(0, 1fr) !important;
        grid-template-rows: 64px minmax(0, 1fr) !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 100dvh !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding: .4rem .65rem 0 !important;
        overflow: hidden !important;
        background: #1d2939 !important;
    }

    body.cardiocare-menu-open .navbar-vertical .navbar-toggler {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body.cardiocare-menu-open .navbar-vertical .navbar-brand {
        grid-column: 2 !important;
        grid-row: 1 !important;
        max-width: 100% !important;
        padding-left: .35rem !important;
    }

    body.cardiocare-menu-open .navbar-vertical .navbar-brand > a {
        justify-content: flex-start !important;
    }

    body.cardiocare-menu-open .navbar-vertical .navbar-brand .fs-2 {
        font-size: 1.15rem !important;
    }

    body.cardiocare-menu-open .navbar-vertical .navbar-brand .avatar {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
    }

    body.cardiocare-menu-open .navbar-vertical .cardiocare-clinic-brand {
        display: none !important;
    }

    body.cardiocare-menu-open #cardiocare-sidebar-menu.show {
        position: static !important;
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        align-self: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 100% !important;
        max-height: 100% !important;
        margin: 0 !important;
        padding: .45rem .15rem max(1rem, env(safe-area-inset-bottom)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        color: #f7f9fc !important;
        background: #1d2939 !important;
        box-shadow: none !important;
        opacity: 1 !important;
    }

    body.cardiocare-menu-open #cardiocare-sidebar-menu .navbar-nav,
    body.cardiocare-menu-open #cardiocare-sidebar-menu .nav-item,
    body.cardiocare-menu-open #cardiocare-sidebar-menu .sidebar-menu-group,
    body.cardiocare-menu-open #cardiocare-sidebar-menu .sidebar-submenu {
        background-color: transparent !important;
        opacity: 1 !important;
    }

    body.cardiocare-menu-open #cardiocare-sidebar-menu .nav-link,
    body.cardiocare-menu-open #cardiocare-sidebar-menu .sidebar-menu-summary,
    body.cardiocare-menu-open #cardiocare-sidebar-menu .nav-link-title,
    body.cardiocare-menu-open #cardiocare-sidebar-menu .nav-link-icon,
    body.cardiocare-menu-open #cardiocare-sidebar-menu .sidebar-menu-arrow {
        color: rgba(255, 255, 255, .88) !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    .page-wrapper {
        width: 100%;
        min-width: 0;
        margin-left: 0 !important;
    }
}

@media (max-width: 575.98px) {
    .page-body > .container-xl,
    .cardiocare-navbar .container-xl {
        padding-left: .75rem;
        padding-right: .75rem;
    }
    .page-title { font-size: 1.3rem; line-height: 1.25; }
    .page-header .row { gap: 1rem; }
    .page-header .col-auto { width: 100%; flex-wrap: wrap; }
    .page-header .col-auto .btn { width: 100%; }
    .card-body { padding: 1rem; }
    .card-header, .card-footer { padding-left: 1rem; padding-right: 1rem; }
    .table-responsive { -webkit-overflow-scrolling: touch; }
    .table-responsive > .table { min-width: 680px; }
    .btn-list, .card-actions { flex-wrap: wrap; }
    .modal-dialog { margin: .75rem; }
    input, select, textarea, .form-control, .form-select { font-size: 16px; }
}
