.admin-app :where(input:not([type="checkbox"]):not([type="radio"]):not([data-slot="input-group-control"]), select, textarea) {
    width: 100%;
    min-height: var(--admin-control-height);
    padding: .55rem .75rem;
    border: var(--admin-border-width) solid var(--admin-color-border);
    border-radius: var(--admin-radius-control);
    background: var(--admin-color-surface);
    color: var(--admin-color-text);
    font: inherit;
    transition: border-color var(--admin-motion-duration) ease,
        box-shadow var(--admin-motion-duration) ease;
}

.admin-app textarea {
    min-height: 7rem;
    resize: vertical;
}

.admin-app :where(input:not([data-slot="input-group-control"]), select, textarea):hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--admin-color-text-muted) 55%, var(--admin-color-border));
}

.admin-app :where(input:not([data-slot="input-group-control"]), select, textarea)[aria-invalid="true"],
.admin-app :where(input:not([data-slot="input-group-control"]), select, textarea).invalid {
    border-color: var(--admin-color-danger);
}

.admin-app :where(label:not([data-slot="field-label"]), .admin-field) {
    color: var(--admin-color-text);
    font-size: var(--admin-font-size-sm);
    font-weight: var(--admin-font-weight-medium);
}

.admin-field-help,
.validation-message {
    display: block;
    margin-top: var(--admin-space-1);
    color: var(--admin-color-text-muted);
    font-size: var(--admin-font-size-sm);
    font-weight: 400;
}

.validation-message {
    color: var(--admin-color-danger);
}

.validation-summary-errors {
    padding: var(--admin-space-4);
    border: var(--admin-border-width) solid color-mix(in srgb, var(--admin-color-danger) 35%, transparent);
    border-radius: var(--admin-radius-control);
    background: var(--admin-color-danger-soft);
    color: var(--admin-color-danger);
}

.admin-app label:not([data-slot="field-label"]) { display: grid; gap: var(--admin-space-1); }
.admin-app .check { display: flex; align-items: center; gap: var(--admin-space-2); }
.admin-app input:is([type="checkbox"], [type="radio"]) {
    -webkit-appearance: none;
    appearance: none;
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    min-height: 17px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--admin-color-border);
    background: var(--admin-color-surface);
    cursor: pointer;
}
.admin-app input[type="checkbox"] { border-radius: 4px; }
.admin-app input[type="checkbox"]:checked {
    border-color: var(--admin-color-accent);
    background-color: var(--admin-color-accent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8 3 3 5-6' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: center;
    background-size: 15px 15px;
    background-repeat: no-repeat;
}
.admin-app input[type="radio"] { border-radius: 50%; }
.admin-app input[type="radio"]:checked { border: 4px solid var(--admin-color-surface); background: var(--admin-color-accent); }
.admin-app input:is([type="checkbox"], [type="radio"]):focus-visible { outline: 2px solid var(--admin-color-accent); outline-offset: 3px; }
.admin-app input:is([type="checkbox"], [type="radio"]):disabled { opacity: .5; cursor: default; }
@media (forced-colors: active) { .admin-app input:is([type="checkbox"], [type="radio"]) { appearance: auto; } }
.form-grid, .repeatable-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
    gap: var(--admin-space-4);
}
.repeatable-row {
    align-items: end;
    padding-block: var(--admin-space-4);
    border-bottom: var(--admin-border-width) solid var(--admin-color-border);
}

/* Normalize native single selects, including Safari's compact menu control. */
.admin-app select:not([multiple]):not([size]),
.admin-app select[size="1"] {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 2.5rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: right .75rem center;
    background-repeat: no-repeat;
}

/* Form sections also stack inside EditForm, below the page-level layout. */
.admin-app form > :is(.form-section, .admin-card, .admin-table, .form-actions) ~ :is(.form-section, .admin-card, .admin-table, .form-actions) {
    margin-top: var(--admin-space-6);
}
.admin-app fieldset:not(.form-section) { display: grid; gap: var(--admin-space-4); }
