*{box-sizing:border-box}body{margin:0;background:#f3f7f5;color:#102d2b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{height:64px;background:#0f4d43;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 2px 8px #0002}.topbar span{opacity:.75;margin-left:8px}.topbar button{border:0;border-radius:7px;padding:8px 12px;background:#fff;color:#0f4d43;font-weight:700}.hidden{display:none!important}#app{max-width:1500px;margin:28px auto;padding:0 20px}.auth-card{max-width:620px;margin:70px auto}.card{background:#fff;border-radius:14px;padding:24px;box-shadow:0 3px 16px #1231;border:1px solid #dbe8e4}.auth-card h1{font-size:34px;margin-top:0}.auth-card p{color:#56706c}label{display:block;font-weight:700;margin:14px 0}input,select{display:block;width:100%;margin-top:7px;border:1px solid #c6d7d2;border-radius:7px;padding:11px;background:#fff;color:#102d2b;font:inherit}button{cursor:pointer;border:1px solid #c9d9d5;background:#e7efed;color:#102d2b;border-radius:7px;padding:10px 14px;font-weight:700}.primary{background:#15725f;color:#fff;border-color:#15725f}.actions{display:flex;gap:10px;margin-top:18px}.message{margin-top:16px;padding:12px 14px;background:#fdeaea;color:#9c2e2e;border-radius:8px}.message.success{background:#e5f5ed;color:#176345}.sidebar{width:245px;background:#fff;border:1px solid #dbe8e4;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:5px;height:max-content;position:sticky;top:15px}.nav{text-align:left;border:0;background:#fff;font-size:15px;padding:13px 15px}.nav.active,.nav:hover{background:#e3efeb}.content{flex:1;min-width:0}.content>.message{margin-bottom:16px}#manager-shell{display:flex;gap:24px}.page-head{margin:4px 0 22px}.page-head h1{font-size:34px;margin:0 0 5px}.page-head p{margin:0;color:#627873}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.stat{background:#fff;border:1px solid #dbe8e4;border-radius:12px;padding:18px;box-shadow:0 2px 8px #1231}.stat b{display:block;font-size:30px}.stat span{color:#627873}.stat.small b{font-size:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.table-wrap{background:#fff;border:1px solid #dbe8e4;border-radius:12px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e6efec}th{background:#f4f8f7;font-size:13px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}.loading{padding:40px;text-align:center;color:#627873}.error-panel{background:#fff3f3;border:1px solid #f0c9c9;border-radius:12px;padding:24px;color:#8e2d2d}.muted{color:#627873}.inline-form{display:grid;grid-template-columns:2fr 2fr auto;gap:10px;align-items:end}.inline-form label{margin:0}.inline-form input,.inline-form select{margin-top:0}.lineup-game{border-top:1px solid #e3ece9;padding:14px 0}.lineup-game small{color:#627873}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.score-grid label{margin:0}@media(max-width:900px){#manager-shell{flex-direction:column}.sidebar{width:auto;position:static;display:grid;grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:600px){#app{padding:0 10px}.sidebar{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.score-grid,.inline-form{grid-template-columns:1fr}.auth-card{margin:25px auto}}

.division-block{margin:24px 0 32px}.division-heading{margin:0 0 10px;padding:10px 14px;border-radius:10px;background:#e8f1ed;border-left:4px solid #176b59;font-size:1.05rem}.division-block .table-wrap{margin-top:0}

.error-panel .muted{color:#627873}

.score-game-group{margin-top:22px}.score-game-group h2{margin-bottom:12px}.score-games{display:grid;gap:12px}.score-game-card{border:1px solid #dfe7e5;border-radius:12px;padding:14px;background:#fbfdfc}.score-game-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.score-game-title span{color:#6a7f7b;font-size:.9rem}.score-matchup{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin-bottom:12px}.score-matchup>div:not(.versus){padding:10px;border-radius:8px;background:#f0f6f4}.score-matchup strong{display:block;margin-bottom:5px}.versus{font-weight:700;color:#6a7f7b}.score-game-card label{display:block;max-width:360px}.score-summary-card{margin-top:22px}.score-summary-card h2{margin-top:0}.score-summary-card button{margin-top:14px}
@media(max-width:700px){.score-matchup{grid-template-columns:1fr}.versus{text-align:center}.score-game-title{display:block}.score-game-title span{display:block;margin-top:4px}}
.add-score-player{margin-top:6px;padding:7px 10px;font-size:12px}
.score-player-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:start}
.score-current-matchup{margin:6px 0 10px;color:#627873}
@media(max-width:700px){.score-player-grid{grid-template-columns:1fr}.score-player-grid .versus{text-align:center}}

.game-save-status{font-size:.82rem;color:#627873;margin-left:auto}.game-save-status.saved{color:#176345;font-weight:700}.save-game{margin-top:10px}.game-save-message{max-width:700px}

.running-score-board{display:flex;align-items:center;justify-content:center;gap:28px;margin:16px 0 24px;padding:18px;border:1px solid #dbe7e2;border-radius:12px;background:#f8fbfa}
.running-score-board>div{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:160px}
.running-score-board strong{font-size:15px}
.running-score-board span{font-size:38px;font-weight:800;line-height:1}
.running-score-separator{font-size:30px;font-weight:700;min-width:auto!important}
.calculated-value{padding:10px 12px;border:1px solid #dbe7e2;border-radius:8px;background:#f8fbfa;font-weight:700;min-height:20px}


.score-breakdown { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:0.75rem 0 1rem; padding:0.75rem 1rem; border-radius:10px; background:#f3f7f5; color:#35504a; }
.calculated-value { min-height:2.4rem; display:flex; align-items:center; padding:0.65rem 0.75rem; border:1px solid #d6e1dd; border-radius:8px; background:#f7faf9; font-weight:700; }

.player-name-edit{display:flex;flex-direction:column;gap:8px;min-width:220px}.player-name-edit.hidden,.player-name-display.hidden{display:none}.player-name-input{width:100%;box-sizing:border-box}.player-edit-actions{display:flex;gap:6px;flex-wrap:wrap}.player-edit-actions button{margin:0}

/* TEST v23: keep the PDF-only report hidden on screen; the live preview is the single on-screen copy. */
.print-report{display:none!important}

/* TEST v24: explicitly hide the off-screen PDF source blocks in the manager UI.
   print-report.js opens their contents in a separate print window. */
#league-print-report,
#stats-print-report,
.print-report {
  display: none !important;
}

/* TEST v27: prevent wide player-statistics tables from clipping columns.
   Keep all columns accessible with horizontal scrolling on screen; print output can scale to landscape. */
#stats-preview-tables .table-wrap,
#stats-print-tables .table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
#stats-preview-tables table.stats-report-table,
#stats-print-tables table.stats-report-table {
  width: 100%;
  min-width: 1500px;
  table-layout: auto;
}
#stats-preview-tables th,
#stats-preview-tables td,
#stats-print-tables th,
#stats-print-tables td {
  white-space: nowrap;
}
@media print {
  #stats-print-tables .table-wrap {
    overflow: visible !important;
  }
  #stats-print-tables table.stats-report-table {
    min-width: 0 !important;
    width: 100% !important;
    table-layout: auto !important;
    font-size: 8pt;
  }
  #stats-print-tables th,
  #stats-print-tables td {
    white-space: normal !important;
    padding: 4px 3px !important;
  }
}

/* TEST v29: average win-rate footer row */
.stats-report-table .stats-average-row td {
  font-weight: 700;
  background: #e7f1ee;
  border-top: 2px solid #176b59;
}
