/*
 * IP Gestão Integrada - Interface compacta global v7
 * Camada final carregada por último para normalizar tipografia, densidade visual,
 * botões, cards, tabelas, formulários, sidebar, modais e dashboards sem alterar regras de negócio.
 */
:root {
    --ipgi-font-compact: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --ipgi-page-bg: #f5f7fa;
    --ipgi-surface: #ffffff;
    --ipgi-surface-2: #f8fafc;
    --ipgi-border: #d8e1ea;
    --ipgi-border-soft: #e6edf4;
    --ipgi-text: #102033;
    --ipgi-muted: #5c6b80;
    --ipgi-title: #0b1f36;
    --ipgi-primary: #123c69;
    --ipgi-primary-2: #1f7ea8;
    --ipgi-success: #238b82;
    --ipgi-danger: #c82c35;
    --ipgi-warning: #b7791f;
    --ipgi-radius: 12px;
    --ipgi-radius-sm: 8px;
    --ipgi-shadow: 0 6px 18px rgba(15, 31, 53, .055);
    --ipgi-shadow-soft: 0 3px 10px rgba(15, 31, 53, .04);
    --ipgi-sidebar-w: 224px;
    --ipgi-content-pad-x: 12px;
    --ipgi-content-pad-y: 10px;
}

html {
    font-size: 13px !important;
    text-rendering: geometricPrecision;
}

body,
input,
select,
textarea,
button,
table {
    font-family: var(--ipgi-font-compact) !important;
}

body {
    font-size: 13px !important;
    line-height: 1.36 !important;
    font-weight: 400 !important;
    color: var(--ipgi-text) !important;
    background: var(--ipgi-page-bg) !important;
}

body * {
    letter-spacing: normal;
}

b,
strong {
    font-weight: 650 !important;
}

/* Layout base */
.app-shell,
.app-layout {
    grid-template-columns: var(--ipgi-sidebar-w) minmax(0, 1fr) !important;
}

.app-main,
.MainContent,
.main {
    padding: var(--ipgi-content-pad-y) var(--ipgi-content-pad-x) 20px !important;
    max-width: none !important;
}

.app-main > :first-child,
.MainContent > :first-child,
.main > :first-child {
    margin-top: 0 !important;
}

.app-main > * + *,
.MainContent > * + *,
.main > * + * {
    margin-top: 10px !important;
}

/* Topbar compacta */
.app-topbar,
.topbar {
    min-height: 42px !important;
    padding: 7px 10px !important;
    margin: 0 0 10px !important;
    border-radius: var(--ipgi-radius) !important;
    border: 1px solid var(--ipgi-border) !important;
    box-shadow: var(--ipgi-shadow-soft) !important;
    background: rgba(255, 255, 255, .96) !important;
}

.app-title,
.topbar > div:first-child {
    gap: 6px !important;
    min-width: 0 !important;
}

.app-title-brand,
.app-title-current,
.topbar p {
    font-size: 11px !important;
    font-weight: 600 !important;
}

.app-title-brand {
    min-height: 24px !important;
    padding: 0 8px !important;
    border-radius: 999px !important;
    letter-spacing: .035em !important;
}

.app-title-current {
    color: var(--ipgi-muted) !important;
}

.topbar h2,
.app-title h1,
.app-title h2 {
    margin: 0 !important;
    font-size: 18px !important;
    line-height: 1.18 !important;
    font-weight: 700 !important;
    color: var(--ipgi-title) !important;
}

.topbar p {
    margin: 2px 0 0 !important;
    color: var(--ipgi-muted) !important;
}

.topbar-actions,
.top-actions {
    gap: 6px !important;
}

.topbar-pill {
    min-height: 26px !important;
    padding: 0 8px !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
}

/* Tipografia global */
h1,
.page-title,
.planix-hero h1,
.home-page-title h1,
.rel-hero h1,
.login-brand h1 {
    font-size: 21px !important;
    line-height: 1.18 !important;
    font-weight: 700 !important;
    letter-spacing: -.015em !important;
    color: var(--ipgi-title) !important;
}

