.app {
  height: 100vh;
  display: grid;
  grid-template-columns: var(--sidebar-width) 1fr;
  overflow: hidden;
}

.backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  z-index: 20;
}

.chat-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100vh;
}

.menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  color: var(--color-ink-soft);
}

.menu-toggle:hover {
  background: var(--color-surface-alt);
}

@media (max-width: 1023px) {
  .app {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(340px, 86vw);
    z-index: 30;
    transform: translateX(-100%);
    transition: transform 0.22s ease;
    box-shadow: var(--shadow-md);
  }

  .sidebar.is-open {
    transform: translateX(0);
  }

  .app.sidebar-open .backdrop {
    display: block;
  }

  .menu-toggle {
    display: inline-flex;
  }
}

@media (max-width: 640px) {
  :root {
    --header-height: 56px;
  }

  .chat-input-row {
    padding: var(--space-3) !important;
  }

  .message {
    max-width: 88% !important;
  }
}
