.field-error{color:var(--danger);align-items:center;gap:.35rem;margin-top:.35rem;font-size:.78rem;font-weight:500;line-height:1.35;animation:.18s both field-error-in;display:inline-flex}.field-error:before{content:"";background-color:currentColor;flex-shrink:0;width:14px;height:14px;display:inline-block;-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='12'/><line x1='12' y1='16' x2='12.01' y2='16'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='12'/><line x1='12' y1='16' x2='12.01' y2='16'/></svg>");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@keyframes field-error-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.field-error{animation:none}}.input:has(+.field-error){border-color:var(--danger);box-shadow:0 0 0 3px #c0392b14}.select:has(+.field-error){border-color:var(--danger);box-shadow:0 0 0 3px #c0392b14}textarea:has(+.field-error){border-color:var(--danger);box-shadow:0 0 0 3px #c0392b14}.field-help{color:var(--text-tertiary);margin-top:.35rem;font-size:.78rem;line-height:1.4;display:block}.field-required{color:var(--danger);margin-left:.15rem}.field-autosave{color:var(--text-tertiary);align-items:center;gap:.35rem;font-size:.75rem;font-weight:500;display:inline-flex}.field-autosave.is-saving{color:var(--text-secondary)}.field-autosave.is-saved{color:var(--success)}.field-autosave.is-error{color:var(--danger)}.field-autosave-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.field-autosave.is-saving .field-autosave-dot{animation:1s ease-in-out infinite field-autosave-pulse}@keyframes field-autosave-pulse{0%,to{opacity:.4}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.field-autosave.is-saving .field-autosave-dot{animation:none}}
