/* Styling for Feedback Property Fields (Target, Type, Topics, Importance, Source, Progress) */

/* Frontend: Gravity Forms 2.5+ uses BEM-like classes */
.gfield--type-feedback_target .gfield_radio .gchoice,
.gfield--type-feedback_type .gfield_radio .gchoice,
.gfield--type-feedback_importance .gfield_radio .gchoice,
.gfield--type-feedback_source .gfield_radio .gchoice,
.gfield--type-feedback_progress .gfield_radio .gchoice,
/* Frontend: Older Gravity Forms or specific wrapper classes */
.gfield.feedback_target .gfield_radio .gchoice,
.gfield.feedback_type .gfield_radio .gchoice,
.gfield.feedback_importance .gfield_radio .gchoice,
.gfield.feedback_source .gfield_radio .gchoice,
.gfield.feedback_progress .gfield_radio .gchoice,
/* Admin: Form Editor */
.field_type_feedback_target .gfield_radio .gchoice,
.field_type_feedback_type .gfield_radio .gchoice,
.field_type_feedback_importance .gfield_radio .gchoice,
.field_type_feedback_source .gfield_radio .gchoice,
.field_type_feedback_progress .gfield_radio .gchoice {
    display: inline-grid;
    gap: var(--gf-field-choice-meta-space, 0.5rem) 0;
    grid-template-columns: minmax(var(--gf-ctrl-choice-size, 1.25rem), max-content) auto;
    align-items: center;
}

/* Frontend: Gravity Forms 2.5+ uses BEM-like classes */
.gfield--type-feedback_target .gfield_radio,
.gfield--type-feedback_type .gfield_radio,
.gfield--type-feedback_importance .gfield_radio,
.gfield--type-feedback_source .gfield_radio,
.gfield--type-feedback_progress .gfield_radio,
/* Frontend: Older Gravity Forms or specific wrapper classes */
.gfield.feedback_target .gfield_radio,
.gfield.feedback_type .gfield_radio,
.gfield.feedback_importance .gfield_radio,
.gfield.feedback_source .gfield_radio,
.gfield.feedback_progress .gfield_radio,
/* Admin: Form Editor */
.field_type_feedback_target .gfield_radio,
.field_type_feedback_type .gfield_radio,
.field_type_feedback_importance .gfield_radio,
.field_type_feedback_source .gfield_radio,
.field_type_feedback_progress .gfield_radio {
    display: flex;
    flex-direction: column;
    gap: var(--gf-field-choice-gap);
}

/* Topics opts out of the GF reset, and only its enhanced controls opt out of
   framework styling. These scopes also beat native input rules in WP themes. */
.gf-feedback-topics {
    position: relative;
}

.gf-feedback-topics__select {
    min-height: 8rem;
    width: 100%;
}

.gf-feedback-topics__combobox {
    max-width: 100%;
    position: relative;
    width: 100%;
}

/* Match the field-size widths Gravity Forms applies to native inputs. */
.gf-feedback-topics__select.small + .gf-feedback-topics__combobox {
    width: calc(25% - 0.75rem);
}

.gf-feedback-topics__select.medium + .gf-feedback-topics__combobox {
    width: calc(50% - 1rem / 2);
}

