/* Feedback on every page (plan 22, FB-4). Uses the page's theme colours where it has them (--panel, --text, --glow
   from the games and Body Explorer themes), with plain fallbacks for the other pages. */
.fbw-open-btn {
  position: fixed; right: 12px; bottom: 12px; z-index: 900; min-height: 44px; padding: 8px 14px; border-radius: 99px;
  font: 600 .92rem system-ui, "Segoe UI", Arial, sans-serif; color: #fff; background: #2f4fd8; border: 2px solid #fff;
  box-shadow: 0 4px 14px rgba(20, 30, 80, .28); cursor: pointer;
}
.fbw-open-btn:hover { background: #2440b8; }
.fbw-open-btn:focus-visible { outline: 3px solid #f08c00; outline-offset: 2px; }
.fbw-root { position: fixed; inset: 0; z-index: 10000; background: rgba(10, 14, 35, .45); display: flex; align-items: flex-end; justify-content: center; }
.fbw-root[hidden] { display: none; }
.fbw-sheet {
  box-sizing: border-box; width: 100%; max-width: 520px; max-height: 92vh; overflow: auto; margin: 0 auto;
  background: var(--panel, #fff); color: var(--text, #1c2340); border-radius: 18px 18px 0 0; padding: 16px 18px 18px;
  font: 1rem/1.45 system-ui, "Segoe UI", Arial, sans-serif; box-shadow: 0 -6px 30px rgba(0, 0, 0, .25);
}
@media (min-width: 640px) { .fbw-root { align-items: center; } .fbw-sheet { border-radius: 18px; } }
.fbw-sheet h2 { margin: 0; font-size: 1.2rem; }
.fbw-head { display: flex; justify-content: space-between; align-items: center; }
.fbw-x { border: 0; background: none; color: inherit; font-size: 1.2rem; min-width: 44px; min-height: 44px; cursor: pointer; }
.fbw-about { margin: 2px 0 8px; opacity: .8; font-size: .92rem; }
.fbw-form fieldset { border: 0; padding: 0; margin: 8px 0; }
.fbw-form legend { font-weight: 600; padding: 0; margin-bottom: 4px; }
.fbw-form label { display: block; font-weight: 600; margin: 8px 0; }
.fbw-form input:not([type="radio"]), .fbw-form textarea {
  box-sizing: border-box; display: block; width: 100%; margin-top: 4px; padding: 8px 10px; min-height: 44px; font: inherit; font-weight: 400;
  color: inherit; background: var(--bg, #fff); border: 1px solid var(--panel-border, #c9cee3); border-radius: 10px;
}
.fbw-form input.fbw-num { width: 7em; display: inline-block; margin-left: 6px; }
.fbw-opt { font-weight: 400; opacity: .7; font-size: .88rem; }
.fbw-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px; }
@media (max-width: 420px) { .fbw-row2 { grid-template-columns: 1fr; } }
.fbw-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.fbw-form .fbw-chip { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 6px 12px; min-height: 40px; font-weight: 500;
  border: 1px solid var(--panel-border, #c9cee3); border-radius: 99px; cursor: pointer; }
.fbw-chip:has(input:checked) { border-color: var(--glow, #2f4fd8); box-shadow: inset 0 -3px 0 var(--glow, #2f4fd8); font-weight: 700; }
.fbw-chip input { margin: 0; accent-color: var(--glow, #2f4fd8); }
.fbw-stars { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; }
.fbw-stars label { margin: 0; font-size: 1.8rem; line-height: 1; cursor: pointer; color: #c4c8d8; }
.fbw-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fbw-stars label:has(input:checked), .fbw-stars label:has(input:checked) ~ label, .fbw-stars label:hover, .fbw-stars label:hover ~ label { color: #f5a524; }
.fbw-stars label:has(input:focus-visible) { outline: 2px solid var(--glow, #2f4fd8); border-radius: 6px; }
.fbw-sr, .fbw-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fbw-check { background: rgba(127, 140, 200, .1); border-radius: 12px; padding: 8px 12px !important; }
.fbw-check p { margin: 4px 0 6px; }
.fbw-note { font-size: .88rem; opacity: .85; margin: 6px 0; }
.fbw-note a { color: inherit; }
.fbw-err { color: #c62839; font-weight: 600; margin: 6px 0; }
.fbw-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.fbw-btn { min-height: 44px; padding: 8px 18px; border-radius: 12px; border: 1px solid #2f4fd8; background: #2f4fd8; color: #fff; font: 600 1rem system-ui, sans-serif; cursor: pointer; }
.fbw-btn.fbw-sec { background: transparent; color: inherit; border-color: var(--panel-border, #c9cee3); }
.fbw-btn:disabled { opacity: .6; cursor: wait; }
.fbw-done { text-align: center; padding: 10px 0; }
.fbw-big { font-size: 2.6rem; margin: 0; }
@media print { .fbw-open-btn, .fbw-root { display: none !important; } }
@media (prefers-reduced-motion: no-preference) { .fbw-sheet { animation: fbw-up .18s ease-out; } }
@keyframes fbw-up { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
