:root{--bg:#f4f7fb;--card:#fff;--text:#1d2733;--muted:#6d7885;--line:#dfe6ee;--primary:#245fa8;--primary-soft:#eaf2fc;--danger:#b33b3b;--danger-soft:#fff0f0;--shadow:0 8px 30px rgba(35,52,72,.07);--radius:16px}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}body{margin:0}a{color:inherit;text-decoration:none}.shell{max-width:1220px;margin:0 auto;padding:32px 20px 70px}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1260px;margin:auto;padding:12px 20px;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--primary);color:#fff;font-weight:900}.brand-mark.large{width:48px;height:48px;border-radius:14px}.nav{display:flex;align-items:center;gap:6px;margin-left:auto}.nav>a,.nav summary{padding:9px 12px;border-radius:10px;color:#4f5c69;cursor:pointer;list-style:none}.nav>a:hover,.nav a.active,.nav summary:hover{background:var(--primary-soft);color:var(--primary)}.nav-user{margin-left:10px;border-left:1px solid var(--line);padding-left:18px!important}.nav-more{position:relative}.nav-more summary::-webkit-details-marker{display:none}.nav-menu{position:absolute;right:0;top:44px;min-width:170px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px}.nav-menu a{display:block;padding:9px 10px;border-radius:8px}.nav-menu a:hover{background:var(--bg)}.nav-toggle{display:none;margin-left:auto;border:0;background:transparent;font-size:24px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head h1{margin:3px 0 6px;font-size:clamp(28px,4vw,42px);line-height:1.08}.page-head p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px!important;font-weight:800;color:var(--primary)!important}.head-actions,.card-actions,.form-actions,.title-line,.badges,.section-head{display:flex;align-items:center;gap:10px}.form-actions{justify-content:flex-end}.btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--text);padding:10px 14px;border-radius:10px;font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.ghost{background:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.small{padding:7px 10px;font-size:13px}.btn.wide{width:100%}.back{display:inline-block;color:var(--muted);font-weight:700;margin-bottom:8px}.filterbar,.searchbar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.chip-group{display:flex;flex-wrap:wrap;gap:8px}.chip,.tag,.status{display:inline-flex;align-items:center;border-radius:999px;font-size:12px;font-weight:800;padding:5px 9px;border:1px solid var(--line);background:#f7f9fb}.chip.selected{outline:2px solid rgba(36,95,168,.22)}.tag-landesliga{background:#e7f0ff;border-color:#c5d8f6;color:#155297}.tag-unterliga{background:#e9f8ef;border-color:#c8e8d3;color:#27714a}.tag-sonstige{background:#fff4df;border-color:#efd7a6;color:#80581a}.tag.driver{background:#f0eaff;border-color:#d9cbff;color:#6445a4}.switch,.checkbox{display:flex;align-items:center;gap:8px}.switch input,.checkbox input{accent-color:var(--primary)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.t-card,.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.t-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.t-card h2{margin:14px 0 6px}.t-card p{margin:0;color:var(--muted)}.metrics{display:flex;gap:18px;margin:20px 0 14px;padding-top:14px;border-top:1px solid var(--line);font-size:14px}.metrics strong{font-size:18px}.muted{color:var(--muted);font-size:13px;display:block;margin-top:3px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;background:#fbfcfd}tr:last-child td{border-bottom:0}.actions{white-space:nowrap;text-align:right}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stack{display:flex;flex-direction:column;gap:18px}.span-2{grid-column:span 2}label{font-weight:700;font-size:14px}input,select,textarea{width:100%;margin-top:7px;padding:11px 12px;border:1px solid #cfd8e3;border-radius:10px;background:#fff;color:var(--text);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#7ba4d6;box-shadow:0 0 0 3px rgba(36,95,168,.10)}textarea{resize:vertical}.section-label{font-size:13px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em;padding-top:6px;border-top:1px solid var(--line)}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:18px}.panel h2{margin-top:0}.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}.details dt{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase}.details dd{margin:5px 0 0}.description{border-top:1px solid var(--line);padding-top:16px;margin-top:20px;line-height:1.6}.count{background:var(--bg);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.section-head{justify-content:space-between}.team-list,.history-list{display:flex;flex-direction:column}.team-row,.history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.team-row:first-child,.history-row:first-child{border-top:0}.danger-zone{margin-top:22px;border:1px solid #f0c7c7;background:var(--danger-soft);border-radius:14px;padding:18px}.danger-zone h2{margin:0 0 6px;font-size:18px}.danger-zone p{color:#805252}.danger-zone.compact{display:flex;justify-content:flex-end}.empty{background:#fff;border:1px dashed #cdd7e2;border-radius:14px;padding:40px;text-align:center;color:var(--muted)}.empty.compact{padding:24px}.member-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.member-pick{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.member-pick label{display:flex;align-items:center;gap:7px}.member-pick input{width:auto;margin:0}.driver-check{color:var(--muted)}.status-active{background:#e8f7ed;color:#2b714b;border-color:#cae7d4}.status-inactive{background:#fff4df;color:#80581a;border-color:#efd7a6}.status-former{background:#f1f3f5;color:#68717a}.searchbar input{margin:0}.searchbar{justify-content:flex-start}.searchbar input{max-width:560px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.stat strong{font-size:32px;display:block}.stat span{color:var(--muted)}.bar-list{display:flex;flex-direction:column;gap:10px}.bar-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.bar-row:last-child{border-bottom:0}.permission-grid,.export-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}.permission-card,.export-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.permission-card h2{font-size:17px;margin:0 0 12px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.segmented input{display:none}.segmented span{display:block;text-align:center;padding:9px 6px;border:1px solid var(--line);border-radius:8px;font-size:12px}.segmented input:checked+span{background:var(--primary-soft);border-color:#a8c4e5;color:var(--primary);font-weight:800}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-grid input{width:auto;margin:0}.text-btn{border:0;background:transparent;color:var(--primary);cursor:pointer;font-weight:700}.flash{padding:12px 14px;border-radius:10px;margin-bottom:18px;border:1px solid}.flash.success{background:#eaf8ef;border-color:#c9e8d5;color:#256340}.flash.error{background:#fff0f0;border-color:#efc9c9;color:#8d3434}.login-shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#eef4fb,#f7f9fc)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 70px rgba(36,62,90,.12);padding:28px}.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}.login-brand h1{margin:0}.login-brand p{margin:4px 0 0;color:var(--muted)}.narrow{max-width:560px}.sticky-actions{position:sticky;bottom:14px;background:rgba(244,247,251,.92);padding:12px;border-radius:14px;backdrop-filter:blur(10px)}@media(max-width:850px){.nav-toggle{display:block}.nav{display:none;position:absolute;left:12px;right:12px;top:68px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;flex-direction:column;align-items:stretch}.nav.open{display:flex}.nav-user{margin:0;border:0!important;padding-left:12px!important}.nav-more .nav-menu{position:static;box-shadow:none;border:0;padding:4px 8px}.page-head{flex-direction:column}.detail-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.shell{padding:22px 12px 50px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.filterbar{align-items:flex-start;flex-direction:column}.card-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.details{grid-template-columns:1fr}.member-pick{flex-direction:column}.segmented{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.topbar-inner{padding:10px 12px}.brand span:last-child{display:none}}

/* =====================================================
   V3.1 – Listenübersicht, Team-Auswahl und Auswertungen
   ===================================================== */

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.nowrap{white-space:nowrap}

.overview-list{display:flex;flex-direction:column;gap:12px}
.overview-row{display:grid;grid-template-columns:150px minmax(0,1fr) 190px;gap:20px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px 20px}
.overview-date{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding-top:2px}
.overview-date>strong{font-size:17px}
.overview-main h2{font-size:20px;margin:0 0 3px;line-height:1.25}
.overview-main h2 a:hover{text-decoration:underline}
.overview-team-list{display:flex;flex-direction:column;gap:9px;margin-top:13px}
.overview-team{display:grid;grid-template-columns:minmax(100px,150px) minmax(0,1fr);gap:10px;align-items:start;padding-top:9px;border-top:1px solid var(--line)}
.overview-team:first-child{padding-top:0;border-top:0}
.overview-team>strong{font-size:13px}
.participant-chips{display:flex;flex-wrap:wrap;gap:6px}
.participant-chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border-radius:999px;background:#f3f6f9;border:1px solid #dfe6ee;font-size:12px;font-weight:700;color:#455463}
.participant-chip.driver{background:#f0eaff;border-color:#d9cbff;color:#60449a}
.overview-side{display:flex;flex-direction:column;align-items:flex-end;gap:15px}
.overview-counts{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;color:var(--muted);font-size:12px}
.overview-counts strong{color:var(--text);font-size:16px;margin-right:3px}
.overview-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}

.tournament-table{min-width:980px}
.participants-cell{min-width:310px;max-width:520px}
.table-team-line{font-size:13px;line-height:1.45;margin:3px 0}
.table-team-line strong{margin-right:4px}

.team-detail-list{display:flex;flex-direction:column;gap:10px}
.team-detail-card{padding:13px 0;border-top:1px solid var(--line)}
.team-detail-card:first-child{border-top:0;padding-top:0}
.team-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}

