/* Form controls — sharp corners, generous touch targets */

input[type="text"], input[type="email"], input[type="password"], input[type="url"],
input[type="tel"], input[type="number"], input[type="search"], input[type="date"],
select, textarea {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    padding: 12px 14px;
    background: var(--c-bg);
    border: 1px solid var(--c-border-strong);
    border-radius: var(--radius);
    font-family: inherit;
    font-size: var(--fs-md);
    line-height: 1.3;
    color: var(--c-fg);
    transition: border-color var(--t-fast) var(--ease-out);
    min-height: 44px;
}
textarea { min-height: 120px; resize: vertical; }

input:focus, select:focus, textarea:focus {
    border-color: var(--c-fg);
    outline: 0;
}

input::placeholder, textarea::placeholder {
    color: var(--c-mute-2); opacity: 1;
}

select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square' d='M1 1l4 4 4-4'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
}

label { display: inline-block; font-size: var(--fs-sm); font-weight: var(--fw-medium); margin-bottom: var(--s-2); }

input[type="checkbox"], input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 16px; height: 16px;
    border: 1px solid var(--c-fg);
    background: var(--c-bg);
    vertical-align: middle;
    margin-right: var(--s-2);
    min-height: 0;
    cursor: pointer;
    padding: 0;
}
input[type="checkbox"]:checked { background: var(--c-fg); }
input[type="checkbox"]:checked::after {
    content: ""; display: block;
    width: 4px; height: 8px;
    border: solid var(--c-bg); border-width: 0 2px 2px 0;
    transform: rotate(45deg) translate(1px, -1px);
}
input[type="radio"] { border-radius: 50%; }
input[type="radio"]:checked { background: var(--c-fg); box-shadow: inset 0 0 0 3px var(--c-bg); }

/* Search form */
.search-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--s-2);
    max-width: 560px;
}
