.ui-input-wrapper {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ui-input-label {
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
}

/* Field wrapper enables an optional leading icon positioned inside the input. */
.ui-input-field {
    position: relative;
    display: flex;
    align-items: center;
    inline-size: 100%;
}

.ui-input-start-icon {
    position: absolute;
    inset-inline-start: var(--input-start-icon-inset, 14px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    color: var(--input-start-icon-color, var(--meb-text-muted));
}

.ui-input-wrapper.has-start-icon .ui-input {
    padding-inline-start: var(--input-start-icon-pad, 44px);
}

.ui-input {
    width: 100%;
    min-height: var(--input-min-height, 42px);
    padding: var(--input-padding-y, 10px) var(--input-padding-x, 12px);
    border-radius: var(--input-radius, 8px);
    border: 1px solid var(--input-border);
    background: var(--input-background);
    color: var(--input-foreground);
    font-family: inherit;
    font-size: var(--text-md);
    font-weight: var(--weight-regular);
    line-height: var(--font-lineheight-body);
    box-shadow: var(--input-shadow);
    transition: border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
}

.ui-input::placeholder {
    color: var(--input-text-placeholder, var(--meb-text-muted));
}

.ui-input:focus {
    /* Transparent, not none: forced-colors mode strips the box-shadow ring and repaints this outline in a system colour (ADO 11309). */
    outline: var(--meb-focus-ring-width) solid transparent;
    outline-offset: var(--meb-focus-ring-offset);
    border-color: var(--input-border-focus);
    box-shadow: var(--focus-ring-shadow);
}

/* A disabled field is not interactive, so its edge stays the quiet divider colour instead of the
   3:1 field edge. The error rule below wins over this one by specificity. */
.ui-input:disabled {
    background: var(--input-surface-disabled);
    color: var(--input-text-disabled);
    border-color: var(--meb-border-subtle);
}

.ui-input-wrapper.error .ui-input {
    border-color: var(--input-border-error);
}

.ui-input-error {
    color: var(--input-border-error);
    font-size: var(--text-xs);
}
