/* Isthafa deck: viewer gate, feedback popover, questions panel. */
dialog.gate { width: min(560px, calc(100% - 2rem)); }
.gate-head .h2 { margin-top: 0.4rem; }
.gate-form { display: grid; gap: 0.75rem; margin-top: 1rem; }
.gate-form label { display: grid; gap: 0.35rem; font-size: var(--text-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dim); font-weight: 700; }
.gate-form input, .feedback-popover textarea {
  width: 100%; padding: 0.65rem 0.8rem; border-radius: 10px;
  border: 1px solid var(--line-strong); background: var(--surface); color: var(--text);
  font: inherit; font-size: var(--text-base); letter-spacing: 0; text-transform: none; font-weight: 400;
}
.gate-form input:focus-visible, .feedback-popover textarea:focus-visible { outline: 2px solid var(--lagoon); outline-offset: 1px; }
.gate-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 0.5rem; }
.gate-form .error, .feedback-popover .error { color: var(--coral); font-size: var(--text-xs); min-height: 1em; margin: 0; }
form.busy .primary-btn { opacity: 0.6; pointer-events: none; }

.feedback-popover {
  position: fixed; top: calc(var(--hud-h) + 0.5rem); right: var(--gutter); z-index: 90;
  width: min(420px, calc(100% - 2rem)); padding: 1rem 1.1rem 1.1rem; border-radius: var(--radius);
  border: 1px solid color-mix(in oklab, var(--sand) 45%, var(--line-strong));
  background: oklch(14% 0.022 250 / 0.96); backdrop-filter: blur(16px);
  box-shadow: 0 30px 80px -30px oklch(0% 0 0 / 0.9);
  transform: translateY(-6px); opacity: 0; transition: opacity var(--dur-fast) ease, transform var(--dur) var(--ease-out);
}
.feedback-popover.open { opacity: 1; transform: none; }
.feedback-popover .label { font-size: var(--text-xs); letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--sand); }
.feedback-popover .close-popover { position: absolute; top: 0.6rem; right: 0.6rem; width: 2rem; height: 2rem; }
.feedback-context, .q-context {
  margin: 0.6rem 0; padding: 0.4rem 0.75rem; border-left: 2px solid var(--sand);
  color: var(--text-muted); font-size: var(--text-sm); line-height: 1.4; max-height: 4.4em; overflow: hidden;
}
.feedback-popover textarea { resize: vertical; min-height: 4.5rem; margin-top: 0.4rem; }

.questions-panel {
  position: fixed; right: var(--gutter); bottom: 4.6rem; z-index: 56;
  width: min(440px, calc(100% - 2rem)); max-height: 62dvh; overflow: auto;
  padding: 1rem 1.1rem; border-radius: var(--radius);
  border: 1px solid color-mix(in oklab, var(--lagoon) 35%, var(--line-strong));
  background: oklch(14% 0.022 250 / 0.94); backdrop-filter: blur(16px);
  box-shadow: 0 30px 80px -30px oklch(0% 0 0 / 0.9);
}
.questions-panel .dialog-head { margin-bottom: 0.5rem; }
.q-item { padding: 0.7rem 0; border-bottom: 1px solid var(--line); }
.q-item:last-child { border-bottom: 0; }
.q-meta { font-size: var(--text-xs); color: var(--text-dim); letter-spacing: 0.06em; }
.q-text { margin-top: 0.3rem; color: var(--text); font-size: var(--text-sm); line-height: 1.45; }
.q-answer { margin-top: 0.5rem; padding: 0.5rem 0.75rem; border-radius: 10px; background: color-mix(in oklab, var(--lagoon) 9%, transparent); font-size: var(--text-sm); color: var(--text-muted); }
.q-answer .label { display: block; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: var(--text-dim); }
.q-item.is-answered .q-answer .label { color: var(--lagoon); }
.q-answer p { margin-top: 0.3rem; color: var(--text); }

body:not(.is-team) [data-field].has-question { text-decoration: underline dotted var(--sand); text-underline-offset: 4px; text-decoration-thickness: 1px; }
.btn-icon[data-action="questions"] { position: relative; }
.btn-icon .badge {
  position: absolute; top: -0.3rem; right: -0.3rem; min-width: 1.15rem; height: 1.15rem; padding: 0 0.3rem;
  border-radius: 999px; background: var(--sand); color: var(--bg); font-size: 0.62rem; font-weight: 800;
  display: grid; place-items: center; line-height: 1;
}
.btn-icon .badge.answered { background: var(--lagoon); }
.btn-icon .badge[hidden] { display: none; }
body:not(.is-team):not(.is-identified) .btn-icon[data-action="edit"] { display: none; }
@media print { .questions-panel, .feedback-popover, dialog.gate { display: none !important; } }
