/* Anmeldeseite "Daemmerung": dunkler blau-violetter Verlauf, Glas-Karte; helle Fassung nach Browserwahl.
   Systemschriften, keine externen Ressourcen, keine Inline-Styles (CSP). */
:root{
  --tx:#efedff;--mut:#bab6e0;--ac:#b79cff;--acbg:#7243f0;--acbg2:#5b2fd0;--onac:#ffffff;
  --card:rgba(24,21,56,.86);--card2:rgba(255,255,255,.05);--line:rgba(190,175,255,.2);--line2:rgba(190,175,255,.38);
  --fo:#d6c8ff;--crit:#ff9bb8;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --bg:radial-gradient(ellipse 80% 55% at 85% 105%,#4a2398 0,rgba(74,35,152,0) 65%),radial-gradient(ellipse 60% 45% at 8% -5%,#243a8f 0,rgba(36,58,143,0) 70%),linear-gradient(180deg,#0a0a20 0,#120f35 55%,#1d1250 100%);
  --mount:#0b0920;--mount2:#140f35;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --tx:#1d1b3a;--mut:#55527a;--ac:#5a2fd1;--acbg:#6a3de4;--acbg2:#5428c4;--onac:#ffffff;
  --card:rgba(255,255,255,.86);--card2:rgba(90,47,209,.06);--line:rgba(60,40,140,.16);--line2:rgba(60,40,140,.34);
  --fo:#5a2fd1;--crit:#9b1239;
  --bg:radial-gradient(ellipse 70% 50% at 90% 100%,#ffd9c2 0,rgba(255,217,194,0) 70%),radial-gradient(ellipse 60% 45% at 5% 0,#c7dcff 0,rgba(199,220,255,0) 70%),linear-gradient(180deg,#d6e6ff 0,#e8dffb 60%,#fde7dc 100%);
  --mount:#c9bfe8;--mount2:#d8cff0;
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:#0a0a20}
html[data-theme="light"]{background:#d6e6ff}
html,body{margin:0;min-height:100%}
body{background:var(--bg);background-attachment:fixed;color:var(--tx);font:16px/1.55 var(--sans);position:relative;min-height:100vh}
body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:34vh;z-index:0;pointer-events:none;background:linear-gradient(180deg,var(--mount2),var(--mount));clip-path:polygon(0 100%,0 78%,12% 62%,22% 74%,36% 48%,47% 70%,58% 55%,70% 80%,82% 40%,92% 62%,100% 50%,100% 100%);opacity:.7}
button,input{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--fo);outline-offset:2px;border-radius:8px}
[hidden]{display:none!important}

body.login{display:grid;place-items:center;padding:20px}
.loginbox{position:relative;z-index:1;width:min(440px,100%);display:grid;gap:14px;padding:30px;border-radius:26px;background:var(--card);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.loginbox h1{margin:0;font-size:clamp(28px,6vw,36px);line-height:1.1;font-weight:500;letter-spacing:-.015em}
.sub{color:var(--mut);margin:0}
.field{display:grid;gap:4px}
.field label{font-size:13px;font-weight:600;color:var(--mut)}
.field input{background:var(--card2);border:1px solid var(--line2);border-radius:12px;padding:8px 12px;min-height:44px;width:100%;min-width:0}
.hint{font-size:13px;color:var(--mut)}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{border:1px solid var(--line2);background:var(--card2);border-radius:14px;padding:10px 20px;font-weight:600;min-height:44px;cursor:pointer}
.btn:hover{border-color:var(--ac)}
.btn.primary{background:var(--acbg);border-color:var(--acbg);color:var(--onac);width:100%;padding:12px 20px;font-size:17px}
.btn.primary:hover{background:var(--acbg2)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.error{color:var(--crit);font-weight:600;margin:0;min-height:1.2em}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
