choice-control {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(160px, 1fr)
    );
    gap: 1rem;
}

choice-control [data-value] {
    min-height: 100px;
    padding: 1rem;

    border: 2px solid #999;
    border-radius: 0.75rem;

    background: white;
    cursor: pointer;

    font: inherit;
    font-size: 1.1rem;
}

choice-control [data-value]:hover {
    border-color: #555;
}

choice-control [data-value].selected {
    border-color: currentColor;
    outline: 3px solid currentColor;
    outline-offset: 2px;
}

choice-control [data-value]:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 2px;
}

choice-control[disabled],
choice-control[data-form-disabled] {
    opacity: 0.5;
}

choice-control[disabled] [data-value],
choice-control[data-form-disabled] [data-value] {
    cursor: not-allowed;
}


single-picker choice-option,
multi-picker choice-option {
    display: inline-block;

    padding: 0.4rem 0.75rem;
    margin: 0.2rem;

    border: 1px solid #888;
    border-radius: 0.4rem;

    background: #f5f5f5;

    cursor: pointer;
    user-select: none;
}

single-picker choice-option:hover,
multi-picker choice-option:hover {
    background: #e8e8e8;
}

single-picker choice-option[selected],
multi-picker choice-option[selected] {
    border-color: #287fb8;
    background: #287fb8;
    color: white;
}

choice-option[disabled] {
    opacity: 0.5;
    cursor: default;
}

single-picker:focus,
multi-picker:focus {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}
