/* Shared UI chrome, consuming each shell's own palette; no game art by design. */
.feedback-entry, .feedback-dialog, .feedback-page, .feedback-operator {
  --fb-surface: var(--nx-surface, var(--ds-panel));
  --fb-text: var(--nx-text, var(--ds-text));
  --fb-muted: var(--nx-support, var(--ds-muted));
  --fb-border: var(--nx-border, var(--ds-line));
  --fb-link: var(--nx-cyan, var(--ds-blue-text));
  color: var(--fb-text);
  box-sizing: border-box;
  font-family: inherit;
  font-size: 15px;
}
.feedback-entry { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:4px 24px; padding:4px 16px; background:var(--fb-surface); border-block-end:1px solid var(--fb-border); }
.feedback-entry a, .feedback-pagination a, .feedback-cta { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:44px; padding:6px 4px; color:var(--fb-link); font-weight:600; text-decoration:none; overflow-wrap:anywhere; }
.feedback-inbox-link { font-size:14px; }
.feedback-dialog { inline-size: min(580px, calc(100vw - 24px)); max-inline-size:calc(100vw - 24px); max-block-size:calc(100dvh - 32px); overflow:auto; padding:24px; border:1px solid var(--fb-border); border-radius:8px; background:var(--fb-surface); }
.feedback-dialog::backdrop { background:rgb(0 0 0 / 70%); }
.feedback-dialog:not([open]) { display:none; }
.feedback-dialog h2 { margin:0; padding-inline-end:40px; font-size:22px; line-height:1.5; }
.feedback-close { position:absolute; inset-inline-end:8px; inset-block-start:8px; min-inline-size:44px; min-block-size:44px; padding:0; background:transparent; border:0; color:inherit; font:inherit; font-size:26px; cursor:pointer; }
.feedback-lead { color:var(--fb-muted); line-height:1.75; margin-block:12px 20px; }
.feedback-form { display:grid; gap:16px; }
.feedback-form label, .feedback-filters label, .feedback-status-form label { display:grid; gap:7px; min-inline-size:0; }
.feedback-form select, .feedback-form textarea, .feedback-filters select, .feedback-status-form select { box-sizing:border-box; inline-size:100%; min-inline-size:0; min-block-size:44px; padding:10px 12px; border:1px solid var(--fb-border); border-radius:6px; background:var(--nx-inset, var(--ds-bg)); color:var(--fb-text); font:inherit; }
.feedback-form textarea { resize:vertical; line-height:1.6; }
.feedback-form small { color:var(--fb-muted); font-family:inherit; font-size:13px; line-height:1.6; }
.feedback-consent { grid-template-columns:22px minmax(0,1fr); align-items:start; min-block-size:44px; line-height:1.6; cursor:pointer; }
.feedback-consent input { inline-size:20px; block-size:20px; margin:2px 0 0; }
.feedback-button { box-sizing:border-box; min-block-size:44px; padding:10px 18px; border:1px solid var(--fb-border); border-radius:6px; color:var(--fb-text); background:var(--nx-elevated, var(--ds-panel)); font:inherit; font-weight:600; cursor:pointer; }
.feedback-button:hover { border-color:var(--fb-link); }
.feedback-button:focus-visible, .feedback-entry a:focus-visible { outline:2px solid var(--fb-link); outline-offset:3px; }
.feedback-error { margin:0; color:var(--nx-red-text, var(--ds-red-text)); line-height:1.7; }
.feedback-success { padding:16px; border-inline-start:3px solid var(--fb-link); line-height:1.8; }
.feedback-success[hidden], .feedback-error[hidden], .feedback-form[hidden] { display:none !important; }
.feedback-page { max-inline-size:680px; padding:28px 20px; margin-inline:auto; }
.feedback-operator { max-inline-size:1000px; padding:28px 20px; margin-inline:auto; }
.feedback-page h1, .feedback-operator h1 { font-size:26px; line-height:1.5; margin-block:0 20px; }
.feedback-filters, .feedback-status-form { display:flex; gap:12px; align-items:end; flex-wrap:wrap; }
.feedback-filters label { flex:1 1 180px; }
.feedback-row { min-inline-size:0; padding:20px; margin-block:18px; border:1px solid var(--fb-border); border-radius:6px; background:var(--fb-surface); }
.feedback-row header { display:flex; gap:12px; justify-content:space-between; flex-wrap:wrap; }
.feedback-status { color:var(--fb-muted); }
.feedback-message { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.feedback-meta { display:grid; gap:6px; margin-block:16px; color:var(--fb-muted); overflow-wrap:anywhere; font-size:14px; }
.feedback-status-form label { min-inline-size:160px; }
.feedback-pagination { display:flex; gap:24px; justify-content:space-between; }
@media (max-width:560px) {
  .feedback-dialog { padding:20px 16px; }
  .feedback-dialog h2 { font-size:20px; }
  .feedback-row { padding:16px; }
  .feedback-page, .feedback-operator { padding:24px 16px; }
}
