:root{--evz-blue:#0b5fc3;--evz-ink:#10284b;--evz-muted:#71829a;--evz-line:#dce6f1}
[hidden],.match-card[hidden],.filter-bar[hidden]{display:none!important}
body{background:#f3f6fb;color:var(--evz-ink)}
header{background:#fff;color:var(--evz-ink);min-height:64px;padding:0 max(24px,calc((100vw - 1328px)/2));border-bottom:1px solid var(--evz-line);gap:20px}
header .brand{display:inline-flex;align-items:center;gap:10px;color:#143b6c;line-height:1.08;font-size:1.1rem}
header .brand img{flex:none}header .brand small{display:block;color:#7d8da0;font-size:.52rem;letter-spacing:.11em;margin-top:5px}
header nav{gap:8px;flex-wrap:wrap;justify-content:flex-end}header nav a,header nav .link{color:#49627f;font-size:.82rem;padding:8px 10px;border-radius:7px;text-decoration:none}
header nav a:hover,header nav .link:hover{background:#edf4fd;color:#075bb8}
main{max-width:1328px;margin:26px auto;padding:0 24px 28px}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:15px}
.page-heading h1{font-size:1.8rem;letter-spacing:-.025em;margin:1px 0 3px}.eyebrow{font-weight:800;letter-spacing:.16em;font-size:.66rem;color:#0b5fc3;margin:0 0 7px}.intro{font-size:.84rem;margin:0;color:#61738d}
.heading-links{display:flex;gap:13px;font-size:.78rem;white-space:nowrap}.heading-links a{color:#0b5fc3}
.counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 15px}
.counter{display:flex;align-items:center;justify-content:space-between;gap:9px;background:#fff;border:1px solid var(--evz-line);border-radius:10px;padding:10px 13px;min-width:0;box-shadow:0 2px 8px #10204008}
.counter span{font-size:.79rem;color:#304b6d;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.counter span small{display:block;color:#8190a5;font-size:.67rem;font-weight:400;margin-top:3px}.counter strong{font-size:1.3rem;color:#0b5fc3;white-space:nowrap}.counter strong small{font-size:.67rem;color:#74839a;font-weight:500}
.schedule-panel{background:#fff;border:1px solid var(--evz-line);border-radius:13px;box-shadow:0 4px 20px #10204008;overflow:hidden}
.panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 17px;border-bottom:1px solid var(--evz-line)}
.panel-toolbar h2{font-size:.93rem;margin:0}.panel-toolbar h2 span{font-weight:400;font-size:.71rem;color:var(--evz-muted);margin-left:8px}
.panel-downloads{display:flex;gap:6px}.panel-downloads button{background:#f6f9fe;color:#0b5fc3;border:1px solid #d9e6f5;font-size:.72rem;padding:7px 10px}
.filter-bar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:9px;margin:0;padding:10px 17px 12px;border-bottom:1px solid var(--evz-line)}
.filter-field{display:grid;gap:4px;min-width:0;font-size:.67rem;color:#526984}.filter-field select{width:100%;min-width:0;max-width:none;height:34px;background:#fff;color:#17365e;font-size:.75rem;padding:5px 7px;border:1px solid #cddbea;border-radius:7px}
.filter-toggle{display:none}.schedule{margin:0;padding:12px;max-height:min(68vh,760px);overflow-y:auto;overflow-x:hidden;border:0;border-radius:0;box-shadow:none;background:#fafdff}
.match-card{background:#fff;border:1px solid var(--evz-line);border-radius:11px;margin:0 0 10px;box-shadow:0 2px 9px #0c2b4c09;overflow:hidden}
.match-card:last-child{margin-bottom:0}.match-card.overbooked{border-left:4px solid #db8a38}.match-card.open-soon{border-left:4px solid #d83d45;background:#fffafa}
.match-overview{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 15px 10px;border-bottom:1px solid #ecf1f6}
.match-overview time{font-size:.7rem;color:#637992;font-weight:700;text-transform:uppercase}.match-overview h3{font-size:1rem;margin:3px 0;line-height:1.2}.match-overview h3 span{color:#80a3cc}.match-overview small{color:#8b9ab0;font-size:.68rem}
.match-capacity{text-align:right;white-space:nowrap}.match-capacity strong{display:block;background:#e7f5ed;color:#168351;padding:5px 8px;border-radius:6px;font-size:.72rem}.match-capacity small{display:block;margin-top:5px;color:#7e8ea5;font-size:.64rem}
.participant-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;padding:12px 15px 13px}
.participant{min-width:0}.participant+.participant{border-left:1px solid #eaf0f7;padding-left:14px}
.status-line{display:flex;justify-content:flex-start;align-items:center;gap:7px;min-width:0;min-height:36px}.status-name{font-size:.8rem;color:#14345c;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 45px)}
.status-line.guest-line{min-height:33px}.guest-line .status-name{font-size:.72rem;color:#74849a;font-weight:600}.guest-lines{display:grid;gap:2px;margin-top:4px;padding-left:10px;border-left:2px solid #e8eef6}
.status-trigger{flex:none;display:inline-flex;align-items:center;justify-content:center;margin:0;width:35px;height:34px;padding:0;background:#f5f8fc;border:1px solid #dce5f0;border-radius:7px;color:#70829b;font-size:1.12rem;line-height:1;cursor:pointer}
.status-trigger:hover,.status-trigger:focus-visible{outline:2px solid #85b8f4;outline-offset:1px}.status-trigger:disabled{cursor:default;opacity:1}
.status-confirmed{color:#07844b;background:#edf8f1;border-color:#cde8d6}.status-pending{color:#b97400;background:#fff7e8;border-color:#f0dfb9}.status-optional{color:#a66a00;background:#fffaf0}.status-declined{color:#d32b37;background:#fff4f5;border-color:#f1dadc}.status-absent{background:#f4effb;color:#684baa}
.absence-note{display:block;color:#7e8ea5;font-size:.65rem;margin-top:7px;line-height:1.3}
.match-actions{border-top:1px solid #ebf1f6;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 15px;background:#fcfdff}.save-hint{color:#7c8da3;font-size:.7rem}.match-actions button{padding:8px 12px;font-size:.73rem}
.legend{font-size:.7rem;margin:10px 2px;color:#72839b}.empty-schedule{padding:20px;font-size:.88rem;color:#627790}
.status-menu{position:fixed;z-index:1000;display:grid;gap:2px;width:220px;max-height:calc(100vh - 16px);overflow-y:auto;padding:5px;border:1px solid #cbdced;border-radius:9px;background:#fff;box-shadow:0 12px 35px #16314f35}
.status-menu button{display:flex;align-items:center;gap:9px;background:#fff;color:#1b3659;text-align:left;font-size:.85rem;font-weight:600;padding:8px 9px;border-radius:6px;min-height:39px}
.status-menu button:hover,.status-menu button:focus,.status-menu [aria-selected=true]{background:#eaf3fd;color:#075ebd;outline:none}.status-menu button span{display:inline-grid;place-items:center;width:24px;font-size:1.05rem}
.admin-links{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem}.roster-page>h1{margin:0 0 7px}.roster-page .intro{max-width:650px;line-height:1.5;margin-bottom:16px}.season-picker{margin:0 0 15px}.season-picker label{font-size:.75rem;color:#61738c}.season-picker select{display:block;margin-top:5px;padding:8px 10px;background:#fff;border:1px solid #cbd9e9;border-radius:7px}
.roster-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,310px);gap:14px}.roster-layout h2{font-size:1rem;margin:0 0 13px}.roster-layout aside p{font-size:.83rem;color:#61738c;line-height:1.5}
.roster-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(160px,1.6fr) 34px;align-items:end;gap:9px;margin-bottom:8px}.roster-row label{font-size:.7rem;color:#546b87}.roster-row input{font-size:.85rem;padding:8px;margin-top:4px}.remove-participant{height:37px;padding:4px;background:#f4f7fb;color:#697c93;font-size:1.25rem}.roster-settings{margin:15px 0;border:1px solid var(--evz-line);border-radius:9px;padding:11px}.roster-settings legend{font-size:.8rem;font-weight:700}.roster-settings label{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:500;margin:5px 0}.roster-settings input{width:auto;margin:0}.roster-settings small{display:block;margin-top:8px;color:#73849a}.secondary-button{background:#eff5fd;color:#0b5fc3;border:1px solid #cfe0f5;font-size:.8rem;padding:8px 10px}
@media(max-width:850px){.participant-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.participant:nth-child(3){border-left:0;padding-left:0}.filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-layout{grid-template-columns:1fr}}
@media(max-width:700px){header{padding:7px 14px;min-height:58px;gap:8px}header .brand{font-size:.9rem;gap:6px}header .brand img{width:28px;height:28px}header .brand small{font-size:.43rem}header nav{gap:1px}header nav a,header nav .link{font-size:.68rem;padding:6px 5px}header nav a[href='/account'],header nav form{display:none}main{margin:20px auto;padding:0 12px 22px}.page-heading{display:block}.page-heading h1{font-size:1.48rem}.heading-links{margin-top:10px;font-size:.72rem}.counters{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:12px}.counter{display:block;padding:8px 6px}.counter span{font-size:.66rem}.counter span small{font-size:.56rem}.counter strong{display:block;font-size:1.12rem;margin-top:5px}.counter strong small{font-size:.57rem}.panel-toolbar{padding:9px 10px}.panel-toolbar h2{font-size:.8rem}.panel-toolbar h2 span{display:none}.panel-downloads button{font-size:.64rem;padding:6px}.filter-toggle{display:block;width:100%;border-radius:0;background:#edf5ff;color:#0b5fc3;padding:8px;font-size:.73rem;text-align:left}.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));padding:9px;gap:7px}.filter-field{font-size:.66rem}.filter-field select{font-size:16px;height:39px}.schedule{max-height:none;overflow:visible;padding:9px;border:0;background:#fafdff}.match-overview{padding:10px;align-items:flex-start}.match-overview h3{font-size:.9rem}.match-overview time{font-size:.59rem}.match-overview small{font-size:.59rem}.match-capacity strong{font-size:.61rem}.match-capacity small{font-size:.57rem;white-space:normal}.participant-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;padding:11px}.participant{border:0!important;padding-left:0!important}.participant:nth-child(even){border-left:1px solid #eaf0f7!important;padding-left:9px!important}.status-line{gap:5px;min-height:42px}.status-name{font-size:.73rem}.guest-line .status-name{font-size:.67rem}.guest-lines{padding-left:6px;margin-top:3px}.status-trigger{width:40px;height:40px;font-size:1.18rem}.absence-note{font-size:.56rem}.match-actions{padding:8px 10px}.save-hint{font-size:.6rem}.match-actions button{font-size:.68rem;padding:7px}.legend{font-size:.65rem;line-height:1.5;margin:8px 2px}.roster-row{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) 30px;gap:6px}.roster-row input{font-size:16px}.roster-layout{display:block}.roster-layout>aside{margin-top:12px}}

/* Spielplan: Steuerung bleibt stehen, nur die Spielkarten scrollen. */
body.schedule-page{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.schedule-page>header{flex:none}
.schedule-page>main{width:100%;flex:1;min-height:0;margin:0 auto;padding-top:16px;display:flex;flex-direction:column}
.schedule-page .schedule-panel{display:flex;flex-direction:column;flex:1;min-height:0}
.schedule-page .schedule{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain}
.schedule-page .legend{flex:none;margin:8px 2px 10px}
.quota-heading{margin:0 0 7px;color:#637891;font-size:.69rem;font-weight:650}
.season-overview-filter{display:flex;align-items:center;margin:0 0 7px}
.season-overview-filter label{display:flex;align-items:center;gap:9px;color:#526984;font-size:.75rem}
.season-overview-filter select{height:31px;min-width:125px;padding:4px 8px;border:1px solid #cddbea;border-radius:7px;background:white;color:#17365e;font:inherit}
.filter-bar .filter-field[for="season-filter"]{display:none}
.quota-summary .counters{margin:0 0 11px}
.quota-summary .counter{display:grid;gap:2px;align-content:center;justify-content:stretch;padding:7px 11px}
.quota-summary .counter-name{font-size:.76rem}
.quota-summary .counter-quota,.quota-summary .counter-detail{display:block;font-size:.62rem;color:#74849a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quota-summary .counter strong{font-size:1.03rem;line-height:1.1}
.filter-meta{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.68rem}
.filter-meta a{color:#0b5fc3}
.filter-header{display:none}
.match-overview{width:100%;background:#fff;color:var(--evz-ink);border:0;border-bottom:1px solid #ecf1f6;border-radius:0;text-align:left;cursor:pointer;font-weight:inherit}
.match-overview:hover{background:#f6faff}
.match-overview:focus-visible{outline:2px solid #75a8e8;outline-offset:-2px}
.match-card.is-full .match-overview,.match-card.is-full .match-overview:hover{background:#e8f7ed}
.match-header-right{display:flex;align-items:center;gap:13px}
.match-chevron{display:inline-block;color:#527392;font-size:1.25rem;line-height:1;transition:transform .15s}
.match-toggle[aria-expanded="false"] .match-chevron{transform:rotate(-90deg)}
.status-line{display:grid;grid-template-columns:minmax(0,88px) 35px minmax(0,1fr);column-gap:14px;justify-content:start}
.guest-inline-name{align-self:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#304d6e;font-size:.72rem;font-weight:650}
.guest-inline-name[hidden]{display:none}
.status-name{min-width:0;max-width:none}
.guest-lines{padding-left:0;margin-left:-2px}
.guest-line .status-name{padding-left:10px}
.guest-name-trigger{display:block;min-width:0;width:100%;margin:0;padding:0;background:transparent;border:0;border-radius:3px;color:#637891;font-size:.72rem;font-weight:650;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.guest-name-trigger:hover{color:#0b5fc3;text-decoration:underline}
.guest-name-trigger:focus-visible{outline:2px solid #75a8e8;outline-offset:2px}
.guest-name-trigger span{font-size:.68rem;color:#0b5fc3}
.guest-name-backdrop{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:16px;background:#10284b85}
.guest-name-card{width:min(370px,100%);padding:19px;background:#fff;border:1px solid #cbd9e9;border-radius:12px;box-shadow:0 18px 55px #071e3b50}
.guest-name-card h2{margin:0 0 15px;font-size:1.1rem}
.guest-name-card label{display:block;color:#294b72;font-size:.8rem}
.guest-name-card input{width:100%;margin-top:7px;font-size:16px}
.guest-name-card p{margin:11px 0;color:#637891;font-size:.74rem;line-height:1.45}
.guest-name-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}
.admin-downloads{margin:18px 0}.admin-downloads h2{margin:0 0 5px}.admin-downloads p{margin:0 0 12px;color:#637891;font-size:.82rem}.admin-downloads>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.admin-downloads .secondary-button{display:inline-block;text-decoration:none;border-radius:7px;font-weight:700}
.settings-roster{margin:18px 0 24px}.settings-roster>h2{margin:0 0 8px;font-size:1.2rem}.settings-roster .roster-layout h3{margin:0 0 13px;font-size:1rem}.settings-roster .roster-layout{align-items:start}
.settings-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:17px 0}.settings-nav a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px;background:#edf5ff;border:1px solid #cfdef0;border-radius:10px;color:#124b88;font-size:.85rem;font-weight:750;text-align:center;text-decoration:none}.settings-nav a:hover,.settings-nav a:focus-visible{background:#dfedff;border-color:#9fbfe7}
.settings-panel{margin:11px 0;background:#fff;border:1px solid #dce6f0;border-radius:12px;box-shadow:0 2px 8px #1020400b;scroll-margin-top:15px}.settings-panel>summary{padding:14px 17px;color:#173b65;font-size:1rem;font-weight:750;cursor:pointer}.settings-panel[open]>summary{border-bottom:1px solid #e5edf6}.settings-panel>.settings-roster{margin:0;padding:17px}.settings-panel-body{padding:17px}.settings-panel-body>p:first-child{margin-top:0;color:#526984;font-size:.85rem}.settings-panel-body>p:last-child{margin-bottom:0}.password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:10px 0;border-top:1px solid #e8eef5}.password-row label{margin:0}.password-row label small{display:block;color:#71839a;font-weight:400}.password-row input{max-width:400px}.password-row button{margin-bottom:0}
.calendar-subscription{margin:18px 0;scroll-margin-top:15px}.calendar-subscription h2{margin:0 0 9px}.calendar-subscription p{max-width:760px;color:#526984;font-size:.84rem;line-height:1.5}.calendar-subscription form{display:inline-block;margin:7px 10px 2px 0}.calendar-subscription .calendar-warning{color:#9a5a00}
.roster-row{grid-template-columns:minmax(100px,1fr) minmax(160px,1.6fr) 105px 34px}
.ticket-count-field{display:block;max-width:185px;margin:0 0 18px;font-size:.78rem;color:#526984}.ticket-count-field input{margin-top:5px}
@media(max-width:700px){
  .season-overview-filter{display:none}
  .filter-bar .filter-field[for="season-filter"]{display:grid}
  .filter-bar .period-field{display:none}
  .schedule-page>main{padding-top:9px;padding-bottom:0}
  .schedule-page .page-heading{margin-bottom:8px}
  .schedule-page .page-heading .heading-links{display:none}
  .quota-summary .counters{gap:4px;margin-bottom:8px}
  .quota-summary .counter{padding:5px 5px}
  .quota-summary .counter-name{font-size:.61rem}
  .quota-summary .counter-quota,.quota-summary .counter-detail{font-size:.5rem}
  .quota-summary .counter strong{font-size:.88rem}
  .schedule-page .schedule{overflow-y:auto}
  .match-header-right{gap:5px}
  .status-line{grid-template-columns:minmax(0,67px) 40px minmax(0,1fr);column-gap:6px}
  .guest-inline-name{font-size:.65rem}
  .settings-nav{grid-template-columns:1fr;gap:6px}.settings-nav a{min-height:40px;font-size:.78rem}.settings-panel>summary{font-size:.88rem}.settings-panel>.settings-roster,.settings-panel-body{padding:12px}.password-row{grid-template-columns:1fr;gap:6px}.password-row button{justify-self:start}
  .guest-lines{padding-left:0;margin-left:-2px}
  .guest-line .status-name{padding-left:6px}
  .roster-row{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(58px,.7fr) 28px;gap:4px}
  .roster-row label{font-size:.6rem}
  .roster-row input{padding:6px 3px}
  .filter-meta{display:flex;flex-wrap:wrap}
  .filter-header{display:flex;align-items:stretch;justify-content:space-between;gap:5px;padding:5px 7px;background:#edf5ff;border-bottom:1px solid var(--evz-line)}
  .filter-header .filter-toggle{flex:1;min-width:0;width:auto;padding:6px 3px;font-size:.64rem;line-height:1.2}
  .capacity-buttons{display:flex;flex:none;gap:2px;align-items:center}
  .capacity-button{min-width:30px;padding:7px 4px;background:#fff;color:#30516f;border:1px solid #cbdbea;border-radius:6px;font-size:.64rem;line-height:1}
  #history-button{min-width:50px}
  .capacity-button[aria-pressed="true"]{background:#0b5fc3;border-color:#0b5fc3;color:white}
  .filter-bar .filter-field[for="capacity-filter"]{display:none}
}
