.game-feedback { margin-top: 48px; padding: 28px 0; border-top: 1px solid var(--line); text-align: left; }
.game-feedback-content { display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.game-feedback-disclosure > summary { display: none; }
html.game-fullscreen .game-feedback { margin-top: 12px; padding: 12px 0; }
html.game-fullscreen .game-feedback-disclosure > summary { display: flex; align-items: center; gap: 12px; width: fit-content; padding: 6px 0; color: var(--ink); font-size: 13px; font-weight: 700; list-style: none; cursor: pointer; }
.game-feedback-disclosure > summary::-webkit-details-marker { display: none; }
.game-feedback-disclosure > summary::after { content: ''; width: 7px; height: 7px; margin: -4px 3px 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.game-feedback-disclosure[open] > summary::after { margin-top: 4px; transform: rotate(225deg); }
.game-feedback-disclosure > summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; border-radius: 2px; }
html.game-fullscreen .game-feedback-disclosure[open] > .game-feedback-content { padding-top: 16px; }
.game-feedback h2 { font-size: 21px; margin-bottom: 8px; }
.game-feedback p { margin-bottom: 8px; }
.game-feedback-rating form { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.game-feedback-hint { font-size: 13px; color: var(--muted); }
.game-feedback-notice { font-size: 14px; overflow-wrap: anywhere; }
.game-feedback-notice:empty { display: none; }
.game-feedback-action { flex-shrink: 0; }
/* Rating states deliberately use their own palette in both designs. */
.game-stars { --star-empty: #64748b; --star-empty-bg: #ffffff; --star-filled: #b45309; --star-border: #92400e; --star-filled-bg: #ffdf91; --star-focus: #075bd8; display: flex; gap: 6px; border: 0; padding: 0; margin: 0; }
:root[data-theme="dark"] .game-stars { --star-empty: #8b9bb0; --star-empty-bg: #1b2431; --star-filled: #ffc247; --star-border: #ffc247; --star-filled-bg: #482f07; --star-focus: #7db8ff; }
.game-star { position: relative; display: grid; place-items: center; width: 44px; height: 46px; border: 2px solid var(--star-empty); border-radius: 8px; background: var(--star-empty-bg); color: var(--star-empty); cursor: pointer; }
.game-star input { position: absolute; z-index: 1; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.game-star svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; pointer-events: none; }
.game-star[data-filled="true"] { color: var(--star-filled); border-color: var(--star-border); background: var(--star-filled-bg); }
.game-star[data-filled="true"] svg { fill: currentColor; }
.game-star:has(input:checked) { box-shadow: 0 3px 0 var(--star-border); }
.game-star:has(input:focus-visible) { outline: 3px solid var(--star-focus); outline-offset: 3px; }
.game-star:hover { outline: 2px solid var(--star-focus); outline-offset: 2px; }
.game-star:has(input:disabled) { cursor: wait; }
.game-star-selection { margin-top: 12px; color: var(--ink); font-size: 14px; font-weight: 700; }
@media (forced-colors: active) { .game-star { border-color: ButtonText; background: Canvas; color: ButtonText; } .game-star[data-filled="true"] { forced-color-adjust: none; border-color: Highlight; background: Canvas; color: Highlight; } .game-star:has(input:focus-visible), .game-star:hover { outline-color: Highlight; } }
.hub-dialog.game-feedback-dialog { width: min(700px, calc(100vw - 80px)); }
.game-feedback-dialog form { display: grid; gap: 16px; }
.game-feedback-dialog label { display: grid; gap: 5px; font-weight: 700; font-size: 14px; }
.game-feedback-dialog input, .game-feedback-dialog textarea, .game-feedback-dialog select { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); padding: 10px 12px; font: inherit; }
.game-feedback-dialog textarea { resize: vertical; min-height: 80px; }
.game-feedback-dialog :is(input, textarea, select):focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.game-feedback-dialog label .game-feedback-hint { font-weight: 400; }
.admin-workspace .feedback-admin-filter { display: flex; flex-wrap: wrap; gap: 12px; }
.admin-workspace .feedback-admin-filter > label { display: grid; gap: 5px; flex: 1 1 160px; }
.feedback-review-summary > summary { cursor: pointer; padding-block: 4px; }
.feedback-review-summary[open] > summary { margin-bottom: 16px; }