.gf-feedback-topics__input-wrap {
    align-items: center;
    background-color: var(--gf-ctrl-bg-color, #fff);
    border-color: var(--gf-ctrl-border-color, #686e77);
    border-style: var(--gf-ctrl-border-style, solid);
    border-width: var(--gf-ctrl-border-width, 1px);
    border-radius: var(--gf-ctrl-radius, 3px);
    box-shadow: var(--gf-ctrl-shadow, 0 1px 4px rgba(18, 25, 97, 0.08));
    box-sizing: border-box;
    color: var(--gf-ctrl-color, #112337);
    display: flex;
    flex-wrap: wrap;
    font-family: var(--gf-ctrl-font-family, inherit);
    font-size: var(--gf-ctrl-font-size, 1rem);
    font-style: var(--gf-ctrl-font-style, normal);
    font-weight: var(--gf-ctrl-font-weight, 400);
    gap: calc(var(--gf-padding-y, 0.5rem) / 2);
    letter-spacing: var(--gf-ctrl-letter-spacing, normal);
    min-height: var(--gf-ctrl-size, 38px);
    outline-color: var(--gf-ctrl-outline-color, transparent);
    outline-offset: var(--gf-ctrl-outline-offset, 1px);
    outline-style: var(--gf-ctrl-outline-style, solid);
    outline-width: var(--gf-ctrl-outline-width, 0);
    padding-block: var(--gform-theme-spacer-1, 0.25rem);
    padding-inline: var(--gform-theme-spacer-2, 0.5rem);
    transition: var(--gf-ctrl-transition, border-color 0.15s ease, box-shadow 0.15s ease);
}

.gf-feedback-topics__input-wrap:hover {
    background-color: var(--gf-ctrl-bg-color-hover, var(--gf-ctrl-bg-color, #fff));
    border-color: var(--gf-ctrl-border-color-hover, var(--gf-ctrl-border-color, #686e77));
    color: var(--gf-ctrl-color-hover, var(--gf-ctrl-color, #112337));
}

.gf-feedback-topics__input-wrap:focus-within {
    background-color: var(--gf-ctrl-bg-color-focus, var(--gf-ctrl-bg-color, #fff));
    border-color: var(--gf-ctrl-border-color-focus, #204ce5);
    color: var(--gf-ctrl-color-focus, var(--gf-ctrl-color, #112337));
    outline-color: var(--gf-ctrl-outline-color-focus, rgba(32, 76, 229, 0.65));
    outline-width: var(--gf-ctrl-outline-width-focus, 3px);
}

.gfield_error .gf-feedback-topics__input-wrap {
    background-color: var(--gf-ctrl-bg-color-error, var(--gf-ctrl-bg-color, #fff));
    border-color: var(--gf-ctrl-border-color-error, #b3261e);
    color: var(--gf-ctrl-color-error, var(--gf-ctrl-color, #112337));
}

.gfield_error .gf-feedback-topics__input-wrap:focus-within {
    background-color: var(--gf-ctrl-bg-color-focus, var(--gf-ctrl-bg-color, #fff));
    border-color: var(--gf-ctrl-border-color-focus, #204ce5);
    color: var(--gf-ctrl-color-focus, var(--gf-ctrl-color, #112337));
}

/* The extra classes beat theme rules such as input:not([type="submit"]), which
   otherwise tie this reset and paint a second border inside the control. */
.gf-feedback-topics .gf-feedback-topics__input-wrap > input.gf-feedback-topics__input,
.gf-feedback-topics .gf-feedback-topics__input-wrap > input.gf-feedback-topics__input:hover,
.gf-feedback-topics .gf-feedback-topics__input-wrap > input.gf-feedback-topics__input:focus {
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: currentColor;
    flex: 1 1 10rem;
    font-family: inherit;
    font-size: inherit;
    font-style: inherit;
    font-weight: inherit;
    height: auto;
    letter-spacing: inherit;
    line-height: var(--gform-theme-line-height-base, 1.5);
    margin: 0;
    min-height: calc(var(--gf-ctrl-size, 38px) - var(--gf-ctrl-border-width, 1px) - var(--gf-ctrl-border-width, 1px) - var(--gform-theme-spacer-1, 0.25rem) - var(--gform-theme-spacer-1, 0.25rem));
    min-width: 0;
    outline: 0;
    padding: 0;
    width: auto;
}

.gf-feedback-topics .gf-feedback-topics__input-wrap > input.gf-feedback-topics__input::placeholder {
    color: var(--gf-ctrl-placeholder-color, rgba(17, 35, 55, 0.7));
    font-family: var(--gf-ctrl-placeholder-font-family, inherit);
    font-size: var(--gf-ctrl-placeholder-font-size, inherit);
    font-style: var(--gf-ctrl-placeholder-font-style, normal);
    font-weight: var(--gf-ctrl-placeholder-font-weight, 400);
    letter-spacing: var(--gf-ctrl-placeholder-letter-spacing, normal);
    opacity: var(--gf-ctrl-placeholder-opacity, 1);
}

.gf-feedback-topics__selected {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    list-style: none;
    margin: 0;
    max-width: 100%;
    padding: 0;
}

.gf-feedback-topics__selected li {
    margin: 0;
}

.gf-feedback-topics button.gf-feedback-topics__remove {
    align-items: center;
    background: var(--gf-ctrl-multiselect-selected-item-bg-color, var(--gf-color-primary, #2f4054));
    border: 0;
    border-radius: var(--gf-ctrl-multiselect-selected-item-radius, 33px);
    color: var(--gf-ctrl-multiselect-selected-item-color, #fff);
    cursor: pointer;
    display: inline-flex;
    font-family: inherit;
    font-size: var(--gf-ctrl-btn-font-size-xs, var(--gform-theme-font-size-xs, 0.75rem));
    font-weight: var(--gf-ctrl-multiselect-selected-item-font-weight, 600);
    gap: calc(var(--gf-ctrl-padding-x, 0.75rem) / 2);
    line-height: var(--gform-theme-line-height-base, 1.5);
    margin: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding-block: var(--gform-theme-spacer-1, 0.25rem);
    padding-inline: var(--gf-ctrl-padding-x, 0.75rem);
}

.gf-feedback-topics button.gf-feedback-topics__remove:focus-visible {
    outline-color: var(--gf-ctrl-outline-color-focus, rgba(32, 76, 229, 0.65));
    outline-offset: var(--gf-ctrl-outline-offset, 1px);
    outline-style: var(--gf-ctrl-outline-style, solid);
    outline-width: var(--gf-ctrl-outline-width-focus, 3px);
}

.gf-feedback-topics__remove span {
    font-size: 1.125rem;
    line-height: 0.8;
}

.gf-feedback-topics__listbox {
    background: var(--gf-ctrl-bg-color, #fff);
    border: var(--gf-ctrl-border-width, 1px) var(--gf-ctrl-border-style, solid) var(--gf-ctrl-select-dropdown-border-color, transparent);
    border-radius: var(--gf-ctrl-select-dropdown-radius, var(--gf-ctrl-radius, 3px));
    box-shadow: var(--gf-ctrl-select-dropdown-shadow, 0 0.5rem 1.5rem rgba(18, 25, 38, 0.12));
    color: var(--gf-ctrl-color, #112337);
    font-family: var(--gf-ctrl-font-family, inherit);
    font-size: var(--gf-ctrl-font-size, 1rem);
    font-style: var(--gf-ctrl-font-style, normal);
    font-weight: var(--gf-ctrl-font-weight, 400);
    letter-spacing: var(--gf-ctrl-letter-spacing, normal);
    left: 0;
    max-height: 16rem;
    overflow-y: auto;
    position: absolute;
    right: 0;
    top: calc(100% + var(--gform-theme-spacer-2, 0.5rem));
    z-index: 100;
}

.gf-feedback-topics__option,
.gf-feedback-topics__empty {
    padding-block: var(--gf-padding-y, 0.5rem);
    padding-inline: var(--gf-ctrl-padding-x, 0.75rem);
}

.gf-feedback-topics__option {
    cursor: pointer;
    padding-right: 2.5rem;
    position: relative;
}

.gf-feedback-topics__option.is-active {
    background: var(--gf-ctrl-select-dropdown-option-bg-color-hover, #eef2ff);
}

.gf-feedback-topics__option[aria-selected="true"]::after {
    content: "✓";
    font-weight: 700;
    position: absolute;
    right: 0.875rem;
}

.gf-feedback-topics__empty {
    color: var(--gf-color-in-ctrl-light, #646970);
}

.gf-feedback-topics__instructions,
.gf-feedback-topics__status {
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}
