:root{--brand:#1e3a5f;--brand-dark:#152a47;--brand-light:#e8f0fe;--accent:#2563eb;--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f5f9;--text:#111827;--text-muted:#6b7280;--border:#e5e7eb;--border-strong:#d1d5db;--green:#16a34a;--green-bg:#f0fdf4;--red:#dc2626;--red-bg:#fef2f2;--amber:#d97706;--amber-bg:#fffbeb;--blue:#2563eb;--blue-bg:#eff6ff;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 1px 3px rgba(0,0,0,.06) , 0 1px 2px rgba(0,0,0,.04);--shadow:0 4px 12px rgba(0,0,0,.06);--shadow-md:0 8px 24px rgba(0,0,0,.08);--shadow-lg:0 16px 48px rgba(0,0,0,.12);--radius-sm:.375rem;--radius:.625rem;--radius-lg:1rem;--radius-xl:1.25rem;--sidebar-w:240px;--topbar-h:56px;--ease:cubic-bezier(.4,0,.2,1);--duration:150ms}*,*::before,*::after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1rem;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%}a{color:var(--accent)}.page-header{background:var(--brand);padding:.85rem 0;position:sticky;top:0;z-index:200;box-shadow:0 1px 0 rgba(255,255,255,.08) , var(--shadow-sm)}.header-brand-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand-logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:#fff;flex-shrink:0}.brand-logo:hover{color:rgba(255,255,255,.85)}.brand-icon{width:34px;height:34px;background:rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}.brand-name{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;line-height:1}.brand-logo-img{height:30px;width:auto;max-width:130px;object-fit:contain}.header-title-row{margin-top:.7rem;padding-top:.7rem;border-top:1px solid rgba(255,255,255,.1)}.header-title-row h1{color:#fff;font-size:clamp(1.15rem,4vw,1.6rem);font-weight:800;letter-spacing:-.02em;margin:0}.header-title-row h1 i{color:rgba(255,255,255,.5)}.header-title-row .subtitle{color:rgba(255,255,255,.55);font-size:.82rem;margin:.2rem 0 0}.pub-nav{display:flex;align-items:center;gap:.25rem}.pub-nav-link{color:rgba(255,255,255,.6);font-size:.8rem;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .65rem;border-radius:var(--radius-sm);transition:color var(--duration) , background var(--duration);white-space:nowrap}.pub-nav-link:hover{color:#fff;background:rgba(255,255,255,.1)}.pub-nav-active{color:#fff!important;background:rgba(255,255,255,.15)!important}.admin-link{color:rgba(255,255,255,.35);font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);transition:all var(--duration);white-space:nowrap;margin-left:.25rem}.admin-link:hover{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.3)}.back-link{color:rgba(255,255,255,.5);text-decoration:none;font-size:.78rem;display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.5rem;transition:color var(--duration)}.back-link:hover{color:#fff}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}@media (min-width:640px){.container{padding:0 1.5rem}}@media (min-width:1024px){.container{padding:0 2rem}}.filter-sticky{position:sticky;top:56px;z-index:100;background:var(--bg);padding:.75rem 0 .5rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem}.filter-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}.filter-check-label{display:inline-flex;align-items:center;gap:.4rem;font-size:.83rem;font-weight:500;color:var(--text);cursor:pointer;white-space:nowrap;padding:.33rem .75rem;border:1.5px solid var(--border);border-radius:999px;background:var(--surface);transition:all var(--duration)}.filter-check-label:hover{border-color:var(--border-strong)}.filter-check-label input{cursor:pointer}.search-wrap{position:relative;margin-bottom:.5rem}.search-icon{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.85rem;pointer-events:none}.search-input{width:100%;border:1.5px solid var(--border);border-radius:999px;padding:.6rem 2.4rem .6rem 2.4rem;font-size:.92rem;background:var(--surface);color:var(--text);outline:none;transition:border-color var(--duration) , box-shadow var(--duration);-webkit-appearance:none}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.search-input::placeholder{color:#9ca3af}.search-clear{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.2rem .35rem;font-size:.85rem;display:none;border-radius:50%;transition:background var(--duration)}.search-clear:hover{background:var(--border)}.search-clear.visible{display:flex}.bl-select{border:1.5px solid var(--border);border-radius:999px;padding:.33rem 2.2rem .33rem .9rem;font-size:.83rem;background:var(--surface);color:var(--text);outline:none;cursor:pointer;transition:border-color var(--duration);appearance:none;-webkit-appearance:none;background-image:url(data:image/svg+xml,%3Csvg\ xmlns=\'http://www.w3.org/2000/svg\'\ width=\'12\'\ height=\'8\'\ viewBox=\'0\ 0\ 12\ 8\'%3E%3Cpath\ d=\'M1\ 1l5\ 5\ 5-5\'\ stroke=\'%239ca3af\'\ stroke-width=\'1.5\'\ fill=\'none\'\ stroke-linecap=\'round\'/%3E%3C/svg%3E);background-repeat:no-repeat;background-position:right .75rem center}.bl-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.result-count{font-size:.76rem;color:var(--text-muted);margin:.4rem 0 0}.clubs-grid{display:grid;grid-template-columns:1fr;gap:.85rem}@media (min-width:560px){.clubs-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.clubs-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1200px){.clubs-grid{grid-template-columns:repeat(4,1fr)}}.club-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:box-shadow var(--duration) var(--ease) , transform var(--duration) var(--ease);overflow:hidden}.club-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.club-card-link{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1rem 1rem 1.1rem;text-decoration:none;color:inherit;flex:1;border-left:3px solid transparent;transition:border-color var(--duration)}.club-card-link:hover{color:inherit;border-left-color:var(--brand)}.club-logo-thumb{width:38px;height:38px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border);flex-shrink:0}.card-top{display:flex;align-items:flex-start;gap:.5rem}.card-name{font-weight:700;font-size:.95rem;color:var(--text);line-height:1.3;flex:1}.card-standort{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-muted)}.card-standort i{width:13px;color:#9ca3af;font-size:.72rem}.card-address{display:flex;align-items:flex-start;gap:.4rem;font-size:.82rem;color:var(--text-muted);line-height:1.45}.card-address i{width:13px;color:#9ca3af;font-size:.78rem;margin-top:.15rem;flex-shrink:0}.card-badges{display:flex;gap:.3rem;flex-wrap:wrap}.info-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600;padding:.18rem .55rem;border-radius:999px;border:1px solid}.badge-lv{color:#6d28d9;background:#ede9fe;border-color:#ddd6fe}.badge-youth{color:#0e7490;background:#e0f2fe;border-color:#bae6fd}.badge-verband{color:#1d4ed8;background:var(--blue-bg);border-color:#bfdbfe}.nav-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .75rem;background:var(--blue-bg);color:var(--accent);border:1px solid #bfdbfe;border-radius:var(--radius-sm);font-size:.83rem;font-weight:600;text-decoration:none;transition:all var(--duration);cursor:pointer}.nav-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary-dark{background:var(--text);color:#fff;border:none;border-radius:var(--radius-sm);padding:.55rem 1.3rem;font-weight:600;font-size:.88rem;cursor:pointer;transition:background var(--duration);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}.btn-primary-dark:hover{background:#1e293b;color:#fff}.club-card.hidden{display:none}.no-results{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.no-results i{font-size:2.5rem;margin-bottom:.75rem;opacity:.3;display:block}.no-results p{font-weight:600;margin:0 0 .25rem}.no-results small{font-size:.82rem}.assoc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.assoc-item{display:flex;align-items:center;justify-content:space-between;padding:.55rem .9rem;background:var(--surface-2);border-radius:var(--radius-sm);border:1px solid var(--border)}.assoc-link{color:var(--text-muted);font-size:.85rem;text-decoration:none}.assoc-link:hover{color:var(--accent)}.auth-page{min-height:calc(100vh - 56px);display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 1rem 3rem;background:var(--bg)}.auth-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md);padding:2rem 1.75rem;width:100%;max-width:420px}.auth-card-wide{max-width:520px}.auth-logo{display:block;max-height:60px;max-width:160px;width:auto;margin:0 auto 1rem;object-fit:contain}.auth-icon{width:50px;height:50px;background:var(--brand);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;margin:0 auto 1rem}.auth-icon-success{background:var(--green)}.auth-title{font-size:1.35rem;font-weight:800;text-align:center;margin:0 0 .35rem;color:var(--text)}.auth-subtitle{text-align:center;color:var(--text-muted);font-size:.88rem;margin:0 0 1.25rem}.star-rating{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}.star-rating input[type="radio"]{display:none}.star-rating label{font-size:2rem;color:#d1d5db;cursor:pointer;line-height:1;transition:color .1s}.star-rating:hover label{color:#d1d5db}.star-rating label:hover,
.star-rating label:hover~label {color:#f59e0b}.star-rating input:checked~label {color:#f59e0b}.dash-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.dash-title{font-size:clamp(1.2rem,4vw,1.5rem);font-weight:800;color:var(--text);margin:0}.dash-subtitle{color:var(--text-muted);font-size:.85rem;margin:.25rem 0 0}.dash-tabs{margin-bottom:0;border-bottom:1px solid var(--border);flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.dash-tabs::-webkit-scrollbar{display:none}.dash-tabs .nav-link{font-size:.84rem;font-weight:500;color:var(--text-muted);padding:.55rem .9rem;border-radius:var(--radius-sm) var(--radius-sm) 0 0;white-space:nowrap}.dash-tabs .nav-link.active{color:var(--brand);font-weight:700;border-bottom-color:var(--surface)}.dash-tab-content{background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm)}.dash-form{max-width:100%}#map-picker{height:300px;border-radius:var(--radius-sm);overflow:hidden}.logo-preview{max-width:200px}.current-logo-img{max-width:100%;max-height:160px;border-radius:var(--radius-sm);border:1px solid var(--border);object-fit:contain;display:block}.account-form{max-width:420px}.danger-zone{background:var(--red-bg);border:1px solid #fecaca;border-radius:var(--radius);padding:1.25rem 1.5rem;max-width:420px}.hilfe-wrap{max-width:100%}.hilfe-wrap p{line-height:1.8;margin-bottom:.75rem}.hilfe-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.6rem 1.75rem;margin-bottom:1.25rem}.hilfe-section h5{font-weight:700;margin-bottom:1rem;font-size:1.05rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.hilfe-section h6{font-size:.9rem;font-weight:700;color:var(--text);margin-top:1.25rem;margin-bottom:.5rem}.hilfe-section-last{margin-bottom:0}.hilfe-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:.6rem}.hilfe-table td{padding:.6rem .75rem;vertical-align:top;border-bottom:1px solid var(--border);line-height:1.7}.hilfe-table tr:last-child td{border-bottom:none}.hilfe-field{font-weight:600;white-space:nowrap;width:170px;color:var(--text)}@media (max-width:540px){.hilfe-field{width:auto;display:block}.hilfe-table tr{display:block;margin-bottom:.5rem}.hilfe-table td{display:block;padding:.25rem .5rem;border-bottom:none}.hilfe-table tbody tr:not(:last-child) {border-bottom:1px solid var(--border)}}.hilfe-required{color:#dc3545;font-weight:700}.hilfe-list{list-style:none;margin:.6rem 0 .75rem 0;padding-left:0;font-size:.9rem}.hilfe-list li{padding:.45rem 0 .45rem 1.6rem;line-height:1.75;position:relative;border-bottom:1px solid var(--border)}.hilfe-list li:last-child{border-bottom:none}.hilfe-list li::before{content:"›";position:absolute;left:.3rem;color:var(--primary,#2563eb);font-weight:700;font-size:1rem}.hilfe-steps{display:flex;flex-direction:column;gap:.75rem;margin:.75rem 0 .5rem}.hilfe-step{display:flex;align-items:flex-start;gap:.85rem}.hilfe-step-icon{flex-shrink:0;width:2.1rem;height:2.1rem;background:#eff6ff;color:var(--primary,#2563eb);border-radius:.4rem;display:flex;align-items:center;justify-content:center;font-size:.85rem;margin-top:.1rem}.hilfe-step-body{line-height:1.75;font-size:.9rem;padding-top:.2rem}.hilfe-hint{display:flex;align-items:flex-start;gap:.7rem;background:#eef6ff;border-left:3px solid #3b82f6;border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:.75rem 1rem;font-size:.875rem;margin-top:1rem;line-height:1.7}.hilfe-hint i{flex-shrink:0;margin-top:.15rem}.hilfe-hint-warn{background:#fffbeb;border-left-color:#f59e0b}.hilfe-hint-danger{background:var(--red-bg);border-left-color:#ef4444}.dash-notice{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:1rem}.dash-notice-warning{background:var(--amber-bg);border:1px solid #fcd34d;color:#78350f}.dash-notice i{margin-top:.1rem;flex-shrink:0}.detail-wrap{max-width:1000px;margin:0 auto}.back-btn{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-muted);text-decoration:none;font-size:.84rem;margin-bottom:1rem;transition:color var(--duration)}.back-btn:hover{color:var(--accent)}.detail-header-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.5rem;margin-bottom:1.1rem}.detail-header-inner{display:flex;gap:1.25rem;align-items:flex-start}.detail-logo{flex-shrink:0;width:76px;height:76px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.detail-logo img{width:100%;height:100%;object-fit:contain}.detail-name{font-size:clamp(1.25rem,4vw,1.65rem);font-weight:800;color:var(--text);margin:0 0 .3rem;line-height:1.2}.detail-bundesland{color:var(--text-muted);font-size:.88rem;margin:.3rem 0}.detail-badges{display:flex;gap:.35rem;flex-wrap:wrap}.detail-grid{display:grid;grid-template-columns:1fr;gap:.85rem;margin-bottom:1.5rem}@media (min-width:640px){.detail-grid{grid-template-columns:repeat(2,1fr)}}.detail-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.25rem}.detail-map-card{grid-column: 1 / -1}.detail-section-title{font-size:.95rem;font-weight:700;color:var(--text);margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.detail-section-title i{color:var(--text-muted)}.detail-info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}.detail-info-list li{display:flex;gap:.65rem;align-items:flex-start;font-size:.88rem;color:var(--text)}.detail-info-list li i{width:15px;color:var(--text-muted);margin-top:.15rem;flex-shrink:0;text-align:center}.detail-info-list a{color:var(--accent);text-decoration:none}.detail-info-list a:hover{text-decoration:underline}.training-list{display:flex;flex-direction:column;gap:.7rem}.training-day{display:flex;gap:.75rem;align-items:flex-start}.training-day-name{font-weight:700;font-size:.83rem;color:var(--text);min-width:88px;padding-top:.15rem}.training-slots{display:flex;flex-direction:column;gap:.3rem;flex:1}.training-slot{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;background:var(--surface-2);border-radius:var(--radius-sm);padding:.3rem .6rem;font-size:.83rem}.training-time{font-weight:700;color:var(--text)}.training-group{color:var(--accent);font-size:.78rem}.training-loc,.training-note{color:var(--text-muted);font-size:.76rem;display:flex;align-items:center;gap:.25rem}.detail-map{height:280px;border-radius:var(--radius-sm);overflow:hidden}@media (min-width:640px){.detail-map{height:340px}}.detail-report-wrap{text-align:center;margin:2rem 0 1rem}.btn-report{background:none;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.45rem 1.1rem;font-size:.83rem;color:var(--text-muted);cursor:pointer;transition:all var(--duration);display:inline-flex;align-items:center;gap:.4rem}.btn-report:hover{border-color:#f87171;color:var(--red);background:var(--red-bg)}.report-form-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-top:.5rem;box-shadow:var(--shadow-sm)}.announcement-banner{background:#fefce8;border-bottom:1px solid #fde68a;color:#92400e;font-size:.83rem;padding:.55rem 0;text-align:center}.site-footer{margin-top:3rem;border-top:1px solid var(--border);background:var(--surface);padding:1rem 0}.site-footer-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.site-footer-copy{font-size:.8rem;color:var(--text-muted)}.site-footer-legal{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center;font-size:.8rem;color:var(--text-muted)}.site-footer-legal a{color:var(--text-muted);text-decoration:none;transition:color var(--duration)}.site-footer-legal a:hover{color:var(--accent)}.site-footer-sep{opacity:.4}.site-footer-nav{display:flex;gap:1.25rem}.site-footer-nav a{font-size:.8rem;color:var(--text-muted);text-decoration:none;transition:color var(--duration)}.site-footer-nav a:hover{color:var(--accent)}.site-footer-love{font-size:.8rem;color:var(--text-muted)}.heart-beat{display:inline-block;animation:heartbeat 1.2s infinite}@keyframes heartbeat {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.2);
    }
}