h2,
.card-title,
.planix-section-title h2,
.planix-section-title h3,
.planix-section-title h4,
.home-panel-title h2,
.rh-hero h2,
.rh-panel-head h2,
.vale-hero h2,
.vale-panel-head h2,
.rel-wizard-head h2,
.ct-card h2,
.fpay-card h2,
.fin-card h2,
.med-card h2,
.admin-card h2 {
    font-size: 17px !important;
    line-height: 1.22 !important;
    font-weight: 700 !important;
    letter-spacing: -.01em !important;
    color: var(--ipgi-title) !important;
}

h3,
.home-analytics-card h3,
.rh-card h3,
.vale-card h3,
.rel-card h3,
.ct-subcard h3,
.fpay-card h3,
.fin-card h3,
.med-card h3,
.admin-card h3 {
    font-size: 15px !important;
    line-height: 1.22 !important;
    font-weight: 700 !important;
}

p,
li,
small,
.help,
.planix-help,
.ct-mini,
.fin-muted,
.fpay-muted,
.rh-muted,
.vale-muted,
.rel-muted,
.home-muted {
    font-size: 12.5px !important;
    line-height: 1.38 !important;
    font-weight: 400 !important;
}

/* Sidebar e menus */
.app-sidebar,
.AppSidebar,
.sidebar {
    width: var(--ipgi-sidebar-w) !important;
    padding: 10px 8px !important;
    border-right: 1px solid rgba(216, 225, 234, .92) !important;
    box-shadow: 10px 0 24px rgba(15, 31, 53, .04) !important;
}

.app-brand,
.ipgi-brand,
.brand {
    gap: 8px !important;
    padding: 0 2px 9px !important;
    margin-bottom: 8px !important;
}

