.form-container{background:#fff;border-radius:16px;box-shadow:0 20px 40px -10px #0000001a,0 10px 20px -5px #0000000a;border:1px solid #e2e8f0}.form-group{margin-bottom:0}.form-label{display:block;margin-bottom:.5rem;font-weight:600;color:#1e293b;font-size:.875rem}.form-label span{font-weight:400}.input-wrapper{position:relative}.input-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#64748b;font-size:1rem;transition:color .3s ease;z-index:10}.input-wrapper:focus-within .input-icon{color:#4f46e5}.form-input,.form-textarea{width:100%;padding:.875rem 1rem;border:1.5px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);background-color:#fafafa;color:#1e293b}.form-input.has-icon{padding-left:2.75rem}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:#94a3b8}.form-input::placeholder,.form-textarea::placeholder{color:#94a3b8}.form-input:hover,.form-textarea:hover{border-color:#cbd5e1;background-color:#f8fafc}.form-input:focus,.form-textarea:focus{outline:none;border-color:#4f46e5;background-color:#fff;box-shadow:0 0 0 4px #4f46e51a}.form-input.error,.form-textarea.error{border-color:#ef4444;background-color:#fef2f2}.form-input.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 4px #ef44441a}.input-wrapper:has(.form-input.error) .input-icon{color:#ef4444}.form-input.success,.form-textarea.success{border-color:#10b981;background-color:#f0fdf4}.form-input.success:focus,.form-textarea.success:focus{box-shadow:0 0 0 4px #10b9811a}.input-wrapper:has(.form-input.success) .input-icon{color:#10b981}.form-textarea{min-height:140px;resize:vertical;font-family:inherit;line-height:1.6;padding-bottom:2.5rem}.form-error{color:#ef4444;font-size:.875rem;margin-top:.375rem;display:none;font-weight:500;padding-left:.25rem}.form-error.show{display:block;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.form-submit{width:100%;padding:1rem 2rem;background:linear-gradient(135deg,#4f46e5,#7c3aed,#4f46e5);background-size:200% 100%;color:#fff;font-weight:600;font-size:1rem;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #4f46e533,0 2px 4px -1px #4f46e51a}.form-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 25px -5px #4f46e54d,0 10px 10px -5px #4f46e533;background-position:100% 0}.form-submit:active:not(:disabled){transform:translateY(0)}.form-submit:disabled{opacity:.7;cursor:not-allowed}.form-loading{display:inline-block;width:1.25rem;height:1.25rem;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-checkbox,.form-radio{width:1.25rem;height:1.25rem;accent-color:#4f46e5;cursor:pointer}.form-checkbox-label,.form-radio-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#374151}.form-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin-bottom:1rem}.form-select{width:100%;padding:.875rem 2.5rem .875rem 1rem;border:1.5px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:all .3s ease;background-color:#fafafa;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.form-select:focus{outline:none;border-color:#4f46e5;background-color:#fff;box-shadow:0 0 0 4px #4f46e51a}.character-counter{font-size:.75rem;font-weight:500}@media (max-width: 768px){.form-container{padding:1.5rem}.form-input,.form-textarea,.form-select{font-size:16px}.form-submit{padding:.875rem 1.5rem}}.form-input:focus-visible,.form-textarea:focus-visible,.form-select:focus-visible,.form-submit:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}
