*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#121212;color:#fff;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-font-smoothing:antialiased}
.panel{background:#000;border-radius:8px;padding:48px;width:100%;max-width:450px;box-shadow:0 4px 60px rgba(0,0,0,.5);position:relative;min-height:500px}
.logo{text-align:center;margin-bottom:32px}
h1{text-align:center;font-size:32px;font-weight:700;margin-bottom:32px}
.divider{height:1px;background:#282828;margin:32px 0}
.block{display:none !important;opacity:0;transition:opacity .3s;min-height:400px}
.block.active{display:block !important;opacity:1 !important}
.input-group{margin-bottom:16px}
label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}
.input,select{width:100%;padding:14px;background:#121212;border:1px solid #727272;border-radius:4px;color:#fff;font-size:16px;transition:border .2s}
.input:focus,select:focus{outline:none;border-color:#1db954}
.input::placeholder{color:#6a6a6a}
.input.error{border-color:#e22134}
.btn{width:100%;padding:16px;background:#1db954;color:#000;border:none;border-radius:500px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;margin-top:24px;-webkit-appearance:none}
.btn:hover:not(:disabled){transform:scale(1.04);background:#1ed760}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:active{transform:scale(0.98)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.grid-2{grid-template-columns:1fr}.panel{padding:32px 24px}}
.pwd-wrap{position:relative}
.toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#b3b3b3;cursor:pointer;padding:8px}
.card-input-wrapper{position:relative}
.card-logo{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:40px;height:25px;object-fit:contain}
.radio-option{display:flex;align-items:center;padding:16px;background:#181818;border:2px solid #282828;border-radius:4px;cursor:pointer;margin-bottom:12px;transition:border .2s}
.radio-option:hover{border-color:#1db954}
.radio-option input{margin-right:12px}
.upload-box{border:2px dashed #727272;border-radius:8px;padding:32px 24px;text-align:center;cursor:pointer;transition:all .3s;background:#181818;margin-bottom:16px;min-height:140px;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}
.upload-box:hover{border-color:#1db954;background:#1a1a1a}
.upload-box:active{background:#252525;transform:scale(0.98)}
.upload-box.has-file{border-color:#1db954;background:#1a2e1f}
.upload-box input[type="file"]{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;cursor:pointer}
.upload-icon{font-size:48px;margin-bottom:12px;color:#1db954;pointer-events:none}
.upload-text{font-size:14px;color:#b3b3b3;margin-top:8px;pointer-events:none;word-break:break-word;max-width:100%}
.desc-text{text-align:center;color:#b3b3b3;font-size:14px;line-height:1.6;margin-bottom:24px;padding:16px;background:#181818;border-radius:8px}
.info-card{background:#181818;border-radius:8px;padding:20px;margin-bottom:24px;border-left:4px solid #1db954;min-height:150px}
.info-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #282828}
.info-row:last-child{border-bottom:none}
.info-label{color:#b3b3b3;font-size:14px}
.info-value{color:#fff;font-weight:700;font-size:15px;min-width:100px;text-align:right}
.loader-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.95);display:none;align-items:center;justify-content:center;z-index:100;border-radius:8px}
.loader-overlay.show{display:flex}
.spinner{border:4px solid #282828;border-top:4px solid #1db954;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}
@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
.progress-bar{width:100%;height:4px;background:#282828;border-radius:2px;overflow:hidden;margin:24px 0}
.progress-fill{height:100%;background:linear-gradient(90deg,#1db954,#1ed760);width:0%;transition:width 3s ease-in-out}
.success-icon{font-size:64px;text-align:center;margin-bottom:16px;animation:scaleIn .5s}
@keyframes scaleIn{0%{transform:scale(0)}50%{transform:scale(1.1)}100%{transform:scale(1)}}
.waiting-dots:after{content:'...';animation:dots 1.5s steps(4,end) infinite}
@keyframes dots{0%,20%{content:'.'}40%{content:'..'}60%,100%{content:'...'}}
#badger_code_group{display:none}
@media(max-width:640px){
    .upload-box{padding:24px 16px;min-height:120px}
    .upload-icon{font-size:40px}
    .upload-text{font-size:13px}
}