.report-link-row { position: fixed; z-index: 7; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; height: calc(44px + env(safe-area-inset-bottom, 0px)); padding-bottom: env(safe-area-inset-bottom, 0px); box-sizing: border-box; background: var(--cs-bg); }
.report-host .report-link-row { bottom: var(--cs-app-tabs-height); height: 44px; padding-bottom: 0; }
.report-link { min-height: 44px; min-width: 160px; padding: .6rem 1rem; border: 0; background: transparent; color: var(--cs-text-muted); font: 500 .78rem "IBM Plex Sans", sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.report-link:focus-visible { outline: 2px solid var(--cs-accent); outline-offset: -3px; }
.report-guest .guest-shell { padding-bottom: calc(6rem + env(safe-area-inset-bottom, 0px)); }
.report-host .play-shell { padding-bottom: calc(6rem + var(--cs-app-tabs-height)); }
.report-host .setup-step-actions, .report-host .lobby-sticky { bottom: calc(var(--cs-app-tabs-height) + 44px); }
.report-host .play-shell:has(#host-lobby:not([hidden])) { padding-bottom: calc(10rem + var(--cs-app-tabs-height)); }
/* Setup's Next bar (about 4.45rem) sits on the 44px report row; leave just enough room to scroll the last card above both. */
.report-host .play-shell:has(#host-setup:not([hidden])) { padding-bottom: calc(7.25rem + var(--cs-app-tabs-height)); }
.report-guest:has(#guest-join:not([hidden])) .report-link-row { display: none; }

.report-sheet { z-index: 40; max-height: 100dvh; padding: 16px 16px max(16px, env(safe-area-inset-bottom)); font-family: "IBM Plex Sans", sans-serif; }
.report-sheet .content-picker-handle { margin: -16px -16px 0; width: calc(100% + 32px); }
.report-sheet .report-close { float: right; display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--cs-text); cursor: pointer; }
.report-close svg { width: 20px; height: 20px; }
.report-sheet .report-eyebrow { margin: 4px 0 2px; color: var(--cs-text-muted); font: 600 10px/1.2 "IBM Plex Mono", monospace; letter-spacing: .08em; }
.report-sheet h2 { margin: 0 0 12px; color: var(--cs-text); font: 600 22px/1.2 "IBM Plex Sans", sans-serif; }
.report-sheet form { display: grid; gap: 9px; }
.report-choices { display: flex; gap: 8px; }
.report-about { margin: 0; color: var(--cs-text-2); font-size: 12px; }
.report-reasons { margin: 0; padding: 0; border: 0; }
.report-reasons legend { margin-bottom: 7px; color: var(--cs-text-2); font: 600 12px/1.2 "IBM Plex Sans", sans-serif; }
.report-reason-list { display: flex; flex-wrap: wrap; gap: 7px; }
.report-sheet .report-note-label { display: block; margin: 0; color: var(--cs-text); font: 600 12px/1.2 "IBM Plex Sans", sans-serif; letter-spacing: 0; text-transform: none; }
.report-note-label span { color: var(--cs-text-muted); font-weight: 400; }
.report-sheet textarea { box-sizing: border-box; width: 100%; height: 72px; min-height: 72px; margin: 0; padding: 8px 10px; border: 1px solid var(--cs-border-control); border-radius: 8px; background: var(--cs-surface-raised); color: var(--cs-text); font: 13px/1.3 "IBM Plex Sans", sans-serif; resize: none; }
.report-note-meta { display: flex; justify-content: space-between; gap: 8px; color: var(--cs-text-muted); font: 11px/1.2 "IBM Plex Sans", sans-serif; }
.report-note-meta p { margin: 0; }
.report-counter { flex: none; font-family: "IBM Plex Mono", monospace; }
.report-includes { display: flex; align-items: center; gap: 6px; min-height: 24px; margin: 0; color: var(--cs-text-muted); font: 11px/1.3 "IBM Plex Sans", sans-serif; }
.report-includes svg { width: 15px; height: 15px; }
.report-sheet .report-send, .report-sheet .report-done { box-sizing: border-box; width: 100%; min-height: 48px; padding: 9px 14px; border: 1px solid var(--cs-accent-fill); border-radius: 9px; background: var(--cs-accent-fill); color: var(--cs-on-accent); font: 600 14px/1.2 "IBM Plex Sans", sans-serif; letter-spacing: 0; text-transform: none; cursor: pointer; }
.report-sheet .report-send:disabled { border-color: var(--cs-border-control); background: var(--cs-disabled-bg); color: var(--cs-disabled-text); cursor: default; }
.report-send-hint { margin: -3px 0 0; color: var(--cs-text-muted); font-size: 11px; text-align: center; }
.report-error { margin: 0; color: var(--cs-danger); font-size: 12px; }
.report-sent { padding: 18px 0 4px; text-align: center; }
.report-sent-icon { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--cs-accent-tint); color: var(--cs-accent); }
.report-sent-icon svg { width: 24px; height: 24px; }
.report-sent h3 { margin: 12px 0 6px; color: var(--cs-text); font-size: 18px; }
.report-sent p { margin: 0 0 22px; color: var(--cs-text-2); font-size: 13px; }
.report-sheet [hidden], .report-sheet [hidden].report-choices { display: none; }
