:focus-visible { outline: 3px solid #c4b5fd !important; outline-offset: 3px; }
.pilot-mobile-nav { display: none; }
.pilot-notice { padding: 1rem; margin: 1rem 0; border: 1px solid #a78bfa; border-radius: .75rem; background: #171124; color: #eee7ff; font-size: .95rem; }
.pilot-notice a, .pilot-notice button { text-decoration: underline; margin-right: 1rem; }
[role="dialog"] { overflow-y: auto; max-height: 100dvh; }
@media(max-width: 1023px) {
  .pilot-mobile-nav { display: block; margin-top: .65rem; }
  .pilot-mobile-nav summary { cursor: pointer; min-height: 44px; padding: .65rem; color: #e9d5ff; }
  .pilot-mobile-nav nav { display: flex; flex-wrap: wrap; gap: .25rem; position: static; }
  .pilot-mobile-nav a { padding: .75rem; min-height: 44px; color: #e5e7eb; }
  body > nav > div { flex-wrap: wrap; gap: .5rem; }
  body > nav { max-width: 100%; }
}
@media(max-width: 640px) {
  #preview-banner:not(.hidden) { display: grid; grid-template-columns: 1fr auto; gap: .5rem; }
  #preview-banner > span:last-of-type { grid-column: 1 / -1; grid-row: 2; }
  #preview-banner a { grid-column: 2; grid-row: 1; margin-left: 0; }
  body:has(#chat-form) main { padding-bottom: 20rem; }
}
@media(prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
