.app-form { min-width: 0; }
.app-form .form-field { min-width: 0; margin: 0 0 1.35rem; }
.app-form .form-label { display: block; margin: 0 0 .45rem; color: #30313a; font-size: .94rem; font-weight: 650; }
.app-form .form-required { color: #a34460; }
.app-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.app-form select,
.app-form textarea {
  display: block; width: 100%; min-height: 46px; box-sizing: border-box;
  border: 1px solid #cfc5cb; border-radius: 12px; padding: .7rem .85rem;
  background: #fff; color: #30313a; font: inherit; line-height: 1.4;
}
.app-form textarea { min-height: 110px; resize: vertical; }
.app-form input[type=file] { padding: .55rem; }
.app-form input:focus-visible, .app-form select:focus-visible, .app-form textarea:focus-visible,
.app-form button:focus-visible, .app-form a:focus-visible {
  outline: 3px solid #c78da4; outline-offset: 2px; border-color: #a66d80;
}
.app-form .form-help { margin: .4rem 0 0; color: #665f66; font-size: .85rem; line-height: 1.5; }
.app-form .form-error, .app-form .errorlist { margin: .45rem 0 0; padding: 0; color: #9c2347; font-size: .88rem; list-style: none; }
.app-form .form-alert { margin-bottom: 1.25rem; padding: .8rem 1rem; border: 1px solid #e5abbc; border-radius: 12px; background: #fff1f4; color: #8c2342; }
.app-form .form-alert .errorlist { margin: 0; }
.app-form .form-check { display: flex; align-items: flex-start; gap: .65rem; margin: 0; cursor: pointer; font-weight: 500; line-height: 1.5; }
.app-form .form-check input, .app-form .form-options input { width: 18px; height: 18px; flex: none; margin-top: .2rem; accent-color: #a66d80; }
.app-form .form-options > div, .app-form .form-options ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .6rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.app-form .form-options label { display: flex; align-items: flex-start; gap: .5rem; min-height: 44px; padding: .65rem .75rem; border: 1px solid #e7dfe0; border-radius: 12px; background: #fcfafb; cursor: pointer; font-weight: 500; line-height: 1.4; }
.app-form .form-options label:has(input:checked) { border-color: #a66d80; background: #f8edf1; }
.app-form .form-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1.6rem; padding-top: 1.25rem; border-top: 1px solid #eee7e9; }
.app-form.completion-form label:has(input[type=checkbox]) { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin: .6rem 0; padding: .7rem; border: 1px solid #e7dfe0; border-radius: 12px; }
.app-form.completion-form input[type=number] { max-width: 10rem; margin-left: auto; }
@media (max-width: 639px) { .app-form .form-actions .btn { width: 100%; } }
