/* PLZAPP-R036B-RESPONSIVIDADE-GLOBAL */

html {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
    max-width: 100%;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
    height: auto;
}

input,
select,
textarea,
button {
    max-width: 100%;
    font: inherit;
}

[hidden] {
    display: none !important;
}

/* Containers globais */
.admin-content,
.master-content,
.page-content,
.content,
.main-content,
.dashboard-content,
.plz-page,
.plz-ponto-page,
.plz-admin-page,
.plz-dash-page,
.container,
.container-fluid {
    max-width: 100%;
    min-width: 0;
}

/* Cabeçalhos e ações */
.page-header,
.plz-page-header,
.plz-admin-header,
.plz-dash-header,
.plz-ponto-header,
.card-header,
.panel-header,
.toolbar,
.actions,
.action-bar,
.header-actions,
.page-header-actions,
.plz-admin-actions,
.plz-dash-actions,
.plz-leads-hero-actions,
.plz-leads-row-actions,
.plz-ponto-actions,
.lead-actions-r157g,
.leads-header-actions-r157g,
.leads-filter-actions-r157g,
.report-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    min-width: 0;
}

/* Botões e links de ação */
.btn,
button,
input[type="submit"],
input[type="button"],
a[class*="btn"],
a[class*="button"],
.plz-admin-btn,
.plz-dash-btn,
.plz-ponto-btn,
.report-btn,
.leads-btn-r157g,
.leads-btn-light-r157g,
.leads-btn-danger-r157g,
.leads-btn-whatsapp-r157g,
.lead-wa-btn-r157b2 {
    white-space: normal;
    max-width: 100%;
    min-width: 0;
    line-height: 1.15;
}

/* Filtros e formulários */
form,
.form-grid,
.filter-bar,
.filters,
.filter-grid,
.plz-admin-filter,
.plz-admin-filter-grid,
.plz-leads-toolbar,
.plz-leads-filter,
.plz-leads-filter form,
.leads-filters-r157g,
.leads-r157f-filters,
.plz-ponto-filter,
.plz-ponto-filters,
.report-filter,
.report-filters {
    max-width: 100%;
    min-width: 0;
}

.filter-bar,
.filters,
.plz-admin-filter-grid,
.plz-leads-filter,
.leads-filters-r157g,
.leads-r157f-filters,
.plz-ponto-filters,
.report-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.filter-bar > *,
.filters > *,
.plz-admin-filter-grid > *,
.plz-leads-filter > *,
.leads-filters-r157g > *,
.leads-r157f-filters > *,
.plz-ponto-filters > *,
.report-filters > * {
    min-width: min(220px, 100%);
}

/* Cards e grids */
.grid,
.cards,
.card-grid,
.kpi-grid,
.stats-grid,
.plz-grid,
.plz-cards,
.plz-dashboard-grid,
.plz-ponto-grid,
.report-kpis {
    max-width: 100%;
    min-width: 0;
}

@supports (grid-template-columns: repeat(auto-fit, minmax(0, 1fr))) {
    .grid,
    .cards,
    .card-grid,
    .kpi-grid,
    .stats-grid,
    .plz-grid,
    .plz-cards,
    .plz-dashboard-grid,
    .plz-ponto-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)) !important;
    }
}

/* Navegação com muitos itens */
nav,
.nav,
.tabs,
.tab-list,
.plz-ponto-nav,
.admin-nav,
.master-nav,
.sidebar-nav {
    max-width: 100%;
}

