/* STV-Electronic Branding – gemeinsames Layout für den IVS600 Password-Generator.
   Orientiert am Lizenz-Manager: Rot #e30613, Open Sans, weiße Karte, Radius 3px. */
:root{
  --stv-red:#e30613; --stv-red-dark:#b50510; --stv-navy:#06427e;
  --stv-ink:#32373c; --stv-text:#4e4e4e; --stv-muted:#5d6b78;
  --stv-line:#e2e2e2; --stv-soft:#f3f5f7; --stv-white:#ffffff; --stv-radius:3px;
  --stv-ok:#1f7a3d; --stv-okbg:#eaf6ee; --stv-err:#b50510; --stv-errbg:#fdeced;
}
*,*::before,*::after{box-sizing:border-box;}
html{background:#f3f5f7;}
body{
  margin:0; color:var(--stv-text);
  font-family:"Open Sans",Helvetica,Arial,"Lucida Grande",sans-serif;
  font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
.stv-card{
  max-width:560px; margin:2.2rem auto; background:var(--stv-white);
  border:1px solid var(--stv-line); border-top:4px solid var(--stv-red);
  border-radius:6px; box-shadow:0 8px 30px rgba(6,66,126,.07); overflow:hidden;
}
.stv-head{display:flex; align-items:center; gap:1.1rem; padding:1.6rem 1.8rem 1.2rem; border-bottom:1px solid var(--stv-line);}
.stv-logo{height:42px; width:auto; flex:0 0 auto;}
.stv-title{margin:0; font-size:1.4rem; font-weight:700; color:var(--stv-ink); letter-spacing:-.01em; line-height:1.2;}
.stv-sub{margin:.2rem 0 0; color:var(--stv-muted); font-size:.9rem;}
.stv-body{padding:1.5rem 1.8rem 1.8rem;}
.stv-body p{margin:0 0 1rem;}
.stv-field{margin-bottom:.95rem;}
label{display:block; font-size:.82rem; font-weight:600; color:var(--stv-ink); margin-bottom:.32rem; letter-spacing:.2px;}
.stv-req{color:var(--stv-red);}
input[type="text"],input[type="email"]{
  width:100%; padding:.6rem .7rem; font:inherit; color:var(--stv-ink);
  background:var(--stv-white); border:1px solid var(--stv-line); border-radius:var(--stv-radius);
  transition:border-color .15s, box-shadow .15s;
}
input::placeholder{color:#9aa6b2;}
input[type="text"]:focus,input[type="email"]:focus{
  outline:none; border-color:var(--stv-red); box-shadow:0 0 0 3px rgba(227,6,19,.12);
}
.stv-submit{
  appearance:none; border:0; cursor:pointer; font:inherit; font-weight:600; font-size:1rem;
  background:var(--stv-red); color:#fff; padding:.62rem 1.6rem; border-radius:var(--stv-radius);
  margin-top:.6rem; transition:background-color .15s, transform .02s;
}
.stv-submit:hover{background:var(--stv-red-dark);}
.stv-submit:active{transform:translateY(1px);}
.stv-submit:focus-visible{outline:2px solid var(--stv-navy); outline-offset:2px;}

/* Ergebnis-Seite */
.stv-badge{display:inline-block; font-weight:700; font-size:.85rem; padding:.35rem .8rem; border-radius:999px; margin-bottom:1rem;}
.stv-badge.ok{background:var(--stv-okbg); color:var(--stv-ok);}
.stv-badge.err{background:var(--stv-errbg); color:var(--stv-err);}
.stv-mail{font-weight:600; color:var(--stv-ink); word-break:break-word;}
.stv-team{color:var(--stv-red); font-weight:600;}
a{color:var(--stv-red);}

@media (max-width:560px){
  .stv-card{margin:1rem auto;}
  .stv-head{padding:1.2rem 1.2rem 1rem;}
  .stv-body{padding:1.2rem;}
}
