/* FiBot Auth-Seiten (Login, Registrierung, Magic-Link, 2FA/Aktivierung)
   Baut auf den Variablen aus 2026.css auf und mappt das Bootstrap-Vokabular der
   Shield-Views (.card, .form-control, .btn-primary, .alert-*) auf den Desk-Look. */

/* Hintergrundfoto (Stempelkarussell aus dem alten Login) mit themenabhängigem Overlay,
   damit Karte und Text in Dunkel wie Hell lesbar bleiben. */
:root, [data-theme="soft"] { --auth-overlay-a:rgba(20,28,36,.78); --auth-overlay-b:rgba(20,28,36,.55); --auth-card-bg:rgba(34,46,60,.88); }
[data-theme="light"] { --auth-overlay-a:rgba(245,245,243,.72); --auth-overlay-b:rgba(245,245,243,.45); --auth-card-bg:rgba(255,255,255,.90); }

body.auth { min-height:100vh; display:flex; flex-direction:column; background-color:var(--bg);
  background-image:
    linear-gradient(180deg, var(--auth-overlay-a) 0%, var(--auth-overlay-b) 100%),
    url("/img/bg2022-5.jpg");
  background-size:cover, cover; background-position:center, center 40%; background-repeat:no-repeat; background-attachment:fixed; }
@media (max-width:700px) { body.auth { background-attachment:scroll; } }

.auth-top { display:flex; align-items:center; gap:14px; padding:14px 24px; }
.auth-top .logo { font-size:16px; }
.auth-top .right { margin-left:auto; display:flex; gap:8px; align-items:center; }

.auth-main, main.container { flex:1; display:flex; align-items:center; justify-content:center; padding:24px 16px 48px; width:100%; }
.auth-main > .container, main.container > .container { width:100%; display:flex; justify-content:center; padding:0 !important; }

/* Karte */
.auth-card, .card { width:100%; max-width:440px; background:var(--auth-card-bg); border:1px solid var(--border);
  border-radius:14px; box-shadow:0 18px 48px var(--shadow); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.auth-top { background:linear-gradient(180deg, rgba(0,0,0,.18), transparent); }
.auth-top .logo, .auth-foot, .auth-foot a { text-shadow:0 1px 2px rgba(0,0,0,.35); }
[data-theme="light"] .auth-top .logo, [data-theme="light"] .auth-foot, [data-theme="light"] .auth-foot a { text-shadow:none; }
.auth-card .card-body, .card .card-body { padding:28px 28px 22px; }
.auth-head { text-align:center; margin-bottom:22px; }
.auth-head .mark { width:44px; height:44px; border-radius:12px; background:var(--accent); color:var(--on-accent);
  display:inline-grid; place-items:center; margin-bottom:12px; }
.auth-head .mark .material-symbols-outlined { font-size:26px; vertical-align:0; }
.auth-head h1, .card-title, h1.display-5, h5.card-title { font-size:22px; font-weight:600; letter-spacing:-.02em; margin:0 0 4px; color:var(--text); }
.auth-head .sub, .auth-sub { color:var(--text-3); font-size:14px; }

/* Formulare */
.field { margin-bottom:14px; }
.field label, .form-floating > label { display:block; font-size:13px; color:var(--text-2); margin-bottom:5px; }
.form-floating { margin-bottom:14px; display:flex; flex-direction:column-reverse; }
.form-floating > label { position:static; transform:none; padding:0; height:auto; opacity:1; }
.inp, .form-control { width:100%; background:var(--bg); border:1px solid var(--border); border-radius:9px; padding:10px 12px;
  font:400 14.5px 'Inter',sans-serif; color:var(--text); outline:none; transition:border-color .15s, box-shadow .15s; }
.inp:focus, .form-control:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.18); }
.inp::placeholder, .form-control::placeholder { color:transparent; }
.form-check, .check { display:flex; align-items:center; gap:8px; margin:4px 0 16px; font-size:14px; color:var(--text-2); }
.form-check label, .form-check-label { display:flex; align-items:center; gap:8px; cursor:pointer; margin:0; }
.form-check-input, .check input { width:16px; height:16px; accent-color:var(--accent); margin:0; }
.form-switch .form-check-input { width:16px; }

.btn.primary, .btn-primary { width:100%; justify-content:center; padding:11px 14px; font-weight:600; font-size:14.5px;
  background:var(--accent); border:1px solid var(--accent); color:var(--on-accent); border-radius:9px; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px; }
.btn.primary:hover, .btn-primary:hover { filter:brightness(1.06); }
.d-grid { display:block; margin:0 0 14px !important; }

/* Meldungen */
.alert { border:1px solid var(--border); border-radius:10px; padding:11px 14px; margin-bottom:16px; font-size:14px; background:var(--panel-2); color:var(--text-2); }
.alert-danger, .alert.danger { border-color:rgba(var(--red-rgb),.45); background:rgba(var(--red-rgb),.08); color:var(--text); }
.alert-success, .alert.ok { border-color:rgba(var(--green-rgb),.45); background:rgba(var(--green-rgb),.08); color:var(--text); }
.alert-warning, .alert.warn { border-color:rgba(var(--amber-rgb),.45); background:rgba(var(--amber-rgb),.08); color:var(--text); }

/* Links & Fußzeile */
.auth-links, p.text-center { text-align:center; font-size:14px; color:var(--text-2); margin:6px 0 0; }
.auth-links a, .card a { color:var(--accent); font-weight:600; }
.auth-links a:hover, .card a:hover { text-decoration:underline; }
.auth-sep { height:1px; background:var(--border); margin:18px 0 14px; }
.auth-foot { text-align:center; padding:14px; font-size:12.5px; color:var(--text-3); }
.auth-foot a { color:var(--text-3); margin:0 6px; }
.auth-foot a:hover { color:var(--text-2); }

/* Bootstrap-Reste der Shield-Views neutralisieren */
.container, .p-5, .m-3, .m-5, .mb-2, .mb-3, .mb-4, .mb-5 { padding:0; }
.mb-2 { margin-bottom:10px; } .mb-3 { margin-bottom:14px; } .mb-4 { margin-bottom:18px; } .mb-5 { margin-bottom:22px; }
.card-title.mb-5 { margin-bottom:18px; }
.mx-auto { margin-left:auto; margin-right:auto; }
.text-center { text-align:center; }
.small { font-size:13px; }
