:root{--color-bg:#f7f7f8;--color-surface:#fff;--color-border:#dcdde1;--color-text:#1c1c1e;--color-muted:#6b6b70;--color-accent:#2e7d32;--color-accent-contrast:#fff;--radius:8px}*{box-sizing:border-box}html{overflow-anchor:none}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{max-width:none;margin:0;padding:1.5rem 2rem 4rem}h1,h2,h3{line-height:1.2}a{color:var(--color-accent)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.5rem .75rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.25rem;padding:1.25rem}.card>h2{background:var(--color-surface);z-index:3;margin:-1.25rem -1.25rem 1rem;padding:1.25rem 1.25rem .75rem;position:sticky;top:0}.sortable-table thead th,.standings-table thead th,.editable-table thead th{top:var(--table-sticky-top,0px);background:var(--color-surface);z-index:2;box-shadow:0 1px 0 var(--color-border);position:sticky}:is(.card:has(>h2) .sortable-table thead th,.card:has(>h2) .standings-table thead th,.card:has(>h2) .editable-table thead th){--table-sticky-top:3.5rem}.table-scroll.table-scroll-x thead th,.standings-list .standings-card .standings-table thead th{position:static}.field{flex-direction:column;gap:.25rem;margin-bottom:1rem;display:flex}.field label{font-size:.9rem;font-weight:600}.field.checkbox{flex-direction:row;align-items:center;gap:.5rem}.field.checkbox label{font-weight:400}.card.danger{border-color:#c62828}.btn-danger{color:#fff;background:#c62828;border-color:#c62828}.status-dropdown{display:inline-block}.status-pill{border:1px solid var(--color-border);background:var(--color-surface);min-width:9.5rem;color:var(--color-text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.3rem .9rem;font-size:.8rem;font-weight:600;line-height:1.3;display:inline-flex}button.status-pill{cursor:pointer}.status-pill-none{background:var(--color-surface);color:var(--color-muted)}.status-pill-angefragt{color:#1b5e20;background:#a5d6a7;border-color:#a5d6a7}.status-pill-zugesagt{color:#fff;background:#1b5e20;border-color:#1b5e20}.status-pill-abgesagt{color:#6b1414;background:#f4a9a8;border-color:#f4a9a8}.status-pill-nicht_erschienen{color:#fff;background:#6b1414;border-color:#6b1414}.status-dropdown-panel{z-index:1000;border:1px solid var(--color-border);border-radius:var(--radius);background:#ffffffeb;padding:.4rem;position:fixed;box-shadow:0 8px 24px #0000002e}.status-dropdown-panel form{flex-direction:column;gap:.3rem;display:flex}.status-dropdown-option{border-radius:calc(var(--radius) - 2px);cursor:pointer;background:0 0;border:none;padding:.25rem;display:flex}.status-dropdown-option:hover{background:var(--color-border)}.modal-backdrop{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius);max-width:95vw;max-height:85vh;padding:1.25rem;overflow:auto}.modal-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.modal-close{cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.1rem;line-height:1}.modal-table-wrap{overflow-x:auto}.modal-table-wrap th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}input,select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:.5rem .6rem;font-size:1rem}.grid-2{grid-template-columns:1fr 1fr;gap:0 1.5rem;display:grid}.form-narrow{flex-direction:column;max-width:22rem;display:flex}.field-row{align-items:flex-end;gap:1rem;display:flex}.field-row .field{flex:auto}.field-row .field.checkbox{flex:none;margin-bottom:1rem}button,.btn{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:.55rem 1rem;font-size:1rem;text-decoration:none;display:inline-block}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.muted{color:var(--color-muted);font-size:.9rem}nav.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;row-gap:.5rem;padding:1rem;display:flex}nav.topbar a{color:var(--color-text);font-weight:600;text-decoration:none}nav.topbar a.brand{align-items:center;display:flex}nav.topbar a.brand img{width:auto;height:2.75rem;display:block}.nav-links{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;display:flex}.nav-links a{color:var(--color-muted);border-bottom:2px solid #0000;padding:.35rem 0;font-weight:500}.nav-links a.active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:700}.toolbar{margin:1rem 0 1.5rem}.status-badge{background:var(--color-border);border-radius:999px;padding:.15rem .55rem;font-size:.8rem;display:inline-block}.invite-form{margin-top:.3rem}.invite-button{white-space:nowrap;padding:.25rem .6rem;font-size:.75rem}.invite-note{color:var(--color-muted);white-space:nowrap;margin-top:.2rem;font-size:.72rem}.topbar-actions{align-items:center;gap:.5rem;display:flex}.topbar-icon{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:2.15rem;height:2.15rem;color:var(--color-text);justify-content:center;align-items:center;padding:0;line-height:1;text-decoration:none;display:inline-flex}.topbar-icon svg{width:1.15rem;height:1.15rem}.topbar-icon:hover{background:var(--color-border)}tr.own-player>td{background:#fdeaea}.own-name{color:#c62828;background:#fdeaea;font-weight:600}.narrow-table{width:auto}.narrow-table th,.narrow-table td{white-space:nowrap;padding-right:1.75rem}.inline-actions{align-items:center;gap:.4rem;display:flex}.status-with-tendency{align-items:center;gap:.25rem;display:inline-flex}.tendency-btn{cursor:pointer;opacity:.35;background:0 0;border:1px solid #0000;border-radius:6px;padding:.05rem .15rem;font-size:.95rem;line-height:1}.tendency-btn:hover{opacity:.8}.tendency-btn.tendency-active{opacity:1;border-color:var(--color-border);background:var(--color-surface)}.role-badge{background:var(--color-border);color:var(--color-muted);border-radius:999px;align-self:center;padding:.15rem .55rem;font-size:.8rem;display:inline-block}.tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:.25rem;margin:1rem 0 1.5rem;display:flex}.tab-button{white-space:nowrap;border-radius:var(--radius) var(--radius) 0 0;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:.6rem 1rem;font-size:1rem;font-weight:600}.tab-button.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.sortable-table{overflow-x:auto}.sortable-table th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;vertical-align:bottom}.sortable-table th.vertical{text-align:center;min-width:2rem}.sortable-table th.vertical .vertical-label{writing-mode:vertical-rl;white-space:nowrap;font-weight:700;font-size:inherit;line-height:1;display:inline-block;transform:rotate(180deg)}.sortable-table td.numeric{text-align:center;min-width:2.5rem}.sort-arrow{visibility:hidden;margin-inline-start:.25em}.sort-arrow.visible{visibility:visible}.group-board{flex-wrap:wrap;gap:1rem;display:flex}.group-box{border:1px dashed var(--color-border);border-radius:var(--radius);flex:200px;min-width:200px;min-height:4rem;padding:.75rem}.group-box h3{margin-top:0;margin-bottom:.5rem;font-size:1rem}.group-box-list,.player-pool{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.group-box-list li,.player-pool li{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);cursor:grab;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.group-box-list li.selected-for-assign,.player-pool li.selected-for-assign{background:#cfe8fc;border-color:#7cb8e8}.sortable-table tbody tr[role=button]{cursor:pointer}.sortable-table tbody tr.doubles-selected{background:#d4edda}.doubles-pairing-invalid{border:2px solid #c62828}.bracket-seeding-select{position:relative}.bracket-seeding-trigger{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .6rem;font-size:1rem;display:flex}.bracket-seeding-caret{color:var(--color-muted)}.bracket-seeding-panel{z-index:50;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);gap:1rem;min-width:max-content;padding:.6rem;display:flex;position:absolute;top:calc(100% + .25rem);left:0;box-shadow:0 8px 24px #0000002e}.bracket-seeding-options{flex-direction:column;gap:.2rem;max-width:20rem;margin:0;padding:0;list-style:none;display:flex}.bracket-seeding-option{text-align:left;border-radius:calc(var(--radius) - 2px);width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:.4rem .5rem;font-size:.9rem;display:block}.bracket-seeding-option:hover,.bracket-seeding-option:focus-visible{background:var(--color-bg)}.bracket-seeding-option.active{background:var(--color-accent);color:var(--color-accent-contrast)}.bracket-seeding-preview{border-left:1px solid var(--color-border);justify-content:center;align-items:flex-end;min-width:10rem;height:180px;padding-left:1rem;display:flex}.bracket-seeding-preview .muted{max-width:9rem;font-size:.85rem}.bracket-seeding-diagram .diagram-box{fill:var(--color-surface);stroke:var(--color-border)}.bracket-seeding-diagram .diagram-label{fill:var(--color-text);font-size:.8rem}.bracket-seeding-diagram .diagram-curve{fill:none;stroke:var(--color-accent);stroke-width:1.5px}.bracket-seeding-diagram .diagram-arrow{fill:var(--color-accent)}.bracket-seeding-hover-wrap{display:inline-block;position:relative}.bracket-seeding-hover-preview{z-index:50;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.25rem;padding:.5rem;display:none;position:absolute;bottom:100%;left:0;box-shadow:0 8px 24px #0000002e}.bracket-seeding-hover-wrap:hover .bracket-seeding-hover-preview,.bracket-seeding-hover-wrap:focus-within .bracket-seeding-hover-preview{display:block}.player-pool{flex-flow:wrap;min-height:3rem}.player-pool li{flex:none}.trash-btn{cursor:pointer;background:0 0;border:none;padding:.15rem .4rem;line-height:1}.icon-actions{white-space:nowrap;justify-content:flex-end;gap:.25rem;display:flex}.icon-btn{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;font-size:1.1rem;line-height:1;display:inline-flex}.editable-table{table-layout:fixed;width:100%}.editable-table th:last-child,.editable-table td:last-child{text-align:right}.editable-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editable-table input[type=text],.editable-table input[type=email]{box-sizing:border-box;width:100%}.sortable-table .status-col{min-width:9.5rem}.group-summary-grid{grid-template-columns:repeat(4,1fr);gap:0 1.5rem;display:grid}@media (width<=900px){.group-summary-grid{grid-template-columns:repeat(2,1fr)}}.group-summary-heading{margin-bottom:.15rem}.group-summary-list{margin-top:0;margin-bottom:.75rem;padding-left:1.5rem}.status-text-angefragt{color:#4caf50;font-weight:600}.status-text-zugesagt{color:#1b5e20;font-weight:600}.status-text-abgesagt{color:#c66;font-weight:600}.status-text-nicht_erschienen{color:#6b1414;font-weight:600}.bye-slot{opacity:.6;font-style:italic}.match-list{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.match-row{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.match-meta{color:var(--color-muted);min-width:8rem}.match-players{flex:auto;grid-template-columns:1fr auto 1fr;align-items:center;gap:.4rem;font-weight:600;display:grid}.match-name-a{text-align:right}.match-name-b{text-align:left}.match-sep{text-align:center}.score-input{text-align:center;-moz-appearance:textfield;width:2.25rem;padding:.2rem}.score-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.score-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.score-input.input-error{border-color:#c62828;outline-color:#c62828}.match-done{background:#e8f5e9}.standings-list{flex-flow:wrap;gap:1rem;display:flex}.standings-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex:none;width:28rem;max-width:100%;padding:.75rem;overflow-x:auto}.standings-card h3{margin-top:0;margin-bottom:.5rem;font-size:1rem}.standings-table{border-collapse:collapse;width:100%}.standings-table th,.standings-table td{text-align:center;padding:.35rem .6rem}.standings-table th:nth-child(2),.standings-table td:nth-child(2){text-align:left;min-width:7rem}.gesamttabelle-table{table-layout:fixed;width:max-content}.gesamttabelle-table th,.gesamttabelle-table td{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gesamttabelle-table th:nth-child(2),.gesamttabelle-table td:nth-child(2){min-width:0}.table-scroll.table-scroll-x{overflow-x:auto}.fixed-width-table{table-layout:fixed;width:max-content}.fixed-width-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vorrunde-spielplan-table{table-layout:fixed;width:max-content}.vorrunde-spielplan-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vorrunde-spielplan-table th,.vorrunde-spielplan-table td{padding:.35rem .4rem}.bracket-wrap{padding:.5rem 0 1rem;overflow-x:auto}.bracket-series-tally{grid-template-columns:max-content max-content;gap:.1rem .5rem;margin:0 0 .75rem;font-size:.95rem;display:grid}.bracket-series-tally>div{display:contents}.bracket{align-items:flex-start;gap:3rem;display:flex}.bracket-round{flex-direction:column;min-width:210px;display:flex}.bracket-round-title{text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin-bottom:.5rem;font-size:.72rem;font-weight:700}.bracket-round-body{position:relative}.bracket-pair{border-right:2px solid var(--color-border);width:0;position:absolute;right:-1.25rem}.bracket-match{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;flex-direction:column;justify-content:center;display:flex;position:absolute;left:0;right:0}.bracket-round:not(:last-child) .bracket-match:after{content:"";border-top:2px solid var(--color-border);width:1.25rem;position:absolute;top:50%;right:-1.25rem}.bracket-round:not(:first-child) .bracket-match:before{content:"";border-top:2px solid var(--color-border);width:1.25rem;position:absolute;top:50%;left:-1.25rem}.podium{flex-wrap:wrap;gap:1.25rem;display:flex}.podium-place{border:1px solid var(--color-border);border-radius:var(--radius);flex:none;width:22rem;max-width:100%;padding:1rem 1.25rem}.podium-rank{text-transform:uppercase;letter-spacing:.04em;color:var(--color-accent);margin-bottom:.25rem;font-size:.75rem;font-weight:700}.podium-name{margin-bottom:.75rem;font-size:1.2rem;font-weight:700}.podium-subheading{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);margin:1rem 0 .5rem;font-size:.85rem}.podium-stats-columns{grid-template-columns:1fr 1fr;gap:0 1.25rem;display:grid}.podium-stats-heading{margin-bottom:.4rem;font-size:.8rem;font-weight:600}.podium-stats-grid{grid-template-columns:1fr 1fr;gap:.6rem .75rem;display:grid}.podium-stat{flex-direction:column;justify-content:flex-end;display:flex}.podium-stat-label{color:var(--color-muted);font-size:.72rem}.podium-stat-value{font-size:1.05rem;font-weight:700}.podium-achievements{margin:0;padding-left:1.1rem}.current-matches-compact{flex-wrap:wrap;gap:.75rem;display:flex}.current-match-chip{border:1px solid var(--color-border);border-radius:var(--radius);min-width:9rem;padding:.4rem .7rem}.current-match-table{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.15rem;font-size:.7rem}.current-match-players{white-space:nowrap;font-weight:600}.current-match-edit-row{justify-content:space-between;align-items:center;gap:.5rem;margin-top:.3rem;font-weight:600;display:flex}.current-match-chip form{display:none}.bracket-match.editable .bracket-row{padding-right:2.4rem}.bracket-save-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:1.8rem;height:1.8rem;padding:0;font-size:.9rem;line-height:1;display:inline-flex;position:absolute;top:50%;right:.3rem;transform:translateY(-50%)}.bracket-table-label{text-align:left;color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:.15rem .6rem;font-size:.68rem}.bracket-row{justify-content:space-between;gap:.5rem;padding:.3rem .6rem;font-size:.85rem;display:flex}.bracket-row+.bracket-row{border-top:1px solid var(--color-border)}.bracket-row .score{font-variant-numeric:tabular-nums;text-align:right;min-width:1.3rem;font-weight:700}.bracket-row.bye-row{color:var(--color-muted);font-style:italic}
