/* Shared portal/download responsive layout. Keep pinch zoom and normal page scrolling. */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
/* Keep the portal's existing responsive columns; allow long text to wrap inside them. */
.auth-screen, .auth-panel, .auth-portal-header, .auth-portal-footer {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.auth-panel h1, .auth-panel p, .auth-portal-brand {
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.main-content { min-width: 0; }
/* Clear obsolete decorative geometry inherited from the former two-panel portal. */
.auth-panel::before, .auth-panel::after {
  aspect-ratio: auto;
  border: 0;
  transform: none;
}
.auth-panel::after { width: auto; height: auto; }
/* Whiteboards have less usable height once their browser toolbar is visible.
   Compact the whole portal rather than clipping or scaling its login controls. */
@media (min-width: 821px) and (max-height: 900px), (min-width: 821px) and (max-width: 1400px) {
  .auth-screen { grid-template-rows: 64px minmax(0, 1fr) 32px; }
  .auth-portal-header, .auth-portal-footer { padding-left: 24px; padding-right: 24px; }
  .auth-panel { min-height: 0; padding: 18px 24px 16px; }
  .auth-panel::before { inset: auto; top: 0; left: 24px; width: 54px; height: 4px; }
  .auth-panel::after { top: 16px; right: 24px; font-size: 40px; }
  .auth-panel .brand-mark { width: 46px; height: 46px; margin: 16px 0 0; }
  .auth-panel .eyebrow { margin: 12px 0 6px; font-size: 11px; line-height: 1.4; }
  .auth-panel h1 { margin: 0; font-size: 28px; line-height: 1.16; }
  .auth-panel .auth-description { margin: 12px 0 0; font-size: 13px; line-height: 1.5; }
  .auth-panel .auth-form { margin-top: 14px; padding: 14px; gap: 8px; }
  .auth-panel .auth-form input { height: 38px; min-height: 38px; margin-top: 5px; padding: 8px 10px; }
  .auth-panel .password-field { margin-top: 5px; }
  .auth-panel .password-field input { margin-top: 0; padding-right: 40px; }
  .auth-panel .password-field .icon-button { min-height: 34px; width: 34px; }
  .auth-panel .auth-form .primary-button { min-height: 40px; margin-top: 0; padding: 8px 12px; white-space: normal; line-height: 1.3; }
  .auth-panel .form-error { min-height: 18px; margin: 6px 0; }
}
/* Older embedded browsers may not support clamp(); bounded fallbacks prevent inflated titles. */
@supports not (font-size: clamp(28px, 3.15vw, 44px)) {
  .auth-panel h1 { font-size: 32px; }
  .auth-panel { padding: 32px 24px; }
  .auth-portal-header, .auth-portal-footer { padding-left: 24px; padding-right: 24px; }
}
body.download-page {
  font-size: 16px;
  line-height: 1.7;
  padding: 24px;
  width: auto;
  min-width: 0;
}
.download-page *, .download-page *::before, .download-page *::after {
  box-sizing: border-box;
}
.download-page .download-panel {
  width: 100%;
  max-width: 920px;
  min-width: 0;
  margin: 20px auto;
  padding: 32px;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.download-panel h1 { font-size: 30px; line-height: 1.35; }
.download-panel h2 { font-size: 22px; line-height: 1.45; }
.download-panel p, .download-panel li, .download-panel a {
  white-space: normal;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.download-panel ol { padding-left: 24px; margin: 12px 0; }
.download-panel li { font-size: 16px; margin: 10px 0; }
.download-panel .download-link { max-width: 100%; font-size: 16px; }
#download-portable-hash { font-size: 13px; word-break: break-all; }
@media (max-width: 760px) {
  body.download-page { padding: 12px; }
  .download-page .download-panel { padding: 20px; margin: 8px auto; }
  .download-panel h1 { font-size: 25px; }
  .download-panel h2 { font-size: 20px; }
  .download-panel .download-guide { padding: 16px; }
}
