*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
}

input,
textarea,
select,
button {
  max-width: 100%;
}

.container,
.dashboard-container,
.auth-card,
.premium-card,
.policy-page .container {
  max-width: min(1180px, calc(100vw - 24px));
}

@media (min-width: 1600px) {
  .container,
  .dashboard-container {
    max-width: min(1440px, calc(100vw - 80px));
  }

  body {
    font-size: 18px;
  }
}

@media (min-width: 2100px) {
  .container,
  .dashboard-container {
    max-width: min(1760px, calc(100vw - 140px));
  }
}

@media (max-width: 1100px) {
  nav,
  .navbar .container,
  .dashboard-header,
  .hero,
  .pricing-section,
  .features-grid,
  .dashboard-grid,
  .main-content {
    grid-template-columns: 1fr !important;
    flex-wrap: wrap;
  }

  .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .nav-links a {
    margin-left: 0 !important;
  }
}

@media (max-width: 820px) {
  nav,
  .navbar .container {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 14px;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .nav-links,
  .tabs,
  .tab-buttons,
  .button-row,
  .form-actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .nav-links a,
  .tabs button,
  .tab-buttons button,
  .button-row button,
  .form-actions button {
    width: 100%;
    min-height: 44px;
    text-align: center;
  }

  .auth-card,
  .card,
  .panel,
  .premium-card {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .container,
  .dashboard-container,
  .auth-card,
  .premium-card,
  .policy-page .container {
    max-width: min(100vw - 16px, 1180px);
  }

  h1 {
    font-size: clamp(2rem, 12vw, 3.2rem) !important;
    line-height: 1.08 !important;
  }

  h2 {
    font-size: clamp(1.45rem, 8vw, 2.2rem) !important;
  }

  .nav-links,
  .tabs,
  .tab-buttons,
  .button-row,
  .form-actions {
    grid-template-columns: 1fr;
  }

  input,
  textarea,
  select,
  button {
    min-height: 44px;
  }
}
