:root {
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-6: 24px;
    --space-8: 32px;
    --space-12: 48px;
    --text-xs: 12px;
    --text-sm: 14px;
    --text-base: 16px;
    --text-lg: 20px;
    --text-xl: 24px;
    --text-2xl: 32px;
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --color-bg: #f4f6fb;
    --color-surface: #ffffff;
    --color-text-primary: #1a202c;
    --color-text-secondary: #4a5568;
    --color-text-muted: #718096;
    --color-border: #e2e8f0;
    --color-border-strong: #cbd5e0;
    --color-accent: #2b6cb0;
    --color-accent-strong: #1e4e8c;
    --color-accent-soft: #ebf4ff;
    --color-success: #2f855a;
    --color-success-soft: #f0fff4;
    --color-danger: #c53030;
    --color-danger-soft: #fff5f5;
    --color-warn: #b7791f;
    --color-warn-soft: #fffaf0;
    --color-pradogold: #b07a2b;
    --color-pradogold-soft: #fff5e6;
    --color-condo: #2c7a7b;
    --color-condo-soft: #e6fffa;
    --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
    --shadow-md: 0 6px 18px rgba(15, 23, 42, 0.08);
    --shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.12);
}

:root {
  --ui-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ui-font-heading: var(--ui-font-body);

  --ui-primary: var(--color-pradogold);   /* default; projects may override */
  --ui-primary-soft: var(--color-pradogold-soft);

  --ui-surface: var(--color-surface);
  --ui-bg: var(--color-bg);
  --ui-text-primary: var(--color-text-primary);
  --ui-text-secondary: var(--color-text-secondary);
  --ui-text-muted: var(--color-text-muted);
  --ui-border: var(--color-border);
  --ui-border-strong: var(--color-border-strong);

  --ui-label-color: var(--color-text-secondary);
  --ui-heading-color: var(--color-text-primary);
  --ui-table-header-bg: #f7fafc;
  --ui-table-header-color: var(--color-text-secondary);

  --ui-success: var(--color-success);
  --ui-success-soft: var(--color-success-soft);
  --ui-danger: var(--color-danger);
  --ui-danger-soft: var(--color-danger-soft);
  --ui-warn: var(--color-warn);
  --ui-warn-soft: var(--color-warn-soft);
}

body {
    font-family: var(--bs-body-font-family, var(--ui-font-body));
    color: var(--bs-body-color, var(--ui-text-primary));
    background-color: var(--bs-body-bg, var(--ui-bg));
}

.iq-banner .iq-navbar-header .iq-container h1,
.iq-banner .iq-navbar-header .iq-container p {
    color: var(--ui-heading-color);
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.75);
}

.ui-required {
    color: var(--ui-danger);
}

.form-control.ui-readonly-field {
    background-color: var(--ui-bg);
}

.ui-balance--balanced {
    color: var(--ui-success);
}

.ui-balance--unbalanced {
    color: var(--ui-danger);
}

.ui-empty-state {
    text-align: center;
    padding: var(--space-12) var(--space-4);
}

.ui-empty-state__icon {
    display: block;
    margin: 0 auto var(--space-4);
    color: var(--ui-text-muted);
}

.ui-empty-state__title {
    margin-bottom: var(--space-2);
    font-size: var(--text-lg);
    font-weight: 600;
}

.ui-empty-state__text {
    margin-bottom: var(--space-6);
    color: var(--ui-text-muted);
    font-size: var(--text-sm);
}
/* ===== Reportes Contables — reglas de impresion =====
   Aplicadas a todas las paginas (?view=balance, ?view=resultados,
   ?view=cambios_patrimonio, ?view=flujos_efectivo). Las clases
   .print-hide dentro del contenido marcan los controles que NO deben
   aparecer al imprimir (selector de periodo, boton Imprimir).
*/
@media print {
    body {
        background: #fff !important;
        color: #000 !important;
    }
    .navbar,
    .sidebar,
    .sidebar.sidebar-default,
    aside.sidebar,
    nav.iq-navbar,
    .breadcrumb,
    .footer,
    .print-hide {
        display: none !important;
    }
    .main-content {
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
    }
    .iq-banner,
    .iq-navbar-header {
        height: auto !important;
        background: transparent !important;
    }
    .iq-navbar-header .iq-header-img {
        display: none !important;
    }
    .container-fluid,
    .content-inner {
        padding: 0 !important;
        margin: 0 !important;
    }
    .card {
        border: 1px solid #999 !important;
        box-shadow: none !important;
        page-break-inside: avoid;
    }
    table {
        page-break-inside: auto;
        border-collapse: collapse !important;
        width: 100% !important;
    }
    tr,
    td,
    th {
        page-break-inside: avoid;
        background: transparent !important;
    }
    thead {
        display: table-header-group;
    }
    h1 {
        font-size: 18pt !important;
    }
    h4,
    .card-title {
        font-size: 13pt !important;
    }
    .text-end,
    table td.text-end,
    table th.text-end {
        text-align: right !important;
    }
    a {
        color: #000 !important;
        text-decoration: none !important;
    }
}