:root { --blau: #2B4880; --magenta: #B22681; --gruen: #9AC863; }
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: var(--blau); color: #fff; font-family: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
       display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 24px; }
main { width: 100%; max-width: 380px; }
.logo { display: block; width: 220px; height: auto; margin-bottom: 40px; }
h1 { font-family: Georgia, "Source Serif 4", serif; font-weight: 400; font-size: 40px; margin: 0; letter-spacing: -.01em; }
.unter { margin: 6px 0 32px; opacity: .8; font-size: 15px; line-height: 1.4; }
label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; opacity: .85; }
input { width: 100%; font: inherit; font-size: 17px; padding: 12px 14px; border: 0; border-radius: 6px; color: #1D1D1B; }
input:focus { outline: 3px solid var(--gruen); outline-offset: 1px; }
button { margin-top: 14px; width: 100%; font: inherit; font-size: 16px; font-weight: 600; padding: 12px; border: 0; border-radius: 6px;
         background: var(--magenta); color: #fff; cursor: pointer; }
button:hover { filter: brightness(1.08); }
button:disabled { opacity: .6; cursor: wait; }
#meldung { min-height: 1.4em; margin: 14px 0 0; font-size: 14px; }
#meldung.fehler { color: #FFD1EA; }
