/* ============================================
   WealthPilot — Responsive Breakpoints
   Mobile: 375px, Tablet: 768px, Desktop: 1024px, Wide: 1440px
   ============================================ */

/* --- Tablet and below (< 1024px) --- */
@media (max-width: 1023px) {
  :root {
    --sidebar-width: 0px;
  }

  .sidebar {
    transform: translateX(-100%);
    transition: transform var(--transition-base);
    z-index: var(--z-modal);
  }

  .sidebar.open {
    transform: translateX(0);
  }

  .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: var(--color-overlay);
    z-index: calc(var(--z-modal) - 1);
  }

  .sidebar-overlay.open {
    display: block;
  }

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

  .hamburger {
    display: flex;
  }

  .dashboard-page {
    padding: var(--space-4);
  }

  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }

  h1 { font-size: var(--text-4xl); }
  h2 { font-size: var(--text-3xl); }
  h3 { font-size: var(--text-2xl); }

  .header-search { display: none; }

  .wizard-steps {
    flex-wrap: wrap;
    gap: var(--space-2);
  }

  .wizard-step-line {
    display: none;
  }

  .wizard-step-label {
    display: none;
  }

  /* Cookie banner stack */
  .cookie-banner {
    flex-direction: column;
    text-align: center;
  }
}

/* --- Mobile (< 768px) --- */
@media (max-width: 767px) {
  .container, .container-narrow {
    padding: 0 var(--space-4);
  }

  h1 { font-size: var(--text-3xl); }
  h2 { font-size: var(--text-2xl); }
  h3 { font-size: var(--text-xl); }

  .grid-2, .grid-3, .grid-4 {
    grid-template-columns: 1fr;
  }

  .dashboard-page {
    padding: var(--space-3);
  }

  .dashboard-page-title {
    font-size: var(--text-2xl);
  }

  .card {
    padding: var(--space-4);
  }

  .kpi-card-value {
    font-size: var(--text-xl);
  }

  /* Table horizontal scroll */
  .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .data-table {
    min-width: 600px;
  }

  /* Modal full-screen on mobile */
  .modal {
    max-width: 100%;
    max-height: 100vh;
    border-radius: 0;
    min-height: 100vh;
  }

  .modal-backdrop {
    padding: 0;
  }

  /* Tabs scroll */
  .tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .tab {
    padding: var(--space-2) var(--space-4);
  }

  /* Button stack on mobile */
  .btn-group-mobile {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
  }

  .btn-group-mobile .btn {
    width: 100%;
  }

  /* Toast wider on mobile */
  .toast-container {
    left: var(--space-4);
    right: var(--space-4);
    max-width: none;
  }

  /* Pagination compact */
  .pagination-btn {
    width: 32px;
    height: 32px;
    font-size: var(--text-xs);
  }

  .app-header {
    height: var(--header-height-mobile);
    padding: 0 var(--space-4);
  }

  /* Dropzone smaller */
  .dropzone {
    padding: var(--space-4);
  }

  /* Hide on mobile */
  .hide-mobile { display: none !important; }
}

/* --- Small mobile (< 375px) --- */
@media (max-width: 374px) {
  html { font-size: 14px; }

  .container, .container-narrow {
    padding: 0 var(--space-3);
  }

  h1 { font-size: var(--text-2xl); }

  .dashboard-page {
    padding: var(--space-2);
  }
}

/* --- Desktop+ (>= 1024px) --- */
@media (min-width: 1024px) {
  .hide-desktop { display: none !important; }

  .mobile-nav { display: none; }
}

/* --- Wide desktop (>= 1440px) --- */
@media (min-width: 1440px) {
  .dashboard-page {
    max-width: 1400px;
  }
}

/* --- Print --- */
@media print {
  .sidebar,
  .app-header,
  .cookie-banner,
  .toast-container,
  .btn,
  .hamburger,
  .notification-bell {
    display: none !important;
  }

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

  .dashboard-page {
    padding: 0;
    max-width: 100%;
  }

  body {
    color: #000;
    background: #fff;
  }

  .card {
    break-inside: avoid;
    box-shadow: none;
    border: 1px solid #ccc;
  }

  a::after {
    content: ' (' attr(href) ')';
    font-size: 0.8em;
    color: #666;
  }
}
