/* v167: gemeinsame moderne Komponenten */
:where(button,input,select,textarea){font:inherit}
:where(button,.nav-btn,.menu-toggle,.quick,.member-edit,.member-login,.member-delete,.calendar-nav-btn){transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}
:where(button,.nav-btn,.menu-toggle,.quick,.member-edit,.member-login,.member-delete,.calendar-nav-btn):focus-visible,
:where(input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--red) 22%,transparent);outline-offset:2px}
:where(input,select,textarea){accent-color:var(--red)}
:where(.panel,.feature-card,.stat-card,.empty-generic){box-shadow:var(--shadow-md)}
:where(.red-btn,.pill-btn,.outline-btn,.member-edit,.member-login,.member-delete){min-height:36px}
.red-btn:hover{box-shadow:var(--shadow-sm)}
:where(.form-grid input,.form-grid select,.form-grid textarea,.form-panel input,.auth-form input){transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}
:where(.form-grid input,.form-grid select,.form-grid textarea,.form-panel input,.auth-form input):focus{border-color:color-mix(in srgb,var(--red) 58%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 10%,transparent)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Ranking – Erklärung Punkte */
.points-explain-view .section-head{color:#fff;margin-bottom:18px}
.points-explain-view .section-head h1{color:#fff}
.points-explain-view .section-head p{color:rgba(255,255,255,.72)}
.points-rules-panel{max-width:920px}
.points-rules-table-wrap{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}
.points-rules-table{width:100%;border-collapse:collapse;font-size:14px}
.points-rules-table th,.points-rules-table td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line)}
.points-rules-table th{background:#f5f2f1;color:#22262d;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.points-rules-table th:last-child,.points-rules-table td:last-child{width:190px}
.points-rules-table td:last-child strong{display:inline-flex;align-items:center;min-width:86px;justify-content:center;background:#f9e8eb;color:var(--red);border-radius:999px;padding:7px 12px;font-size:12px}
.points-rules-table tbody tr:last-child td{border-bottom:0}
.points-rules-table tbody tr:hover{background:#fffafa}
@media(max-width:640px){.points-rules-table th,.points-rules-table td{padding:13px 12px}.points-rules-table th:last-child,.points-rules-table td:last-child{width:120px}.points-rules-table{font-size:13px}.points-rules-panel{padding:16px}}

/* v212 – Ranking / Erklärung Punkte: kompaktere, hochwertigere Darstellung */
.points-rules-panel{max-width:920px;padding:18px;background:linear-gradient(145deg,#fff 0%,#fbf8f8 100%);border:1px solid rgba(255,255,255,.68)}
.points-rules-table-wrap{overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 88%,var(--red) 12%);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(17,22,28,.06)}
.points-rules-table{font-size:15px}
.points-rules-table th,.points-rules-table td{padding:17px 20px}
.points-rules-table th{background:linear-gradient(180deg,#f7f4f3,#f2eeee);font-size:11px;letter-spacing:.12em;color:#747981}
.points-rules-table tbody td:first-child{font-weight:650;color:#252a31}
.points-rules-table th:last-child,.points-rules-table td:last-child{width:170px;text-align:right}
.points-rules-table td:last-child strong{min-width:94px;padding:8px 14px;background:linear-gradient(135deg,#fbecef,#f7dfe4);border:1px solid rgba(198,13,42,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.7);font-size:12px}
.points-rules-table tbody tr{transition:background-color var(--transition-fast),transform var(--transition-fast)}
.points-rules-table tbody tr:hover{background:#fff7f8}
@media(max-width:640px){.points-rules-panel{padding:10px}.points-rules-table th,.points-rules-table td{padding:14px 12px}.points-rules-table th:last-child,.points-rules-table td:last-child{width:112px}.points-rules-table td:last-child strong{min-width:78px;padding:7px 9px}.points-rules-table{font-size:13px}}

/* v213 – Ranking > Saison > 26/27 */
.season-ranking-view{max-width:1180px;margin:0 auto}
.season-ranking-panel{padding:22px}
.season-ranking-empty{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed rgba(28,31,35,.14);border-radius:18px;background:rgba(255,255,255,.42)}
.season-ranking-empty h2{margin:14px 0 7px;font-size:clamp(22px,2.3vw,30px);letter-spacing:-.035em}
.season-ranking-empty p{margin:0;color:var(--muted);font-size:13px}
.season-ranking-badge{display:inline-flex;align-items:center;justify-content:center;min-width:78px;height:42px;padding:0 18px;border-radius:999px;background:#f8e4e7;color:#bd0d27;font-weight:900;font-size:15px;box-shadow:inset 0 0 0 1px rgba(189,13,39,.08)}
@media(max-width:720px){.season-ranking-panel{padding:14px}.season-ranking-empty{min-height:230px;padding:28px 16px}}
