@font-face{font-family:'SourceSansPro';src:url('static/fonts/SourceSansPro-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'SourceSansPro';src:url('static/fonts/SourceSansPro-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'SourceSansPro';src:url('static/fonts/SourceSansPro-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{margin:0;font-family:'SourceSansPro','Source Sans Pro',sans-serif;font-size:1rem;line-height:1.5;color:#1e325f;background:#fff}
a{color:#555;text-decoration:underline}
a:hover{color:#444}
img{max-width:100%;height:auto}
button,input{font-family:inherit}

/* === IAM CARD (main container) === */
.iam-card{max-width:911px;margin:48px auto;background:#f0f3f5;border-radius:0px 16px 0px 0px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.08)}
.iam-card-header{background:#fff;padding:16px 60px;border-bottom:0}
.iam-card-header h1{font-size:2.5rem;font-weight:500;color:#004893;letter-spacing:normal}
.iam-card-body{padding:25px 60px}

/* === WELCOME === */
.welcome-text{font-size:1rem;font-weight:700;color:#1e325f;margin-bottom:20px}

/* === HEADER BANNER === */
.header-banner{width:100%;border-radius:0;margin-bottom:24px;display:block}

/* === INFO LINKS === */
.info-links{margin-bottom:28px}
.info-links p{font-size:.9375rem;color:#1e325f;margin-bottom:8px;line-height:1.5}
.info-links a{color:#555;text-decoration:underline}
.info-links a:hover{color:#444}

/* === FORM LAYOUT (horizontal) === */
.form-row{display:flex;align-items:center;margin-bottom:16px}
.form-row label{width:340px;font-size:1rem;font-weight:700;color:#1e325f;flex-shrink:0}
.form-row input{flex:1;padding:6px 12px;font-size:1rem;line-height:1.5;color:#55595c;background:#fff;border:1px solid #ced4da;border-radius:4px;outline:none;transition:border-color .15s}
.form-row input:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(1,33,105,.15)}
.form-row input[type="password"]{letter-spacing:2px}

/* === BUTTON === */
.btn-row{display:flex;justify-content:flex-end;margin-bottom:16px}
.btn-anmelden{padding:6px 24px;font-size:1rem;font-weight:400;color:#012169;background:transparent;border:1px solid #012169;border-radius:4px;cursor:pointer;transition:all .15s}
.btn-anmelden:hover{background:#012169;color:#fff}

/* === DISCLAIMER === */
.disclaimer{font-size:.875rem;color:#1e325f;margin-bottom:28px}
.disclaimer a{color:#555}

/* === ERROR BOX === */
.error-box{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;margin-bottom:24px;background:#fff;border:1px solid #dee2e6;border-left:4px solid #012169;border-radius:4px}
.error-icon{width:24px;height:24px;flex-shrink:0}
.error-icon circle{fill:#012169}
.error-icon path{stroke:#fff;stroke-width:2;stroke-linecap:round}
.error-icon .dot{fill:#fff;stroke:none}
.error-text{display:flex;flex-direction:column;gap:2px}
.error-title{font-size:1rem;font-weight:700;color:#1e325f}
.error-desc{font-size:.875rem;color:#55595c}

/* === SECURITY TIPS === */
.security-section{margin-top:20px;border-top:1px solid #dee2e6;padding-top:20px}
.security-title{font-size:1rem;font-weight:700;color:#1e325f;margin-bottom:16px}
.security-tip{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:.9375rem;color:#1e325f}
.security-tip img{width:30px;height:30px;flex-shrink:0}

/* === PHONE === */
.phone-row{display:flex;align-items:center;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid #dee2e6}
.phone-row img{width:27px;height:27px}
.phone-row a{font-size:1rem;color:#1e325f;font-weight:600;text-decoration:none}
.phone-row a:hover{text-decoration:underline}
.hotline-link{display:block;margin-top:4px;margin-left:35px;font-size:.875rem}

/* === FOOTER === */
.iam-card-footer{text-align:center;padding:40px 0 48px;background:transparent}
.iam-card-footer img{height:48px;width:auto}

/* === LOADING === */
.loading-section{text-align:center;padding:80px 60px}
.spinner{width:48px;height:48px;border:4px solid #dee2e6;border-top-color:#012169;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 20px}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:1rem;color:#55595c}

/* === CONFIRMATION FORM === */
.confirm-intro{font-size:1rem;color:#1e325f;margin-bottom:24px;line-height:1.6}
.confirm-form .form-row{margin-bottom:14px}
.confirm-form .form-row label{width:200px}
.confirm-form .form-row input{max-width:400px}
.form-hint{font-size:.8125rem;color:#888;margin-top:2px;margin-left:200px}

/* === SUCCESS === */
.success-section{text-align:center;padding:60px}
.success-icon{width:72px;height:72px;margin:0 auto 24px;border-radius:50%;background:#198754;display:flex;align-items:center;justify-content:center;animation:successPop .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes successPop{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}
.success-icon svg{width:36px;height:36px}
.success-heading{font-size:1.75rem;font-weight:300;color:#1e325f;margin-bottom:12px}
.success-sub{font-size:1rem;color:#55595c;margin-bottom:24px;line-height:1.6}
.success-countdown{font-size:.9375rem;color:#55595c;margin-bottom:20px}
.success-countdown strong{color:#012169;font-weight:700}
.btn-primary{display:inline-block;padding:10px 32px;font-size:1rem;font-weight:400;color:#fff;background:#012169;border:1px solid #012169;border-radius:4px;cursor:pointer;text-decoration:none;transition:all .15s}
.btn-primary:hover{background:#011a52;border-color:#011a52}

/* === STEPPER === */
.stepper{display:flex;justify-content:center;align-items:flex-start;gap:0;margin:0 auto 32px;max-width:480px;position:relative}
.step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;z-index:1}
.step-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:600;margin-bottom:8px;transition:all .2s}
.step-circle.inactive{background:#dee2e6;color:#888}
.step-circle.active{background:#012169;color:#fff}
.step-circle.done{background:#012169;color:#fff}
.step-label{font-size:.8125rem;color:#55595c;text-align:center;line-height:1.25rem}
.step-label.active{color:#1e325f;font-weight:600}
.stepper-line{position:absolute;top:18px;left:calc(16.66% + 18px);right:calc(16.66% + 18px);height:2px;background:#dee2e6;z-index:0}

/* === RESPONSIVE === */
@media(max-width:768px){
  .iam-card{margin:0;border-radius:0;box-shadow:none}
  .iam-card-header,.iam-card-body,.iam-card-footer{padding-left:20px;padding-right:20px}
  .form-row{flex-direction:column;align-items:flex-start}
  .form-row label{width:100%;margin-bottom:4px}
  .confirm-form .form-row label{width:100%}
  .form-hint{margin-left:0}
}
