/* Shared form control styles — applied to light DOM forms */ label { display: flex; flex-direction: column; gap: .35rem; font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--text); } input, select, textarea { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .5rem .75rem; background: var(--surface); color: var(--text); font-size: var(--text-base); width: 100%; transition: border-color .15s, box-shadow .15s; color-scheme: inherit; } input:focus, select:focus, textarea:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px rgba(10,126,164,.15); } input::placeholder, textarea::placeholder { color: var(--text-muted); } textarea { resize: vertical; min-height: 80px; line-height: 1.6; } select { cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .75rem center; padding-right: 2.25rem; } input[type="datetime-local"], input[type="date"], input[type="time"] { color-scheme: inherit; } input[type="checkbox"], input[type="radio"] { width: 1rem; height: 1rem; accent-color: var(--teal); cursor: pointer; } .form-error { color: var(--danger); font-size: var(--text-sm); margin-top: .25rem; } .form-group { display: flex; flex-direction: column; gap: .35rem; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } @media (max-width: 600px) { .form-row { grid-template-columns: 1fr; } }