*{box-sizing:border-box}body{margin:0;background:#f3f5f7;color:#17202a;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}header{background:#101820;color:white;position:sticky;top:0;z-index:10}.wrap{max-width:1180px;margin:auto;padding:0 18px}.brand{font-weight:800;color:white;text-decoration:none;font-size:20px}header .wrap{height:64px;display:flex;align-items:center;justify-content:space-between}nav{display:flex;gap:18px}nav a{color:#dce5eb;text-decoration:none}.hero{margin:28px 0;padding:32px;border-radius:20px;background:linear-gradient(135deg,#15212b,#28495d);color:white}.hero h1{font-size:42px;margin:6px 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;opacity:.75}.tabs{display:flex;gap:8px;overflow:auto;margin:0 0 18px}.tabs a{background:white;padding:10px 14px;border-radius:999px;text-decoration:none;color:#17202a;white-space:nowrap}.card{background:white;border-radius:16px;padding:20px;margin:18px 0;box-shadow:0 4px 18px rgba(0,0,0,.06)}.compact{padding:16px}.muted{color:#697681}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid #e7ebee}th{font-size:12px;text-transform:uppercase;color:#68747d}.round-grid{display:grid;grid-template-columns:repeat(5,minmax(205px,1fr));gap:14px;margin-top:20px;overflow-x:auto;padding:2px 2px 6px}.round{background:#f7f9fa;border:1px solid #e7ebee;border-radius:14px;padding:12px;min-width:205px}.round h3{margin:2px 2px 12px;font-size:14px;display:flex;align-items:center;justify-content:space-between}.match{background:white;border:1px solid #e1e6ea;border-radius:12px;padding:11px 10px 9px;margin:9px 0;display:block;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.match-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;min-height:42px}.match-team{font-weight:700;line-height:1.25;overflow-wrap:anywhere}.match-team-a{text-align:left}.match-team-b{text-align:right}.match-vs{font-size:11px;color:#9aa4ab;text-transform:uppercase}.match-results{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.match-result{background:#f5f7f8;border-radius:8px;padding:6px 5px;text-align:center}.match-result-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#697681;margin-bottom:2px}.match-result strong{display:block;font-size:16px;line-height:1.15}.match-lanes{display:block;color:#75818a;text-align:center;margin-top:8px;font-size:11px}.match.match-highlight{background:#eef6fc;border-color:#8dbfe5;box-shadow:0 0 0 2px rgba(22,119,200,.10);transform:translateY(-1px)}.notice{padding:12px 14px;background:#e7f6ea;border:1px solid #b9dfc0;border-radius:10px;margin-bottom:14px}.button{border:0;border-radius:9px;background:#1677c8;color:white;padding:9px 14px;cursor:pointer}.button.danger{background:#a94442}.match-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.result-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.result-form label{display:flex;gap:5px;align-items:center}.result-form input{width:58px;padding:8px;border:1px solid #ccd4da;border-radius:7px}footer{color:#74808a;padding:25px 0}@media(max-width:900px){.round-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:32px}}@media(max-width:600px){.round-grid{grid-template-columns:1fr}.match-title{display:block}.result-form{display:block}.result-form label{margin:8px 0}}

.login-card{max-width:430px;margin:70px auto;background:white;border-radius:18px;padding:30px;box-shadow:0 8px 30px rgba(0,0,0,.08)}.login-card h1{margin:5px 0 8px}.login-card form{margin-top:24px}.login-card label{display:block;font-weight:700;margin-bottom:7px}.login-card input[type=password]{width:100%;padding:12px;border:1px solid #ccd4da;border-radius:9px;font-size:16px;margin-bottom:14px}.error{background:#fdeaea;border:1px solid #efb7b7;color:#8b2424;padding:10px 12px;border-radius:9px;margin:15px 0}.back{margin:22px 0 0}.back a{color:#1677c8;text-decoration:none}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.button.secondary{background:#6c757d;text-decoration:none;display:inline-block}

.print-controls select{min-width:360px;padding:10px;border:1px solid #ccd4da;border-radius:8px;font-size:15px;margin:6px 10px 10px 0}
.print-sheet{background:#fff;padding:30px;border-radius:16px;box-shadow:0 4px 18px rgba(0,0,0,.06);margin:18px 0 30px}
.print-title{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #17202a;padding-bottom:18px;margin-bottom:20px}
.print-title h1{margin:3px 0;font-size:30px}.print-title h2{margin:5px 0;color:#52606b;font-size:20px}.print-logo{font-weight:800;font-size:18px}
.print-table th,.print-table td{border:1px solid #b9c2c8}.print-table th{background:#eef2f4}.print-table td{height:105px;vertical-align:middle}
.print-table .center{text-align:center}.score-box{text-align:center;min-width:150px}.score-box>div:first-child{font-size:14px}.handwrite{font-size:25px;letter-spacing:2px;margin-top:18px}.versus{font-size:12px;color:#74808a}.note-box{width:130px}
.legend{margin-top:18px;padding:12px;border:1px solid #ccd4da;border-radius:8px;display:flex;justify-content:space-between;gap:15px}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff;font-size:12px}
  header,footer,.no-print{display:none!important}
  main.wrap{max-width:none;padding:0;margin:0}
  .print-sheet{box-shadow:none;border-radius:0;padding:0;margin:0}
  .print-title h1{font-size:25px}.print-title h2{font-size:16px}
  .print-table td{height:100px}
  .print-table{font-size:12px}
  .legend{font-size:11px}
}

.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:14px;margin:18px 0}
.settings-grid label,.lane-setting label{font-weight:700}.settings-grid span{display:block;margin-bottom:6px}
.settings-grid input,.lane-setting input{width:100%;padding:10px;border:1px solid #ccd4da;border-radius:8px;font-size:15px}
.lane-setting{max-width:360px;margin:8px 0 18px}.lane-setting input{width:120px;margin-top:6px}
@media(max-width:700px){.settings-grid{grid-template-columns:1fr}}

/* Verwaltung: Spieltage klar gruppieren */
.admin-matchday{background:#fff;border:1px solid #d7dce2;border-radius:12px;margin:18px 0;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.admin-matchday-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#f1f3f5;border-bottom:3px solid #222;gap:20px}
.admin-matchday-kicker{display:block;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:#666;font-weight:700;margin-bottom:3px}
.admin-matchday-header h2{margin:0;font-size:1.45rem}
.admin-matchday-date{font-size:1.1rem;font-weight:700;white-space:nowrap}
.admin-matchday-body{padding:0 20px}
.admin-result-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid #dfe3e7}
.admin-result-row:last-child{border-bottom:0}
.admin-result-match strong{display:block;font-size:1.05rem}
.admin-result-match small{display:block;color:#6b7280;margin-top:5px}
.admin-result-row .result-form{margin:0}
@media(max-width:900px){.admin-result-row{grid-template-columns:1fr}.admin-result-row .result-form{width:100%}.admin-matchday-header{align-items:flex-start;flex-direction:column;gap:4px}}
@media print{.admin-matchday{break-inside:avoid}.admin-matchday-header{background:#eee;box-shadow:none}}

.season-planner h3{margin-top:24px}.season-planner hr{border:0;border-top:1px solid #ddd;margin:24px 0}.draft-groups{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0}.draft-groups>div{border:1px solid #d8d8d8;border-radius:10px;padding:14px;background:#fafafa}.draft-groups h4{margin-top:0}.draft-groups ol{margin-bottom:0;padding-left:24px}.draft-groups small{color:#777}@media(max-width:700px){.draft-groups{grid-template-columns:1fr}}

.draft-groups{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.draft-groups>div{border:1px solid #d8dee8;border-radius:10px;padding:16px;background:#f8fafc}
.draft-groups h4{margin-top:0}
.draft-groups label{display:grid;grid-template-columns:35px 1fr;gap:8px;align-items:center;margin:7px 0}
@media(max-width:800px){.draft-groups{grid-template-columns:1fr}}


/* Liga: Mannschaft anklicken und alle zugehörigen Paarungen hervorheben */
.team-row{cursor:pointer;transition:background .15s ease,box-shadow .15s ease}
.team-row:focus-visible{outline:2px solid #1677c8;outline-offset:-2px}
.team-row.team-selected{background:#eef6fc;box-shadow:inset 4px 0 0 #1677c8}
@media(max-width:1180px){.round-grid{grid-template-columns:repeat(5,minmax(205px,1fr));overflow-x:auto}}
@media(max-width:900px){.round-grid{grid-template-columns:repeat(2,minmax(205px,1fr));overflow-x:visible}}
@media(max-width:600px){.round-grid{grid-template-columns:1fr}.round{min-width:0}}

/* v13.3: Vereinsnamen nur an den definierten Stellen umbrechen */
.match-team,
.team-row td,
.standings-team {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* v13.4: ein Speichern-Button pro Spieltag */
.admin-matchday-save{
  display:flex;
  justify-content:flex-end;
  padding:12px 0 2px;
  margin-top:4px;
  border-top:1px solid #e7ebee;
}
.matchday-result-form .result-form{
  display:flex;
  flex-wrap:wrap;
  gap:10px 16px;
  align-items:center;
}
.matchday-result-form .result-form label{
  white-space:nowrap;
}
@media(max-width:700px){
  .admin-matchday-save{justify-content:stretch}
  .admin-matchday-save .button{width:100%}
}

/* v13.7: Datum direkt am Spieltag in der Liga */
.round h3 .round-date{font-size:11px;font-weight:500;color:#75818a;white-space:nowrap;margin-left:8px}
