/* ============================================================
   RESPONSIVIDADE
   Breakpoints: Desktop amplo (>=1440), Notebook (1200-1439),
   Tablet (768-1199), Mobile (<=767).
   ============================================================ */

/* ---------- Notebook ---------- */
@media (min-width: 1200px) and (max-width: 1439px) {
    .admin-content {
        padding: var(--space-8);
    }
}

/* ---------- Tablet ---------- */
@media (min-width: 768px) and (max-width: 1199px) {
    .admin-content {
        padding: var(--space-6);
    }

    .page-title {
        font-size: var(--font-size-2xl);
    }
}

/* ---------- Celular e tablet: sidebar como drawer ---------- */
@media (max-width: 1199px) {
    .admin-sidebar {
        width: min(var(--sidebar-width), 82vw);
        transform: translateX(-100%);
        transition: transform var(--transition-base);
        z-index: var(--z-sidebar-mobile);
        box-shadow: var(--shadow-xl);
    }

    .admin-sidebar.is-collapsed {
        width: min(var(--sidebar-width), 82vw);
    }

    .admin-sidebar.is-open {
        transform: translateX(0);
    }

    /* No mobile o rail de ícones recolhido não se aplica: sempre mostra completo quando aberto */
    .admin-sidebar.is-collapsed .sidebar-nav-section {
        display: block;
    }

    .admin-sidebar.is-collapsed .sidebar-nav-link span,
    .admin-sidebar.is-collapsed .sidebar-group-label {
        display: inline;
    }

    .admin-sidebar.is-collapsed .sidebar-group-chevron {
        display: inline-block;
    }

    .admin-sidebar.is-collapsed .sidebar-brand-text {
        display: block;
        opacity: 1;
        width: auto;
    }

    .admin-sidebar.is-collapsed .sidebar-brand,
    html[data-sidebar-pref="collapsed"] .sidebar-brand {
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
        padding: var(--space-6) var(--space-5);
        gap: var(--space-4);
    }

    .admin-sidebar.is-collapsed .sidebar-nav-link,
    .admin-sidebar.is-collapsed .sidebar-group-toggle {
        justify-content: flex-start;
    }

    .sidebar-collapse-toggle {
        display: none;
    }

    .admin-main {
        margin-left: 0 !important;
    }

    .admin-topbar {
        padding: var(--space-3) var(--space-4);
    }

    .admin-content {
        padding: var(--space-4);
    }

    .page-header__row {
        margin-bottom: var(--space-2);
    }

    .page-title {
        font-size: var(--font-size-xl);
    }

    .card-body {
        padding: var(--space-4);
    }

    .card-header {
        padding: var(--space-4);
    }

    .table-action-buttons {
        justify-content: flex-start;
    }

    .stat-card {
        padding: var(--space-4);
    }

    /* Cards em grade: uma coluna */
    .row.g-4 > [class*="col-"] {
        margin-bottom: var(--space-4);
    }
}

/* ---------- Extra pequeno ---------- */
@media (max-width: 575px) {
    .admin-topbar {
        gap: var(--space-2);
    }

    .page-title {
        font-size: var(--font-size-lg);
    }

    .btn {
        padding: var(--space-3) var(--space-4);
    }

    .btn-sm {
        padding: var(--space-2) var(--space-3);
    }
}

/* ---------- Desktop amplo: limita a largura de leitura de conteúdo denso ---------- */
@media (min-width: 1440px) {
    .admin-content {
        padding: var(--space-10) 3rem;
    }
}

/* Shared overrides load after module styles. */
.admin-wrapper,
.admin-main,
.admin-sidebar {
    height: 100dvh;
}
.admin-wrapper { min-height: 100dvh; }
.admin-main { scroll-padding-block: 110px 32px; }
.sidebar-drawer-close,
.sidebar-toggle-mobile { display: none; }
.admin-content :is(h1,h2,h3,p,dd,.badge,.btn) { overflow-wrap: anywhere; }

