
:root{
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:#1f2937;
    background:#f5f7fb;
    --primary:#1d4ed8;
    --primary-dark:#1e40af;
    --sidebar:#111827;
    --sidebar-soft:#1f2937;
    --border:#e5e7eb;
    --muted:#6b7280;
    --surface:#ffffff;
    --success:#166534;
    --danger:#b91c1c;
    --shadow:0 10px 30px rgba(15,23,42,.08);
}
*{box-sizing:border-box}
body{margin:0;background:#f5f7fb;color:#1f2937}
a{color:inherit}
h1,h2,h3,p{margin-top:0}
button,input,select,textarea{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}
.sidebar{background:var(--sidebar);color:#fff;padding:24px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}
.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#2563eb,#60a5fa);display:grid;place-items:center;font-weight:800;color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.35)}
.brand strong{display:block;font-size:15px}
.brand small{display:block;color:#9ca3af;margin-top:3px}
.sidebar-nav{display:flex;flex-direction:column;gap:20px;overflow:auto}
.nav-group{display:flex;flex-direction:column;gap:5px}
.nav-group-title{padding:0 12px 6px;color:#6b7280;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.nav-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;color:#d1d5db;text-decoration:none;font-size:14px}
.nav-item:hover,.nav-item.active{background:var(--sidebar-soft);color:#fff}
.nav-item.active{box-shadow:inset 3px 0 0 #60a5fa}
.nav-icon{width:22px;text-align:center}
.sidebar-footer{margin-top:auto;padding-top:22px;border-top:1px solid #374151}
.user-card{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.user-avatar{width:38px;height:38px;border-radius:50%;background:#374151;display:grid;place-items:center;font-weight:700}
.user-card strong,.user-card small{display:block}
.user-card small{color:#9ca3af;margin-top:2px}
.footer-link{display:block;color:#d1d5db;text-decoration:none;padding:8px 0;font-size:13px}
.footer-link:hover{color:#fff}
.main-area{min-width:0}
.topbar{background:#fff;border-bottom:1px solid var(--border);padding:24px 32px}
.topbar h1{margin:4px 0 0;font-size:28px}
.eyebrow{font-size:12px;color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.content-area{padding:28px 32px 48px;max-width:1500px}
.page-intro{margin-bottom:20px}
.page-intro p,.page-toolbar p,.form-section-header p{color:var(--muted);margin-bottom:0}
.page-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}
.page-toolbar h2{margin-bottom:5px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow)}
.stat-label{color:var(--muted);font-size:13px;margin-bottom:10px}
.stat{font-size:30px;font-weight:800;letter-spacing:-.03em}
.card,.form-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.card{padding:22px;margin:20px 0}
.form-stack{display:flex;flex-direction:column;gap:18px}
.form-section{padding:0;overflow:hidden}
.form-section-header{display:flex;gap:14px;padding:20px 22px;border-bottom:1px solid var(--border);background:#fbfdff}
.form-section-header h2{font-size:18px;margin-bottom:5px}
.section-step{width:32px;height:32px;border-radius:9px;background:#dbeafe;color:#1d4ed8;display:grid;place-items:center;font-weight:800}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:22px}
.form-grid>div{min-width:0}
label{display:block;margin-bottom:7px;font-size:13px;font-weight:700;color:#374151}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d1d5db;border-radius:9px;background:#fff;transition:.15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.2)}
small,.muted{color:var(--muted)}
.button,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:#fff;padding:10px 15px;border:0;border-radius:9px;text-decoration:none;cursor:pointer;font-weight:700}
.button:hover,button:hover{background:var(--primary-dark)}
.button.secondary,.secondary{background:#eef2f7;color:#374151}
.button.danger,.danger{background:#dc2626;color:#fff}
.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.alert{padding:13px 15px;border-radius:10px;margin-bottom:18px;border:1px solid transparent}
.alert.success{background:#ecfdf3;color:var(--success);border-color:#bbf7d0}
.alert.error{background:#fef2f2;color:var(--danger);border-color:#fecaca}
.badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eef2f7;font-size:12px;font-weight:700}
.table-card{padding:0;overflow:hidden}
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;background:#fff;min-width:850px}
th,td{padding:13px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;background:#f9fafb}
tbody tr:hover{background:#f9fbff}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#eef2ff,#f8fafc)}
.auth-container{width:100%;max-width:460px}
.auth-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:var(--shadow)}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.auth-brand h1{margin-bottom:3px}
.auth-brand p{color:var(--muted);margin:0}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}

@media (max-width:1100px){
    .app-shell{grid-template-columns:230px minmax(0,1fr)}
    .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
    .app-shell{display:block}
    .sidebar{position:static;height:auto}
    .sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
    .sidebar-footer{margin-top:22px}
    .content-area,.topbar{padding-left:18px;padding-right:18px}
    .form-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
    .sidebar-nav{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:1fr}
    .page-toolbar{align-items:flex-start;flex-direction:column}
    .form-actions{flex-direction:column-reverse}
    .form-actions .button,.form-actions button{width:100%}
}


/* Clubbify Branding */
.brand-logo-wrap{
    display:block;
    padding:0 4px 24px;
}
.sidebar-logo{
    display:block;
    width:100%;
    max-width:220px;
    height:auto;
    object-fit:contain;
    background:#fff;
    border-radius:12px;
    padding:8px;
}
.auth-logo-wrap{
    display:flex;
    justify-content:center;
    margin-bottom:22px;
}
.auth-logo{
    display:block;
    width:100%;
    max-width:360px;
    height:auto;
    object-fit:contain;
}
.auth-heading{
    text-align:center;
    margin-bottom:22px;
}
.auth-heading h1{
    margin-bottom:5px;
}
.auth-heading p{
    margin:0;
    color:var(--muted);
}
@media (max-width:820px){
    .brand-logo-wrap{
        text-align:center;
    }
    .sidebar-logo{
        margin:0 auto;
        max-width:260px;
    }
}


/* Zwei-Faktor-Authentifizierung */
.secret-box{
    padding:12px;
    border:1px dashed #93c5fd;
    background:#eff6ff;
    border-radius:9px;
    user-select:all;
}
.break-all{
    word-break:break-all;
}
.align-end{
    align-items:flex-end;
}
.cancel-setup{
    padding:0 22px 22px;
}


/* App-Zugänge */
.inline-form{
    display:inline;
    margin:0;
}
.button-small{
    padding:7px 10px;
    font-size:12px;
    margin:0;
}
.badge-success{
    background:#dcfce7;
    color:#166534;
}

.checkbox-label{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:44px;
    font-weight:600;
}

.version-label{display:block;color:#6b7280;margin-top:12px;font-size:11px}


/* Version 12.0.7: einklappbare Navigation */
.nav-group-toggle{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:7px 12px;
    border:0;
    background:transparent;
    color:#6b7280;
    font-size:11px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    cursor:pointer;
    text-align:left;
}
.nav-group-toggle:hover,
.nav-group-toggle:focus-visible{
    color:#d1d5db;
    background:#1f2937;
    outline:none;
}
.nav-chevron{
    font-size:15px;
    transition:transform .18s ease;
}
.nav-group.collapsed .nav-chevron{
    transform:rotate(-90deg);
}
.nav-group-content{
    display:flex;
    flex-direction:column;
    gap:5px;
}
.nav-group-content[hidden]{
    display:none!important;
}

/* Zahnrad-Menü für Benutzereinstellungen */
.user-settings{
    position:relative;
}
.user-settings-toggle{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:8px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#fff;
    cursor:pointer;
    text-align:left;
}
.user-settings-toggle:hover,
.user-settings-toggle:focus-visible,
.user-settings-toggle[aria-expanded="true"]{
    background:#1f2937;
    outline:none;
}
.user-settings-toggle .user-card{
    flex:1;
    min-width:0;
    margin:0;
}
.user-card-text{
    min-width:0;
}
.user-card-text strong,
.user-card-text small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.settings-gear{
    flex:0 0 auto;
    font-size:20px;
    line-height:1;
}
.user-settings-menu{
    position:absolute;
    left:0;
    right:0;
    bottom:calc(100% + 8px);
    z-index:50;
    padding:7px;
    border:1px solid #374151;
    border-radius:12px;
    background:#111827;
    box-shadow:0 14px 35px rgba(0,0,0,.32);
}
.user-settings-menu[hidden]{
    display:none!important;
}
.user-settings-menu a{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px;
    border-radius:8px;
    color:#d1d5db;
    text-decoration:none;
    font-size:13px;
}
.user-settings-menu a:hover,
.user-settings-menu a:focus-visible{
    color:#fff;
    background:#1f2937;
    outline:none;
}

@media (max-width:820px){
    .user-settings-menu{
        position:static;
        margin-top:8px;
    }
}


/* Clubbify 12.1 – Mitgliederverwaltung */
.form-grid-full{
    grid-column:1 / -1;
}
.checkbox-card{
    padding:14px;
    border:1px solid var(--border);
    border-radius:11px;
    background:#f8fafc;
}
.checkbox-card label{
    display:flex;
    gap:10px;
    align-items:center;
    margin:0;
}
.checkbox-card input{
    width:auto;
}
.guardian-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    padding:22px;
}
.guardian-card{
    border:1px solid var(--border);
    border-radius:13px;
    padding:18px;
    margin:0;
}
.guardian-card legend{
    padding:0 7px;
    font-weight:800;
}
.guardian-card input{
    margin-bottom:12px;
}
.conditional-section[hidden],
.fee-dependent[hidden]{
    display:none!important;
}
.notice-box{
    padding:14px;
    border:1px solid #bfdbfe;
    border-radius:10px;
    background:#eff6ff;
    color:#1e40af;
}
#team-selection.is-disabled{
    opacity:.55;
}
.member-filter{
    margin-top:0;
}
.filter-grid{
    display:grid;
    grid-template-columns:2fr repeat(5,minmax(130px,1fr));
    gap:13px;
}
.filter-actions{
    display:flex;
    gap:10px;
    justify-content:flex-end;
    margin-top:15px;
}
.member-overview-table{
    min-width:720px;
}
.member-overview-table td:first-child .badge{
    margin-left:6px;
}
.badge-success{
    background:#dcfce7;
    color:#166534;
}
.team-checkbox-groups{
    display:grid;
    gap:14px;
}
.team-checkbox-group{
    border:1px solid var(--border);
    border-radius:12px;
    padding:14px;
    background:#fbfdff;
}
.team-checkbox-group h4{
    margin:0 0 10px;
}
.team-checkbox-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:8px;
}
.team-checkbox-list label{
    display:flex;
    gap:8px;
    align-items:center;
    font-weight:600;
    margin:0;
}
.team-checkbox-list input{
    width:auto;
}
.team-checkbox-list small{
    margin-left:auto;
}

@media(max-width:1180px){
    .filter-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .filter-search{
        grid-column:span 2;
    }
}
@media(max-width:820px){
    .guardian-grid{
        grid-template-columns:1fr;
    }
    .filter-grid{
        grid-template-columns:1fr;
    }
    .filter-search{
        grid-column:auto;
    }
    .filter-actions{
        flex-direction:column;
    }
    .filter-actions .button,
    .filter-actions button{
        width:100%;
    }
}

.module-dashboard-widgets{margin-top:18px}.suite-heading{margin:28px 0 8px}.module-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.badge-warning{background:#fef3c7;color:#92400e}

.module-framework-error{margin:0 0 18px;padding:16px;border:1px solid #f59e0b;border-radius:12px;background:#fffbeb;color:#92400e}
