/*
 * Backend-Stil (Phase 1)
 * Teil von: Wettkampf- & Königsangeln-Verwaltung
 * (c) Giuseppe Groth
 */
:root{
  --primary:#1d5a7a;
  --accent:#e0a100;
  --bg:#f4f6f8;
  --card:#ffffff;
  --text:#1f2933;
  --muted:#6b7785;
  --border:#dfe3e8;
  --ok-bg:#e6f6ec; --ok-fg:#1b7a3d;
  --err-bg:#fdecea; --err-fg:#b3261e;
  --info-bg:#eaf2f8; --info-fg:#1d5a7a;
  --radius:10px;
  --shadow:0 1px 3px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
body{
  margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);color:var(--text);line-height:1.5;
}
a{color:var(--primary)}

/* Topbar */
.topbar{
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  background:var(--primary);color:#fff;padding:.7rem 1.2rem;box-shadow:var(--shadow);
}
.brand{font-weight:700;font-size:1.05rem}
.mainnav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}
.navitem{color:#dceaf2;text-decoration:none;padding:.4rem .8rem;border-radius:var(--radius);font-size:.95rem}
.navitem:hover{background:rgba(255,255,255,.12);color:#fff}
.navitem.active{background:rgba(255,255,255,.2);color:#fff;font-weight:600}
.userbox{display:flex;align-items:center;gap:.6rem;font-size:.9rem}
.uname{color:#fff}
.role{display:inline-block;padding:.05rem .4rem;border-radius:6px;background:var(--accent);color:#3a2c00;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em}
.role-sportadmin{background:#cfe3ef;color:#0d3a52}
.role-admin{background:var(--accent);color:#3a2c00}
.role-superadmin{background:#ffd24d;color:#3a2c00}

/* Layout */
.wrap{max-width:1000px;margin:1.4rem auto;padding:0 1rem}
.footer{text-align:center;color:var(--muted);font-size:.8rem;padding:2rem 1rem 3rem}

/* Cards */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem 1.3rem;margin-bottom:1.2rem}
.card h1,.card h2{margin-top:0}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.page-head h1{margin:0;font-size:1.4rem}
.muted{color:var(--muted)}
.hint{color:var(--muted);font-size:.85rem}

/* Stat grid */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.2rem}
.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;text-align:center;box-shadow:var(--shadow)}
.stat .num{font-size:1.9rem;font-weight:700;color:var(--primary);line-height:1}
.stat .lbl{color:var(--muted);font-size:.85rem;margin-top:.3rem}

/* Tables */
table.grid{width:100%;border-collapse:collapse;background:var(--card)}
table.grid th,table.grid td{padding:.6rem .7rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
table.grid th{background:#f0f3f6;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
table.grid tr:hover td{background:#fafbfc}
.tag{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;background:#eef1f4;color:var(--muted)}
.tag-on{background:var(--ok-bg);color:var(--ok-fg)}
.tag-off{background:#f0f0f0;color:#999}
.tag-std{background:#fff3d6;color:#8a6b00}
.tag-danger{background:var(--err-bg);color:var(--err-fg)}

/* Forms */
form.stack{display:grid;gap:1rem;max-width:560px}
.field{display:grid;gap:.3rem}
.field label{font-weight:600;font-size:.9rem}
.field .hint{font-weight:400}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{
  width:100%;padding:.55rem .65rem;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff;color:var(--text)
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.row{display:flex;gap:1rem;flex-wrap:wrap}
.row .field{flex:1;min-width:160px}
.checks{display:grid;gap:.4rem}
.checks label{display:flex;align-items:center;gap:.5rem;font-weight:400}

/* Buttons */
.btn{display:inline-block;cursor:pointer;border:none;border-radius:8px;padding:.55rem .95rem;font:inherit;font-weight:600;text-decoration:none;background:var(--primary);color:#fff}
.btn:hover{filter:brightness(1.08)}
.btn-accent{background:var(--accent);color:#3a2c00}
.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff}
.btn-sm{padding:.3rem .6rem;font-size:.85rem}
.btn-danger{background:var(--err-fg);color:#fff}
.btn-light{background:#eef1f4;color:var(--text)}
.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

/* Flash */
.flash{padding:.7rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.95rem}
.flash-ok{background:var(--ok-bg);color:var(--ok-fg)}
.flash-error{background:var(--err-bg);color:var(--err-fg)}
.flash-info{background:var(--info-bg);color:var(--info-fg)}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),#0e3a52 100%);padding:1rem}
.login-card{background:#fff;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.25);padding:2rem;width:100%;max-width:380px}
.login-card h1{margin:0 0 .3rem;font-size:1.3rem}
.login-card .logo{font-size:2rem;text-align:center;margin-bottom:.5rem}

/* Inline form (delete etc.) */
.inline{display:inline}
/* Importprofil-Designer */
.table-wrap{width:100%;overflow-x:auto}
.import-portal{min-width:980px}
.import-portal td:nth-child(1){min-width:190px}
.import-portal td:nth-child(2){min-width:180px}
.import-portal td:nth-child(3),.import-portal td:nth-child(4){min-width:220px}
code{background:#eef1f4;border-radius:5px;padding:.08rem .3rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.text-danger{color:var(--err-fg);font-weight:600}
.notice{background:var(--info-bg);color:var(--info-fg);border-radius:var(--radius);padding:.75rem 1rem;margin:.8rem 0}

/* Modernisierung v1.7.0 */
body{background:
  radial-gradient(circle at 5% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 28rem),
  linear-gradient(180deg,#f7f9fb 0%,var(--bg) 100%);min-height:100vh}
.topbar{position:sticky;top:0;z-index:50;padding:.72rem clamp(.8rem,2vw,1.5rem);background:linear-gradient(115deg,color-mix(in srgb,var(--primary) 88%,#071821),var(--primary));box-shadow:0 10px 35px rgba(8,31,43,.2);border-bottom:1px solid rgba(255,255,255,.12)}
.brand{display:inline-flex;align-items:center;gap:.65rem;color:#fff;text-decoration:none;min-width:max-content;font-weight:800;letter-spacing:-.02em}.brand-logo{width:38px;height:38px;object-fit:contain;border-radius:10px;background:rgba(255,255,255,.95);padding:.2rem}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.14)}
.mainnav{align-items:center}.navitem{border:1px solid transparent;transition:.18s ease}.navitem:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.15)}.navitem.active{background:#fff;color:var(--primary);box-shadow:0 5px 18px rgba(0,0,0,.14)}
.nav-toggle{display:none;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff;border-radius:10px;padding:.45rem .65rem;font-size:1.1rem}.userbox{margin-left:auto}.uname{white-space:nowrap}
.wrap{max-width:1240px;margin:1.6rem auto;padding:0 clamp(.8rem,2vw,1.4rem)}
.card,.stat{border-color:color-mix(in srgb,var(--primary) 12%,var(--border));border-radius:18px;box-shadow:0 12px 35px rgba(20,48,65,.075)}.card{padding:clamp(1rem,2vw,1.45rem)}
.page-head{align-items:flex-start;margin-bottom:1.2rem}.page-head h1{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.035em}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:800;color:var(--primary);margin-bottom:.3rem}
.stats{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1rem}.stat{position:relative;overflow:hidden;text-align:left;padding:1.1rem 1.15rem}.stat:after{content:"";position:absolute;width:80px;height:80px;border-radius:50%;right:-30px;top:-30px;background:color-mix(in srgb,var(--accent) 18%,transparent)}.stat .num{font-size:2.15rem}.stat .lbl{font-weight:650}
.btn{border-radius:11px;box-shadow:0 4px 14px color-mix(in srgb,var(--primary) 20%,transparent);transition:.16s ease}.btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.btn-light{box-shadow:none;border:1px solid var(--border)}.btn-wide{width:100%;padding:.72rem 1rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],input[type=color],select,textarea{border-radius:11px;padding:.66rem .72rem;transition:.15s ease}input[type=color]{height:46px;padding:.25rem}.wide-form{max-width:none}
.table-wrap{border:1px solid var(--border);border-radius:14px;overflow:auto}table.grid th{position:sticky;top:0;z-index:1;background:#f4f7f9}table.grid tr:last-child td{border-bottom:0}
.footer{border-top:1px solid var(--border);margin-top:2rem;background:rgba(255,255,255,.55)}

/* Gemeinsamer Portal-Login */
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(360px,.95fr);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 92%,#071c27),var(--primary))}.login-showcase{color:#fff;padding:clamp(2rem,7vw,6rem);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-showcase:before,.login-showcase:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.07)}.login-showcase:before{width:420px;height:420px;right:-180px;top:-120px}.login-showcase:after{width:260px;height:260px;left:-100px;bottom:-100px}.login-brand{display:flex;align-items:center;gap:.7rem;position:relative;z-index:1}.login-brand img,.login-brand span{width:48px;height:48px;object-fit:contain;display:grid;place-items:center;background:#fff;border-radius:14px;padding:.35rem;color:#111}.login-showcase h1{position:relative;z-index:1;font-size:clamp(2.2rem,6vw,4.8rem);line-height:1.02;max-width:760px;margin:2rem 0 1rem;letter-spacing:-.055em}.login-showcase p{position:relative;z-index:1;font-size:1.08rem;max-width:640px;color:rgba(255,255,255,.82)}.role-preview{position:relative;z-index:1;display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1.5rem}.role-preview span{padding:.45rem .75rem;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.09);font-weight:700}.login-panel{display:grid;place-items:center;padding:1.5rem;background:linear-gradient(180deg,#f9fbfc,#eef3f5)}.portal-login-card{max-width:430px;padding:2.2rem}.login-links{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.2rem;font-size:.9rem}

/* Design- und Linkverwaltung */
.design-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:1.2rem;align-items:start}.design-preview{position:sticky;top:90px;overflow:hidden}.preview-bar{display:flex;justify-content:space-between;gap:1rem;background:var(--primary);color:#fff;margin:1rem -1.45rem 0;padding:1rem 1.45rem}.preview-bar span{font-size:.8rem;opacity:.8}.preview-hero{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 68%,#071821));color:#fff;margin:0 -1.45rem -1.45rem;padding:2.2rem 1.45rem}.preview-hero h2{font-size:2rem;margin:0 0 .5rem}.preview-hero p{color:rgba(255,255,255,.78)}.design-logo-preview{width:140px;height:80px;object-fit:contain;border:1px solid var(--border);border-radius:12px;background:#fff;padding:.5rem;margin-bottom:.5rem}.link-editor{display:flex;gap:.8rem;align-items:end;flex-wrap:wrap;margin-bottom:1.2rem;padding:1rem;background:#f6f8fa;border-radius:14px}.link-editor .field{min-width:150px}.link-editor .grow{flex:1;min-width:260px}.link-editor .small{max-width:100px}.checks.compact{display:flex;gap:.8rem;padding-bottom:.65rem}

@media(max-width:1050px){.topbar{position:relative}.nav-toggle{display:block;margin-left:auto}.mainnav{display:none;order:4;width:100%;padding-top:.6rem}.nav-open .mainnav{display:flex}.userbox{order:3}.design-grid{grid-template-columns:1fr}.design-preview{position:static}}
@media(max-width:780px){.login-shell{grid-template-columns:1fr}.login-showcase{padding:2rem;min-height:38vh}.login-showcase h1{font-size:2.4rem;margin:1.2rem 0 .7rem}.login-panel{padding:1rem}.portal-login-card{max-width:100%}.userbox .uname{display:none}.wrap{margin-top:1rem}.card{border-radius:14px}.page-head{align-items:stretch}.page-head>.actions,.page-head>.btn{width:100%}.link-editor{align-items:stretch}.link-editor>*{max-width:none!important;width:100%}}


/* Vereinsmeister-Jahreswertungen v1.9.0 */
.grid-2{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:1.15rem;align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.field-wide{grid-column:1/-1}.check{display:flex;align-items:flex-start;gap:.55rem;font-weight:700}.check input{width:auto;margin-top:.25rem}.flash-info{background:#e7f1f6;color:#244f64}.snapshot-list,.championship-archive{display:grid;gap:.65rem}.snapshot-item{display:grid;gap:.18rem;padding:.85rem 1rem;border:1px solid var(--border,#dce3e7);border-radius:13px;text-decoration:none;color:var(--text);background:#fff;transition:.16s ease}.snapshot-item:hover,.snapshot-item.active{border-color:var(--primary);box-shadow:0 8px 24px rgba(18,43,57,.09);transform:translateY(-1px)}.snapshot-item span,.snapshot-item small{color:var(--muted)}.page-head.compact{margin-bottom:1rem}.page-head.compact h2{margin:.1rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:850;color:var(--primary)}
@media(max-width:980px){.grid-2{grid-template-columns:1fr}}@media(max-width:680px){.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}}

.settings-box{border:1px solid var(--line,#d7e0e3);border-radius:12px;padding:1rem;margin:1rem 0;background:var(--surface-2,#f7f9fa)}.settings-box legend{font-weight:800;padding:0 .35rem}.settings-box .checks{display:flex;flex-wrap:wrap;gap:.75rem 1.2rem;margin-bottom:.8rem}.settings-box .checks label{font-weight:650}

.memorial-admin-card{background:linear-gradient(135deg,#f8f5ed,#fff)!important;border:1px solid #ddd5c6}.memorial-admin-preview{display:block;width:180px;max-height:150px;object-fit:cover;border-radius:12px;margin:.45rem 0}.memorial-admin-card h2{font-family:Georgia,'Times New Roman',serif}

.participant-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.participant-columns section{border:1px solid #d9e1dc;border-radius:12px;overflow:hidden;background:#fff}.participant-head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;background:#f4f7f5;border-bottom:1px solid #d9e1dc}.participant-head h3{margin:0}.participant-list{max-height:520px;overflow:auto;padding:.45rem}.participant-row{display:flex;gap:.7rem;align-items:flex-start;padding:.65rem;border-radius:8px;cursor:pointer}.participant-row:hover{background:#f3f8f5}.participant-row input{margin-top:.25rem}.participant-row span{display:flex;flex-direction:column}.participant-row small{color:#64746b;margin-top:.15rem}@media(max-width:850px){.participant-columns{grid-template-columns:1fr}}
.warning-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem}.warning-card{border:1px solid #d6ddd8;border-left:6px solid #7b8a82;border-radius:10px;padding:.9rem;background:#fff}.warning-card.warn{border-left-color:#d59217;background:#fff9ea}.warning-card.critical{border-left-color:#b42318;background:#fff1f0}.warning-card.ok{border-left-color:#2f7d50;background:#f2fbf5}.warning-card h3{margin:.1rem 0 .4rem}.warning-card p{margin:.25rem 0}

/* WYSIWYG HTML editor */
.wysiwyg{border:1px solid #cfd8e3;border-radius:12px;background:#fff;overflow:hidden}.wysiwyg-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:8px;background:#f4f7fa;border-bottom:1px solid #dce3eb}.wysiwyg-btn{border:1px solid #cbd5df;background:#fff;border-radius:7px;padding:6px 9px;min-height:34px;cursor:pointer;font:inherit}.wysiwyg-btn:hover,.wysiwyg-btn.active{background:#e5eef6;border-color:var(--primary)}.wysiwyg-placeholder{width:auto;min-width:180px;min-height:34px;margin:0}.wysiwyg-editor,.wysiwyg-source{box-sizing:border-box;width:100%;min-height:300px;padding:14px;border:0;border-radius:0;background:#fff;color:#17212b;font:inherit;line-height:1.5;resize:vertical}.wysiwyg-editor:focus,.wysiwyg-source:focus{outline:2px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:-2px}.wysiwyg-editor table{border-collapse:collapse;max-width:100%}.wysiwyg-editor td,.wysiwyg-editor th{border:1px solid #9eabb8;padding:6px}.wysiwyg-editor img{max-width:100%;height:auto}@media(max-width:700px){.wysiwyg-toolbar{gap:4px}.wysiwyg-btn{padding:5px 7px}.wysiwyg-placeholder{min-width:150px;max-width:100%}}

/* Aufgeräumte Kopfzeile: Einstellungen und Wartung als aufklappbare Gruppe. */
.navgroup{position:relative}
.navgroup>summary{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:center;gap:.35rem}
.navgroup>summary::-webkit-details-marker{display:none}
.navgroup>summary:after{content:"▾";font-size:.72em;transition:transform .16s ease}
.navgroup[open]>summary:after{transform:rotate(180deg)}
.navgroup.active>summary{background:#fff;color:var(--primary);box-shadow:0 5px 18px rgba(0,0,0,.14);font-weight:700}
.navmenu{position:absolute;z-index:100;top:calc(100% + .45rem);right:0;min-width:250px;display:grid;gap:.2rem;padding:.45rem;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 45px rgba(8,31,43,.22)}
.navmenu .navitem{display:block;color:var(--text);padding:.6rem .75rem}
.navmenu .navitem:hover{background:color-mix(in srgb,var(--primary) 9%,#fff);color:var(--primary);transform:none;border-color:transparent}
.navmenu .navitem.active{background:color-mix(in srgb,var(--primary) 13%,#fff);color:var(--primary);box-shadow:none}
@media(max-width:1050px){
  .navgroup{width:100%}
  .navgroup>summary{width:100%}
  .navmenu{position:static;min-width:0;margin:.35rem 0 0 .6rem;box-shadow:none;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.08)}
  .navmenu .navitem{color:#fff}
  .navmenu .navitem:hover,.navmenu .navitem.active{background:rgba(255,255,255,.16);color:#fff}
}

/* Zentrale Mitgliederaufnahme v1.15.3 */
.navitem-onboarding{background:var(--accent);color:#3a2c00!important;font-weight:850;border-color:color-mix(in srgb,var(--accent) 76%,#fff)!important;box-shadow:0 5px 18px rgba(0,0,0,.16)}
.navitem-onboarding:hover{background:color-mix(in srgb,var(--accent) 88%,#fff);color:#241b00!important}
.navitem-onboarding.active{background:#fff;color:var(--primary)!important}
.onboarding-hero{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border));background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 18%,#fff),#fff 62%)}
.onboarding-hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-85px;top:-105px;background:color-mix(in srgb,var(--accent) 24%,transparent);pointer-events:none}
.onboarding-hero>*{position:relative;z-index:1}.onboarding-hero h2{font-size:clamp(1.35rem,2.4vw,2rem);margin-bottom:.35rem}.onboarding-hero p{max-width:760px}
.onboarding-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.onboarding-choice label{display:grid;gap:.25rem;padding:1rem;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer}.onboarding-choice label:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 16%,transparent)}
@media(max-width:1050px){.navitem-onboarding{order:-1}}
.onboarding-send{display:flex;align-items:flex-start;gap:.75rem;margin:1rem 0;padding:1rem;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--accent) 9%,#fff);cursor:pointer}
.onboarding-send input{margin-top:.25rem;transform:scale(1.15)}.onboarding-send span{display:grid;gap:.2rem}.onboarding-send small{color:var(--muted)}
.member-state{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem}.member-state>div{padding:.8rem;border:1px solid var(--border);border-radius:12px;background:#f8fafb}
input[type=url],input[type=datetime-local]{width:100%;padding:.66rem .72rem;border:1px solid var(--border);border-radius:11px;font:inherit;background:#fff;color:var(--text)}