.team-builder{border-top:1px solid var(--line);padding-top:4px}
.team-builder-head{align-items:flex-start;margin-bottom:14px}
.team-builder-head h2{margin-bottom:2px}
.selection-summary{flex:0 0 auto;background:var(--primary-soft);color:var(--primary);border:1px solid #c8d9ee;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}
.member-filter-wrap{margin-bottom:10px}
.member-filter-wrap input{margin:0}
.member-role-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.member-role-row{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:16px;align-items:center;padding:11px 13px;border-top:1px solid var(--line)}
.member-role-row:first-child{border-top:0}
.member-role-row:hover{background:#fafcfe}
.member-role-person{min-width:0}
.member-role-person>strong{display:block}
.role-select-label select{margin:0}
.member-role-row:has(select[value="participant"]),.member-role-row:has(select[value="driver"]){background:#f8fbff}

.stats-filter{align-items:flex-end}
.filter-fields{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.filter-fields label{min-width:180px}
.filter-fields select{margin-top:5px}
.stat-grid-five{grid-template-columns:repeat(5,1fr)}
.info-note{background:#f7fbff;border:1px solid #d9e7f6;border-radius:12px;padding:13px 15px;margin:0 0 18px;color:#52616f;font-size:13px;line-height:1.5}
.info-note strong{color:var(--text)}
.stats-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:18px;align-items:start}
.stats-side{display:flex;flex-direction:column;gap:18px}
.stats-main-panel{min-width:0}
.stats-detail-panel{margin-top:18px}
.inner-table{box-shadow:none;margin-top:12px}
.ranking-table{min-width:650px}
.rank-number{font-weight:900;color:var(--muted);width:42px}
.ranking-list{display:flex;flex-direction:column}
.ranking-list-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.ranking-list-row:first-child{border-top:0}
.ranking-position{width:24px;height:24px;display:grid;place-items:center;background:var(--bg);border-radius:50%;font-size:11px;font-weight:900;color:var(--muted)}
.ranking-list-row>strong{font-size:13px;white-space:nowrap}

@media(max-width:1050px){
  .overview-row{grid-template-columns:125px minmax(0,1fr)}
  .overview-side{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between}
  .overview-counts{justify-content:flex-start}
  .stat-grid-five{grid-template-columns:repeat(3,1fr)}
  .stats-layout{grid-template-columns:1fr}
  .stats-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-side .panel:last-child{grid-column:span 2}
}

@media(max-width:720px){
  .overview-row{grid-template-columns:1fr;gap:12px;padding:16px}
  .overview-date{flex-direction:row;align-items:center;justify-content:space-between}
  .overview-side{grid-column:auto;align-items:stretch;flex-direction:column}
  .overview-counts,.overview-actions{justify-content:flex-start}
  .overview-team{grid-template-columns:1fr;gap:6px}
  .member-role-row{grid-template-columns:1fr;gap:8px}
  .team-builder-head{flex-direction:column}
  .selection-summary{align-self:flex-start}
  .stat-grid-five{grid-template-columns:repeat(2,1fr)}
  .stats-side{grid-template-columns:1fr}
  .stats-side .panel:last-child{grid-column:auto}
}

@media(max-width:430px){
  .stat-grid-five{grid-template-columns:1fr 1fr}
  .overview-actions .btn{flex:1}
}

/* V3.1.1 – intuitiver Team-Builder */
.team-builder-v2{border-top:1px solid var(--line);padding-top:4px}
.team-builder-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.team-builder-column{border:1px solid var(--line);border-radius:14px;background:#f9fbfd;padding:14px;min-width:0}
.team-column-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:11px}
.team-column-head h3{margin:0;font-size:17px}
.member-simple-list{display:flex;flex-direction:column;gap:8px;max-height:520px;overflow:auto;padding-right:2px}
.member-builder-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.member-builder-row:hover{border-color:#c8d4e0}
.member-builder-person{min-width:0;flex:1}
.member-builder-person>strong{display:block}
.member-builder-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.member-builder-row:not(.is-selected) .driver-action,.member-builder-row:not(.is-selected) .remove-action{display:none}
.member-builder-row.is-selected [data-add-member]{display:none}
.member-builder-row.is-selected{border-color:#c7d9ef;background:#fbfdff}
.member-builder-row.is-driver{border-color:#d5c4fa;background:#f7f2ff;box-shadow:0 0 0 2px rgba(100,69,164,.06)}
.driver-action.active-driver{background:#6b4ba6;border-color:#6b4ba6;color:#fff}
.selected-members{background:#fff}
.selected-list{max-height:none}
.selected-team-empty{padding:26px 14px;text-align:center;border:1px dashed #cdd7e2;border-radius:11px;color:var(--muted);font-size:13px}
.selected-team-empty[hidden]{display:none}
.available-members .member-filter-wrap{margin-bottom:10px}

@media(max-width:850px){
  .team-builder-columns{grid-template-columns:1fr}
  .member-simple-list{max-height:380px}
  .selected-list{max-height:none}
}
@media(max-width:520px){
  .member-builder-row{align-items:flex-start;flex-direction:column}
  .member-builder-actions{justify-content:flex-start;width:100%}
  .member-builder-actions .btn{flex:1}
}
