/* input.css — pattern: single-line text capture.
   States: rest, hover, focus, filled, invalid, disabled, readonly.
   See FSE_UI.md → Input. */

.biq-input {
    display: block;
    width: 100%;
    min-height: var(--biq-touch-target);
    padding: var(--biq-space-2) var(--biq-space-3);
    background: var(--biq-color-surface-raised);
    color: var(--biq-color-text-primary);
    font-family: var(--biq-font-body);
    font-size: var(--biq-fs-md);
    line-height: var(--biq-lh-normal);
    border: 1px solid var(--biq-color-border);
    border-radius: var(--biq-radius-md);
    transition:
        border-color var(--biq-duration-fast) var(--biq-ease-standard),
        box-shadow var(--biq-duration-fast) var(--biq-ease-standard);
}

.biq-input::placeholder { color: var(--biq-color-text-muted); }

.biq-input:hover:not(:disabled):not([readonly]) {
    border-color: var(--biq-color-border-strong);
}

.biq-input:focus {
    outline: 0;
    border-color: var(--biq-color-border-focus);
    box-shadow: var(--biq-focus-ring);
}

.biq-input:disabled,
.biq-input[readonly] {
    background: var(--biq-color-surface-sunk);
    color: var(--biq-color-text-muted);
    cursor: not-allowed;
}

.biq-input[aria-invalid="true"] {
    border-color: var(--biq-color-danger);
}

.biq-input[aria-invalid="true"]:focus {
    box-shadow: 0 0 0 3px var(--biq-color-danger-soft);
}

/* Mono variant — for hashes, IDs, coordinates */
.biq-input--mono {
    font-family: var(--biq-font-mono);
    font-size: var(--biq-fs-sm);
}

/* Compact size */
.biq-input--sm {
    min-height: var(--biq-space-7);
    padding: var(--biq-space-1) var(--biq-space-2);
    font-size: var(--biq-fs-sm);
}

/* Textarea inherits but allows resize */
.biq-textarea {
    min-height: calc(var(--biq-touch-target) * 2);
    line-height: var(--biq-lh-normal);
    resize: vertical;
}
