/**
 * VLRS — Professional global shell (all devices)
 * Load after rs-design-tokens.css and page-specific stylesheets.
 * Tightens gutters, safe areas, typography rhythm, and card chrome.
 */

/* —— Marketing / legal —— */
.rs-legal-main {
  max-width: var(--rs-content-max-wide);
  padding-left: max(var(--rs-gutter-lg), env(safe-area-inset-left));
  padding-right: max(var(--rs-gutter-lg), env(safe-area-inset-right));
}

.rs-legal-hero h1 {
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: manual;
}

.rs-landing-main {
  padding-left: max(var(--rs-gutter), env(safe-area-inset-left));
  padding-right: max(var(--rs-gutter), env(safe-area-inset-right));
}

.rs-legal-content {
  border-radius: var(--rs-radius-xl);
}

@media (max-width: 480px) {
  .rs-legal-main {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }

  .rs-legal-hero h1 {
    font-size: clamp(1.35rem, 5vw + 0.5rem, 1.85rem);
  }

  .rs-about-lead,
  .rs-contact-lead {
    font-size: 0.92rem;
    padding-left: 0;
    padding-right: 0;
  }
}

/* —— Auth (login / signup / password flows) —— */
.auth-shell {
  padding-left: max(var(--rs-gutter), env(safe-area-inset-left));
  padding-right: max(var(--rs-gutter), env(safe-area-inset-right));
}

.auth-card {
  border-radius: var(--rs-radius-xl);
  box-shadow:
    0 1px 3px rgba(12, 10, 9, 0.04),
    0 20px 50px -12px rgba(12, 10, 9, 0.14);
  border-color: rgba(15, 23, 42, 0.06);
}

.auth-card h1 {
  line-height: 1.2;
}

@media (max-width: 420px) {
  .auth-shell {
    padding-top: clamp(12px, 4vw, 20px);
    padding-bottom: max(20px, env(safe-area-inset-bottom));
  }

  .auth-card {
    padding: 22px 16px;
    border-radius: var(--rs-radius-lg);
  }

  .auth-card h1 {
    font-size: clamp(1.15rem, 4vw, 1.35rem);
  }

  .auth-topbar {
    padding-left: max(10px, env(safe-area-inset-left));
    padding-right: max(10px, env(safe-area-inset-right));
  }
}

/* —— Dashboard app —— */
body.rs-body .rs-main {
  padding-left: max(var(--rs-gutter), env(safe-area-inset-left));
  padding-right: max(var(--rs-gutter), env(safe-area-inset-right));
}

.rs-page-title {
  overflow-wrap: anywhere;
}

.rs-page-sub {
  max-width: 62ch;
}

@media (min-width: 1024px) {
  body.rs-body .rs-main {
    padding-left: max(var(--rs-gutter-lg), env(safe-area-inset-left));
    padding-right: max(var(--rs-gutter-lg), env(safe-area-inset-right));
  }
}

/* —— Exam / test attempt —— */
.exam-main {
  padding-left: max(var(--rs-gutter), env(safe-area-inset-left));
  padding-right: max(var(--rs-gutter), env(safe-area-inset-right));
}

.exam-question-panel {
  border-radius: var(--rs-radius-xl);
}

.exam-topbar {
  flex-wrap: wrap;
  row-gap: 8px;
}

@media (max-width: 400px) {
  .exam-timer-wrap {
    font-size: clamp(0.95rem, 4vw, 1.1rem);
    padding: 6px 10px;
  }

  .exam-btn-submit-top {
    padding: 10px 14px;
    font-size: 0.8rem;
  }
}

/* —— Admin panel —— */
.ap-body .ap-shell {
  padding-left: max(var(--rs-gutter), env(safe-area-inset-left));
  padding-right: max(var(--rs-gutter), env(safe-area-inset-right));
}

/* —— Error pages —— */
.err-page .err-shell {
  padding-left: max(var(--rs-gutter), env(safe-area-inset-left));
  padding-right: max(var(--rs-gutter), env(safe-area-inset-right));
}
