/* --- Forms: Labels, Inputs, Selects, Textareas --- */
label {
    display: block;
    margin-bottom: var(--spacing-sm);
    font-weight: 600;
    color: var(--text-secondary-color);
    font-size: 0.9rem;
    font-family: var(--font-sans-serif);
}

select,
input[type="email"],
input[type="password"],
input[type="number"],
input[type="text"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="search"],
textarea {
    width: 100%;
    padding: 12px var(--spacing-md);
    margin-bottom: var(--spacing-md);
    border: 1px solid var(--input-border);
    border-radius: var(--border-radius-md);
    font-size: 1rem;
    background-color: var(--input-bg);
    color: var(--text-color);
    transition: var(--transition-base);
    box-shadow: var(--box-shadow-sm);
    font-family: var(--font-sans-serif);
}

select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23667eea'%3E%3Cpath d='M7 10l5 5 5-5H7z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 1.2em;
    padding-right: 36px;
    cursor: pointer;
}

textarea {
    min-height: 100px;
    resize: vertical;
    line-height: 1.5;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--input-focus-border);
    box-shadow: 0 0 0 3px var(--input-focus-shadow);
    transform: translateY(-1px);
}

input::placeholder,
textarea::placeholder {
    color: var(--text-muted-color);
    opacity: 0.7;
}

/* Search inputs specific styling */
input[type="search"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23667eea'%3E%3Cpath d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 12px center;
    background-size: 1.2em;
    padding-left: 36px;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"] {
    color-scheme: light;
    line-height: 1.2;
}

[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="time"],
[data-theme="dark"] input[type="datetime-local"] {
    color-scheme: dark;
}
