:root {
  --navy:      #1F4E79;
  --blue:      #2E75B6;
  --blue-lt:   #D5E8F0;
  --orange:    #C55A11;
  --orange-lt: #FDE9D9;
  --ivory:     #F7F4EF;
  --white:     #FFFFFF;
  --g100:      #F0EDE8;
  --g200:      #DDD9D2;
  --g400:      #9E9890;
  --g600:      #5A5550;
  --g800:      #2C2A26;
  --green:     #1A7A4A;
  --red:       #A63024;
  --font-d:    'Playfair Display', Georgia, serif;
  --font-b:    'DM Sans', system-ui, sans-serif;
  --r:         8px;
  --rl:        14px;
  --shadow:    0 2px 12px rgba(31,78,121,.12);
  --shadowlg:  0 8px 32px rgba(31,78,121,.20);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:var(--font-b);background:var(--ivory);color:var(--g800);line-height:1.6;min-height:100vh}
a{color:var(--blue);text-decoration:none}
button{font-family:var(--font-b);cursor:pointer}

/* ── Layout ── */
.app{display:flex;flex-direction:column;min-height:100vh}
.container{max-width:1060px;margin:0 auto;padding:0 1.5rem}

/* ── Header ── */
header{
  background:var(--navy);
  padding:.8rem 0;
  position:sticky;top:0;z-index:100;
  box-shadow:0 2px 16px rgba(0,0,0,.3);
}
.hinner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.logo-badge{
  width:40px;height:40px;background:var(--orange);border-radius:7px;
  display:grid;place-items:center;
  font-family:var(--font-d);font-size:1.1rem;font-weight:900;color:#fff;
}
.logo-text strong{display:block;font-family:var(--font-d);color:#fff;font-size:1rem;font-weight:700}
.logo-text small{color:rgba(255,255,255,.55);font-size:.7rem;font-weight:300;text-transform:uppercase;letter-spacing:.05em}
nav{display:flex;gap:.2rem;flex-wrap:wrap}
nav button{
  background:none;border:none;
  color:rgba(255,255,255,.75);padding:.4rem .85rem;border-radius:6px;
  font-size:.86rem;font-weight:500;transition:all .15s;
}
nav button:hover{background:rgba(255,255,255,.12);color:#fff}
nav button.active{background:rgba(255,255,255,.15);color:#fff}
.nav-admin{background:var(--orange)!important;color:#fff!important;margin-left:.4rem}
.nav-admin:hover{background:#a34a0e!important}

/* ── Pages ── */
main{flex:1;padding:2rem 0 3rem}
.page{display:none}
.page.active{display:block;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ── Motivationsspruch ── */
.zitat-box{
  background:linear-gradient(135deg, var(--navy) 0%, #2E75B6 100%);
  border-radius:var(--rl);
  padding:1.4rem 1.8rem;
  margin-bottom:1.4rem;
  position:relative;
  overflow:hidden;
}
.zitat-box::before{
  content:'♟';
  position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);
  font-size:5rem;opacity:.07;line-height:1;
}
.zitat-text{
  font-family:var(--font-d);
  font-size:1.05rem;
  color:#fff;
  line-height:1.55;
  font-style:italic;
  margin-bottom:.5rem;
}
.zitat-text::before{content:'\201E';font-size:1.4em;line-height:0;vertical-align:-.25em;margin-right:.1em;opacity:.7}
.zitat-text::after{content:'\201C';font-size:1.4em;line-height:0;vertical-align:-.25em;margin-left:.1em;opacity:.7}
.zitat-autor{
  font-size:.8rem;color:rgba(255,255,255,.6);
  font-weight:500;letter-spacing:.04em;text-transform:uppercase;
}

/* ── Page title ── */
.ptitle{font-family:var(--font-d);font-size:1.9rem;font-weight:700;color:var(--navy);line-height:1.2}
.psub{font-size:.88rem;color:var(--g400);font-weight:300;margin-top:.2rem;margin-bottom:1.5rem}

/* ── Card ── */
.card{background:var(--white);border-radius:var(--rl);box-shadow:var(--shadow);border:1px solid var(--g200);overflow:hidden}
.card-h{padding:.9rem 1.4rem;border-bottom:1px solid var(--g200);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.card-h h2{font-family:var(--font-d);font-size:1rem;font-weight:700;color:var(--navy)}
.card-b{padding:1.4rem}

/* ── Stats grid ── */
.sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.9rem}
.stile{background:var(--white);border:1px solid var(--g200);border-radius:var(--r);padding:.9rem 1.1rem;text-align:center;box-shadow:var(--shadow)}
.stile .val{font-family:var(--font-d);font-size:1.75rem;font-weight:700;color:var(--navy);line-height:1}
.stile .lbl{font-size:.72rem;color:var(--g400);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}

/* ── Table ── */
.tbl{width:100%;border-collapse:collapse;font-size:.88rem}
.tbl th{background:var(--navy);color:rgba(255,255,255,.85);padding:.6rem 1rem;text-align:left;font-weight:500;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}
.tbl td{padding:.7rem 1rem;border-bottom:1px solid var(--g100);vertical-align:middle}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr{transition:background .15s;cursor:pointer}
.tbl tbody tr:hover{background:var(--blue-lt)}

/* ── Rang badge ── */
.rang{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:.76rem;font-weight:700;background:var(--g100);color:var(--g600)}
.rang.r1{background:#FFD700;color:#7A5900}
.rang.r2{background:#C0C0C0;color:#444}
.rang.r3{background:#CD7F32;color:#fff}
.awz-val{font-family:var(--font-d);font-size:1.05rem;font-weight:700;color:var(--navy)}
.tend{font-size:1rem;font-weight:700}
.tend.up{color:var(--green)}.tend.dn{color:var(--red)}

/* ── Typ-Badge ── */
.typ{font-size:.7rem;font-weight:700;padding:.15rem .55rem;border-radius:20px;text-transform:uppercase;letter-spacing:.03em;display:inline-block}
.t-liga{background:var(--navy);color:#fff}
.t-bot{background:var(--blue-lt);color:var(--blue)}
.t-schnell{background:var(--orange-lt);color:var(--orange)}
.t-blitz{background:#FFF3CD;color:#856404}

/* ── Ergebnis badge ── */
.eb{font-size:.76rem;font-weight:700;padding:.15rem .5rem;border-radius:4px;text-align:center;white-space:nowrap}
.eb-s{background:#D4EDDA;color:var(--green)}
.eb-r{background:var(--g100);color:var(--g600)}
.eb-n{background:#F8D7DA;color:var(--red)}

/* ── Delta ── */
.dpos{color:var(--green);font-weight:700}
.dneg{color:var(--red);font-weight:700}

/* ── Pagination ── */
.pager{display:flex;gap:.4rem;justify-content:center;padding:1.1rem 0}
.pager button{width:34px;height:34px;border:1px solid var(--g200);background:var(--white);border-radius:6px;font-size:.85rem;font-weight:500;color:var(--g600);transition:all .15s}
.pager button:hover{border-color:var(--blue);color:var(--blue)}
.pager button.active{background:var(--blue);color:#fff;border-color:var(--blue)}

/* ── Forms ── */
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.3rem}
.fg{display:flex;flex-direction:column;gap:.3rem}
.fg.full{grid-column:1/-1}
label{font-size:.8rem;font-weight:600;color:var(--g600)}
input,select,textarea{
  border:1.5px solid var(--g200);border-radius:var(--r);
  padding:.58rem .8rem;font-family:var(--font-b);font-size:.88rem;
  background:var(--white);color:var(--g800);
  transition:border-color .15s,box-shadow .15s;outline:none;
}
input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(46,117,182,.12)}
textarea{resize:vertical;min-height:70px}

/* Autocomplete */
.ac-wrap{position:relative}
.ac-drop{position:absolute;top:calc(100%+3px);left:0;right:0;background:var(--white);border:1.5px solid var(--blue);border-radius:var(--r);box-shadow:var(--shadowlg);z-index:300;max-height:220px;overflow-y:auto}
.ac-item{padding:.55rem .85rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.86rem;transition:background .12s}
.ac-item:hover,.ac-item.sel{background:var(--blue-lt)}
.ac-awz{font-size:.73rem;font-weight:700;color:var(--navy);background:var(--blue-lt);padding:.12rem .45rem;border-radius:3px}
.ac-bot{font-size:.68rem;font-weight:600;color:var(--blue);margin-left:.3rem}
.ac-locked{font-size:.68rem;font-weight:600;color:var(--red);margin-left:.4rem}
.ac-blocked{opacity:.45;cursor:not-allowed;background:var(--g100)!important}
.ac-blocked:hover{background:var(--g100)!important}

/* Ergebnis buttons */
.erg-g{display:flex;gap:.5rem}
.erg-b{flex:1;padding:.6rem .5rem;border:2px solid var(--g200);border-radius:var(--r);background:var(--white);font-family:var(--font-b);font-size:.84rem;font-weight:600;color:var(--g600);transition:all .15s;text-align:center;line-height:1.3}
.erg-b:hover{border-color:var(--blue);color:var(--blue)}
.erg-b.as{background:#D4EDDA;border-color:var(--green);color:var(--green)}
.erg-b.ar{background:var(--g100);border-color:var(--g400);color:var(--g800)}
.erg-b.an{background:#F8D7DA;border-color:var(--red);color:var(--red)}

/* Vorschau */
.vbox{background:var(--blue-lt);border:1.5px solid var(--blue);border-radius:var(--r);padding:.9rem 1.1rem;display:none}
.vbox.on{display:block}
.vrow{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.88rem}
.vname{font-weight:600;color:var(--navy)}
.vawz{font-family:var(--font-d);font-weight:700}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.3rem;border-radius:var(--r);border:none;font-family:var(--font-b);font-size:.88rem;font-weight:600;transition:all .15s;cursor:pointer}
.btn-p{background:var(--blue);color:#fff;box-shadow:0 2px 6px rgba(46,117,182,.28)}
.btn-p:hover{background:var(--navy)}
.btn-d{background:var(--red);color:#fff}
.btn-d:hover{background:#8A2820}
.btn-o{background:transparent;color:var(--blue);border:1.5px solid var(--blue)}
.btn-o:hover{background:var(--blue-lt)}
.btn-sm{padding:.35rem .8rem;font-size:.8rem}
.btn-full{width:100%}

/* Alert */
.alert{padding:.7rem 1rem;border-radius:var(--r);font-size:.88rem;margin-bottom:.9rem;display:none;align-items:center;gap:.5rem}
.alert.on{display:flex}
.alert-s{background:#D4EDDA;color:var(--green);border-left:4px solid var(--green)}
.alert-e{background:#F8D7DA;color:var(--red);border-left:4px solid var(--red)}

/* Admin layout */
.amain{flex:1;min-width:0}
.alayout{display:flex;gap:1.75rem;align-items:flex-start}
.aside{width:200px;flex-shrink:0;background:var(--white);border-radius:var(--rl);border:1px solid var(--g200);box-shadow:var(--shadow);overflow:hidden;position:sticky;top:72px}
.aside-h{background:var(--navy);color:#fff;padding:.8rem 1.1rem;font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.aside-nav button{display:block;width:100%;text-align:left;padding:.7rem 1.1rem;background:none;border:none;border-bottom:1px solid var(--g100);color:var(--g600);font-size:.87rem;font-weight:500;transition:all .15s;cursor:pointer}
.aside-nav button:hover,.aside-nav button.active{background:var(--blue-lt);color:var(--navy);border-left:3px solid var(--blue);padding-left:calc(1.1rem - 3px)}
.acontent{flex:1;min-width:0}

/* Modal */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;overflow-y:auto;padding:1.5rem 1rem;align-items:flex-start;justify-content:center}
.modal-bg.on{display:flex}
.modal{width:100%;max-width:660px;background:var(--white);border-radius:var(--rl);overflow:hidden;box-shadow:var(--shadowlg);margin:auto;position:relative;animation:slideUp .22s ease}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.modal-close{position:absolute;top:.65rem;right:.65rem;z-index:10;width:30px;height:30px;border:none;background:rgba(0,0,0,.15);border-radius:50%;cursor:pointer;font-size:1rem;color:#fff;line-height:1;display:grid;place-items:center}

/* Profil header */
.ph{display:flex;gap:1.25rem;align-items:flex-start;padding:1.4rem;background:linear-gradient(135deg,var(--navy) 0%,var(--blue) 100%);color:#fff}
.ph-av{width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center;font-family:var(--font-d);font-size:1.5rem;font-weight:700;color:#fff;border:2px solid rgba(255,255,255,.25);flex-shrink:0}
.ph-name{font-family:var(--font-d);font-size:1.4rem;font-weight:700}
.ph-awz{font-family:var(--font-d);font-size:2rem;font-weight:900;color:var(--orange);margin-left:auto;text-align:right;flex-shrink:0}
.ph-awz span{display:block;font-size:.68rem;font-weight:300;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.07em}

/* Partie rows */
.prow{display:grid;grid-template-columns:88px 1fr 80px 75px 62px 62px;gap:.6rem;align-items:center;padding:.62rem 1rem;border-bottom:1px solid var(--g100);font-size:.86rem;transition:background .12s}
.prow:last-child{border-bottom:none}
.prow:hover{background:var(--g100)}

/* Verein card */
.vk{background:var(--white);border:1px solid var(--g200);border-radius:var(--r);padding:.9rem;box-shadow:var(--shadow)}
.vk h4{font-size:.88rem;font-weight:700;color:var(--navy)}
.vk-awz{font-family:var(--font-d);font-size:1.35rem;font-weight:700;color:var(--orange);margin:.2rem 0}
.vk small{font-size:.76rem;color:var(--g400)}

/* Footer */
footer{background:var(--navy);color:rgba(255,255,255,.45);text-align:center;padding:1.1rem;font-size:.78rem}

/* Responsive */
@media(max-width:720px){
  .fgrid{grid-template-columns:1fr}
  .amain{flex:1;min-width:0}
.alayout{flex-direction:column}
  .aside{width:100%;position:static}
  .ph{flex-wrap:wrap}
  .ph-awz{margin-left:0}
  .prow{grid-template-columns:1fr 1fr;font-size:.8rem}
  .sgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .container{padding:0 .9rem}
  .ptitle{font-size:1.55rem}
  .erg-g{flex-direction:column}
}

/* Bot-Karte */
.bot-card{background:var(--white);border:1px solid var(--g200);border-radius:var(--rl);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .2s}
.bot-card:hover{box-shadow:var(--shadowlg)}
.bot-card.gesperrt{opacity:.5;filter:grayscale(.4)}
.bot-card-h{padding:1.1rem 1.3rem;display:flex;align-items:center;gap:1rem;border-bottom:1px solid var(--g100)}
.bot-av{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.6rem;flex-shrink:0}
.bot-card-b{padding:1rem 1.3rem}
.bot-schwierigkeit{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;text-transform:uppercase;letter-spacing:.04em;display:inline-block;margin-bottom:.5rem}
.s-anfaenger{background:#D4EDDA;color:var(--green)}
.s-fortgeschritten{background:#D1ECF1;color:#0C5460}
.s-geuebt{background:var(--orange-lt);color:var(--orange)}
.s-stark{background:#F8D7DA;color:var(--red)}
.s-experte{background:#E2D9F3;color:#4B2E83}
.s-default{background:var(--g100);color:var(--g600)}

/* Backup */
.backup-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;border-bottom:1px solid var(--g100);font-size:.86rem}
.backup-item:last-child{border-bottom:none}
.backup-item:hover{background:var(--g100)}

/* Edit-Modal */
.edit-modal{background:var(--white);border-radius:var(--rl);padding:1.4rem;max-width:500px;width:100%;margin:auto;box-shadow:var(--shadowlg);position:relative;animation:slideUp .22s ease}

.infobox{background:var(--blue-lt);border:1.5px solid var(--blue);border-radius:var(--r);padding:.85rem 1.1rem;font-size:.85rem;color:var(--g600)}
.infobox strong{color:var(--navy)}

/* Chip filter */
.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.1rem}
.chip{padding:.3rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;border:1px solid var(--g200);background:var(--white);color:var(--g600);cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}

/* Export/Import buttons row */
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.25rem;align-items:center}

/* Lichess-Bot-Avatar (Dicebear) */
.bot-av-img{width:64px;height:64px;border-radius:50%;background:var(--blue-lt);overflow:hidden;flex-shrink:0;border:2px solid var(--g200)}
.bot-av-img img{width:100%;height:100%;object-fit:cover}

/* Empfohlene Bots im Profil */
.empf-section{margin-top:1.3rem}
.empf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;margin-top:.7rem}
.empf-card{background:var(--ivory);border:1px solid var(--g200);border-radius:var(--r);padding:.85rem;display:flex;gap:.75rem;align-items:center;transition:box-shadow .2s;cursor:default}
.empf-card:hover{box-shadow:var(--shadow);background:var(--white)}
.empf-av{width:48px;height:48px;border-radius:50%;background:var(--blue-lt);overflow:hidden;flex-shrink:0}
.empf-av img{width:100%;height:100%}
.empf-awz{font-family:var(--font-d);font-size:1.25rem;font-weight:900;color:var(--orange)}
.empf-lichess{font-size:.72rem;color:var(--g400);margin-left:.35rem}
.empf-name{font-weight:700;color:var(--navy);font-size:.92rem}
.empf-beschr{font-size:.75rem;color:var(--g600);margin-top:.1rem}

/* Admin-Spieleransicht Button */
.btn-spieleransicht{background:var(--green)!important;color:#fff!important;border:none}
.btn-spieleransicht:hover{background:#155e39!important}

/* ── LOGIN ─────────────────────────────────────────── */
#login-overlay {
  position:fixed; inset:0; z-index:10000;
  background:linear-gradient(135deg,#0f2744 0%,#1a3d6e 50%,#0f2744 100%);
  display:none; align-items:center; justify-content:center;
  font-family:var(--font-b);
}
#login-overlay.visible { display:flex; }
#login-overlay.hidden { display:none; }
.login-box {
  background:#fff; border-radius:16px; padding:2.5rem 2rem;
  width:100%; max-width:420px; box-shadow:0 20px 60px rgba(0,0,0,.4);
}
.login-logo {
  text-align:center; margin-bottom:1.5rem;
}
.login-logo .awz-badge {
  display:inline-block; background:var(--orange);
  color:#fff; font-family:var(--font-d); font-weight:900;
  font-size:1.8rem; padding:.4rem 1rem; border-radius:8px;
  letter-spacing:.05em; margin-bottom:.5rem;
}
.login-logo h2 { font-size:1.1rem; color:var(--navy); margin:0; }
.login-logo p  { font-size:.8rem; color:var(--g400); margin:.2rem 0 0; }
.login-tabs {
  display:flex; border-bottom:2px solid var(--g100);
  margin-bottom:1.5rem;
}
.login-tab {
  flex:1; padding:.6rem; text-align:center; cursor:pointer;
  font-size:.88rem; font-weight:600; color:var(--g400);
  border-bottom:2px solid transparent; margin-bottom:-2px;
  transition:all .2s;
}
.login-tab.active { color:var(--navy); border-bottom-color:var(--orange); }
.login-form { display:none; }
.login-form.active { display:block; }
.login-form .fg { margin-bottom:1rem; }
.login-form label { display:block; font-size:.82rem; font-weight:600; color:var(--g600); margin-bottom:.3rem; }
.login-form input {
  width:100%; padding:.55rem .9rem;
  border:1.5px solid var(--g200); border-radius:8px;
  font-size:.9rem; font-family:var(--font-b);
  transition:border-color .2s;
}
.login-form input:focus { outline:none; border-color:var(--blue); }
.login-btn {
  width:100%; padding:.7rem; border:none; border-radius:8px;
  background:var(--navy); color:#fff; font-size:.95rem;
  font-weight:700; cursor:pointer; margin-top:.5rem;
  transition:background .2s;
}
.login-btn:hover { background:var(--blue); }
.login-btn.guest-btn {
  background:var(--g100); color:var(--g600);
  font-size:.82rem; margin-top:.6rem;
}
.login-btn.guest-btn:hover { background:var(--g200); }
.login-msg { font-size:.82rem; padding:.5rem .8rem; border-radius:6px; margin-top:.8rem; display:none; }
.login-msg.err { background:#fdecea; color:#a63024; display:block; }
.login-msg.ok  { background:#d4edda; color:#1a7a4a; display:block; }
.login-pending { text-align:center; padding:1rem; color:var(--g500); font-size:.85rem; }

/* ── Tooltip ── */
.tt{position:relative;cursor:default}
.tt::after{
  content:attr(data-tip);
  position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);
  background:var(--g800);color:#fff;
  font-size:.74rem;font-weight:500;line-height:1.45;white-space:pre;
  padding:.4rem .65rem;border-radius:6px;
  box-shadow:0 3px 10px rgba(0,0,0,.25);
  pointer-events:none;opacity:0;transition:opacity .15s;z-index:500;
}
.tt:hover::after{opacity:1}

