/* Geometry for the feedback flow. Typography and controls reuse the site's
   terminal-header, close-x, terminal-label, terminal-input and comms-btn styles. */
.feature-request-cta { color: var(--text-main); background: var(--bg-deep); border-bottom: 1px solid var(--border-color,rgba(15,240,252,.3)); }
.feature-request-cta-inner { max-width: 1400px; margin: 0 auto; padding: 30px 24px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.feature-request-cta-copy { min-width: 0; }
.feature-request-cta h2 { margin: 0 0 8px; color: var(--text-main); font-family: var(--font-head); font-weight: 700; font-size: clamp(16px,1.6vw,20px); line-height: 1.4; letter-spacing: 2px; text-transform: uppercase; }
.feature-request-cta h2 span { color: var(--neon-cyan); }
.feature-request-cta p { margin: 0; color: var(--text-dim); font-family: var(--font-body); font-size: 1rem; line-height: 1.5; }
/* The scene report has its own stylesheet, so keep this equivalent to action-btn
   there too. The same weight, tracking, chamfer and hover apply on every page. */
.feature-request-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 50px;
  padding: 16px 24px;
  border: none;
  background: var(--neon-cyan);
  color: var(--bg-black);
  font-family: var(--font-head);
  font-weight: 900;
  font-size: .8rem;
  letter-spacing: 2px;
  line-height: 1.4;
  text-transform: uppercase;
  clip-path: polygon(10px 0,100% 0,100% 100%,0 100%,0 10px);
  cursor: pointer;
  box-shadow: 0 0 10px rgba(15,240,252,.3);
  transition: background-color .2s,box-shadow .2s,transform .2s;
}
.feature-request-trigger:hover { background: var(--text-main); color: var(--bg-black); box-shadow: 0 0 40px var(--neon-cyan); transform: translateY(-2px); }
.feature-request-trigger:focus-visible { outline: 2px solid var(--text-main); outline-offset: -4px; }
.feature-request-dialog {
  box-sizing: border-box;
  width: min(560px,calc(100% - 32px));
  max-width: none;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 2px;
  border: 1px solid var(--neon-cyan);
  background: var(--bg-deep);
  color: var(--text-main);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
  box-shadow: 0 0 30px rgba(15,240,252,.15);
  clip-path: polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);
  overflow: hidden;
  color-scheme: dark;
}
.feature-request-dialog[open] { display: flex; flex-direction: column; }
.feature-request-dialog::backdrop { background: rgba(0,0,0,.85); backdrop-filter: blur(5px); }
.feature-request-dialog * { box-sizing: border-box; }
.feature-request-dialog [hidden] { display: none !important; }
.feature-request-heading { min-height: 54px; padding: 10px 20px; }
.feature-request-heading > h3 { text-transform: uppercase; }
.feature-request-heading > h3:focus { outline: none; }
.feature-request-dialog .feature-request-close { min-width: 48px; min-height: 44px; }
.feature-request-dialog .feature-request-close:focus-visible { outline: 2px solid var(--neon-cyan); outline-offset: -4px; }
#feature-request-form { display: flex; flex-direction: column; min-height: 0; margin: 0; }
.feature-request-fields { min-height: 0; padding: 20px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: var(--border-strong) var(--bg-black); scrollbar-width: thin; }
.feature-request-idea,.feature-request-contact { min-width: 0; }
.feature-request-intro { grid-column: 1/-1; margin: 0 0 18px; color: var(--text-dim); font-size: .9rem; line-height: 1.4; }
.feature-request-label { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 8px; }
.feature-request-label > span { color: var(--text-dim); font-size: .7rem; font-weight: 400; }
.feature-request-email-label { margin-top: 18px; }
.feature-request-dialog .terminal-input { display: block; min-height: 46px; border-radius: 0; line-height: 1.4; }
.feature-request-dialog textarea { height: 104px; min-height: 88px; resize: vertical; }
.feature-request-dialog input::placeholder,.feature-request-dialog textarea::placeholder { color: var(--text-dim); opacity: 1; }
.feature-request-dialog [aria-invalid=true] { border-color: var(--accent-alert); }
.feature-request-field-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; color: var(--text-dim); font-size: .75rem; line-height: 1.4; }
.feature-request-dialog .feature-request-help { margin: 7px 0 0; color: var(--text-dim); font-size: .8rem; line-height: 1.4; }
.feature-request-dialog a { color: var(--neon-cyan); text-decoration: underline; text-underline-offset: 3px; }
.feature-request-opt-in { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0 0; padding-top: 12px; border-top: 1px dashed rgba(15,240,252,.3); color: var(--text-soft); font-size: .9rem; line-height: 1.4; cursor: pointer; }
.feature-request-opt-in input { width: 16px; height: 16px; flex: 0 0 16px; margin: 2px 0 0; accent-color: var(--neon-cyan); cursor: pointer; }
.feature-request-opt-in input:focus-visible { outline: 2px solid var(--neon-cyan); outline-offset: 3px; }
.feature-request-actions { flex: 0 0 auto; padding: 16px 20px 20px; border-top: 1px solid var(--border-subtle); }
.feature-request-dialog .feature-request-field-error { margin: 8px 0; color: var(--accent-alert); font-size: .9rem; line-height: 1.4; }
.feature-request-dialog .comms-btn { min-height: 48px; text-transform: uppercase; }
.feature-request-dialog .comms-btn:focus-visible { outline: 2px solid var(--text-main); outline-offset: -4px; }
.feature-request-dialog button:disabled { opacity: .65; cursor: wait; }
.feature-request-dialog .feature-request-note { margin: 10px 0 0; color: var(--text-dim); text-align: center; font-size: .75rem; line-height: 1.4; }
.feature-request-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#feature-request-success { padding: 28px 20px; overflow-y: auto; text-align: center; }
.feature-request-success-mark { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 20px; color: var(--neon-cyan); }
#feature-request-success h3 { margin: 0 0 12px; color: var(--neon-cyan); font-family: var(--font-head); font-weight: 700; font-size: 1rem; letter-spacing: 2px; text-transform: uppercase; }
#feature-request-success p { color: var(--text-soft); }
#feature-request-success [data-feature-request-done] { margin-top: 24px; }
@media (max-width:700px) {
  .feature-request-cta-inner { align-items: stretch; flex-direction: column; gap: 20px; padding: 26px 24px; }
  .feature-request-trigger { width: 100%; }
}
@media (max-width:480px) {
  .feature-request-dialog { width: calc(100% - 24px); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .feature-request-heading { padding-left: 16px; padding-right: 16px; }
  .feature-request-heading h3 { font-size: clamp(.75rem,2.8vw,1rem); letter-spacing: 1px; }
  .feature-request-heading .close-x { margin-right: -16px; }
  .feature-request-fields { padding: 16px; }
  .feature-request-actions { padding: 14px 16px; }
}
/* Preserve compact phone layouts and columns on wide, shallow screens. */
@media (max-height:700px) {
  .feature-request-heading { min-height: 48px; }
  .feature-request-fields { padding: 13px 18px; }
  .feature-request-intro { margin-bottom: 12px; }
  .feature-request-label { margin-bottom: 6px; }
  .feature-request-email-label { margin-top: 12px; }
  .feature-request-dialog textarea { height: 72px; min-height: 72px; }
  .feature-request-dialog .terminal-input { padding: 9px 11px; line-height: 1.35; }
  .feature-request-opt-in { margin-top: 12px; padding-top: 10px; font-size: .875rem; line-height: 1.3; }
  .feature-request-actions { padding: 12px 18px; }
  .feature-request-dialog .feature-request-note { margin-top: 8px; }
}
@media (min-width:700px) and (max-height:700px) {
  .feature-request-dialog { width: min(760px,calc(100% - 32px)); }
  .feature-request-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; }
  .feature-request-email-label { margin-top: 0; }
  .feature-request-dialog textarea { height: 174px; }
}
@media (prefers-reduced-motion:reduce) { .feature-request-trigger { transition: none; } .feature-request-close:hover { animation: none; } }
