:root{
  --navy:#1A2B4A;--navy2:#2a3f66;--gold:#C9A93B;--gold-d:#9c7f1f;--gold-soft:#faf4e1;
  --bg:#f4f6fa;--card:#fff;--ink:#1b2335;--mut:#667089;--line:#e3e7ef;--soft:#f7f8fb;
  --s1:#B4443C;--s1-soft:#fbeeed;--s2:#B8912A;--s2-soft:#fbf4e2;--s3:#2F6B8A;--s3-soft:#e9f2f7;
  --ok:#2f7d4f;--ok-soft:#e8f4ed;--err:#b23b3b;--err-soft:#fbeeee;
  --r:12px;--sh:0 1px 2px rgba(20,30,55,.05),0 4px 16px rgba(20,30,55,.06);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--navy2)}
.hidden{display:none!important}
.mut{color:var(--mut)}.klein{font-size:12.5px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.02em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Buttons & Felder */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 14px;font-weight:600;font-size:14px;cursor:pointer;transition:background .15s,border-color .15s,transform .05s;white-space:nowrap}
.btn:hover{background:var(--soft)}.btn:active{transform:translateY(1px)}
.btn.primaer{background:var(--navy);border-color:var(--navy);color:#fff}.btn.primaer:hover{background:var(--navy2)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}.btn.gold:hover{background:#d6b84e}
.btn.gefahr{color:var(--err);border-color:#efc9c9}.btn.gefahr:hover{background:var(--err-soft)}
.btn.klein{padding:6px 10px;font-size:13px;border-radius:8px}
.btn.icon{padding:7px;width:34px;height:34px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.voll{width:100%}
label.f{display:block;font-size:12.5px;font-weight:600;color:var(--mut);margin:12px 0 5px}
.eingabe,select.eingabe,textarea.eingabe{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;outline:none;transition:border-color .15s,box-shadow .15s}
.eingabe:focus{border-color:var(--navy2);box-shadow:0 0 0 3px rgba(42,63,102,.12)}
textarea.eingabe{min-height:84px;resize:vertical}
.feldzeile{display:flex;gap:6px;align-items:center}.feldzeile .eingabe{flex:1}
.hinweis{border-radius:10px;padding:10px 12px;font-size:13.5px;margin:10px 0;border:1px solid}
.hinweis.info{background:#eef3fb;border-color:#d6e2f5}
.hinweis.warn{background:var(--gold-soft);border-color:#ecdca6}
.hinweis.rot{background:var(--s1-soft);border-color:#f0cfcc}
.hinweis.gruen{background:var(--ok-soft);border-color:#cfe6d8}

/* Anmeldung */
.auth{min-height:100%;display:flex;align-items:center;justify-content:center;padding:28px 16px;background:radial-gradient(1200px 500px at 50% -10%,#e7ecf6 0,var(--bg) 60%)}
.auth-karte{width:100%;max-width:420px;background:#fff;border-radius:18px;box-shadow:var(--sh);padding:28px 26px;border:1px solid var(--line)}
.auth-karte.breit{max-width:520px}
.marke{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.marke .logo{width:38px;height:38px;border-radius:10px;background:var(--navy);display:grid;place-items:center}
.marke .logo svg{width:20px;height:20px}
.marke b{font-size:17px;color:var(--navy);letter-spacing:-.01em}.marke span{display:block;font-size:12px;color:var(--mut)}
.auth h1{font-size:22px;margin:4px 0 6px;color:var(--navy);letter-spacing:-.02em}
.schritte{display:flex;gap:6px;margin:0 0 14px}.schritte i{flex:1;height:4px;border-radius:3px;background:var(--line)}.schritte i.an{background:var(--gold)}
.qr{display:flex;gap:16px;align-items:center;margin:10px 0}.qr .bild{width:150px;height:150px;flex:0 0 150px;border:1px solid var(--line);border-radius:10px;padding:6px;background:#fff}
.qr .bild svg{width:100%;height:100%}
.codes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}.codes div{background:var(--soft);border:1px dashed var(--line);border-radius:8px;padding:7px;text-align:center;font-family:ui-monospace,monospace;font-weight:600}
.staerke{height:5px;border-radius:3px;background:var(--line);margin-top:6px;overflow:hidden}.staerke i{display:block;height:100%;border-radius:3px;transition:width .2s}

/* Rahmen */
.shell{display:grid;grid-template-columns:268px 1fr;height:100%}
.nav{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.nav-kopf{padding:16px 16px 10px}
.nav-inhalt{flex:1;overflow:auto;padding:4px 10px 12px}
.nav-fuss{border-top:1px solid var(--line);padding:10px}
.nav h4{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:16px 8px 6px;display:flex;align-items:center;gap:6px}
.nav a.punkt{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:14px;cursor:pointer}
.nav a.punkt:hover{background:var(--soft)}
.nav a.punkt.aktiv{background:#edf1f8;color:var(--navy);font-weight:600}
.nav a.punkt .zahl{margin-left:auto;font-size:12px;color:var(--mut)}
.nav a.punkt svg{width:17px;height:17px;flex:0 0 17px;color:var(--mut)}
.punktfarbe{width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.haupt{display:flex;flex-direction:column;min-width:0;min-height:0}
.leiste{display:flex;align-items:center;gap:10px;padding:12px 18px;background:#fff;border-bottom:1px solid var(--line)}
.suche{flex:1;position:relative;max-width:560px}.suche input{padding-left:36px}.suche svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:17px;color:var(--mut)}
.menueknopf{display:none}
.inhalt{flex:1;overflow:auto;padding:18px}
.zweispaltig{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:16px;height:100%;min-height:0}
.karte{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.karte.pad{padding:18px}
.kopf{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.kopf h2{font-size:19px;margin:0;color:var(--navy);letter-spacing:-.01em}
.kopf .rechts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.leer{padding:40px 20px;text-align:center;color:var(--mut)}
.leer b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}

/* Liste */
.liste{overflow:auto;max-height:100%}
.zeile{display:flex;align-items:center;gap:11px;padding:11px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.zeile:last-child{border-bottom:0}
.zeile:hover{background:var(--soft)}.zeile.aktiv{background:#eef2f9}
.av{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:700;color:#fff;flex:0 0 36px;font-size:15px}
.zeile .txt{min-width:0;flex:1}.zeile .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zeile .u{font-size:13px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--soft);color:var(--mut);white-space:nowrap}
.chip.s1{background:var(--s1-soft);color:var(--s1)}.chip.s2{background:var(--s2-soft);color:#8a6b14}.chip.s3{background:var(--s3-soft);color:var(--s3)}
.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.rot{background:var(--err-soft);color:var(--err)}.chip.gold{background:var(--gold-soft);color:#8a6b14}.chip.navy{background:#e9eef7;color:var(--navy)}

/* Detail */
.detail{padding:20px}
.detail-kopf{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.detail-kopf .av{width:48px;height:48px;flex-basis:48px;font-size:20px;border-radius:12px}
.detail-kopf h3{margin:0;font-size:19px;color:var(--navy)}
.feld{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:9px;display:flex;align-items:center;gap:10px}
.feld .l{font-size:11.5px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.feld .w{font-size:15px;word-break:break-all}
.feld .inh{flex:1;min-width:0}
.feld .akt{display:flex;gap:4px}
.totp{font-size:24px;font-weight:700;letter-spacing:.12em;color:var(--navy);font-variant-numeric:tabular-nums}
.ring{width:26px;height:26px}
.meta{font-size:12.5px;color:var(--mut);margin-top:14px;line-height:1.6}

/* Tabellen */
table.tab{width:100%;border-collapse:collapse;font-size:14px}
.tab th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600}
.tab td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tab tr:last-child td{border-bottom:0}
.tabwrap{overflow:auto}

/* Stufen-Karten */
.stufen{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stufe{border-radius:12px;padding:14px;border:1px solid var(--line);background:#fff}
.stufe .kopfzeile{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:6px}
.stufe ul{margin:6px 0 0 16px;padding:0;font-size:13.5px}.stufe li{margin:3px 0}
.stufe.s1{border-top:4px solid var(--s1)}.stufe.s2{border-top:4px solid var(--s2)}.stufe.s3{border-top:4px solid var(--s3)}
.kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.kachel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.kachel .z{font-size:28px;font-weight:800;color:var(--navy);line-height:1}
.kachel .b{font-size:13px;color:var(--mut);margin-top:4px}
.kachel.rot .z{color:var(--err)}.kachel.ok .z{color:var(--ok)}

/* Dialog */
.schleier{position:fixed;inset:0;background:rgba(18,26,45,.38);display:flex;align-items:flex-start;justify-content:center;padding:6vh 14px;z-index:50;overflow:auto;animation:ein .15s ease}
.dialog{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(10,20,40,.25);width:100%;max-width:520px;padding:22px}
.dialog.breit{max-width:760px}
.dialog h3{margin:0 0 4px;color:var(--navy);font-size:19px}
.dialog .knopfreihe{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}
.gen{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:8px}
.gen .reihe{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13.5px}
@keyframes ein{from{opacity:0}to{opacity:1}}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;box-shadow:var(--sh);z-index:80;animation:ein .15s}
.toast.fehler{background:var(--err)}
.laden{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:dreh .7s linear infinite}
.btn:not(.primaer) .laden{border-color:rgba(0,0,0,.15);border-top-color:var(--navy)}
@keyframes dreh{to{transform:rotate(360deg)}}
.banner{background:var(--gold-soft);border-bottom:1px solid #ecdca6;padding:9px 18px;font-size:13.5px}
.check{display:flex;gap:8px;align-items:flex-start;font-size:14px;margin:6px 0;cursor:pointer}
.check input{margin-top:3px}

@media (max-width:980px){
  .zweispaltig{grid-template-columns:1fr}
  .zweispaltig .detailspalte{position:fixed;inset:0;z-index:40;background:var(--bg);overflow:auto;padding:12px}
  .zweispaltig .detailspalte.zu{display:none}
  .stufen{grid-template-columns:1fr}
}
@media (max-width:760px){
  .shell{grid-template-columns:1fr}
  .nav{position:fixed;inset:0 25% 0 0;z-index:45;transform:translateX(-102%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.2)}
  .nav.offen{transform:none}
  .menueknopf{display:inline-flex}
  .leiste{padding:10px 12px}.inhalt{padding:12px}
  .leiste .btn .txt{display:none}
  .qr{flex-direction:column;align-items:flex-start}
  .tab .weg{display:none}
}
@media (min-width:981px){#zurueck{display:none}}
