/* ============================================================
   responsive.css — Media Queries for All Breakpoints
   ============================================================ */

/* --- Desktop: 1200px+ ------------------------------------- */
/* (Default styles apply — no overrides needed) */

/* --- Laptop: 992px - 1199px ------------------------------- */
@media screen and (max-width: 1199px) {
  :root {
    --sidebar-width: 220px;
  }

  .main {
    padding: var(--space-xl);
  }

  /* Executive header */
  .exec-header__title {
    font-size: 1.5rem;
  }

  /* Filter toolbar */
  .filter-chip {
    min-width: 130px;
  }

  /* KPI grid */
  .kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Viz grid: 3 cols → 2 cols */
  .viz-grid--mixed {
    grid-template-columns: repeat(2, 1fr);
  }

  .viz-card--wide {
    grid-column: 1 / -1;
  }

  /* Detailed analysis */
  .detail-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* --- Tablet: 768px - 991px -------------------------------- */
@media screen and (max-width: 991px) {
  .navbar__toggle {
    display: flex;
  }

  .sidebar {
    transform: translateX(-100%);
  }

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

  .main {
    margin-left: 0;
    padding: var(--space-lg);
  }

  /* Executive header */
  .exec-header {
    padding: var(--space-lg);
  }

  .exec-header__title {
    font-size: 1.35rem;
  }

  /* Filter toolbar */
  .filter-toolbar {
    flex-direction: column;
    gap: var(--space-sm);
  }

  .filter-toolbar__chips {
    width: 100%;
  }

  .filter-chip {
    min-width: 0;
    flex: 1 1 calc(50% - var(--space-sm));
  }

  .filter-toolbar__reset {
    align-self: flex-start;
  }

  /* KPI grid */
  .kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Viz grid */
  .viz-grid--mixed {
    grid-template-columns: 1fr;
  }

  .viz-card--wide {
    grid-column: 1;
  }

  /* Insight panel */
  .insight-panel {
    grid-template-columns: 1fr;
    padding: var(--space-lg);
  }

  /* Detailed analysis */
  .detail-grid {
    grid-template-columns: 1fr 1fr;
  }

  /* Sidebar overlay */
  .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 85;
  }

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

/* --- Mobile: 480px - 767px -------------------------------- */
@media screen and (max-width: 767px) {
  :root {
    --navbar-height: 56px;
  }

  .navbar {
    padding: 0 var(--space-md);
  }

  .navbar__title {
    font-size: var(--font-size-sm);
  }

  .navbar__subtitle {
    display: none;
  }

  .navbar__actions {
    gap: var(--space-xs);
  }

  .main {
    padding: var(--space-md);
    margin-top: var(--navbar-height);
  }

  /* Executive header */
  .exec-header {
    padding: var(--space-md);
  }

  .exec-header__title {
    font-size: 1.15rem;
  }

  .exec-header__desc {
    font-size: var(--font-size-xs);
  }

  .exec-header__meta {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-sm);
  }

  /* Filter toolbar */
  .filter-toolbar__chips {
    flex-direction: column;
  }

  .filter-chip {
    flex: 1;
    width: 100%;
  }

  /* KPI grid */
  .kpi-grid {
    grid-template-columns: 1fr;
  }

  /* Viz grid */
  .viz-grid--mixed {
    grid-template-columns: 1fr;
  }

  .viz-card {
    min-height: 280px;
  }

  /* Insight panel */
  .insight-panel {
    grid-template-columns: 1fr;
    padding: var(--space-md);
    gap: var(--space-md);
  }

  .insight-panel__title {
    font-size: var(--font-size-md);
  }

  .insight-panel__insights {
    gap: var(--space-sm);
  }

  .insight-item {
    padding: var(--space-sm);
  }

  /* Detailed analysis */
  .detail-grid {
    grid-template-columns: 1fr;
  }

  /* Section spacing */
  .section {
    margin-bottom: var(--space-lg);
  }
}

/* --- Small Mobile: < 480px -------------------------------- */
@media screen and (max-width: 479px) {
  .navbar__logo {
    width: 30px;
    height: 30px;
    font-size: var(--font-size-sm);
  }

  .navbar__actions {
    gap: var(--space-xs);
  }

  .navbar__icon-btn {
    width: 34px;
    height: 34px;
    font-size: var(--font-size-sm);
  }

  .navbar__avatar {
    width: 30px;
    height: 30px;
    font-size: 0.625rem;
  }

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

  .kpi-card__value {
    font-size: var(--font-size-xl);
  }

  .kpi-card__icon {
    width: 36px;
    height: 36px;
    font-size: var(--font-size-md);
  }

  .exec-header__title {
    font-size: 1rem;
  }

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