/* ============================================================
   EPSPilot AI — Utilities
   ============================================================ */

.hidden { display: none !important; }
.invisible { visibility: hidden; }
.block { display: block; }
.inline-block { display: inline-block; }
.inline-flex { display: inline-flex; }

.w-full { width: 100%; }
.h-full { height: 100%; }
.max-w-lg { max-width: 800px; }

.mt-1 { margin-top: var(--space-1); }
.mt-2 { margin-top: var(--space-2); }
.mt-3 { margin-top: var(--space-3); }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mt-8 { margin-top: var(--space-8); }

.mb-1 { margin-bottom: var(--space-1); }
.mb-2 { margin-bottom: var(--space-2); }
.mb-3 { margin-bottom: var(--space-3); }
.mb-4 { margin-bottom: var(--space-4); }
.mb-6 { margin-bottom: var(--space-6); }
.mb-8 { margin-bottom: var(--space-8); }

.p-4 { padding: var(--space-4); }
.p-6 { padding: var(--space-6); }
.px-4 { padding-left: var(--space-4); padding-right: var(--space-4); }
.py-4 { padding-top: var(--space-4); padding-bottom: var(--space-4); }

.text-center { text-align: center; }
.text-right  { text-align: right; }
.text-left   { text-align: left; }

.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cursor-pointer { cursor: pointer; }
.no-select { user-select: none; }

.rounded-lg { border-radius: var(--radius-lg); }
.rounded-xl { border-radius: var(--radius-xl); }
.rounded-full { border-radius: var(--radius-full); }

.border { border: 1px solid var(--color-border); }
.border-b { border-bottom: 1px solid var(--color-border); }

.bg-surface { background: var(--color-surface); }
.bg-surface-alt { background: var(--color-surface-alt); }

.overflow-x-auto { overflow-x: auto; }
.overflow-hidden { overflow: hidden; }

/* ---- Print styles ---- */
@media print {
  .sidebar,
  .mobile-header,
  .demo-badge,
  .toast-container,
  .sidebar-overlay,
  .btn,
  .forecast-controls,
  .ai-question-box {
    display: none !important;
  }

  .main-content {
    margin-left: 0;
  }

  body {
    background: white;
    color: black;
  }

  .card,
  .chart-container,
  .table-container {
    break-inside: avoid;
    box-shadow: none;
    border: 1px solid #ddd;
  }

  .main-footer__disclaimer {
    color: #666;
  }
}