.app-brand-logo,
.ipgi-brand-mark,
.brand-logo,
.planix-mark {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.ipgi-brand-copy strong,
.app-brand strong,
.logo-text,
.brand h1 {
    font-size: 13.5px !important;
    line-height: 1.12 !important;
    font-weight: 700 !important;
    letter-spacing: -.01em !important;
}

.ipgi-brand-copy em,
.app-brand span,
.logo-subtitle,
.brand p {
    margin-top: 2px !important;
    font-size: 9.5px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
}

.ipgi-company-mini {
    margin-bottom: 8px !important;
    padding: 8px 9px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.ipgi-company-mini small,
.nav-section {
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: .075em !important;
}

.ipgi-company-mini strong {
    margin-top: 3px !important;
    font-size: 10.5px !important;
    line-height: 1.24 !important;
    font-weight: 700 !important;
}

.ipgi-company-mini span {
    font-size: 9.8px !important;
    line-height: 1.2 !important;
}

.sidebar-nav,
.nav {
    gap: 2px !important;
}

.nav-main-link,
.nav-group-button,
.nav a {
    min-height: 30px !important;
    height: auto !important;
    padding: 0 8px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
}

.nav-link-copy {
    gap: 7px !important;
}

.nav-icon,
.nav a span:first-child {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    border-radius: 6px !important;
}

.nav-icon svg {
    width: 11px !important;
    height: 11px !important;
    stroke-width: 1.8 !important;
}

.nav-arrow {
    font-size: 12px !important;
}

.nav-submenu {
    gap: 1px !important;
    padding: 2px 0 3px 8px !important;
}

.nav-sub-link {
    min-height: 25px !important;
    padding: 0 7px !important;
    border-radius: 7px !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
}

.nav-icon-sub {
    width: 15px !important;
    height: 15px !important;
}

.sidebar-footer,
.sidebar-help {
    display: none !important;
}

/* Cabeçalhos de páginas e heros */
.home-page-head,
.rh-hero,
.vale-hero,
.rel-hero,
.planix-hero,
.ct-hero,
.fin-hero,
.fpay-hero,
.med-hero,
.admin-hero,
.module-hero,
.dashboard-hero {
    min-height: 0 !important;
    padding: 12px 14px !important;
    margin: 0 0 10px !important;
    gap: 10px !important;
    border-radius: var(--ipgi-radius) !important;
    border: 1px solid var(--ipgi-border) !important;
    border-left: 3px solid var(--ipgi-primary-2) !important;
    background: var(--ipgi-surface) !important;
    box-shadow: var(--ipgi-shadow-soft) !important;
    color: var(--ipgi-text) !important;
}

.home-page-head::before,
.home-page-head::after,
.rh-hero::before,
.rh-hero::after,
.vale-hero::before,
.vale-hero::after,
.rel-hero::before,
.rel-hero::after,
.planix-hero::before,
.planix-hero::after {
    display: none !important;
}

.home-page-head p,
.rh-hero p,
.vale-hero p,
.rel-hero p,
.planix-hero p,
.ct-hero p,
.fin-hero p,
.fpay-hero p,
.med-hero p {
    max-width: 980px !important;
    margin: 4px 0 0 !important;
    color: var(--ipgi-muted) !important;
    font-size: 12.5px !important;
    line-height: 1.35 !important;
}

.home-page-title,
.home-head-actions,
.rh-hero-actions,
.vale-hero-actions,
.rel-actions {
    gap: 6px !important;
}

.home-profile-pill,
.home-filter-panel summary {
    min-height: 30px !important;
    padding: 4px 8px !important;
    border-radius: 10px !important;
}

/* Cards, painéis e KPIs */
.card,
.planix-card,
.admin-card,
.stat-card,
.module-card,
.panel,
.box,
.home-kpi,
.home-analytics-card,
.home-panel,
.rh-kpi,
.rh-panel,
.rh-card,
.vale-kpi,
.vale-panel,
.vale-card,
.rel-stat,
.rel-panel,
.rel-card,
.report-wizard-v68,
.ct-card,
.ct-subcard,
.fin-card,
.fpay-card,
.med-card,
.dashboard-card,
.kpi-card,
.status-box,
.info-card {
    border-radius: var(--ipgi-radius) !important;
    border: 1px solid var(--ipgi-border) !important;
    box-shadow: var(--ipgi-shadow-soft) !important;
    background: var(--ipgi-surface) !important;
}

.card,
.planix-card,
.admin-card,
.module-card,
.panel,
.box,
.home-analytics-card,
.home-panel,
.rh-panel,
.rh-card,
.vale-panel,
.vale-card,
.rel-panel,
.rel-card,
.report-wizard-v68,
.ct-card,
.ct-subcard,
.fin-card,
.fpay-card,
.med-card,
.dashboard-card {
    padding: 12px 14px !important;
    margin-bottom: 10px !important;
}

.stat-card,
.home-kpi,
.rh-kpi,
.vale-kpi,
.rel-stat,
.kpi-card,
.status-box,
.info-card {
    min-height: 70px !important;
    padding: 10px 12px !important;
}

.stat-card small,
.home-kpi small,
.home-kpi-label,
.rh-kpi small,
.vale-kpi small,
.rel-stat small,
.kpi-card small,
.status-box small,
.info-card small,
.card-title small,
.section-kicker,
.rh-kicker,
.vale-kicker,
.rel-kicker {
    font-size: 10px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    color: var(--ipgi-muted) !important;
}

.stat-card strong,
.home-kpi strong,
.home-kpi-value,
.rh-kpi strong,
.vale-kpi strong,
.rel-stat strong,
.kpi-card strong,
.status-box strong,
.info-card strong,
.kpi-value,
.total-value {
    margin-top: 4px !important;
    font-size: 19px !important;
    line-height: 1.05 !important;
    font-weight: 750 !important;
    letter-spacing: -.02em !important;
    color: var(--ipgi-title) !important;
}

.home-kpi p,
.rh-kpi p,
.vale-kpi p,
.rel-stat p,
.stat-card p,
.kpi-card p {
    margin: 3px 0 0 !important;
    font-size: 11.5px !important;
    color: var(--ipgi-muted) !important;
}

.home-kpi-grid,
.rh-kpis,
.vale-kpis,
.rel-dashboard,
.stats-grid,
.kpi-grid,
.dashboard-grid,
.admin-stats,
.module-grid {
    gap: 8px !important;
}

.home-shell,
.rh-page,
.vale-page,
.planix-report-page,
.planix-page,
.ct-page,
.fin-page,
.fpay-page,
.med-page {
    gap: 10px !important;
}

/* Dashboard/Página inicial */
.home-dashboard,
.home-shell {
    padding: 0 !important;
}

.home-summary-grid,
.home-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.home-kpi-icon,
.home-card-icon,
.home-icon {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    border-radius: 8px !important;
}

.home-kpi-icon svg,
.home-card-icon svg,
.home-icon svg {
    width: 14px !important;
    height: 14px !important;
}

.home-analytics-grid {
    gap: 8px !important;
}

.home-analytics-card {
    min-height: 240px !important;
    padding: 10px 12px !important;
}

.home-analytics-card h3 {
    margin-bottom: 2px !important;
}

.home-donut,
.home-gauge {
    transform: scale(.86) !important;
    transform-origin: center !important;
}

.home-bars,
.home-radar,
.home-line-chart,
.home-tower-chart {
    min-height: 150px !important;
}

/* Formulários */
label,
.planix-field label,
.ct-field label,
.fpay-field label,
.fin-field label,
.med-field label,
.rh-field label,
.vale-field label,
.rel-field label,
.form-group label,
.form-field label {
    margin: 0 0 4px !important;
    color: #41526a !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 650 !important;
    letter-spacing: .025em !important;
    text-transform: none !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea,
.form-control,
.planix-field input,
.planix-field select,
.planix-field textarea,
.ct-field input,
.ct-field select,
.ct-field textarea,
.fpay-field input,
.fpay-field select,
.fpay-field textarea,
.fin-field input,
.fin-field select,
.fin-field textarea,
.med-field input,
.med-field select,
.med-field textarea,
.rh-field input,
.rh-field select,
.rh-field textarea,
.vale-field input,
.vale-field select,
.vale-field textarea,
.rel-field input,
.rel-field select,
.rel-field textarea {
    min-height: 32px !important;
    height: 32px !important;
    padding: 0 9px !important;
    border-radius: 8px !important;
    border: 1px solid var(--ipgi-border) !important;
    background: #ffffff !important;
    color: var(--ipgi-text) !important;
    font-size: 12.5px !important;
    line-height: 1.25 !important;
    font-weight: 400 !important;
    box-shadow: none !important;
}

textarea,
.planix-field textarea,
.ct-field textarea,
.fpay-field textarea,
.fin-field textarea,
.med-field textarea,
.rh-field textarea,
.vale-field textarea,
.rel-field textarea {
    height: auto !important;
    min-height: 68px !important;
    padding: 8px 9px !important;
    resize: vertical !important;
}

input:focus,
select:focus,
textarea:focus {
    outline: 0 !important;
    border-color: rgba(31, 126, 168, .65) !important;
    box-shadow: 0 0 0 3px rgba(31, 126, 168, .10) !important;
}

.planix-grid,
.ct-grid,
.fpay-grid,
.fin-grid,
.med-grid,
.rh-filter-grid,
.vale-filter-grid,
.vale-form-grid,
.vale-config-grid,
.vale-batch-grid,
.rel-grid,
.form-grid,
.filters-grid {
    gap: 8px 10px !important;
}

.planix-field,
.ct-field,
.fpay-field,
.fin-field,
.med-field,
.rh-field,
.vale-field,
.rel-field,
.form-field,
.form-group {
    gap: 4px !important;
    margin-bottom: 0 !important;
}

.form-actions,
.planix-actions,
.ct-actions,
.ct-toolbar,
.fpay-actions,
.fin-actions,
.med-actions,
.rh-actions,
.vale-actions,
.vale-row-actions,
.rel-actions,
.table-actions,
.actions {
    gap: 6px !important;
}

/* Botões */
button,
.btn,
.planix-btn,
.modern-btn,
.ct-btn,
.fin-btn,
.fpay-btn,
.med-btn,
.rh-btn,
.vale-btn,
.rel-btn,
.home-btn,
.home-btn-light,
.home-btn-ghost,
.home-btn-print,
.topbar-btn,
.plx-modal-trigger,
.plx-btn-cancel,
.plx-btn-confirm,
a.btn,
a.planix-btn,
a.ct-btn,
a.fin-btn,
a.fpay-btn,
a.med-btn,
a.rh-btn,
a.vale-btn,
a.rel-btn {
    min-height: 30px !important;
    height: auto !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

button.small,
.btn.small,
.planix-btn.small,
.ct-btn.small,
.fin-btn.small,
.fpay-btn.small,
.med-btn.small,
.rh-btn.small,
.vale-btn.small,
.rel-btn.small,
.table-actions a,
.table-actions button,
td .btn,
td .planix-btn,
td .ct-btn,
td .fin-btn,
td .fpay-btn,
td .med-btn,
td .rh-btn,
td .vale-btn,
td .rel-btn,
td button,
td a[class*="btn"] {
    min-height: 26px !important;
    padding: 4px 8px !important;
    font-size: 11.2px !important;
    border-radius: 7px !important;
}

.btn:hover,
.planix-btn:hover,
.ct-btn:hover,
.fin-btn:hover,
.fpay-btn:hover,
.med-btn:hover,
.rh-btn:hover,
.vale-btn:hover,
.rel-btn:hover,
.home-btn:hover,
.topbar-btn:hover {
    transform: none !important;
}

.btn.primary,
.planix-btn.primary,
.modern-btn.primary,
.ct-btn.primary,
.fin-btn.primary,
.fpay-btn.primary,
.med-btn.primary,
.rh-btn.primary,
.vale-btn-primary,
.rel-btn-primary,
.home-btn,
.topbar-btn {
    background: var(--ipgi-primary) !important;
    color: #fff !important;
    border: 1px solid var(--ipgi-primary) !important;
}

.btn.success,
.planix-btn.success,
.ct-btn.success,
.fin-btn.success,
.fpay-btn.success,
.med-btn.success,
.rh-btn.green,
.vale-btn-green,
.modern-btn.success {
    background: var(--ipgi-success) !important;
    color: #fff !important;
    border-color: var(--ipgi-success) !important;
}

.btn.danger,
.planix-btn.danger,
.ct-btn.danger,
.fin-btn.danger,
.fpay-btn.danger,
.med-btn.danger,
.rh-btn.danger,
.vale-btn-danger,
.rel-btn-danger,
.plx-btn-confirm.is-danger {
    background: var(--ipgi-danger) !important;
    color: #fff !important;
    border-color: var(--ipgi-danger) !important;
}

.btn.secondary,
.btn.light,
.planix-btn.secondary,
.ct-btn.secondary,
.fin-btn.secondary,
.fpay-btn.secondary,
.med-btn.secondary,
.rh-btn.soft,
.vale-btn-soft,
.rel-btn-ghost,
.home-btn-light,
.home-btn-ghost,
.plx-btn-cancel {
    background: #ffffff !important;
    color: var(--ipgi-primary) !important;
    border: 1px solid var(--ipgi-border) !important;
}

/* Tabelas */
.table-wrap,
.planix-table-wrap,
.ct-table-wrap,
.fin-table-wrap,
.fpay-table-wrap,
.med-table-wrap,
.rh-table-wrap,
.vale-table-wrap,
.rel-table-wrap {
    border: 1px solid var(--ipgi-border) !important;
    border-radius: var(--ipgi-radius) !important;
    overflow: auto !important;
    box-shadow: none !important;
    background: #fff !important;
}

table,
.table,
.planix-table,
.ct-table,
.fin-table,
.fpay-table,
.med-table,
.rh-table,
.vale-table,
.rel-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 12.2px !important;
    line-height: 1.25 !important;
}

th,
td,
.table th,
.table td,
.planix-table th,
.planix-table td,
.ct-table th,
.ct-table td,
.fin-table th,
.fin-table td,
.fpay-table th,
.fpay-table td,
.med-table th,
.med-table td,
.rh-table th,
.rh-table td,
.vale-table th,
.vale-table td,
.rel-table th,
.rel-table td {
    padding: 7px 8px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid var(--ipgi-border-soft) !important;
}

th,
.table th,
.planix-table th,
.ct-table th,
.fin-table th,
.fpay-table th,
.med-table th,
.rh-table th,
.vale-table th,
.rel-table th {
    background: #f4f7fb !important;
    color: #334155 !important;
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;
}

td strong,
td b {
    font-weight: 650 !important;
}

tr:hover td {
    background: #fbfdff !important;
}

/* Badges e status */
.badge,
.status-badge,
.planix-badge,
.ct-badge,
.fin-badge,
.fpay-badge,
.med-badge,
.rh-badge,
.vale-badge,
.rel-status-pill,
.rel-badge,
.plx-badge {
    min-height: 22px !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
    font-size: 10.5px !important;
    line-height: 1.1 !important;
    font-weight: 650 !important;
    letter-spacing: .015em !important;
    text-transform: none !important;
    box-shadow: none !important;
}

/* RH e Recibos */
.rh-page,
.vale-page {
    padding: 0 !important;
}

.rh-kpis,
.vale-kpis {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

.rh-panel-head,
.vale-panel-head,
.rel-wizard-head,
.planix-section-title,
.ct-section-title,
.fpay-section-title,
.fin-section-title {
    padding-bottom: 8px !important;
    margin-bottom: 10px !important;
    gap: 8px !important;
    border-bottom: 1px solid var(--ipgi-border-soft) !important;
}

.vale-total-banner,
.rh-total-banner,
.summary-total,
.total-box {
    padding: 10px 12px !important;
    min-height: 60px !important;
    border-radius: var(--ipgi-radius) !important;
}

.vale-total-banner strong,
.rh-total-banner strong,
.summary-total strong,
.total-box strong {
    font-size: 19px !important;
    font-weight: 750 !important;
}

/* Relatório mensal */
.planix-report-page {
    padding: 0 0 20px !important;
}

.rel-dashboard {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
}

.rel-layout {
    gap: 10px !important;
}

.rel-wizard-head {
    padding: 12px 14px !important;
}

.rel-progress-box {
    min-width: 190px !important;
    padding: 8px 10px !important;
    border-radius: 10px !important;
}

.rel-edit-banner {
    padding: 8px 10px !important;
    margin: 8px 0 !important;
    border-radius: 9px !important;
    font-size: 12px !important;
}

.rel-stepper {
    gap: 5px !important;
    padding: 8px 0 !important;
    margin-bottom: 10px !important;
}

.rel-step-btn {
    min-height: 29px !important;
    padding: 5px 9px !important;
    font-size: 11.5px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
}

.rel-section,
.rel-form-section,
.rel-step-panel {
    padding: 10px 12px !important;
    border-radius: var(--ipgi-radius) !important;
}

/* Login */
.login-shell {
    width: min(940px, calc(100vw - 32px)) !important;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px) !important;
    min-height: 520px !important;
    border-radius: 20px !important;
    box-shadow: 0 20px 54px rgba(7, 20, 34, .24) !important;
}

.login-hero,
.login-panel,
.login-form-card {
    padding: 28px !important;
}

.login-brand,
.login-brand-row {
    gap: 10px !important;
}

.login-logo,
.login-brand-mark {
    width: 42px !important;
    height: 42px !important;
    border-radius: 12px !important;
}

.login-kicker,
.login-pill,
.login-feature small {
    font-size: 10.5px !important;
    font-weight: 650 !important;
}

.login-hero-title,
.login-hero h1 {
    font-size: 25px !important;
    line-height: 1.14 !important;
    font-weight: 700 !important;
}

.login-card,
.login-form-card {
    border-radius: var(--ipgi-radius) !important;
    box-shadow: var(--ipgi-shadow) !important;
}

.login-form-card h2,
.login-panel h2 {
    font-size: 18px !important;
    font-weight: 700 !important;
}

/* Modais e confirmações */
.plx-modal-open {
    overflow: hidden !important;
}

.plx-modal-overlay,
.modal-overlay,
.erp-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
    background: rgba(11, 31, 54, .42) !important;
    backdrop-filter: blur(2px) !important;
    z-index: 9990 !important;
}

.plx-modal-dialog,
.modal-dialog,
.erp-modal-dialog {
    width: min(760px, calc(100vw - 36px)) !important;
    max-height: min(82vh, 720px) !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: 0 22px 70px rgba(11, 31, 54, .26) !important;
    overflow: hidden !important;
}

.plx-modal-dialog.is-sm,
.plx-modal-dialog.is-confirm,
.modal-dialog.is-sm,
.erp-modal-dialog.is-sm {
    width: min(440px, calc(100vw - 36px)) !important;
    max-height: 72vh !important;
}

.plx-modal-dialog.is-lg {
    width: min(980px, calc(100vw - 36px)) !important;
}

.plx-modal-dialog.is-xl {
    width: min(1180px, calc(100vw - 36px)) !important;
    max-height: 88vh !important;
}

.plx-modal-header,
.modal-header,
.erp-modal-header {
    min-height: 46px !important;
    padding: 10px 12px !important;
    border-bottom: 1px solid var(--ipgi-border-soft) !important;
}

.plx-modal-title,
.modal-title,
.erp-modal-title {
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--ipgi-title) !important;
}

.plx-modal-close,
.modal-close,
.erp-modal-close {
    width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    font-size: 18px !important;
}

.plx-modal-body,
.modal-body,
.erp-modal-body {
    padding: 12px !important;
    overflow: auto !important;
}

.plx-modal-body iframe {
    min-height: 60vh !important;
    border: 0 !important;
}

.plx-confirm-message {
    margin: 0 0 12px !important;
    color: var(--ipgi-text) !important;
    font-size: 13px !important;
    line-height: 1.38 !important;
}

.plx-confirm-message::before {
    content: "!";
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    margin: 0 8px 0 0;
    border-radius: 999px;
    background: #fff7ed;
    color: #b45309;
    font-size: 13px;
    font-weight: 700;
    vertical-align: middle;
}

.plx-confirm-actions {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    padding-top: 6px !important;
}

.plx-btn-confirm {
    background: var(--ipgi-danger) !important;
    border: 1px solid var(--ipgi-danger) !important;
    color: #fff !important;
}

/* Toasts */
.plx-toast-container {
    right: 14px !important;
    top: 14px !important;
    gap: 8px !important;
}

.plx-toast {
    width: min(360px, calc(100vw - 28px)) !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    box-shadow: 0 14px 36px rgba(11, 31, 54, .14) !important;
}

.plx-toast-title {
    font-size: 12px !important;
    font-weight: 700 !important;
}

.plx-toast-message {
    font-size: 12px !important;
}

/* Modo escuro mais leve */
html[data-theme="dark"] body {
    background: #0b1624 !important;
    color: #e5edf7 !important;
}

html[data-theme="dark"] .app-main,
html[data-theme="dark"] .MainContent,
html[data-theme="dark"] .main {
    background: transparent !important;
}

html[data-theme="dark"] .app-topbar,
html[data-theme="dark"] .topbar,
html[data-theme="dark"] .card,
html[data-theme="dark"] .planix-card,
html[data-theme="dark"] .home-page-head,
html[data-theme="dark"] .home-kpi,
html[data-theme="dark"] .home-analytics-card,
html[data-theme="dark"] .rh-hero,
html[data-theme="dark"] .rh-panel,
html[data-theme="dark"] .rh-kpi,
html[data-theme="dark"] .vale-hero,
html[data-theme="dark"] .vale-panel,
html[data-theme="dark"] .vale-kpi,
html[data-theme="dark"] .rel-hero,
html[data-theme="dark"] .rel-stat,
html[data-theme="dark"] .report-wizard-v68,
html[data-theme="dark"] .ct-card,
html[data-theme="dark"] .fin-card,
html[data-theme="dark"] .fpay-card,
html[data-theme="dark"] .med-card {
    background: #101f31 !important;
    border-color: rgba(148, 163, 184, .22) !important;
    color: #e5edf7 !important;
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] strong {
    color: #f8fafc !important;
}

html[data-theme="dark"] p,
html[data-theme="dark"] small,
html[data-theme="dark"] label {
    color: #a9b8c9 !important;
}

html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: #0c1726 !important;
    border-color: rgba(148, 163, 184, .25) !important;
    color: #f8fafc !important;
}

