/* V1.6 RC1 responsive and accessibility hardening. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

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

.shell,
.app,
.content-layout,
main,
.view,
.grid,
.panel,
.hero,
.hero-copy,
.media-panel,
.tools,
.tool,
.account-split,
.account-card,
.pdf-workbench,
.pdf-tools-local,
.pdf-local-card,
.pdf-file-summary,
.pdf-result-card,
.market-grid,
.market-card,
.provider-grid,
.provider-card,
.rate-board,
.rate-scroll,
.stock-search,
#stockResult,
.chat,
.modal-card {
  min-width: 0;
}

button,
a,
input,
select,
textarea {
  overflow-wrap: anywhere;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role='button']:focus-visible {
  outline: 3px solid rgba(11, 103, 178, .35);
  outline-offset: 3px;
}

.pdf-tool-tabs,
.mode-tabs {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.pdf-tool-tabs > *,
.mode-tabs > * {
  flex: 0 0 auto;
}

.pdf-dropzone,
.pdf-upload-row,
.pdf-action-row,
.pdf-result-actions,
.pdf-result-name,
.super-compress-actions,
.upload-actions,
.modal-actions,
.data-actions,
.source-strip,
.hs-meta {
  max-width: 100%;
  flex-wrap: wrap;
}

.pdf-result-name {
  display: flex;
  gap: 10px;
  align-items: stretch;
}

.pdf-result-name .field {
  flex: 1 1 260px;
}

.pdf-result-actions > *,
.pdf-action-row > *,
.pdf-upload-row > *,
.super-compress-actions > *,
.upload-actions > * {
  max-width: 100%;
}

.pdf-preview-item,
.file-row,
.selected-file,
.row,
.audit-line {
  min-width: 0;
}

.pdf-preview-item small,
.file-row small,
.selected-file small,
.row small,
.audit-line span,
.hs-card,
.market-card,
.provider-card,
.account-card,
.news-card,
.learning-card {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.rate-scroll,
.stock-table,
#stockResult > div[style*='overflow'] {
  max-width: 100%;
}

.modal {
  overflow-y: auto;
  overscroll-behavior: contain;
}

.modal-card {
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
}

.toast {
  overflow-wrap: anywhere;
}

#mobileMoreBtn,
#mobileMoreMenu {
  display: none;
}

.mobile-more-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.mobile-more-grid button {
  min-height: 92px;
  padding: 14px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f7fbff;
  color: var(--deep);
  font-weight: 800;
}

.mobile-more-grid i,
.mobile-more-grid span {
  display: block;
}

.mobile-more-grid i {
  margin-bottom: 5px;
  color: var(--green);
  font: 800 1.25rem/1 Arial, sans-serif;
}

@media (max-width: 1050px) {
  .top {
    align-items: flex-start;
  }

  .top-actions {
    min-width: 0;
  }

  .account-split,
  .msds-grid {
    grid-template-columns: 1fr;
  }

  .pdf-compress-levels {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  body {
    padding-bottom: env(safe-area-inset-bottom);
  }

  body.mobile-menu-open {
    overflow: hidden;
  }

  .top {
    padding-top: max(10px, env(safe-area-inset-top));
  }

  .brand,
  .brand b,
  .brand-title-text {
    width: 100%;
    min-width: 0;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  .top-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .top-actions button,
  .top-actions a {
    width: 100%;
    min-width: 0;
  }

  .hero-copy {
    padding: 28px 18px;
  }

  .hero h1 {
    font-size: clamp(2rem, 11vw, 2.8rem);
  }

  .tools,
  .learning-grid,
  .news-grid,
  .market-grid,
  .provider-grid,
  .account-split,
  .msds-grid {
    grid-template-columns: 1fr;
  }

  .tool {
    min-height: auto;
  }

  .panel,
  .account-card,
  .market-card,
  .provider-card {
    padding: 18px;
  }

  .quick,
  .stock-search {
    grid-template-columns: minmax(0, 1fr);
  }

  .quick button,
  .stock-search button {
    width: 100%;
  }

  .pdf-tool-tabs,
  .mode-tabs {
    display: flex;
    gap: 8px;
    padding-bottom: 6px;
  }

  .pdf-tool-tabs button,
  .mode-tabs button {
    min-width: 142px;
  }

  .pdf-upload-row,
  .pdf-action-row,
  .pdf-result-actions,
  .super-compress-actions,
  .upload-actions,
  .modal-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .pdf-upload-row > *,
  .pdf-action-row > *,
  .pdf-result-actions > *,
  .super-compress-actions > *,
  .upload-actions > *,
  .modal-actions > * {
    width: 100%;
  }

  .pdf-result-name {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .pdf-preview-item {
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  }

  .file-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .row {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .row > :last-child:not(:nth-child(2)) {
    grid-column: 2;
    justify-self: start;
  }

  .audit-line {
    grid-template-columns: minmax(90px, auto) minmax(0, 1fr);
  }

  .rate-head,
  .section-head,
  .storage-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .bottom {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    padding-bottom: max(6px, env(safe-area-inset-bottom));
  }

  #mobileMoreBtn {
    display: block;
  }

  #mobileMoreMenu:not(.hidden) {
    display: grid;
  }

  .mobile-more-card {
    margin: auto 0;
  }

  .mobile-more-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .modal {
    align-items: start;
    padding: max(12px, env(safe-area-inset-top)) 12px 12px;
  }

  .modal-card {
    width: 100%;
    max-height: calc(100dvh - max(24px, env(safe-area-inset-top)));
    padding: 20px 16px;
  }

  .toast {
    bottom: calc(74px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 390px) {
  .top-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .tools {
    grid-template-columns: minmax(0, 1fr);
  }

  .bottom button {
    font-size: .58rem;
  }

  .bottom i {
    font-size: 17px;
  }

  .mobile-more-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .mobile-more-grid button {
    min-height: 68px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
