/**
 * FireSys — Padrão visual oficial (referência: Novo Cliente / Full Workspace)
 *
 * Hierarquia:
 *   .workspace-content-area (padding externo 24px)
 *     .page-container / .page-layout
 *       .page-header
 *       .content-card | .filter-card | .form-card | .grid-card
 *       .action-bar
 */

/* ----- Page container: largura total, sem max-width ----- */

.page-container,
.workspace-page-container.page-layout,
.page-layout {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

/* ----- Área útil: único respiro lateral (24px desktop) ----- */

.workspace-content-area {
    padding: var(--page-padding);
}

/* ----- Page header ----- */

.page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--content-gap);
    margin-bottom: 0 !important;
    padding-bottom: 0;
    width: 100%;
}

.page-header h1,
.page-header .h1,
.page-header .h3,
.page-header h2 {
    margin-bottom: 0;
    font-weight: 600;
    font-size: 1.25rem;
    color: var(--text-color);
}

.dashboard-wrapper .dashboard-header {
    margin-bottom: 0 !important;
    padding-bottom: 0;
    width: 100%;
}

/* ----- Cards padronizados ----- */

.content-card,
.workspace-page-container > .card,
.page-layout > .card,
.dashboard-wrapper > .card {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0 !important;
    border: 1px solid var(--border-color);
    border-radius: var(--card-radius);
    background: var(--card-background);
    box-shadow: var(--card-shadow) !important;
    transform: none !important;
    transition: box-shadow var(--transition-base);
}

.content-card:hover,
.workspace-page-container > .card:hover,
.page-layout > .card:hover {
    transform: none !important;
    box-shadow: var(--card-shadow) !important;
}

.content-card > .card-body,
.filter-card > .card-body,
.form-card > .card-body,
.grid-card > .card-body {
    padding: var(--card-padding);
}

.grid-card > .card-body.p-0 {
    padding: 0;
}

/* ----- Formulários: campos dentro do card, sem estourar ----- */

.form-card > .card-body,
.form-container > .card-body {
    display: flex;
    flex-direction: column;
    padding: var(--card-padding);
    box-sizing: border-box;
}

.app-form,
.page-layout form.app-form,
.form-card form,
.form-container form {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.app-form .row,
.form-card .row,
.form-container .row,
.filter-card .row {
    --bs-gutter-x: var(--content-gap);
    --bs-gutter-y: var(--content-gap);
    max-width: 100%;
}

.app-form .row > [class*="col"],
.form-card .row > [class*="col"],
.form-container .row > [class*="col"],
.filter-card .row > [class*="col"] {
    min-width: 0;
}

.app-form .form-control,
.app-form .form-select,
.app-form .input-group,
.form-card .form-control,
.form-card .form-select,
.form-card .input-group {
    max-width: 100%;
    box-sizing: border-box;
}

.app-form .input-group,
.form-card .input-group {
    flex-wrap: nowrap;
}

.app-form .input-group .form-control,
.form-card .input-group .form-control {
    min-width: 0;
    flex: 1 1 auto;
}

.app-form .mb-3,
.form-card .mb-3 {
    margin-bottom: var(--content-gap) !important;
}

/* ----- Barra de ações (compacta, igual referência) ----- */

.action-bar,
.sticky-action-bar,
.page-layout .form-actions {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: auto !important;
    min-height: 48px;
    max-height: 60px;
    height: var(--action-bar-height);
    padding: 0 var(--card-padding);
    background: var(--card-background);
    border-top: 1px solid var(--border-color);
    box-shadow: none;
    position: sticky;
    bottom: 0;
    z-index: 30;
}

.form-card .action-bar,
.form-card .sticky-action-bar,
.form-card .form-actions,
.form-container .action-bar,
.form-container .sticky-action-bar,
.form-container .form-actions {
    margin-left: calc(-1 * var(--card-padding));
    margin-right: calc(-1 * var(--card-padding));
    margin-bottom: calc(-1 * var(--card-padding));
}

.action-bar .btn,
.sticky-action-bar .btn,
.form-actions .btn {
    margin: 0;
}

/* ----- Listagens: filtro + grid ----- */

.filter-card {
    flex-shrink: 0;
}

.grid-card {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.grid-card > .card-body.p-0 {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.grid-card .table-container,
.grid-card .table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

.grid-card .table {
    width: 100%;
    margin-bottom: 0;
}

/* Paginação visual removida — ver data-grid.css */

/* ----- Dashboard ----- */

.dashboard-wrapper {
    width: 100%;
    max-width: none;
    display: flex;
    flex-direction: column;
    gap: var(--section-gap);
}

.dashboard-card,
.dashboard-wrapper .card,
.dashboard-wrapper .dashboard-kpi-card {
    width: 100%;
    max-width: none;
    border-radius: var(--card-radius);
    border: 1px solid var(--border-color);
    box-shadow: var(--card-shadow) !important;
    transform: none !important;
}

.dashboard-wrapper .card:hover,
.dashboard-wrapper .dashboard-kpi-card:hover {
    transform: none !important;
    box-shadow: var(--card-shadow) !important;
}

.dashboard-wrapper .row {
    --bs-gutter-x: var(--section-gap);
    --bs-gutter-y: var(--section-gap);
    margin-left: 0;
    margin-right: 0;
    width: 100%;
}

.dashboard-wrapper .row > [class*="col"] {
    min-width: 0;
}

/* ----- Remover limitações Bootstrap herdadas ----- */

.workspace-page-container .container,
.workspace-page-container .container-sm,
.workspace-page-container .container-md,
.workspace-page-container .container-lg,
.workspace-page-container .container-xl,
.workspace-page-container .container-xxl,
.page-layout .container,
.page-layout .container-fluid {
    max-width: none;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
}

/* ----- Tablet / mobile ----- */

@media (max-width: 991.98px) {
    .workspace-content-area {
        padding: var(--page-padding-tablet);
    }

    .form-card .action-bar,
    .form-card .sticky-action-bar,
    .form-card .form-actions,
    .form-container .action-bar,
    .form-container .sticky-action-bar,
    .form-container .form-actions {
        margin-left: calc(-1 * var(--card-padding-compact));
        margin-right: calc(-1 * var(--card-padding-compact));
        margin-bottom: calc(-1 * var(--card-padding-compact));
        padding-left: var(--card-padding-compact);
        padding-right: var(--card-padding-compact);
    }
}

@media (max-width: 767.98px) {
    .workspace-content-area {
        padding: var(--page-padding-mobile);
    }

    .page-layout {
        gap: var(--content-gap);
    }
}

@media print {
    .workspace-content-area {
        padding: 0;
    }

    .action-bar,
    .sticky-action-bar {
        position: static;
        margin: 0 !important;
    }
}