@media (max-width: 1199px) {
    .sidebar-toggle-mobile { display: inline-flex; flex-shrink: 0; }
    .sidebar-drawer-close {
        display: inline-flex; align-items: center; justify-content: center;
        position: absolute; top: 12px; right: 12px; width: 44px; height: 44px;
        border: 1px solid var(--sidebar-border); border-radius: var(--radius-md);
        background: var(--sidebar-background); color: var(--sidebar-text);
    }
    .admin-sidebar .sidebar-brand { padding-right: 62px; }
    .admin-sidebar:not(.is-open) { visibility: hidden; }
    .admin-sidebar.is-open { visibility: visible; }
    .admin-sidebar.is-collapsed .sidebar-submenu {
        position: static; width: auto; margin-left: 0; padding: 0;
        opacity: 1; visibility: visible; pointer-events: auto;
        box-shadow: none; background: transparent; overflow: hidden;
    }
    .admin-sidebar.is-collapsed .sidebar-nav-link--sub { white-space: normal; }
    .admin-sidebar.is-collapsed [data-tooltip]:hover::after { display: none; }
    .no-scroll .admin-main { overflow: hidden; }
    .admin-topbar { padding: 10px 16px; gap: 12px; }
    .admin-topbar .topbar-left { flex: 0 0 auto; }
    .topbar-right { flex: 1 1 0; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
    .admin-content { padding: 24px; }
    .page-actions { flex-wrap: wrap; }
    .page-actions .btn { flex: 0 1 auto; white-space: normal; }
    .admin-content :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { max-width: 100%; }
    .admin-topbar .dropdown-menu { max-height: calc(100dvh - 132px); overflow-y: auto; }
    .sidebar-nav { overscroll-behavior: contain; padding-bottom: max(16px, env(safe-area-inset-bottom)); }
}

@media (max-width: 767px) {
    .admin-content { padding: 20px 14px max(32px, env(safe-area-inset-bottom)); }
    .page-header__row .page-actions { gap: 8px; }
    .page-header__row .page-actions .btn { flex: 1 1 140px; }
    .sst-panel-header { flex-wrap: wrap; gap: 12px; }
    .table-wrapper--responsive-cards .table td {
        display: block; text-align: left !important; overflow-wrap: anywhere;
    }
    .table-wrapper--responsive-cards .table td::before { display: block; margin-bottom: 4px; white-space: normal; }
    .table-wrapper--responsive-cards .table td[colspan]::before { display: none; }
    .table-wrapper--responsive-cards .table-action-buttons { justify-content: flex-start; }
    .table-cell-truncate { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
    .modal-dialog { margin: 12px; }
    .modal-dialog-scrollable { height: calc(100dvh - 24px); }
    .modal-body { padding: 16px; }
    .modal-footer { flex-wrap: wrap; padding: 12px 16px; }
    .modal-footer .btn { flex: 1 1 120px; white-space: normal; }
}

@media (max-width: 575px) {
    /* Keep all header actions available, without squeezing their touch targets. */
    .admin-topbar { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; padding: 8px 12px; }
    .topbar-left { grid-column: 1; }
    .topbar-right { display: contents; }
    .topbar-right > .company-switcher { grid-column: 2 / -1; min-width: 0; width: 100%; }
    .topbar-right > .worksite-switcher { grid-column: 1 / -1; min-width: 0; width: 100%; }
    .topbar-worksite-btn { width: 100%; max-width: none; min-height: 44px; }
    .topbar-worksite-btn strong { max-width: none; }
    .topbar-right > :not(.worksite-switcher):not(.company-switcher) { justify-self: center; }
    .admin-topbar :is(.topbar-icon-btn,.sidebar-toggle-mobile) { width: 44px; height: 44px; min-height: 44px; }
    .topbar-right .dropdown:last-child > .topbar-icon-btn { width: 44px; }
    .admin-topbar .dropdown-menu { max-width: calc(100vw - 24px); }
    .filters-bar { flex-wrap: wrap; }
    .filters-bar > :is(.form-control,.form-select,.search-select) { flex: 1 1 100%; width: 100%; }
}

@media (pointer: coarse), (max-width: 1199px) {
    :is(.btn,.topbar-icon-btn,.sidebar-toggle-mobile,.sidebar-nav-link,.sidebar-group-toggle,.dropdown-item,.module-navigation__item,.search-select__toggle) { min-height: 44px; }
    :is(.btn,.sidebar-nav-link,.sidebar-group-toggle) { white-space: normal; }
    :is(input.form-control,select.form-select,textarea.form-control,.search-select__search) { font-size: 16px; }
    :is(input.form-control,select.form-select,.search-select__toggle) { min-height: 44px; }
    .form-check { min-height: 44px; display: flex; align-items: center; gap: 8px; }
}

@media (max-width: 1199px) and (max-height: 500px) {
    .modal-dialog { margin: 12px auto; }
    .modal-content { max-height: calc(100dvh - 24px); }
    .modal-body { min-height: 0; overflow-y: auto; }
    .modal-header,.modal-footer { flex-shrink: 0; }
}
@media (pointer: coarse) {
    .topbar-icon-btn { min-width: 44px; }
    .btn-close { min-width: 24px; min-height: 24px; padding: 10px; }
}
