.card { border-radius: 1rem; box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); } .card-header { border-top-left-radius: 1rem !important; border-top-right-radius: 1rem !important; background-color: var(--bs-dark); } #previewImage { max-height: 400px; width: auto; object-fit: contain; } .form-check { margin-bottom: 0.5rem; } .alert { margin-bottom: 0; } .btn-primary { padding: 0.5rem 1.5rem; } /* Custom upload button styling */ .upload-container { position: relative; width: 120px; height: 42px; margin: 0 auto; } .upload-container input[type="file"] { display: none; } .upload-app { display: block; position: relative; width: 120px; height: 42px; transition: 0.3s ease width; cursor: pointer; } .upload-btn { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-color: var(--bs-dark); border: 2px solid var(--bs-border-color); border-radius: 0.375rem; overflow: hidden; } .upload-btn:before { content: "Upload"; position: absolute; top: 50%; left: 45%; transform: translate(-50%, -50%); color: var(--bs-body-color); font-size: 14px; font-weight: bold; transition: opacity 0.3s ease; } .file-selected .upload-btn:before { opacity: 0; } .upload-arrow { position: absolute; top: 0; right: 0; width: 38px; height: 38px; background-color: var(--bs-dark); transition: opacity 0.3s ease; } .file-selected .upload-arrow { opacity: 0; } .upload-arrow:before, .upload-arrow:after { content: ""; position: absolute; top: 18px; width: 10px; height: 2px; background-color: var(--bs-body-color); } .upload-arrow:before { right: 17px; transform: rotateZ(-45deg); } .upload-arrow:after { right: 11px; transform: rotateZ(45deg); } .upload-success { position: absolute; top: 50%; left: 50%; width: 24px; height: 24px; margin: 0; background-color: var(--bs-success); transform: translate(-50%, -50%) scale(0); border-radius: 50%; opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; } .upload-success i { font-size: 16px; color: #fff; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0); transition: transform 0.3s ease 0.1s; } .file-selected .upload-success { transform: translate(-50%, -50%) scale(1); opacity: 1; } .file-selected .upload-success i { transform: translate(-50%, -50%) scale(1); }