/* Shared mobile / responsive support for all done/ pages */

html,
body {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

img,
video,
svg {
  max-width: 100%;
  height: auto;
}

/* ── Tablet and below ─────────────────────────────────────── */

@media (max-width: 900px) {
  html,
  body {
    overflow-x: hidden;
    overflow-y: auto;
    height: auto;
    min-height: 100dvh;
  }

  .header {
    top: calc(16px + env(safe-area-inset-top, 0px)) !important;
    left: calc(12px + env(safe-area-inset-left, 0px)) !important;
    right: calc(16px + env(safe-area-inset-right, 0px)) !important;
  }

  .header-logo svg {
    width: 72px;
    height: auto;
  }

  /* Select device — stack vertically */
  .page:has(.grid) {
    height: auto;
    min-height: 100dvh;
    overflow-y: auto;
  }

  .page:has(.grid) .header {
    position: sticky;
    top: 0;
    z-index: 10;
    padding: calc(16px + env(safe-area-inset-top, 0px)) 16px 12px !important;
    background: rgba(0, 0, 0, 0.92);
    backdrop-filter: blur(12px);
  }

  .page:has(.grid) .title {
    white-space: normal;
    font-size: clamp(22px, 7vw, 32px);
    margin-top: 20px;
    padding: 0 20px;
  }

  .page:has(.grid) .grid {
    flex-direction: column;
    flex: none;
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  }

  .page:has(.grid) .col {
    flex: none;
    min-height: 220px;
    border-left: none !important;
    border-right: none !important;
    border-top: 1px solid #191919;
  }

  .page:has(.grid) .col:first-child {
    border-top: none;
  }

  .page:has(.grid) .col:hover {
    background: #000;
  }

  .page:has(.grid) .illus {
    height: 160px;
  }

  .page:has(.grid) .illus img {
    width: 140px;
    height: 140px;
    max-width: 140px;
    max-height: 140px;
  }

  .page:has(.grid) .label {
    margin-top: 16px;
    height: auto;
    font-size: 20px;
    padding: 0 12px;
  }

  .page:has(.grid) .select-btn {
    opacity: 1;
    pointer-events: auto;
    margin-top: 20px;
    margin-bottom: 8px;
  }

  /* Connect pages */
  #connect-page,
  .page:has(.connect-stage) {
    height: auto;
    min-height: 100dvh;
    overflow-y: auto;
    justify-content: flex-start !important;
    align-items: stretch !important;
  }

  .connect-stage {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: calc(72px + env(safe-area-inset-top, 0px)) 20px calc(88px + env(safe-area-inset-bottom, 0px)) !important;
    max-width: 100% !important;
    width: 100%;
  }

  #connect-title {
    font-size: clamp(17px, 4.8vw, 22px) !important;
    max-width: 100% !important;
    padding: 0 4px;
  }

  #lottie {
    max-width: min(100%, 300px) !important;
    min-height: 200px !important;
  }

  #progress-wrap,
  .progress-stage {
    max-width: 100% !important;
    width: 100%;
  }

  .progress-inline {
    gap: 8px;
  }

  .progress-sublog {
    max-width: 44% !important;
    font-size: 9px !important;
  }

  .help-footer {
    position: relative !important;
    bottom: auto !important;
    flex-shrink: 0;
    width: 100%;
    margin-top: auto;
    padding: 16px 20px calc(20px + env(safe-area-inset-bottom, 0px));
  }

  .btn-main {
    min-width: 0 !important;
    width: 100%;
    max-width: 320px;
  }

  /* Seed page */
  .seed-page {
    height: auto;
    min-height: 100dvh;
    overflow-y: auto;
  }

  .seed-layout {
    padding-top: calc(64px + env(safe-area-inset-top, 0px));
  }

  .seed-form {
    padding: 20px 16px calc(24px + env(safe-area-inset-bottom, 0px));
  }

  .seed-title {
    font-size: clamp(20px, 6vw, 28px);
  }

  /* Landing page */
  html:has(.ll-welcome-page),
  body:has(.ll-welcome-page) {
    overflow: auto;
    height: auto;
    min-height: 100dvh;
  }

  .ll-welcome-page {
    min-height: 100dvh;
    height: auto;
  }

  .ll-welcome-overlay {
    min-height: 100dvh;
  }

  .ll-welcome-top,
  .ll-welcome-bottom {
    padding: calc(24px + env(safe-area-inset-top, 0px)) 20px 24px !important;
  }

  .ll-welcome-bottom {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .ll-welcome-lang {
    top: calc(16px + env(safe-area-inset-top, 0px));
    left: calc(12px + env(safe-area-inset-left, 0px));
  }

  .ll-welcome-title {
    font-size: clamp(18px, 5.5vw, 24px);
    max-width: 100%;
    padding: 0 4px;
  }

  .ll-welcome-progress {
    width: min(300px, calc(100vw - 48px));
  }

  .ll-welcome-actions {
    width: 100%;
    max-width: 320px;
  }

  .ll-btn {
    min-width: 0;
    width: 100%;
  }

  .ll-welcome-notice {
    max-width: 100%;
    font-size: 11px;
    padding: 0 4px;
  }

  /* Connection modal */
  .connection-success-modal {
    padding: 16px;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    align-items: center;
  }

  .connection-success-modal__card {
    max-height: calc(100dvh - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .connection-success-modal__title {
    font-size: 20px;
  }

  /* Language menu */
  .lang-menu {
    min-width: 200px;
    max-width: calc(100vw - 32px);
  }

  /* Shop index */
  #__next {
    overflow-x: hidden;
    max-width: 100vw;
  }

  .loading-modal {
    min-width: 0 !important;
    width: calc(100vw - 48px) !important;
    max-width: 360px;
    box-sizing: border-box;
  }
}

/* ── Phone ────────────────────────────────────────────────── */

@media (max-width: 520px) {
  .connect-stage {
    padding-top: calc(64px + env(safe-area-inset-top, 0px)) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  #lottie {
    max-width: min(100%, 260px) !important;
    min-height: 180px !important;
  }

  .progress-sublog {
    display: none;
  }

  .progress-inline {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .words-container.active {
    grid-template-columns: 1fr;
  }

  .seed-submit,
  .btn-main {
    width: 100%;
    max-width: none;
  }

  .seed-tabs {
    flex-wrap: wrap;
  }

  .seed-tab {
    flex: 1 1 calc(33.333% - 6px);
    min-width: 0;
    padding: 10px 8px;
    font-size: 12px;
  }

  .connection-success-modal {
    padding: 0;
    align-items: flex-end;
  }

  .connection-success-modal__card {
    border-radius: 20px 20px 0 0;
    max-width: 100%;
    max-height: 92dvh;
    padding: 16px 16px calc(20px + env(safe-area-inset-bottom, 0px));
  }

  .connection-success-modal__hero-wrap {
    margin-bottom: 16px;
  }

  .connection-success-modal__features {
    gap: 12px;
    margin-bottom: 20px;
  }

  .page:has(.grid) .col {
    min-height: 200px;
  }

  .page:has(.grid) .label {
    font-size: 18px;
  }

  .lang-menu__item {
    padding: 14px 16px;
    font-size: 15px;
  }
}

/* ── Very small screens ───────────────────────────────────── */

@media (max-width: 360px) {
  .ll-welcome-logo img {
    width: 120px;
    height: auto;
  }

  .header-logo svg {
    width: 64px;
  }

  .btn-nav {
    padding: 6px 8px;
    font-size: 13px;
  }
}
