.form,.form__row{gap:var(--s4);display:grid}@media (width>=34rem){.form__row--2{grid-template-columns:1fr 1fr}}.fld{flex-direction:column;gap:.4rem;display:flex}.fld label{font-family:var(--font-display);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.fld .req{color:var(--accent);margin-left:.15rem}.fld input,.fld select,.fld textarea{font-family:var(--font-body);font-size:var(--fs-base);color:var(--ink);background-color:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;min-height:48px;transition:border-color var(--t-base) var(--ease), background-color var(--t-base) var(--ease);appearance:none;padding:.8rem .9rem}.fld textarea{resize:vertical;min-height:8rem;line-height:1.6}.fld select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121417' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .8rem center;background-repeat:no-repeat;background-size:18px;padding-right:2.6rem}.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--accent);background-color:#fff;outline:none}.fld input:focus-visible,.fld select:focus-visible,.fld textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.fld .hint{font-size:var(--fs-xs);color:var(--ink-3)}.fld .err{font-size:var(--fs-xs);color:var(--danger);font-weight:600}.fld.is-invalid input,.fld.is-invalid select,.fld.is-invalid textarea{border-color:var(--danger);background-color:var(--danger-soft)}.hp{width:1px;height:1px;overflow:hidden;position:absolute!important;left:-9999px!important}.form__warn{font-size:var(--fs-xs);color:var(--ink-3);border-left:2px solid var(--accent);padding-left:.9rem;line-height:1.6}.form__actions{gap:var(--s4);flex-wrap:wrap;align-items:center;display:flex}.form__status{font-size:var(--fs-sm);font-weight:600}.form__status.ok{color:var(--ok)}.form__status.bad{color:var(--danger)}.btn[aria-busy=true]{opacity:.65;pointer-events:none}.filedrop,.fld .filedrop{border:1.5px dashed var(--line-2);border-radius:var(--r-md);padding:var(--s5);text-align:center;cursor:pointer;background-color:var(--surface);transition:border-color var(--t-base) var(--ease), background-color var(--t-base) var(--ease);text-transform:none;letter-spacing:normal;font-family:var(--font-body);font-size:var(--fs-base);color:var(--ink);display:block}.filedrop:hover,.filedrop.is-over{border-color:var(--accent);background-color:var(--paper-2)}.filedrop input[type=file]{opacity:0;width:1px;height:1px;position:absolute}.filedrop__ic{width:26px;height:26px;color:var(--ink-3);margin:0 auto .5rem;display:block}.filedrop__main{font-family:var(--font-display);font-weight:600;font-size:var(--fs-sm);display:block}.filedrop__sub{font-size:var(--fs-xs);color:var(--ink-3);margin-top:.25rem;display:block}.filedrop.has-file{border-style:solid;border-color:var(--accent);background-color:var(--paper-2)}.filedrop.is-bad{border-color:var(--danger);background-color:var(--danger-soft)}.filename{justify-content:center;align-items:center;gap:.5rem;font-weight:600;display:flex}.filename svg{width:15px;height:15px;color:var(--accent);flex:none}.filesize{font-family:var(--font-mono);color:var(--ink-3);font-weight:400;font-size:var(--fs-xs)}.form--dark .fld label{color:#ffffffb3}.form--dark .fld input,.form--dark .fld select,.form--dark .fld textarea{color:#fff;background-color:#ffffff12;border-color:#fff3}.form--dark .fld input:focus,.form--dark .fld select:focus,.form--dark .fld textarea:focus{border-color:var(--accent-soft);background-color:#ffffff1c}.form--dark .fld select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.form--dark .fld select option{background:var(--ink);color:#fff}.form--dark .fld input::placeholder,.form--dark .fld textarea::placeholder{color:#ffffff61}.form--dark .fld .hint{color:#ffffff80}.form--dark .fld .err{color:#ff9a8f}.form--dark .fld.is-invalid input,.form--dark .fld.is-invalid select,.form--dark .fld.is-invalid textarea{background-color:#ff7a6b14;border-color:#ff7a6b}.form--dark .form__warn{color:#fff9}.form--dark .form__status.ok{color:#7fe3b0}.form--dark .form__status.bad{color:#ff9a8f}
