::-webkit-scrollbar {
  display: none;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

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

body {
  margin: 0;
}

button,
input,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

code {
  border-radius: 4px;
  background: #f3f4f6;
  padding: 1px 4px;
  color: #0f766e;
  font-size: 12px;
}

.h-dvh {
  height: 100vh;
  height: 100dvh;
}

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

.pb-safe {
  padding-bottom: max(12px, env(safe-area-inset-bottom));
}

.msg-fade-in {
  animation: fadeIn 0.2s ease-out forwards;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(5px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.online-pulse {
  animation: softPulse 1.8s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes softPulse {
  75%,
  100% {
    opacity: 0;
    transform: scale(2);
  }
}

.quick-chip {
  border: 1px solid #ccfbf1;
  border-radius: 999px;
  background: #ffffff;
  padding: 7px 10px;
  color: #0f766e;
  font-size: 12px;
  line-height: 1.2;
  box-shadow: 0 1px 2px rgba(15, 118, 110, 0.04);
}

.quick-chip:active {
  background: #f0fdfa;
}

#message-input {
  min-height: 40px;
}

#input-status.is-error {
  color: #dc2626;
}

#input-status.is-success {
  color: #0d9488;
}

@media (min-width: 640px) {
  body {
    display: flex;
    justify-content: center;
    background: #eef2f7;
  }

  #access-screen,
  #chat-app {
    width: min(100%, 430px);
    border-right: 1px solid #e5e7eb;
    border-left: 1px solid #e5e7eb;
    background: #f9fafb;
  }
}