.tabs,
.tab-list,
.plz-ponto-nav,
.admin-nav,
.master-nav {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

/* Tabelas: protege app inteiro contra estouro horizontal */
.table-responsive,
.responsive-table,
.table-wrap,
.table-wrapper,
.report-table-wrap,
.plz-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

table {
    max-width: 100%;
    border-collapse: collapse;
}

.admin-content table,
.master-content table,
.page-content table,
.content table,
.main-content table,
.report-table {
    width: 100%;
}

.admin-content table:not(.no-responsive-table),
.master-content table:not(.no-responsive-table),
.page-content table:not(.no-responsive-table),
.content table:not(.no-responsive-table),
.main-content table:not(.no-responsive-table),
.report-table:not(.no-responsive-table) {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.admin-content thead,
.master-content thead,
.page-content thead,
.content thead,
.main-content thead,
.report-table thead {
    white-space: nowrap;
}

.admin-content th,
.admin-content td,
.master-content th,
.master-content td,
.page-content th,
.page-content td,
.content th,
.content td,
.main-content th,
.main-content td,
.report-table th,
.report-table td {
    min-width: max-content;
}

/* Evita que textos longos quebrem o layout */
td,
th,
.card,
.panel,
.box,
.plz-card,
.plz-ponto-card,
.plz-admin-card {
    overflow-wrap: anywhere;
}

/* Telas grandes e ultrawide: evita conteúdo excessivamente espalhado */
@media (min-width: 1600px) {
    .admin-content,
    .master-content,
    .page-content,
    .main-content,
    .dashboard-content {
        max-width: 1560px;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (min-width: 2200px) {
    .admin-content,
    .master-content,
    .page-content,
    .main-content,
    .dashboard-content {
        max-width: 1880px;
    }
}

/* Notebook / tablet */
@media (max-width: 1024px) {
    .admin-content,
    .master-content,
    .page-content,
    .content,
    .main-content,
    .dashboard-content {
        padding-left: clamp(10px, 2vw, 18px) !important;
        padding-right: clamp(10px, 2vw, 18px) !important;
    }

    .page-header,
    .plz-page-header,
    .plz-admin-header,
    .plz-dash-header,
    .plz-ponto-header {
        align-items: flex-start;
    }
}

/* Celulares e telas estreitas */
@media (max-width: 768px) {
    body {
        overflow-x: hidden;
    }

    .admin-content,
    .master-content,
    .page-content,
    .content,
    .main-content,
    .dashboard-content {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .page-header,
    .plz-page-header,
    .plz-admin-header,
    .plz-dash-header,
    .plz-ponto-header,
    .card-header,
    .panel-header {
        flex-direction: column;
        align-items: stretch;
    }

    .page-header-actions,
    .header-actions,
    .plz-admin-actions,
    .plz-dash-actions,
    .plz-ponto-actions,
    .report-actions {
        width: 100%;
    }

    .page-header-actions > *,
    .header-actions > *,
    .plz-admin-actions > *,
    .plz-dash-actions > *,
    .plz-ponto-actions > *,
    .report-actions > * {
        flex: 1 1 auto;
    }

    .filter-bar,
    .filters,
    .plz-admin-filter-grid,
    .plz-leads-filter,
    .leads-filters-r157g,
    .leads-r157f-filters,
    .plz-ponto-filters,
    .report-filters {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .filter-bar > *,
    .filters > *,
    .plz-admin-filter-grid > *,
    .plz-leads-filter > *,
    .leads-filters-r157g > *,
    .leads-r157f-filters > *,
    .plz-ponto-filters > *,
    .report-filters > * {
        width: 100%;
        min-width: 0;
    }

    .btn,
    button,
    input[type="submit"],
    input[type="button"],
    a[class*="btn"],
    a[class*="button"],
    .plz-admin-btn,
    .plz-dash-btn,
    .plz-ponto-btn,
    .report-btn {
        min-height: 42px;
        justify-content: center;
        text-align: center;
    }
}

/* Celulares muito estreitos */
@media (max-width: 420px) {
    .admin-content,
    .master-content,
    .page-content,
    .content,
    .main-content,
    .dashboard-content {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    h1 {
        font-size: clamp(20px, 7vw, 28px) !important;
    }

    h2 {
        font-size: clamp(17px, 5.5vw, 22px) !important;
    }

    .btn,
    button,
    input[type="submit"],
    input[type="button"],
    a[class*="btn"],
    a[class*="button"],
    .plz-admin-btn,
    .plz-dash-btn,
    .plz-ponto-btn,
    .report-btn {
        width: 100%;
    }
}

/* Cronos Core / telas públicas isoladas */
.punch-shell,
.ponto-public-shell,
.core-shell,
.cronos-shell {
    width: min(100%, 760px);
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 768px) {
    .punch-shell,
    .ponto-public-shell,
    .core-shell,
    .cronos-shell {
        width: 100%;
        padding-left: 10px;
        padding-right: 10px;
    }
}
