.image-upload{width:100%}.image-upload__input{display:none}.image-upload__container{position:relative;width:120px;height:120px;margin:0 auto}.image-upload__preview{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;border:3px solid #e0e0e0;background:#f5f5f5}.image-upload__preview-image{width:100%;height:100%;object-fit:cover}.image-upload__remove-button{position:absolute;top:5px;right:5px;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.7);color:white;border:none;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s ease}.image-upload__remove-button:hover{background:rgba(0,0,0,.9)}.image-upload__placeholder{width:100%;height:100%;border-radius:50%;border:2px dashed #ccc;background:#fafafa;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:20px;position:relative}.image-upload__placeholder:hover:not(:disabled){border-color:#999;background:#f5f5f5}.image-upload__placeholder:hover:not(:disabled) .image-upload__icon--profile{opacity:.5}.image-upload__placeholder:active:not(:disabled) .image-upload__icon-overlay,.image-upload__placeholder:hover:not(:disabled) .image-upload__icon-overlay{opacity:1;transform:translate(-50%,-50%) scale(1)}.image-upload__placeholder:disabled{cursor:not-allowed;opacity:.6}.image-upload__icon{color:#999;margin-bottom:8px}.image-upload__icon,.image-upload__icon--profile{transition:opacity .2s ease}.image-upload__placeholder-text{font-size:12px;color:#666;text-align:center;font-weight:500}.image-upload__icon-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);opacity:0;transition:all .2s ease;background:white;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px rgba(0,0,0,.2);pointer-events:none}.image-upload__icon-overlay svg{color:#666}.image-upload__plus-badge{position:absolute;top:0;right:0;background:#1976d2;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.15);pointer-events:none;border:3px solid white;transform:translate(10%,-10%)}.image-upload__plus-badge svg{color:white}.image-upload__error{margin-top:8px;padding:8px 12px;background:#ffebee;color:#c62828;border-radius:4px;font-size:13px;text-align:center}.image-upload__info{margin-top:8px;font-size:12px;color:#999;text-align:center}.image-upload--disabled{opacity:.6;pointer-events:none}.image-upload__hover-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:50%;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-upload__hover-icon-button{width:36px;height:36px;padding:0;background:white;color:#666;border:none;border-radius:50%;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.15)}.image-upload__hover-icon-button:hover{transform:scale(1.1);background:#f5f5f5;color:#333}.image-upload__icon--profile{color:#999}.image-crop-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;justify-content:center}.image-crop-modal__overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);animation:fadeIn .3s ease}.image-crop-modal__content{position:relative;background:white;border-radius:12px;width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:slideUp .3s ease}@media (max-width:768px){.image-crop-modal__content{width:95%;max-height:95vh;border-radius:8px}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.image-crop-modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e0e0e0}@media (max-width:480px){.image-crop-modal__header{padding:16px 20px}}.image-crop-modal__header h3{margin:0;font-size:18px;font-weight:600;color:#000}@media (max-width:480px){.image-crop-modal__header h3{font-size:16px}}.image-crop-modal__close{background:none;border:none;font-size:32px;line-height:1;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.image-crop-modal__close:hover{color:#000}.image-crop-modal__cropper{position:relative;width:100%;height:400px;background:#000}@media (max-width:768px){.image-crop-modal__cropper{height:300px}}@media (max-width:480px){.image-crop-modal__cropper{height:250px}}.image-crop-modal__controls{padding:20px 24px;border-bottom:1px solid #e0e0e0}@media (max-width:480px){.image-crop-modal__controls{padding:16px 20px}}.image-crop-modal__zoom-label{display:flex;align-items:center;gap:12px;color:#666}.image-crop-modal__zoom-label svg{flex-shrink:0}.image-crop-modal__zoom-slider{flex:1 1;height:4px;border-radius:2px;background:#e0e0e0;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (max-width:480px){.image-crop-modal__zoom-slider{height:6px}}.image-crop-modal__zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#000;cursor:pointer;-webkit-transition:transform .2s ease;transition:transform .2s ease}@media (max-width:480px){.image-crop-modal__zoom-slider::-webkit-slider-thumb{width:20px;height:20px}}.image-crop-modal__zoom-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#000;cursor:pointer;border:none;-moz-transition:transform .2s ease;transition:transform .2s ease}@media (max-width:480px){.image-crop-modal__zoom-slider::-moz-range-thumb{width:20px;height:20px}}.image-crop-modal__zoom-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.image-crop-modal__zoom-slider::-moz-range-thumb:hover{transform:scale(1.2)}.image-crop-modal__actions{display:flex;gap:12px;padding:20px 24px}@media (max-width:480px){.image-crop-modal__actions{padding:16px 20px}}.image-crop-modal__button{flex:1 1;padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}@media (max-width:480px){.image-crop-modal__button{padding:14px 20px;font-size:15px}}.image-crop-modal__button--cancel{background:#f5f5f5;color:#666}.image-crop-modal__button--cancel:hover{background:#e0e0e0}.image-crop-modal__button--save{background:#000;color:white}.image-crop-modal__button--save:hover{background:#333}