.photo-uploader-container{z-index:1;flex-direction:column;align-items:center;width:100%;min-width:150px;display:flex;position:relative}.upload-button{background-color:var(--primary-color,#106cc8);color:#fff;font-weight:var(--font-weight-medium);border-radius:var(--border-radius,6px);cursor:pointer;width:100%;max-width:100%;box-shadow:var(--box-shadow-primary);border:none;justify-content:center;align-items:center;gap:8px;min-height:48px;transition:all .2s;display:flex;position:relative;overflow:hidden}.upload-button:hover{background-color:var(--primary-hover,#0069d9);box-shadow:var(--box-shadow-primary);transform:translateY(-2px)}.upload-button:active:not(:disabled){box-shadow:var(--box-shadow-primary);transform:scale(.98)}.upload-button:disabled{opacity:.65;pointer-events:none;cursor:not-allowed;box-shadow:none;transform:none}.upload-button.uploading{cursor:wait;position:relative}.upload-button.uploading:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:30%;height:100%;animation:1.5s infinite loading;position:absolute;top:0;left:0}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(400%)}}.upload-button.success{background-color:var(--success-color);pointer-events:none;cursor:default}.upload-button.success:disabled{opacity:1}.upload-button.success:before{content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.99'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px 20px;width:20px;height:20px;animation:.3s ease-out pop;position:absolute;top:50%;left:20px;transform:translateY(-50%)}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}.upload-icon{fill:none;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex;position:relative}.drop-area{border:2px dashed var(--primary-color);background-color:var(--primary-color-light);text-align:center;cursor:pointer;width:100%;height:180px;color:var(--text-color);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:20px;transition:all .2s;display:flex}.drop-area:hover{border-color:var(--primary-color-dark);background-color:#007bff26}.upload-separator{color:var(--text-muted);margin:8px 0;font-weight:600;display:block}.selected-product{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:8px}.error{color:var(--danger-color);background-color:var(--danger-light);border-left:3px solid var(--danger-color);width:100%;max-width:100%;font-size:var(--font-size-sm);text-align:left;border-radius:6px;margin-top:12px;padding:12px 16px}.photo-guide{flex-direction:column;align-items:center;width:100%;max-width:500px;margin-top:16px;display:flex}.caution-title{color:var(--color-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase;text-align:center;width:100%;max-width:450px;margin:0 0 8px}.caution-list{text-align:left;width:100%;max-width:450px;margin:0 0 16px;padding:0 0 0 1.1rem;list-style:outside}.caution-list li{color:var(--color-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin:0 0 4px;list-style:outside}.caution-list li:last-child{margin-bottom:0}.caution-list .photo-guide-link a{color:var(--color-primary);font-weight:var(--font-weight-medium);text-decoration:underline}@media (max-width:240px){.upload-button{min-height:44px;padding:12px 16px}.upload-icon{width:16px;height:16px}.btn-icon-left{margin-right:4px}.btn-text{font-size:var(--font-size-sm)}}@media (max-width:428px){.photo-uploader-container{width:100%;min-width:100%}.upload-button{min-height:44px;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.drop-area{height:140px;padding:var(--spacing-md)}.upload-separator{font-size:var(--font-size-sm)}.photo-guide{margin-top:var(--spacing-md)}.error{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs)}}@media (max-width:375px){.drop-area{height:120px;padding:var(--spacing-sm)}.upload-button{font-size:var(--font-size-xs);min-height:40px}}
