:root { color-scheme: light; }
* { box-sizing: border-box; }
html { min-width: 0; }
body {
  margin: 0;
  background: #eee9dc;
  color: #111;
  font-family: Arial, Verdana, sans-serif;
  font-size: 15px;
}
.page-shell {
  width: min(760px, calc(100% - 24px));
  margin: 18px auto 40px;
  background: #faf8ef;
  border: 3px double #555;
  padding: 14px 18px 24px;
  box-shadow: 5px 5px 0 #b8b1a1;
}
.masthead { text-align: center; overflow: hidden; padding: 2px 3px 7px; }
.wordart {
  position: relative;
  display: inline-block;
  margin: 4px 0 8px;
  max-width: 100%;
  white-space: nowrap;
  font-family: Impact, "Arial Black", Haettenschweiler, sans-serif;
  font-size: clamp(42px, 10vw, 84px);
  font-weight: 900;
  line-height: .86;
  letter-spacing: 1px;
  color: #f4c41f;
  background: linear-gradient(#fff685 3%, #ffca20 44%, #ea7700 74%, #c83d00 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 2px #12397d;
  paint-order: stroke fill;
  text-shadow: 3px 3px 0 #932c9e, 6px 6px 0 #3155a2, 8px 8px 0 rgba(0,0,0,.24);
  transform: skew(-5deg) scaleY(1.08);
}
.wordart::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  z-index: -1;
  color: #fff;
  -webkit-text-stroke: 5px #eee;
  transform: translate(-1px,-1px);
}
.subtitle { font-family: "Times New Roman", Times, serif; font-size: 17px; font-weight: bold; letter-spacing: 1.7px; }
.tiny-rule { margin-top: 3px; font: 10px Verdana, Arial, sans-serif; letter-spacing: .5px; }
.freshness { margin-top: 8px; font: 12px Verdana, sans-serif; min-height: 15px; }
.freshness.warning { color: #7b2600; font-weight: bold; }
.heavy-rule { border: 0; border-top: 3px groove #bbb; margin: 14px 0 15px; }
.matchup-form { display: grid; grid-template-columns: minmax(0,1fr) 34px minmax(0,1fr); gap: 10px; align-items: end; }
.matchup-form label { display: grid; gap: 4px; font-weight: bold; font-size: 12px; font-family: Verdana, Arial, sans-serif; }
.at-mark { align-self: center; padding-top: 15px; text-align: center; font: bold 22px Georgia, serif; }
select, input, button {
  max-width: 100%;
  font: 16px Arial, sans-serif;
  color: #111;
  border: 2px inset #bbb;
  border-radius: 1px;
  background: #fff;
  min-height: 39px;
}
select, input { padding: 5px 6px; }
button {
  border-style: outset;
  background: #dedede;
  font-weight: bold;
  padding: 7px 16px;
  cursor: pointer;
  box-shadow: none;
}
button:hover { background: #e9e9e9; }
button:active { border-style: inset; background: #ccc; }
button:disabled { color: #666; cursor: wait; }
button:focus-visible, select:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid #174ea6; outline-offset: 2px; }
.count-label { grid-column: 1 / 3; }
#simulate { grid-column: 3; }
.error { grid-column: 1 / -1; color: #8b0000; min-height: 1.1em; margin: 0; font-weight: bold; }
.results { margin-top: 18px; border-top: 4px double #555; padding-top: 12px; }
.result-kicker { font: bold 11px Verdana, sans-serif; letter-spacing: 1px; }
.big-pick { font: bold 25px "Times New Roman", serif; margin: 4px 0 4px; }
.context-line, .model-note { font: 12px Verdana, Arial, sans-serif; line-height: 1.45; }
.result-table { width: 100%; border-collapse: collapse; margin: 12px 0 15px; font-family: Verdana, Arial, sans-serif; font-size: 13px; }
.result-table th { background: #e4e0d4; border-top: 1px solid #888; border-bottom: 2px solid #666; }
.result-table th, .result-table td { padding: 6px 5px; text-align: left; }
.result-table td { border-bottom: 1px dotted #aaa; }
.result-table td.num, .result-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.section-head { margin: 15px 0 5px; padding: 3px 5px; background: #222; color: #fff; font: bold 12px Verdana, sans-serif; letter-spacing: .7px; }
.expected-score { font: bold 20px "Courier New", monospace; margin: 7px 0; }
.plain-stat { margin: 4px 0; font-family: Verdana, Arial, sans-serif; font-size: 13px; }
.margin-grid { display: grid; grid-template-columns: repeat(7,1fr); border: 1px solid #777; margin-top: 7px; }
.margin-cell { min-width: 0; padding: 6px 3px; text-align: center; border-right: 1px dotted #999; font: 11px Verdana, sans-serif; }
.margin-cell:last-child { border-right: 0; }
.margin-cell strong { display: block; font-size: 13px; margin-top: 3px; font-variant-numeric: tabular-nums; }
.score-list { margin: 6px 0 0; padding-left: 24px; font-family: "Courier New", monospace; }
.result-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0 6px; }
.result-actions button { font-size: 13px; min-height: 34px; }
.details-box { margin-top: 8px; padding: 8px 10px; border: 1px dashed #777; background: #fffdf4; }
.details-box[hidden] { display: none; }
.contribution-list { margin: 6px 0 8px; padding-left: 22px; }
.contribution-list li { margin: 5px 0; font: 12px Verdana, Arial, sans-serif; }
.footer { margin-top: 22px; border-top: 1px solid #777; padding-top: 10px; font-size: 12px; }
.footer summary { cursor: pointer; font-weight: bold; font-family: Verdana, Arial, sans-serif; }
.footer p { line-height: 1.45; }
.footer-stamp { margin-top: 13px; text-align: center; font: 10px "Courier New", monospace; color: #555; }

@media (max-width: 560px) {
  body { font-size: 14px; }
  .page-shell { width: calc(100% - 12px); margin: 6px; padding: 10px 10px 20px; box-shadow: 3px 3px 0 #b8b1a1; }
  .wordart { font-size: clamp(39px, 13vw, 62px); -webkit-text-stroke-width: 1.5px; text-shadow: 2px 2px 0 #932c9e, 4px 4px 0 #3155a2, 6px 6px 0 rgba(0,0,0,.2); }
  .subtitle { font-size: 15px; }
  .matchup-form { grid-template-columns: 1fr; gap: 9px; }
  .at-mark { display: none; }
  .count-label, #simulate { grid-column: 1; }
  #simulate { width: 100%; }
  .margin-grid { grid-template-columns: 1fr 1fr; }
  .margin-cell { border-right: 0; border-bottom: 1px dotted #999; text-align: left; padding: 6px 8px; }
  .result-table { font-size: 12px; }
  .result-table th, .result-table td { padding: 6px 3px; }
}
.scenario { grid-column:1/-1; text-align:left; width:100%; border-top:1px solid #817867; padding:12px 0; }
.scenario summary, .results summary {cursor:pointer;font-weight:800;padding:8px 0;}
.conditions {display:flex;flex-wrap:wrap;gap:18px;align-items:center;padding:16px 0;}
.conditions label {display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:bold;}
.conditions input {max-width:190px;padding:8px;font:inherit;}
.conditions input[type=checkbox] {width:22px;height:22px;}
#availability-panel {font-size:14px;line-height:1.5;}
.table-scroll {overflow-x:auto;}
.injury-table {border-collapse:collapse;width:100%;font-size:13px;}
.injury-table td,.injury-table th {text-align:left;padding:10px;border-bottom:1px solid #c1b7a2;vertical-align:top;}
.injury-table select {min-width:104px;font:inherit;padding:8px;}
.injury-table details {max-width:540px;}
#progress {grid-column:1/-1;font-weight:bold;min-height:20px;}
.play-controls {display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;}
.play-controls select {padding:9px;font:inherit;}
.play-log {max-height:640px;overflow:auto;border:2px solid #37332b;background:#faf7ee;margin:16px 0;}
.play {display:grid;grid-template-columns:135px 1fr 68px;gap:12px;padding:14px;border-bottom:1px solid #d6ccb8;text-align:left;font-size:14px;}
.play p {margin:0;line-height:1.5;}
.play small {font-size:11px;color:#5e584e;}
.scoring-play {background:#ece4ac;border-left:5px solid #6c591f;}
.baseline {margin:24px 0;}
.result-table td:not(:first-child),.result-table th:not(:first-child) {text-align:right;}
.warning {background:#fff0c5;padding:10px;color:#613e00;}
@media(max-width:600px){.play{grid-template-columns:88px 1fr 49px;gap:7px;padding:10px;font-size:12px}.play small{font-size:10px}.conditions{gap:12px}.injury-table td{padding:8px 4px}.result-table{font-size:12px}.result-table th,.result-table td{padding:8px 5px}}

.scouting-report section{margin:1.2rem 0;padding:.8rem;border:1px solid #777}.scouting-report table{width:100%;border-collapse:collapse}.scouting-report th,.scouting-report td{padding:.4rem;text-align:left;border-bottom:1px solid #999}.scouting-report p{line-height:1.5}

/* Weekly forecasts share the simulator's paper scorebook styling. */
[hidden]{display:none!important}
.view-switch{display:flex;gap:12px;margin:20px 0 28px;flex-wrap:wrap}
.view-switch button{padding:12px 20px;border:2px solid #292820;background:transparent;font-weight:bold;cursor:pointer}
.view-switch button[aria-pressed="true"]{background:#292820;color:#fff8e7}
.weekly-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.weekly-heading select{padding:10px;font:inherit;margin-left:8px}
.weekly-legend{font-weight:bold;line-height:1.9}.legend-yellow{color:#8c6300}.legend-green{color:#176734}
.weekly-game{display:grid;grid-template-columns:minmax(160px,1.7fr) minmax(72px,.7fr) minmax(91px,.9fr) minmax(78px,.75fr) 54px;gap:12px;padding:20px 0;border-top:2px solid #b8b2a3;align-items:start}
.weekly-matchup h3{font-size:17px;margin:0 0 8px;line-height:1.25}.weekly-matchup h3 span{font-weight:normal}.weekly-matchup p{font-size:12px;line-height:1.45;margin:0}
.weekly-score h4,.weekly-win-chances h4{font-size:10px;letter-spacing:.7px;margin:0 0 8px;white-space:nowrap}
.weekly-score>span,.weekly-chance-row{display:flex;justify-content:space-between;gap:6px;width:100%;line-height:1.75;font-variant-numeric:tabular-nums}
.weekly-score strong{font-size:21px}.weekly-score small,.weekly-win-chances small{display:block;font-size:11px;line-height:1.45}
.weekly-win-chances{min-width:0}.weekly-chance-row{font-size:12px;align-items:baseline}.weekly-chance-row strong{font-size:16px;white-space:nowrap}
.weekly-tie{margin-top:5px;color:#56534b;font-variant-numeric:tabular-nums}
.weekly-markers{display:flex;gap:5px;flex-wrap:wrap}.accuracy-mark{display:inline-flex;width:25px;height:25px}.accuracy-mark svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.accuracy-mark.yellow{color:#bc8500}.accuracy-mark.green,.accuracy-mark.circle{color:#168342}
.weekly-provenance{grid-column:1/-1;font-size:12px}.weekly-provenance p{line-height:1.6}.weekly-provenance summary{cursor:pointer}
@media(max-width:710px){.weekly-game{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1fr);column-gap:12px;row-gap:14px}.weekly-matchup{grid-column:1/-1}.weekly-markers{grid-column:1/-1}.weekly-score h4,.weekly-win-chances h4{font-size:10px}.weekly-heading h2{font-size:22px}.view-switch button{padding:10px 12px}.weekly-legend{font-size:13px}}
@media(max-width:390px){.weekly-game{column-gap:8px}.weekly-score strong{font-size:18px}.weekly-chance-row strong{font-size:15px}.weekly-score h4,.weekly-win-chances h4{letter-spacing:0;font-size:9px}}

/* Probability postprocessor: preserve the existing mobile-responsive scorecard. */
.calibrated-results{border:2px solid #3e4b54;background:#f4f0e4;padding:12px 15px;margin:12px 0;}
.calibrated-results h3{font-size:1em;margin:0 0 10px;letter-spacing:.02em;}
.calibrated-results>div{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;}
.calibrated-results>div span{white-space:nowrap;}
.calibrated-results strong{font-variant-numeric:tabular-nums;}
.calibrated-results .model-note{margin-bottom:0;}
