/* Feedback button + dialog on every signed-in page (Footer::renderFeedbackWidget). */
/* Bottom-left: bottom-right belongs to the dashboard's chat toggle (#hf-chat-toggle). */
.fbw__launcher {
    position: fixed;
    left: max(16px, env(safe-area-inset-left));
    bottom: max(16px, env(safe-area-inset-bottom));
    z-index: 1040;
    display: inline-flex; align-items: center; gap: .4rem;
    min-height: 44px; padding: .55rem 1rem;
    border: 0;
    background: var(--color-primary); color: var(--color-text-on-primary);
    font: inherit; font-size: .9rem; font-weight: 600;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
    cursor: pointer;
}
.fbw__launcher:hover { background: var(--color-primary-hover); }
.fbw__launcher:focus-visible { outline: 3px solid var(--color-primary-light); outline-offset: 2px; }
/* Room at the page's end so the last row is never under the button. */
body:has(#fbw-launcher) { padding-bottom: 76px; }
@media print { .fbw__launcher, .fbw { display: none !important; } }

.fbw {
    width: min(620px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    padding: 0; border: 0; border-radius: 14px;
    background: var(--color-surface); color: var(--color-text);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
}
.fbw::backdrop { background: rgba(15, 23, 42, .45); }
.fbw__form { display: flex; flex-direction: column; max-height: calc(100vh - 32px); margin: 0; }
.fbw__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: 1rem 1.25rem; border-bottom: 1px solid var(--color-border); }
.fbw__head h2 { font-size: 1.1rem; margin: 0; }
.fbw__close { border: 0; background: transparent; color: var(--color-text-secondary); font-size: 1.6rem; line-height: 1;
    width: 44px; height: 44px; cursor: pointer; border-radius: 8px; }
.fbw__close:hover { background: var(--color-surface-hover); }
.fbw__body { padding: 1rem 1.25rem; overflow-y: auto; }
.fbw__foot { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; flex-wrap: wrap;
    padding: .9rem 1.25rem; border-top: 1px solid var(--color-border); }
.fbw__admin-link { margin-right: auto; font-size: .9rem; }

.fbw__types { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.fbw__legend { float: none; width: auto; font-size: 1rem; font-weight: 600; line-height: 1.4; margin: 0 0 .5rem; padding: 0; }
.fbw__type-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
@media (max-width: 480px) { .fbw__type-grid { grid-template-columns: 1fr; } }
.fbw__type { position: relative; display: block; cursor: pointer; }
.fbw__type input { position: absolute; opacity: 0; inset: 0; }
.fbw__type-card { display: flex; flex-direction: column; gap: .2rem; padding: .9rem 1rem; border: 2px solid var(--color-border);
    border-radius: 10px; background: var(--color-surface); transition: border-color .15s, background .15s; }
.fbw__type-card small { color: var(--color-text-secondary); }
.fbw__type--bug input:checked + .fbw__type-card { border-color: var(--color-danger); background: var(--color-danger-bg); }
.fbw__type--suggestion input:checked + .fbw__type-card { border-color: var(--color-info); background: var(--color-info-bg); }
.fbw__type input:focus-visible + .fbw__type-card { outline: 3px solid var(--color-primary-light); outline-offset: 2px; }

.fbw__label { display: block; font-weight: 600; margin: .75rem 0 .3rem; }
.fbw__muted { font-weight: 400; color: var(--color-text-secondary); font-size: .85rem; }
.fbw__req { color: var(--color-danger); }
.fbw__input { width: 100%; padding: .6rem .75rem; border: 1px solid var(--color-border-strong); border-radius: 8px;
    background: var(--color-bg); color: var(--color-text); font: inherit; }
.fbw__input:focus { outline: 2px solid var(--color-primary); outline-offset: 0; }
.fbw__file { width: 100%; font-size: .9rem; }
.fbw__tip { margin: .9rem 0 0; padding: .6rem .8rem; border-radius: 8px; background: var(--color-info-bg); color: var(--color-info-text); font-size: .9rem; }
.fbw__status { min-height: 1.4em; margin: .75rem 0 0; font-size: .92rem; }
.fbw__status--ok { color: var(--color-success-text); font-weight: 600; }
.fbw__status--error { color: var(--color-danger-text); font-weight: 600; }
