html {
  background: #09090b;
  -webkit-text-size-adjust: 100%;
}

body {
  min-width: 320px;
  min-height: 100svh;
  background: #09090b;
  color: #e4e4e7;
  overflow-x: hidden;
  touch-action: manipulation;
}

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

input,
select,
textarea,
button {
  font: inherit;
}

input,
select,
textarea {
  font-size: 16px;
}

button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}

.pwa-safe-screen {
  min-height: 100svh;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}

.install-app-button {
  display: none;
}

.install-app-button.is-visible {
  display: inline-flex;
}

@media (display-mode: standalone) {
  html,
  body {
    min-height: 100dvh;
  }

  .browser-only {
    display: none !important;
  }
}

@media (max-width: 1024px) {
  body > main.container,
  body > .container,
  main.container {
    width: 100%;
    max-width: none;
  }

  table {
    min-width: 720px;
  }

  .overflow-x-auto,
  .table-wrap {
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 768px) {
  body {
    font-size: 15px;
  }

  h1,
  .text-4xl,
  .text-5xl,
  .text-6xl {
    line-height: 1.08 !important;
  }

  .rounded-3xl {
    border-radius: 16px !important;
  }

  .shadow-2xl {
    box-shadow: 0 18px 60px rgba(0, 0, 0, .32) !important;
  }

  [class*="grid-cols-2"],
  [class*="grid-cols-3"],
  [class*="grid-cols-4"] {
    min-width: 0;
  }

  .modal,
  [id$="-modal"] > div,
  #details-modal-content,
  #inquiry-modal > div {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100svh - 24px) !important;
    overflow-y: auto;
  }

  button,
  .action-button,
  a[class*="bg-"],
  input,
  select {
    min-height: 44px;
  }
}

@media (max-width: 640px) {
  .container {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  main.container {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  .text-3xl {
    font-size: 1.65rem !important;
  }

  .text-2xl {
    font-size: 1.35rem !important;
  }

  .p-8 {
    padding: 1.25rem !important;
  }

  .p-6 {
    padding: 1rem !important;
  }
}

@media (max-width: 900px) {
  body.portal-chat-body {
    height: auto !important;
    min-height: 100svh;
  }

  .portal-chat-layout {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    grid-template-rows: auto minmax(65svh, 1fr);
    gap: 10px !important;
    padding: 10px !important;
    overflow: visible !important;
  }

  .portal-chat-layout > aside:first-child {
    grid-row: 1 / span 2;
    width: 56px !important;
  }

  .portal-chat-sidebar {
    grid-column: 2;
    width: 100% !important;
    max-height: 32svh;
  }

  .portal-chat-main {
    grid-column: 2;
    width: 100% !important;
    min-height: 62svh;
  }

  #chat-messages {
    min-height: 42svh;
  }

  #message-form {
    gap: 8px !important;
  }

  #message-form input {
    min-width: 0;
  }
}

@media (max-width: 520px) {
  .portal-chat-layout {
    grid-template-columns: 1fr !important;
  }

  .portal-chat-layout > aside:first-child {
    grid-row: auto;
    grid-column: 1;
    width: 100% !important;
    min-height: 64px;
    flex-direction: row !important;
    overflow-x: auto;
    overflow-y: hidden;
    border-right: 0 !important;
    border-bottom: 1px solid #3f3f46;
  }

  .portal-chat-sidebar,
  .portal-chat-main {
    grid-column: 1;
  }

  .portal-chat-sidebar {
    max-height: 28svh;
  }
}
