/*
 * Keep text and controls clear of absolutely positioned Material Symbols.
 *
 * A number of older forms compose their own icon inputs instead of using the
 * shared Cotton fields. These relational selectors give both implementations
 * the same safe spacing without affecting text prefixes such as "$" or "/shop/".
 */
.relative:has(> [class~="absolute"][class*="left-"] .material-symbols-outlined)
    > :is(input, select, textarea),
.relative:has(> .material-symbols-outlined.absolute[class*="left-"])
    > :is(input, select, textarea) {
    padding-left: 3rem !important;
}

.relative:has(> [class~="absolute"][class*="right-"] .material-symbols-outlined)
    > :is(input, select, textarea),
.relative:has(> .material-symbols-outlined.absolute[class*="right-"])
    > :is(input, select, textarea),
.relative:has(> button.absolute .material-symbols-outlined) > input {
    padding-right: 3rem !important;
}

/*
 * Explicit CRM adornment hooks. These do not depend on utility-class
 * specificity, which is important because the dashboard base form selector
 * also normalizes Django widgets.
 */
.form-control-leading-adornment > :is(input, select, textarea) {
    padding-left: 3rem !important;
}

.form-control-leading-adornment-compact > :is(input, select, textarea) {
    padding-left: 2.25rem !important;
}

.form-control-trailing-adornment-compact > :is(input, select, textarea) {
    padding-right: 2.25rem !important;
}

.form-control-leading-adornment-wide > :is(input, select, textarea) {
    padding-left: 4rem !important;
}
