/* Shared frame rules: borders stay fixed; only the inner grid adapts. */
.panel, .cart-panel, .profile-panel, .cat, #editor, .admin-row-primary > .category-nav {
  border-width: 1px;
  border-style: solid;
}

@media (min-width: 1100px) and (min-aspect-ratio: 16/9) {
  .app-shell { width: min(1680px, calc(100vw - 48px)); }
  .admin-shell { width: min(1680px, calc(100vw - 48px)); }
  .catalog { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1100px) and (min-aspect-ratio: 21/10) {
  .app-shell { width: min(1900px, calc(100vw - 48px)); }
  .admin-shell { width: min(1900px, calc(100vw - 48px)); }
  .catalog { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-content { grid-template-columns: minmax(0, 1.7fr) minmax(360px, .9fr); }
}

@media (min-width: 1100px) and (min-aspect-ratio: 21/9) {
  .app-shell { width: min(2260px, calc(100vw - 48px)); }
  .admin-shell { width: min(2260px, calc(100vw - 48px)); }
  .catalog { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
