:root{--ink:#17233a;--muted:#64748b;--blue:#2456db;--line:#e1e7ef;--bg:#f3f6fa;--orange:#faad56}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}.topbar{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);font-weight:850;letter-spacing:1.8px;line-height:1.2}.brand small{display:block;font-size:11px;letter-spacing:4px;margin-top:6px}.brand-mark{display:grid;place-content:center;background:var(--ink);color:white;border-radius:12px;width:49px;height:49px;font-size:22px;position:relative;letter-spacing:-2px}.brand-mark span{position:absolute;color:var(--orange);font-size:12px;right:4px;bottom:3px}.top-actions{display:flex;align-items:center;gap:22px;font-size:13px}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);max-width:1720px;margin:auto}.sidebar{padding:34px 22px;min-height:calc(100vh - 88px);border-right:1px solid var(--line);display:flex;flex-direction:column}.nav-label,.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted)}.nav-label{padding:0 12px 20px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:11px 14px;border-radius:8px;color:#536078;font-weight:600}.sidebar nav a.active{background:#e4ebff;color:#214fce}.sidebar nav a:hover{background:#e9eef7;text-decoration:none}.sidebar-bottom{margin-top:auto;padding:45px 12px 0;font-weight:650;font-size:13px}.sidebar-bottom small{color:var(--muted);font-weight:400}.sidebar-bottom hr{border:0;border-top:1px solid var(--line);margin:20px 0}.sidebar-bottom button{margin-top:12px}main{min-width:0;padding:35px 40px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}h1{font-size:clamp(25px,3vw,36px);line-height:1.2;letter-spacing:-1.2px;margin:9px 0 0}h2{font-size:21px;letter-spacing:-.5px;margin:0 0 16px}h3{font-size:16px;margin:22px 0 12px}p{margin:10px 0 18px}.muted,small{color:var(--muted)}small{display:block}.card,.empty{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;margin-bottom:24px;box-shadow:0 4px 16px #17233a03}.narrow{max-width:760px}.dark{background:var(--ink);color:white;border-color:var(--ink)}.dark .eyebrow,.dark small,.dark .muted{color:#b2c0d9}.dark h2{font-size:30px}.dark .button{background:white;color:var(--ink)}.grid-two,.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.overview-grid{grid-template-columns:1.6fr 1fr}.stats{display:flex;gap:18px;margin:0 0 24px}.stats>div{flex:1;background:white;border:1px solid var(--line);border-radius:12px;padding:20px}.stats strong{display:block;font-size:30px;letter-spacing:-1px}.stats.vertical{flex-direction:column;gap:12px}.stats.vertical>div{padding:13px 20px}.stats.vertical strong{font-size:25px}.section-head,.day-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.section-head h2,.day-heading h2{margin:0}.pill{display:inline-block;padding:4px 10px;background:#eaf0ff;color:#3558a8;border-radius:99px;font-size:11px;font-weight:750;white-space:nowrap}.pill.test{background:#fff0da;color:#8a5318}.button,button{display:inline-block;border:1px solid transparent;border-radius:7px;padding:10px 16px;font-weight:650;font-size:13px;background:var(--blue);color:white}.button:hover,button:hover{filter:brightness(.94);text-decoration:none}.quiet{background:#f4f6fa;color:var(--ink);border-color:var(--line)}.small{font-size:11px;padding:6px 10px}.text-link{display:block}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}label{display:block;font-size:13px;font-weight:650;margin-bottom:18px}input,select,textarea{display:block;width:100%;background:#fff;border:1px solid #cdd6e3;border-radius:7px;padding:10px 11px;margin-top:7px;color:var(--ink);font-weight:400}textarea{resize:vertical;min-height:100px}.check{display:flex;align-items:center;gap:9px}.check input{width:17px;height:17px;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;background:#f6f8fc;color:#637089;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.6px}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}.points{font-size:17px;font-weight:800;color:var(--blue)}.rank{font-weight:700}.fixture,.list-row,.document-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.list-row:last-child,.document-row:last-child,.fixture:last-child{border-bottom:0}.list-row>div:first-child,.document-row>div{min-width:0}.document-row strong,.document-row small{overflow-wrap:anywhere}.document-row .button{flex-shrink:0}.lane{display:inline-block;color:var(--muted);font-size:12px;min-width:68px}.versus{font-size:11px;color:var(--muted);margin:0 15px}.alert,.success,.notice{border-radius:9px;padding:15px 18px;margin-bottom:22px;font-size:13px;background:#edf2ff;color:#345287}.alert{background:#fff0ef;color:#a42c2c}.success{background:#e9f6ee;color:#21683a}.notice{border-left:3px solid #7999e2}.prose{white-space:pre-wrap}.season-links{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.steps li{padding:8px 0}.games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.game-panel{padding:15px;background:#f7f9fc;border:1px solid var(--line);border-radius:9px}.game-panel h3{margin-top:0}.score-row{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:9px}.score-row label{font-size:11px}.score-row select,.score-row input{padding:9px 6px}.match-score{display:flex;justify-content:center;text-align:center;gap:70px;margin:15px 0 25px}.match-score strong{display:block;font-size:38px;color:var(--blue)}summary{cursor:pointer;padding:14px 0;font-weight:650}details[open]>summary{margin-bottom:15px}.audit pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;max-height:400px;overflow:auto}.site-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:25px 0;font-size:11px;color:var(--muted);margin-top:40px}.space-top{margin-top:24px}.print-controls{display:flex;justify-content:space-between;align-items:center}.paper{background:white;border:1px solid #ddd;padding:25px;margin:25px auto;max-width:1000px}.paper-header{display:flex;justify-content:space-between;align-items:center}.paper-header h2{margin:5px 0}.paper-header p{margin:0}.paper-table{table-layout:fixed;margin:12px 0}.paper-table th,.paper-table td{border:1px solid #88909b;padding:5px;font-size:10px;color:#111;letter-spacing:0;text-transform:none;overflow-wrap:break-word}.col-pos{width:4%}.col-name{width:24%}.col-pins{width:6%}.col-hcp{width:5%}.col-points{width:14%}.write-row{height:34px}.paper-note{font-size:10px}.roster th:nth-child(1){width:35%}.roster th:nth-child(2){width:40%}.roster th:nth-child(3){width:10%}.roster th:nth-child(4){width:15%}.signatures{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:10px;margin:20px 0}.paper footer{font-size:9px}.paper h3{margin:12px 0}.paper .eyebrow{font-size:9px}[hidden]{display:none!important}@media(max-width:1100px){main{padding:28px 24px}.shell{grid-template-columns:200px 1fr}.sidebar{padding:30px 12px}.games-grid{grid-template-columns:1fr}.overview-grid{grid-template-columns:1fr}.stats.vertical{flex-direction:row}}@media(max-width:760px){.topbar{height:76px;padding:0 18px}.brand{font-size:12px}.brand-mark{width:40px;height:40px}.top-actions{gap:12px}.shell{display:block}.sidebar{min-height:0;padding:10px;border:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;overflow:auto;gap:4px}.sidebar nav a{white-space:nowrap;font-size:12px;padding:9px 12px}.sidebar-bottom,.nav-label{display:none}main{padding:24px 16px}.page-head{align-items:flex-start}.page-head .button{font-size:11px;padding:8px}.grid-two,.form-grid{grid-template-columns:1fr}.stats{flex-wrap:wrap;gap:10px}.stats>div{min-width:100px;padding:14px}.card{padding:19px}.fixture{flex-wrap:wrap;gap:8px}.document-row{align-items:flex-start}.document-row .button{padding:8px;font-size:11px}.site-footer{gap:15px}.list-row{flex-wrap:wrap}.match-score{gap:30px}.print-controls{display:block}.paper{overflow:auto}.paper-table{min-width:630px}}@page{size:A4 portrait;margin:10mm}@media print{body{background:white;color:black;font-size:10px}.topbar,.sidebar,.page-head,.site-footer,.print-controls,.alert,.success,main>.notice{display:none!important}.shell{display:block}main{padding:0}.paper{border:0;padding:0;margin:0;max-width:none;break-after:page;overflow:visible}.paper:last-child{break-after:auto}.paper-table{min-width:0;margin:3mm 0}.paper-table th,.paper-table td{font-size:9px;padding:1mm}.paper-table th{background:#eee}.write-row{height:8mm}.paper-header h2{font-size:18px}.paper h3{font-size:13px}.paper-note{font-size:9px;margin:2mm 0}.signatures{margin:5mm 0;gap:5mm}.roster td{font-size:9px}.paper tr{break-inside:avoid}thead{display:table-header-group}.paper-header,.paper h3{break-after:avoid}a{color:black}}
.steps>a{display:flex;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);color:var(--ink)}.steps>a:last-child{border-bottom:0}.steps>a>span{font-size:18px;color:var(--blue);font-weight:800}.steps small{margin-top:3px}fieldset{border:0;padding:0;margin:0;min-width:0}
.paper-table tr:last-child td{border-bottom:1px solid #88909b}
/* Spielzettel: eine Zeile pro Spieler, drei Spiele nebeneinander. */
.match-paper{max-width:1250px}.match-paper-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}.match-paper-head h2{margin:4px 0;font-size:21px}.match-paper-head>div:last-child{text-align:right;font-size:12px}.team-sheets{display:flex;gap:18px}.team-sheet{flex:1;min-width:0}.team-sheet h3{font-size:20px;margin:4px 0 10px;border-bottom:3px solid #263650;padding-bottom:6px}.score-sheet{table-layout:fixed;width:100%;border-collapse:collapse}.score-sheet .sheet-name{width:24%}.score-sheet .sheet-hcp{width:8%}.score-sheet .sheet-total{width:16%}.score-sheet th{font-size:10px;text-align:center;letter-spacing:0;text-transform:none;color:#182335;background:#edf0f4}.score-sheet th,.score-sheet td{border:1px solid #647080;padding:4px}.score-sheet tr:last-child td{border-bottom:1px solid #647080}.player-sheet-row{height:78px}.sheet-player strong{font-size:12px;display:block;overflow-wrap:anywhere}.sheet-player small{font-size:9px;margin-top:6px}.hcp-value{text-align:center;font-size:14px;font-weight:700}.blank-player{font-size:10px;color:#68717e}.entry-top{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#4d5868;white-space:nowrap}.entry-top>span:last-child{display:flex;align-items:center;gap:3px}.position-box{display:inline-block;width:14px;height:13px;border:1px solid #647080}.pin-space{height:30px}.point-fields{display:flex;align-items:center;justify-content:center;gap:3px}.point-fields b{font-size:10px;font-weight:400}.point-box{display:block;width:20px;height:16px;border:1px solid #647080;background:#fff}.total-field{display:flex;align-items:center;justify-content:space-between;gap:2px;font-size:8px;white-space:nowrap}.total-field i{display:block;min-width:16px;width:24px;height:16px;border:1px solid #647080}.sum-space{height:25px}.team-totals th{font-size:12px;text-align:left}.team-totals small{font-size:9px;font-weight:400}.point-totals{height:32px}.point-totals th{text-align:left;font-size:12px}.final-points{background:#edf0f4}.sheet-legend{font-size:10px;color:#28323f;margin-top:10px}.sheet-signatures{display:flex;justify-content:space-between;gap:20px;font-size:10px;margin:15px 0}.sheet-foot{border-top:1px solid #abb3bd;padding-top:6px;font-size:9px}.continuation{font-size:10px;margin:0 0 6px}
@media screen and (max-width:1000px){.team-sheets{display:block}.team-sheet{margin-bottom:20px}.score-sheet{min-width:480px}.match-paper{overflow:auto}}
@media print{.match-paper,.handicap-paper{page:league-landscape}.match-paper-head{margin-bottom:2mm}.match-paper-head h2{font-size:15px}.match-paper-head>div:last-child{font-size:10px}.team-sheets{display:flex;gap:5mm}.team-sheet h3{font-size:16px;padding-bottom:1.5mm;margin:0 0 2mm}.score-sheet{min-width:0}.score-sheet th,.score-sheet td{padding:1mm}.score-sheet th{font-size:9px}.player-sheet-row{height:18mm}.sheet-player strong{font-size:10px}.sheet-player small{font-size:8px;margin-top:1mm}.hcp-value{font-size:12px}.entry-top{font-size:7px}.position-box{width:3.5mm;height:3mm}.pin-space{height:8mm}.point-box{width:5mm;height:4mm}.total-field{font-size:7px}.total-field i{width:5mm;height:4mm;min-width:4mm}.sum-space{height:5mm}.team-totals th,.point-totals th{font-size:10px}.point-totals{height:7mm}.sheet-legend{font-size:8px;margin-top:2mm;line-height:1.4}.sheet-signatures{font-size:9px;margin:3mm 0}.sheet-foot{font-size:8px;padding-top:1mm}.continuation{font-size:8px}.match-paper .score-sheet tr{break-inside:avoid}.match-paper .team-sheet{break-inside:avoid}.handicap-paper .roster th,.handicap-paper .roster td{font-size:10px}.match-paper{overflow:visible}}
@page league-landscape{size:A4 landscape;margin:9mm}
/* Fünf Spielerzeilen, weitere Kaderspieler als kompakte HCP-Liste. */
.extra-players{font-size:11px;line-height:1.6;margin-top:9px;overflow-wrap:anywhere;color:#273444}.sheet-signatures>div{flex:1;min-width:0}.signature-space{height:38px;border-bottom:1px solid #647080;margin-right:30px}.sheet-signatures{gap:40px;margin:18px 0 5px}
@media print{.match-paper .player-sheet-row{height:19mm}.extra-players{font-size:9px;line-height:1.5;margin-top:2mm}.sheet-signatures{gap:10mm;margin:4mm 0 0}.signature-space{height:10mm;margin-right:8mm}.match-paper .pin-space{height:9mm}.match-paper .team-sheet{break-inside:auto}}
/* Einheitliche Spalten für offene und erfasste Begegnungen. */
.fixture{display:grid;grid-template-columns:100px minmax(0,1fr) 32px minmax(0,1fr) 80px;gap:18px;align-items:center}.fixture>strong{min-width:0;overflow-wrap:anywhere}.fixture>strong:nth-child(2){text-align:right}.fixture>strong:nth-child(4){text-align:left}.fixture .versus{text-align:center;margin:0}.fixture>.pill{justify-self:end}.fixture .lane{min-width:0}summary.fixture{list-style:none}summary.fixture::-webkit-details-marker{display:none}.calendar-action{margin:0 0 24px}.calendar-action small{margin-top:9px}.score-row{grid-template-columns:minmax(0,1fr) 92px}.match-paper .point-box{width:26px;height:23px}.match-paper .total-field i{width:29px;height:23px}.match-paper .pin-space{height:38px}
@media(max-width:760px){.fixture{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:10px}.fixture>.lane{grid-column:1/3;grid-row:1}.fixture>.pill{grid-column:3;grid-row:1}.fixture>strong:nth-child(2){grid-column:1;grid-row:2}.fixture>.versus{grid-column:2;grid-row:2}.fixture>strong:nth-child(4){grid-column:3;grid-row:2}.fixture>strong{font-size:13px}}
@media print{.match-paper .point-box{width:6.5mm;height:5.5mm}.match-paper .total-field i{width:6.5mm;height:5.5mm}.match-paper .pin-space{height:10mm}}
@media print{.paper,.paper *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.score-sheet th,.score-sheet .final-points{background-color:#edf0f4!important}.team-sheet h3{border-bottom-color:#263650!important}}
