/* 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;
    }
}

/* PLZAPP-R039B-1-RESPONSIVIDADE-1366x768-INICIO */

/*
 * Camada global defensiva para notebooks e monitores 1366x768.
 * Objetivo: reduzir estouro visual sem comprimir tabelas complexas.
 * Tabelas grandes continuam com rolagem horizontal controlada.
 */

@media (max-width: 1366px) {
    html,
    body {
        max-width: 100% !important;
    }

    .admin-main,
    .master-main,
    .admin-content,
    .master-content,
    .page-content,
    .main-content,
    .dashboard-content {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .admin-content,
    .master-content {
        overflow-x: hidden !important;
        padding-left: clamp(14px, 1.6vw, 22px) !important;
        padding-right: clamp(14px, 1.6vw, 22px) !important;
    }

    .admin-topbar,
    .master-topbar {
        padding-left: clamp(12px, 1.4vw, 18px) !important;
        padding-right: clamp(12px, 1.4vw, 18px) !important;
        gap: 8px !important;
    }

    .topbar-right {
        min-width: 0 !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
        justify-content: flex-end !important;
    }

    .topbar-user {
        max-width: 260px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .page-header,
    .plz-page-header,
    .plz-admin-header,
    .plz-dash-header,
    .plz-ponto-header,
    .toolbar,
    .actions,
    .action-bar,
    .header-actions,
    .page-header-actions {
        min-width: 0 !important;
        max-width: 100% !important;
        flex-wrap: wrap !important;
    }

    .page-header h1,
    .plz-page-header h1,
    .plz-admin-header h1,
    .plz-dash-header h1,
    .plz-ponto-header h1 {
        overflow-wrap: anywhere !important;
        line-height: 1.15 !important;
    }

    .card,
    .panel,
    .box,
    .plz-card,
    .plz-admin-card,
    .plz-dash-card,
    .plz-ponto-card,
    .table-wrap,
    .table-responsive,
    .responsive-table,
    .table-wrapper,
    .report-table-wrap,
    .plz-table-wrap {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .admin-content .card:has(table),
    .master-content .card:has(table),
    .admin-content .panel:has(table),
    .master-content .panel:has(table),
    .admin-content .plz-ponto-card:has(table),
    .master-content .plz-ponto-card:has(table) {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .admin-content table,
    .master-content table {
        max-width: none !important;
    }

    .admin-content th,
    .admin-content td,
    .master-content th,
    .master-content td {
        overflow-wrap: normal !important;
    }

    .filter-bar,
    .filters,
    .filter-grid,
    .form-grid,
    .plz-admin-filter,
    .plz-admin-filter-grid,
    .plz-ponto-filters,
    .report-filters {
        max-width: 100% !important;
        min-width: 0 !important;
        flex-wrap: wrap !important;
    }

    .filter-bar > *,
    .filters > *,
    .plz-admin-filter-grid > *,
    .plz-ponto-filters > *,
    .report-filters > * {
        min-width: min(210px, 100%) !important;
        max-width: 100% !important;
    }

    input,
    select,
    textarea,
    button,
    .btn,
    .plz-admin-btn,
    .plz-dash-btn,
    .plz-ponto-btn {
        max-width: 100% !important;
    }

    .grid,
    .cards,
    .card-grid,
    .kpi-grid,
    .stats-grid,
    .plz-grid,
    .plz-cards,
    .plz-dashboard-grid,
    .plz-ponto-grid,
    .report-kpis {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .container,
    .container-fluid {
        max-width: min(100%, calc(100vw - 24px)) !important;
    }
}

@media (max-width: 1366px) and (max-height: 820px) {
    .admin-content,
    .master-content {
        padding-top: 16px !important;
        padding-bottom: 22px !important;
    }

    .page-header,
    .plz-page-header,
    .plz-admin-header,
    .plz-dash-header,
    .plz-ponto-header {
        margin-bottom: 16px !important;
        gap: 10px !important;
    }

    .page-header h1,
    .plz-page-header h1,
    .plz-admin-header h1,
    .plz-dash-header h1,
    .plz-ponto-header h1 {
        font-size: clamp(20px, 2vw, 25px) !important;
    }

    .card,
    .panel,
    .box,
    .plz-card,
    .plz-admin-card,
    .plz-dash-card,
    .plz-ponto-card {
        padding: clamp(12px, 1.2vw, 18px) !important;
    }

    .admin-content th,
    .admin-content td,
    .master-content th,
    .master-content td {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    .admin-content .plz-ponto-card,
    .master-content .plz-ponto-card {
        padding: 14px !important;
    }

    .admin-content .plz-ponto-hero,
    .admin-content .plz-ponto-page > .page-header {
        min-height: auto !important;
        padding: 16px 18px !important;
    }

    .admin-content .plz-ponto-nav {
        gap: 6px !important;
    }

    .admin-content .plz-ponto-nav a {
        min-height: 34px !important;
        padding: 7px 11px !important;
        font-size: 12px !important;
    }
}

@media (max-width: 1180px) {
    .admin-content,
    .master-content {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .topbar-role {
        display: none !important;
    }
}

/* PLZAPP-R039B-1-RESPONSIVIDADE-1366x768-FIM */

/* PLZAPP-R039C-1-EXCECOES-ADMIN-MASTER-1366-INICIO */

/*
 * Exceções controladas para 1366x768.
 * Não remove larguras mínimas de tabelas críticas.
 * Contém o estouro dentro do bloco correto e reduz densidade visual.
 */

@media (max-width: 1366px) {
    body {
        overflow-x: hidden !important;
    }

    .admin-layout,
    .master-layout,
    .admin-main,
    .master-main,
    .admin-content,
    .master-content {
        max-width: 100vw !important;
        min-width: 0 !important;
    }

    .admin-content,
    .master-content {
        width: 100% !important;
        overflow-x: hidden !important;
    }

    .admin-content > *,
    .master-content > * {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .admin-content .card,
    .admin-content .panel,
    .admin-content .box,
    .admin-content .plz-card,
    .admin-content .plz-admin-card,
    .admin-content .plz-ponto-card,
    .master-content .card,
    .master-content .panel,
    .master-content .box,
    .master-content .plz-card {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .admin-content .card:has(table),
    .admin-content .panel:has(table),
    .admin-content .box:has(table),
    .admin-content .plz-card:has(table),
    .admin-content .plz-ponto-card:has(table),
    .master-content .card:has(table),
    .master-content .panel:has(table),
    .master-content .box:has(table),
    .master-content .plz-card:has(table) {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: thin !important;
    }

    .admin-content .table-wrap,
    .admin-content .table-responsive,
    .admin-content .responsive-table,
    .admin-content .table-wrapper,
    .admin-content .plz-table-wrap,
    .admin-content .plz-ponto-table-wrap,
    .admin-content .report-table-wrap,
    .master-content .table-wrap,
    .master-content .table-responsive,
    .master-content .responsive-table,
    .master-content .table-wrapper,
    .master-content .totals-wrap,
    .master-content .plz-table-wrap {
        max-width: 100% !important;
        width: 100% !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: thin !important;
    }

    .admin-content table,
    .admin-content .plz-ponto-table,
    .admin-content .report-table,
    .master-content table,
    .master-content .table,
    .master-content .totals-table {
        max-width: none !important;
    }

    .admin-content th,
    .admin-content td,
    .master-content th,
    .master-content td {
        padding-left: 9px !important;
        padding-right: 9px !important;
        line-height: 1.22 !important;
    }

    .admin-content .plz-ponto-table th,
    .admin-content .plz-ponto-table td,
    .admin-content .report-table th,
    .admin-content .report-table td,
    .master-content .table th,
    .master-content .table td,
    .master-content .totals-table th,
    .master-content .totals-table td {
        padding: 7px 8px !important;
        font-size: 11.5px !important;
        line-height: 1.2 !important;
    }

    .admin-content .plz-ponto-page,
    .admin-content .plz-ponto-page > *,
    .master-content .ponto-wrap,
    .master-content .cc-page,
    .master-content .command-center-page,
    .master-content [class*="workspace"],
    .master-content [class*="clients"],
    .master-content [class*="financial"],
    .master-content [class*="saas"] {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .admin-content .plz-ponto-grid,
    .admin-content .plz-grid,
    .admin-content .kpi-grid,
    .admin-content .stats-grid,
    .master-content .grid-2,
    .master-content .grid-4,
    .master-content .kpi-grid,
    .master-content .stats-grid {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .admin-content .plz-ponto-page > .plz-ponto-grid:first-of-type {
        grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important;
        gap: 10px !important;
    }

    .admin-content .plz-ponto-page > .plz-ponto-grid:first-of-type .plz-ponto-card {
        min-height: 64px !important;
        padding: 11px 12px !important;
    }

    .admin-content .plz-ponto-card strong,
    .admin-content .plz-ponto-kpi strong {
        font-size: clamp(18px, 1.8vw, 23px) !important;
    }

    .filter-bar,
    .filters,
    .filter-grid,
    .form-grid,
    .plz-admin-filter,
    .plz-admin-filter-grid,
    .plz-ponto-filters,
    .report-filters,
    .master-content .filters {
        flex-wrap: wrap !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .filter-bar > *,
    .filters > *,
    .plz-admin-filter-grid > *,
    .plz-ponto-filters > *,
    .report-filters > *,
    .master-content .filters > * {
        flex: 1 1 180px !important;
        min-width: min(180px, 100%) !important;
        max-width: 100% !important;
    }

    .page-header,
    .plz-page-header,
    .plz-admin-header,
    .plz-dash-header,
    .plz-ponto-header,
    .ponto-head {
        align-items: flex-start !important;
        gap: 10px !important;
    }

    .page-header-actions,
    .header-actions,
    .actions,
    .action-bar,
    .toolbar {
        min-width: 0 !important;
        max-width: 100% !important;
        flex-wrap: wrap !important;
    }
}

@media (max-width: 1366px) and (max-height: 768px) {
    .admin-content,
    .master-content {
        padding-top: 12px !important;
        padding-bottom: 18px !important;
    }

    .page-header,
    .plz-page-header,
    .plz-admin-header,
    .plz-dash-header,
    .plz-ponto-header,
    .ponto-head {
        margin-bottom: 12px !important;
    }

    .page-header h1,
    .plz-page-header h1,
    .plz-admin-header h1,
    .plz-dash-header h1,
    .plz-ponto-header h1,
    .ponto-head h1 {
        font-size: clamp(19px, 1.8vw, 23px) !important;
        line-height: 1.1 !important;
    }

    .admin-content .card,
    .admin-content .panel,
    .admin-content .box,
    .admin-content .plz-card,
    .admin-content .plz-ponto-card,
    .master-content .card,
    .master-content .panel,
    .master-content .box,
    .master-content .plz-card {
        padding: 12px !important;
    }

    .admin-content .plz-ponto-hero,
    .admin-content .plz-ponto-page > .page-header {
        padding: 12px 14px !important;
        min-height: auto !important;
        border-radius: 16px !important;
    }

    .admin-content .plz-ponto-nav {
        gap: 5px !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        padding-bottom: 2px !important;
    }

    .admin-content .plz-ponto-nav a {
        min-height: 32px !important;
        padding: 6px 10px !important;
        font-size: 12px !important;
        white-space: nowrap !important;
        flex: 0 0 auto !important;
    }

    .admin-content th,
    .admin-content td,
    .master-content th,
    .master-content td {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }

    .admin-topbar,
    .master-topbar {
        min-height: 52px !important;
        height: auto !important;
    }
}

/* PLZAPP-R039C-1-EXCECOES-ADMIN-MASTER-1366-FIM */