html[data-theme="dark"] th {
    background: #13243a !important;
    color: #cdd9e8 !important;
}

html[data-theme="dark"] td {
    border-bottom-color: rgba(148, 163, 184, .16) !important;
}

html[data-theme="dark"] tr:hover td {
    background: rgba(255, 255, 255, .025) !important;
}

/* Responsividade */
@media (max-width: 1180px) {
    .home-summary-grid,
    .home-kpi-grid,
    .rh-kpis,
    .vale-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 980px) {
    .app-shell,
    .app-layout {
        grid-template-columns: 1fr !important;
    }

    .app-sidebar,
    .AppSidebar,
    .sidebar {
        width: min(288px, 86vw) !important;
    }

    .app-main,
    .MainContent,
    .main {
        padding: 10px !important;
    }

    .home-summary-grid,
    .home-kpi-grid,
    .rh-kpis,
    .vale-kpis,
    .rel-dashboard {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .login-shell {
        grid-template-columns: 1fr !important;
        width: min(520px, calc(100vw - 24px)) !important;
        min-height: 0 !important;
    }
}

@media (max-width: 640px) {
    :root {
        --ipgi-content-pad-x: 8px;
        --ipgi-content-pad-y: 8px;
    }

    h1,
    .page-title,
    .home-page-title h1,
    .rel-hero h1 {
        font-size: 19px !important;
    }

    h2,
    .card-title,
    .rh-hero h2,
    .vale-hero h2 {
        font-size: 16px !important;
    }

    .home-summary-grid,
    .home-kpi-grid,
    .rh-kpis,
    .vale-kpis,
    .rel-dashboard {
        grid-template-columns: 1fr !important;
    }

    .home-page-head,
    .rh-hero,
    .vale-hero,
    .rel-hero,
    .planix-hero {
        grid-template-columns: 1fr !important;
    }

    .plx-modal-overlay {
        padding: 10px !important;
    }

    .plx-modal-dialog,
    .plx-modal-dialog.is-sm {
        width: calc(100vw - 20px) !important;
        max-height: calc(100vh - 20px) !important;
    }
}

/* Drawer de ações rápidas */
.quick-drawer {
    width: min(380px, calc(100vw - 28px)) !important;
    padding: 0 !important;
    border-radius: 14px 0 0 14px !important;
    box-shadow: -16px 0 44px rgba(11, 31, 54, .18) !important;
}

.quick-head {
    padding: 14px !important;
    border-bottom: 1px solid var(--ipgi-border-soft) !important;
}

.quick-head h3 {
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}

.quick-head p {
    margin: 3px 0 0 !important;
    font-size: 12px !important;
}

.quick-close {
    width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 !important;
    border-radius: 8px !important;
}

.quick-body {
    padding: 12px !important;
}

.quick-section {
    margin-bottom: 12px !important;
}

.quick-section > strong {
    font-size: 10.5px !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}

.quick-grid {
    gap: 6px !important;
}

.quick-grid a,
.quick-link {
    min-height: 34px !important;
    padding: 8px 9px !important;
    border-radius: 9px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

/* PDFs antigos que usam includes/layout.php */
.pdf-body {
    background: #e9eef4 !important;
    font-family: "Segoe UI", Arial, Helvetica, sans-serif !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    color: #102033 !important;
}

.pdf-a4 {
    width: 210mm !important;
    min-height: 297mm !important;
    padding: 8mm 10mm !important;
    background: #fff !important;
    box-shadow: none !important;
}

.pdf-premium-header {
    min-height: 22mm !important;
    padding: 5mm 6mm !important;
    margin-bottom: 5mm !important;
    border-radius: 0 !important;
}

.pdf-brand {
    gap: 4mm !important;
}

.pdf-logo,
.pdf-logo-fallback {
    width: auto !important;
    height: auto !important;
    max-width: 26mm !important;
    max-height: 16mm !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain !important;
}

.pdf-brand h1 {
    font-size: 11.2pt !important;
    line-height: 1.16 !important;
    font-weight: 750 !important;
}

.pdf-brand p,
.pdf-meta-top,
.pdf-footer {
    font-size: 7.6pt !important;
    font-weight: 500 !important;
}

.pdf-title-block {
    margin-bottom: 5mm !important;
}

.pdf-title-block h2 {
    font-size: 14pt !important;
    font-weight: 750 !important;
}

.pdf-info-grid {
    gap: 3.5mm !important;
    margin-bottom: 5mm !important;
}

.pdf-info-card {
    min-height: 11mm !important;
    padding: 2.6mm 3.2mm !important;
    border-radius: 8px !important;
}

.pdf-info-card small {
    font-size: 6.9pt !important;
    font-weight: 700 !important;
}

.pdf-info-card strong {
    font-size: 8.3pt !important;
    font-weight: 700 !important;
}

.pdf-section {
    margin-bottom: 5mm !important;
}

.pdf-section h3 {
    font-size: 9pt !important;
    font-weight: 700 !important;
}

.pdf-signatures {
    margin-top: 12mm !important;
}

@media print {
    .pdf-body { background: #fff !important; }
    .pdf-a4 { margin: 0 !important; box-shadow: none !important; }
}
