/* Base Form Components — BEM
 * Unified form styles using design tokens.
 * Based on patterns from tabs.css (.form-group, .form-label, .form-input).
 */

.form-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}

.form-label {
    display: block;
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
}

/* Shared input base styles */
.form-input,
.form-select,
.form-textarea {
    width: 100%;
    padding: var(--space-2) var(--space-3);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    color: var(--color-text);
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
}

.form-input {
    height: var(--height-input);
}

.form-select {
    height: var(--height-input);
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--space-3) center;
    padding-right: var(--space-8);
}

.form-textarea {
    min-height: 5rem;
    resize: vertical;
    line-height: 1.5;
}

/* Focus states */
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px rgba(var(--color-accent), 0.15);
}

/* Placeholder */
.form-input::placeholder,
.form-textarea::placeholder {
    color: var(--color-text-muted);
}

/* Checkbox / radio wrapper */
.form-checkbox {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    cursor: pointer;
}

.form-checkbox input[type="checkbox"],
.form-checkbox input[type="radio"] {
    width: var(--height-icon-sm);
    height: var(--height-icon-sm);
    accent-color: var(--color-accent);
    cursor: pointer;
}

/* Hint text below inputs */
.form-hint {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

/* Error state */
.form-error {
    font-size: var(--text-sm);
    color: var(--color-danger);
}

.form-input--error,
.form-select--error,
.form-textarea--error {
    border-color: var(--color-danger);
}

.form-input--error:focus,
.form-select--error:focus,
.form-textarea--error:focus {
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.15);
}
