@media (min-width: 640px) {
  .ptx-grid-sm-2 { --ptx-grid-columns: 2; }
  .ptx-section { padding-block: var(--ptx-step-9); }
}

@media (min-width: 768px) {
  .ptx-grid-md-2 { --ptx-grid-columns: 2; }
  .ptx-grid-md-3 { --ptx-grid-columns: 3; }
}

@media (min-width: 1024px) {
  .ptx-grid-lg-2 { --ptx-grid-columns: 2; }
  .ptx-grid-lg-3 { --ptx-grid-columns: 3; }
  .ptx-grid-lg-4 { --ptx-grid-columns: 4; }
}

@media (max-width: 1023px) {
  .ptx-dashboard-shell {
    display: block;
  }

  .ptx-sidebar {
    position: static;
    padding: var(--ptx-step-4);
  }
}

@media (max-width: 767px) {
  .ptx-container,
  .ptx-container-sm,
  .ptx-container-md,
  .ptx-container-lg,
  .ptx-container-xl {
    width: min(100% - 32px, var(--ptx-container-lg));
  }

  .ptx-section {
    padding-block: var(--ptx-step-6);
  }

  .ptx-card,
  .ptx-stat-card,
  .ptx-empty-state {
    padding: var(--ptx-step-4);
  }

  .ptx-modal-overlay {
    align-items: end;
    padding: var(--ptx-step-3);
  }

  .ptx-modal {
    width: 100%;
    max-height: calc(100vh - 24px);
    border-radius: var(--ptx-radius-xl) var(--ptx-radius-xl) var(--ptx-radius-md) var(--ptx-radius-md);
  }

  .ptx-modal-header,
  .ptx-modal-body,
  .ptx-modal-footer {
    padding: var(--ptx-step-4);
  }

  .ptx-modal-footer {
    flex-direction: column-reverse;
  }

  .ptx-modal-footer .ptx-btn,
  .ptx-modal-footer .ptx-btn-primary,
  .ptx-modal-footer .ptx-btn-secondary,
  .ptx-modal-footer .ptx-btn-outline,
  .ptx-modal-footer .ptx-btn-danger {
    width: 100%;
  }

  .ptx-table-responsive-card,
  .ptx-table-responsive-card thead,
  .ptx-table-responsive-card tbody,
  .ptx-table-responsive-card th,
  .ptx-table-responsive-card td,
  .ptx-table-responsive-card tr {
    display: block;
  }

  .ptx-table-responsive-card thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }

  .ptx-table-responsive-card tr {
    border-bottom: 1px solid var(--ptx-line);
    padding: var(--ptx-step-3);
  }

  .ptx-table-responsive-card td {
    display: flex;
    justify-content: space-between;
    gap: var(--ptx-step-4);
    border-bottom: 0;
    padding: var(--ptx-step-2) 0;
    text-align: right;
  }

  .ptx-table-responsive-card td::before {
    content: attr(data-label);
    color: var(--ptx-muted);
    font-weight: 900;
    text-align: left;
  }
}

@media (max-width: 480px) {
  .ptx-btn,
  .ptx-btn-primary,
  .ptx-btn-secondary,
  .ptx-btn-outline,
  .ptx-btn-danger {
    width: 100%;
  }

  .ptx-cluster {
    align-items: stretch;
  }

  .ptx-nav {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ptx-btn,
  .ptx-btn-primary,
  .ptx-btn-secondary,
  .ptx-btn-outline,
  .ptx-btn-danger,
  .ptx-form-control,
  .ptx-select,
  .ptx-textarea,
  .ptx-nav-link {
    transition-duration: 1ms;
  }

  .ptx-loading::after {
    animation-duration: 1ms;
  }
}
