
/* Pokal-Portal v1.1.0 - zusätzliche Styles ohne Änderung der bestehenden Layouts */
.cup-hero{background:#153126;color:#fff;padding:72px 0 66px;overflow:hidden}.cup-eyebrow{font-size:11px;font-weight:850;letter-spacing:2px;color:#c6e580}.cup-hero-grid{display:flex;justify-content:space-between;align-items:center;gap:35px}.cup-hero h1{font-size:clamp(43px,7vw,78px);margin:14px 0;letter-spacing:-3px;line-height:1}.cup-hero h1 span{color:#e0ec92}.cup-hero p{font-size:clamp(15px,2vw,19px);color:#d0dfd0;line-height:1.6}.cup-hero-icon{color:#cee68b;opacity:.55}.cup-hero-icon svg{width:115px;height:115px}.cup-section{padding:48px 0 95px;background:#f6f8f2;min-height:55vh}.cup-empty{border:1px dashed #c5d3c2;background:#fff;border-radius:18px;text-align:center;padding:82px 30px;color:#59725f}.cup-empty svg{width:50px;height:50px;color:#9fb987}.cup-empty h2{font-size:26px;color:#244232;letter-spacing:-.7px}.cup-empty p{font-size:14px}.cup-empty-small{padding:35px}.cup-empty-small h3{color:#294833}.cup-selector{display:flex;gap:15px;align-items:center;margin-bottom:45px;flex-wrap:wrap}.cup-selector>span{font-size:12px;font-weight:850;color:#637562;letter-spacing:.3px}.cup-selector nav{display:flex;flex-wrap:wrap;gap:10px}.cup-select{min-width:160px;display:flex;flex-direction:column;gap:4px;padding:13px 17px;border:1px solid #d6e2d0;background:#fff;border-radius:11px;font-size:14px;font-weight:850;color:#315641}.cup-select small{font-size:10px;color:#8a9d87}.cup-select.selected{background:#173b2b;color:#fff;border-color:#173b2b}.cup-select.selected small{color:#bed6b5}.cup-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:30px}.cup-title-row h2{font-size:clamp(28px,4vw,44px);margin:5px 0 10px;color:#1b3728;letter-spacing:-1.8px}.cup-title-row p{font-size:14px;color:#65786a;line-height:1.65;max-width:760px}.cup-label{color:#62884d;font-size:12px;font-weight:900;letter-spacing:1px}.cup-public-tag{display:inline-flex;padding:9px 14px;border-radius:30px;background:#e4efd8;color:#456d3e;font-weight:850;font-size:11px;white-space:nowrap}.cup-rounds{display:flex;gap:19px;overflow-x:auto;padding:4px 4px 24px;scroll-snap-type:x proximity}.cup-round{min-width:285px;width:315px;max-width:calc(100vw - 48px);flex:none;scroll-snap-align:start}.cup-round-head{border-top:4px solid #547b49;padding:19px 18px 20px;background:#e8efe0;border-radius:10px 10px 0 0;min-height:112px}.cup-round-head>span{font-size:10px;font-weight:900;letter-spacing:1.7px;color:#6b8661}.cup-round-head h3{margin:5px 0;font-size:20px;letter-spacing:-.5px;color:#1b3f2c}.cup-round-head small{font-size:11px;color:#71866b}.cup-match{background:#fff;border:1px solid #dce5d8;border-radius:10px;margin-top:12px;overflow:hidden;box-shadow:0 3px 10px #14341b0b}.cup-match-top{display:flex;justify-content:space-between;gap:6px;padding:12px 14px;color:#839183;background:#fafbf8;font-size:10px;font-weight:700}.cup-status{border-radius:5px;padding:3px 6px;background:#eef1ec;color:#648061;white-space:nowrap}.cup-status.is-done{background:#e4f1d8;color:#4a7e3e}.cup-team{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 15px;border-top:1px solid #eef1e8;font-size:13px;color:#37513d}.cup-team>span{overflow-wrap:anywhere}.cup-team strong{font-size:17px;min-width:30px;text-align:right}.cup-winner{background:#f0f8e7;color:#214b25;font-weight:850}.cup-winner>span:before{content:'★ ';color:#78a05d}.cup-match-bottom{padding:12px 14px;display:grid;gap:5px;border-top:1px solid #ecf0e6;font-size:11px;color:#7f907c;line-height:1.55}.cup-match-empty{padding:20px 12px;text-align:center;font-size:12px;color:#899a86;background:#fff;border-radius:0 0 10px 10px}.cup-hint{margin-top:24px;font-size:12px;color:#7b8a7a;line-height:1.6}.cup-back{display:inline-flex;margin-top:35px;color:#426d40;font-size:13px;font-weight:800}
/* Admin */
.pokal-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px;align-items:start}.pokal-layout .editor-panel{margin:0 0 23px}.pokal-box{padding:24px}.pokal-box>h2,.pokal-box .panel-title h2{font-size:19px;margin:0 0 16px}.pokal-side .pokal-box{position:sticky;top:20px}.pokal-cup-link{display:block;border:1px solid #dae5d7;border-radius:9px;padding:13px;margin:9px 0;background:#fafcf8}.pokal-cup-link.is-active{border-color:#497453;background:#eaf3e3}.pokal-cup-link strong,.pokal-cup-link small{display:block}.pokal-cup-link strong{font-size:13px}.pokal-cup-link small{color:#819083;font-size:11px;margin-top:5px}.pokal-details{margin-top:18px;border-top:1px solid #e2e9df;padding-top:18px}.pokal-details summary{cursor:pointer;color:#326c46;font-weight:850;font-size:13px}.pokal-form{display:flex;flex-direction:column;gap:12px;padding:15px 0}.pokal-form .btn{margin-top:6px;align-self:flex-start}.pokal-form .field{margin:0}.pokal-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.pokal-columns .pokal-wide{grid-column:1 / -1}.pokal-columns>.btn{align-self:end}.pokal-chip{background:#f4ecdc;color:#9b773e;padding:8px 10px;border-radius:10px;font-size:10px;font-weight:900}.pokal-chip-live{background:#e2f1d8;color:#477e34}.pokal-checkbox{display:flex;gap:9px;align-items:center;font-size:12px;color:#3a5a40;font-weight:800}.pokal-checkbox input{accent-color:#346a45;width:16px;height:16px}.pokal-round-box{margin:17px 0 26px;border:1px solid #e1e7db;border-radius:12px;overflow:hidden}.pokal-round-heading{display:flex;gap:10px;align-items:center;background:#eef3e9;padding:16px}.pokal-round-heading>span{font-size:15px;font-weight:900;color:#6c9360}.pokal-round-heading h3{font-size:17px;margin:0;flex:1}.pokal-round-heading small{font-size:11px;color:#789178}.pokal-subdetails{background:#f9fbf6;padding:12px 16px;border-bottom:1px solid #e1e8de}.pokal-subdetails summary{font-size:11px;font-weight:850;color:#6c8870;cursor:pointer}.pokal-mini-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:13px 0}.pokal-mini-form .field{flex:1;min-width:175px}.pokal-mini-form .btn{margin:0}.pokal-match-edit{border-bottom:1px solid #e6eee2}.pokal-match-edit>summary{cursor:pointer;display:flex;align-items:center;gap:15px;justify-content:space-between;padding:14px 15px;list-style:none}.pokal-match-edit>summary::-webkit-details-marker{display:none}.pokal-match-edit[open]{background:#fcfdfb}.pokal-fixture-names{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;font-size:12px}.pokal-fixture-names em{font-size:10px;color:#91a08f;font-weight:400}.pokal-result-small{font-size:12px;font-weight:900;color:#3c7250;white-space:nowrap}.pokal-edit-mark{font-size:11px;color:#879f84}.pokal-match-form{padding:18px;background:#f7faf4;margin:0}.pokal-match-form .field select{border:1px solid #dbe5d9;border-radius:7px;padding:12px 13px;background:white;color:#24392d;font-size:13px;width:100%}.pokal-match-edit>form:last-child{padding:0 18px 18px}.pokal-add-game{padding:16px;margin:0;border:0}.pokal-danger{margin-top:20px;padding-top:15px;border-top:1px solid #eef0e9}.pokal-danger summary,.pokal-delete{font-size:11px;color:#aa5448;cursor:pointer}.pokal-danger p,.pokal-muted{font-size:12px;line-height:1.6;color:#829284}.pokal-delete{background:none;border:0;padding:10px 0;font-weight:800}.pokal-info{background:#e8f1e2;padding:18px 22px;border-radius:11px;color:#426147}.pokal-info strong{font-size:13px}.pokal-info p{font-size:12px;line-height:1.65}.pokal-count{font-size:11px;color:#8da088}
@media(max-width:1020px){.pokal-layout{grid-template-columns:1fr}.pokal-side .pokal-box{position:static}}@media(max-width:640px){.pokal-columns{grid-template-columns:1fr}.pokal-columns .pokal-wide{grid-column:1}.pokal-box{padding:17px}.cup-hero{padding:55px 0}.cup-hero-icon{display:none}.cup-section{padding-top:30px}.cup-title-row{display:block}.cup-title-row .cup-public-tag{margin-top:12px}.pokal-match-edit>summary{flex-wrap:wrap;gap:7px}.pokal-edit-mark{display:none}}

/* Pokal v1.2: verknüpfte Spielrunden und automatische Weiterführung */
.pokal-auto-link{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;background:#f0f7e9;border-bottom:1px solid #dbe8d4;flex-wrap:wrap}
.pokal-auto-link strong{display:flex;align-items:center;gap:6px;color:#31553c;font-size:12px}
.pokal-auto-link p{max-width:580px;color:#6b826b;font-size:11px;line-height:1.5;margin:7px 0 0}
.pokal-auto-link .btn{font-size:11px;white-space:normal;text-align:center}
.pokal-match-form input[readonly]{background:#eaf4e5;border-color:#c9dfbe;color:#416e42;font-weight:700;cursor:not-allowed}
.pokal-field-note{display:block;color:#7a8f79;line-height:1.5;margin-top:5px;font-size:11px}
@media(max-width:640px){.pokal-auto-link{align-items:stretch;flex-direction:column}.pokal-auto-link form,.pokal-auto-link .btn{width:100%}}

/* v1.3.0: eindeutige Auswahl nach Runde und Spiel */
.pokal-pick{border:1px solid #dae8d4;border-radius:12px;padding:16px;background:#f8fbf6;margin:14px 0 22px}
.pokal-pick>strong,.pokal-game-tabs>strong{display:block;color:#34583e;font-size:13px;margin-bottom:11px}
.pokal-round-tabs{display:flex;gap:8px;flex-wrap:wrap}
.pokal-choice{display:flex;flex-direction:column;min-width:116px;max-width:200px;gap:4px;padding:12px 14px;background:white;border:1px solid #d6e2d1;border-radius:9px;color:#34563d;text-decoration:none}
.pokal-choice span{font-weight:850;font-size:13px}.pokal-choice small{color:#7b8c7c;font-size:11px;overflow-wrap:anywhere}
.pokal-choice.active,.pokal-game-tab.active{background:#204c31;border-color:#204c31;color:white}
.pokal-choice.active small,.pokal-game-tab.active small{color:#d6eed3}
.pokal-game-tabs{display:flex;gap:7px;flex-wrap:wrap;padding:14px 15px;border-bottom:1px solid #dfe8db;background:#f5f9f1;align-items:center}
.pokal-game-tabs>strong{width:100%;margin-bottom:3px}
.pokal-game-tab{display:inline-flex;gap:7px;align-items:center;border:1px solid #d8e6d2;background:white;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:800;color:#34583e;text-decoration:none}
.pokal-game-tab small{font-size:10px;font-weight:650;color:#81977d}
.pokal-match-number{border-radius:5px;background:#e4efe1;color:#33603b;padding:5px 7px;font-size:11px;font-weight:900;white-space:nowrap}
.pokal-match-edit[open]>.pokal-match-form{border-top:1px solid #dfe9d9}
.cup-round-nav{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:-7px 0 25px}
.cup-round-nav strong{font-size:12px;color:#607861;margin-right:6px}
.cup-round-nav a{border:1px solid #d4e0d0;background:white;color:#35583f;text-decoration:none;padding:8px 11px;border-radius:8px;font-size:11px;font-weight:800}
.cup-round-nav a:hover,.cup-round-nav a:focus-visible{background:#e1f0d8}
.cup-round{scroll-margin:18px}.cup-match-top{align-items:center;flex-wrap:wrap}
.cup-match-top strong{font-weight:900;color:#4b7652;background:#eaf2e4;padding:3px 6px;border-radius:5px;white-space:nowrap}
@media(max-width:640px){.pokal-choice{flex:1;min-width:105px}.pokal-game-tab{flex:1;justify-content:center}.pokal-match-number{width:100%;max-width:max-content}}

/* Kreispokal v1.4: Mannschaften (max. 20), kompletter K.-o.-Baum */
.pokal-roster{border:1px solid #c9dfca}
.pokal-roster .pokal-team-textarea{min-height:150px;line-height:1.65;font-family:inherit}
.pokal-roster .pokal-generate{padding:16px 0 0;border-top:1px solid #e4ede2;margin-top:12px;display:flex;flex-direction:column;gap:9px;align-items:flex-start}
.pokal-roster .pokal-generate small{color:#738a73;font-size:11px;line-height:1.5}
.pokal-roster .pokal-team-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:16px 0}
.pokal-roster .pokal-team-list span{padding:9px 10px;border:1px solid #dae8d7;background:#f8fcf6;border-radius:7px;font-size:12px;overflow-wrap:anywhere}
.pokal-roster .pokal-team-list small{font-weight:850;color:#638c62;padding-right:6px}
.pokal-auto-ready{background:#e6f4e2;border:1px solid #c4dfc0;border-radius:8px;padding:13px 15px;color:#285e30;font-weight:700;font-size:12px;line-height:1.5}


/* v1.5: zentrales Vereinsverzeichnis und Mannschaften per Dropdown */
.pokal-club-directory .panel-title{margin-bottom:8px}
.pokal-club-add{display:flex;gap:8px;flex-direction:column;align-items:stretch}
.pokal-club-add .btn{align-self:flex-start}
.pokal-club-edit{margin-top:16px}
.pokal-club-entry{padding:10px 0;border-top:1px solid #e3ebe0}
.pokal-club-rename{display:flex;align-items:center;gap:6px}
.pokal-club-rename input{min-width:0;flex:1;border:1px solid #dbe5d9;border-radius:7px;padding:10px;background:#fff}
.pokal-club-rename .btn{font-size:11px;flex-shrink:0}
.pokal-club-entry .pokal-delete{padding:4px 0}
.pokal-club-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:13px 0}
.pokal-roster-row{display:grid;grid-template-columns:22px minmax(0,1fr) 94px;gap:8px;align-items:end;background:#f8fbf7;border:1px solid #e1ebde;padding:9px;border-radius:9px;min-width:0}
.pokal-roster-nr{font-weight:900;color:#4f7457;font-size:12px;align-self:center}
.pokal-roster-row .field{min-width:0}
.pokal-roster-row .field span{font-size:10px}
.pokal-roster-row input,.pokal-roster-row select{width:100%;min-width:0;border:1px solid #d8e4d4;border-radius:7px;padding:10px 7px;background:#fff;font-size:12px;color:#203b2a}
@media(max-width:1250px){.pokal-club-roster{grid-template-columns:1fr}}
@media(max-width:460px){.pokal-roster-row{grid-template-columns:22px minmax(0,1fr);gap:5px}.pokal-roster-row .field:last-child{grid-column:2;max-width:175px}}

/* v1.6: eindeutige Vereinsauswahl und bewusst zugewiesene Freilose */
.pokal-roster-row{grid-template-columns:22px minmax(0,1fr) minmax(98px,114px)}
.pokal-bye-choice{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #ccdfcb;border-radius:8px;min-height:41px;padding:8px 9px;background:#eef6e8;color:#275535;font-size:12px;font-weight:800;cursor:pointer;user-select:none}
.pokal-bye-choice input{height:17px;width:17px;min-width:17px;accent-color:#2d6a3b;margin:0}
.pokal-bye-choice:has(input:checked){background:#d8edc9;border-color:#80aa75}
.pokal-bye-choice:has(input:disabled){opacity:.45;cursor:not-allowed}
.pokal-bye-summary{border-radius:10px;padding:13px 15px;background:#f1f4ee;border:1px solid #d6e1d0;margin-bottom:14px;color:#3d5843}
.pokal-bye-summary strong{font-size:13px;display:block}
.pokal-bye-summary small{font-size:11px;color:#69806a;display:block;margin-top:5px;line-height:1.5}
.pokal-bye-summary-ready{background:#e8f5df;border-color:#add29e}
.pokal-bye-summary-warning{background:#fff4e3;border-color:#ebc98e;color:#805a18}
.pokal-bye-tag{display:inline-block;font-size:10px;border-radius:4px;background:#e1f1d8;color:#407a3d;padding:3px 5px;margin-left:5px;vertical-align:middle}
.pokal-generate button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:460px){.pokal-roster-row{grid-template-columns:20px minmax(0,1fr)}.pokal-roster-row .pokal-bye-choice{grid-column:2;justify-self:start;min-height:35px}}

/* v1.7.0 – zentrale Stammdaten: Vereine, Liga-Mannschaften und Spielorte */
.master-panel{scroll-margin-top:30px}.master-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.master-nav a{border-radius:8px;background:#e7f0e2;color:#26523a;padding:11px 16px;font-size:12px;font-weight:800}.master-panel .panel-title{margin-bottom:9px}.master-add-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:15px;border-radius:10px;background:#f5f9f1;margin:20px 0}.master-add-form .field{flex:1 1 210px}.master-add-form .btn{margin:0}.master-panel .field select{width:100%;min-height:43px;padding:11px;background:#fff;border:1px solid #dbe5d9;border-radius:7px;color:#24392d;font:inherit;font-size:13px}.master-row{padding:12px 0;display:flex;align-items:end;gap:14px;border-bottom:1px solid #edf1ec}.master-row .pokal-delete{white-space:nowrap;padding:10px}.master-inline-form{display:flex;align-items:end;gap:10px;flex:1;min-width:0}.master-inline-form .field{flex:1}.master-inline-form .btn{margin:0;min-height:41px}.master-team-edit .field:nth-of-type(2){flex:0 0 120px}.master-place-edit .field:nth-of-type(2){flex:1}.master-empty{font-size:13px;color:#738675;padding:12px 0}.master-preview{padding:18px;margin-top:22px;background:#f0f7eb;border:1px solid #dbe7d4;border-radius:10px;max-width:650px}.master-preview small{display:block;font-size:11px;line-height:1.6;color:#648068;margin-top:9px}.master-add-form button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:850px){.master-row{flex-direction:column;align-items:stretch}.master-row>form:last-child{align-self:flex-end}.master-inline-form{flex-wrap:wrap}.master-inline-form .field{flex:1 1 165px}.master-add-form{align-items:stretch}.master-add-form .btn{width:100%}}
