.mobile-clue { display: none; }
.pitch-wrap { max-width: 520px; margin-left: auto; margin-right: auto; }
.match-ball.in-goal { transform: translate(-50%, -50%); }
.playing .card-clue { display: none; }
.playing .card-ability { margin-top: 12px; }
.playing .player-card { padding: 13px 15px; }
@media (max-width: 760px) {
  .site-header { gap: 12px; }
  .mobile-clue { display: block; border: 1px solid #dedfd5; border-radius: 8px; padding: 10px 12px; margin-bottom: 14px; background: #fffefa; font-size: 11px; line-height: 1.6; color: #697761; }
  .mobile-clue strong { color: #234e3e; font-weight: 600; }
  .playing .mobile-clue { display: none; }
}
@media (max-width: 380px) {
  .site-header { padding-left: 16px; padding-right: 16px; }
  .brand { font-size: 24px; }
  .brand-mark { width: 23px; height: 23px; margin-right: 8px; }
  .rules-trigger { font-size: 11px; }
  .rules-trigger span { margin-left: 8px; }
}

.pitch-wrap { padding-left: 50px; padding-top: 72px; }
.column-labels { left: 50px; top: 22px; }
.goal-strip { left: 50px; top: 42px; }
.row-labels { left: 29px; top: 72px; }
.horizontal-zones { position: absolute; top: 0; left: 50px; right: 0; display: grid; grid-template-columns: 2fr 3fr 2fr; gap: 3px; font-size: 9px; letter-spacing: .7px; text-align: center; color: #6f8064; }
.horizontal-zones span { padding-bottom: 5px; border-bottom: 1px solid #c1cab8; }
.vertical-zones { position: absolute; left: 0; width: 23px; top: 72px; bottom: 0; display: grid; grid-template-rows: 2fr 3fr 2fr; gap: 3px; color: #6f8064; }
.vertical-zones span { display: flex; align-items: center; justify-content: center; writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9px; letter-spacing: .9px; border-left: 1px solid #c1cab8; }
.starter-note span:not(.mini-jersey):not(.tiny-ball) { line-height: 1.6; }
@media(max-width:380px) { .pitch-wrap { padding-left: 42px; } .column-labels, .goal-strip, .horizontal-zones { left: 42px; } .row-labels { left: 22px; } .vertical-zones { width: 17px; } .horizontal-zones { font-size: 8px; letter-spacing: .3px; } }

/* The nearest field defender sets the receiving limit. */
.offside-line{position:absolute;left:0;right:0;border-top:1px dashed #edcf93;z-index:4;pointer-events:none;opacity:.8}.offside-line span{position:absolute;right:5px;top:-28px;color:#f6e8c9;font-size:8px;font-weight:700;letter-spacing:1px;text-shadow:0 1px 2px #183e32}.offside-square{background:rgba(225,177,85,.045)}.offside-status{margin:12px 0 0;color:#7b6850;font-size:11px;letter-spacing:.2px}.token{position:relative;z-index:5}

.minimum-target{margin-top:20px;padding:14px 0 0;border-top:1px solid #d7dec8}.minimum-target>span,.move-score span{font-size:9px;letter-spacing:1px;color:#7d886d;display:block}.minimum-target>strong{display:block;margin-top:5px;font-size:22px;color:#234e3e}.minimum-target p{font-size:10px!important;margin:6px 0 0}.move-score{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;padding:15px 12px;background:#ffffff69;border:1px solid #d4ddc6;border-radius:8px}.move-score strong{font-size:27px;line-height:1.3;color:#234e3e}.move-score p{grid-column:1/-1;margin:0;font-size:10px}.move-score.optimal{background:#e0e8c6;border-color:#b4c291}.live-moves{font-size:9px;color:#758169;white-space:nowrap}.retry-shorter{margin-bottom:18px;color:#234e3e;text-decoration:underline;text-underline-offset:4px}

.defender-rules{margin:18px 0 0 22px;border-top:1px solid #dddeda;padding-top:14px}.defender-rules h3{margin:0 0 12px;font-size:12px;color:#915f4b}.defender-rule{padding:12px;border:1px solid #e1d7cd;border-radius:8px;background:#f5efe8;margin-bottom:8px}.defender-rule strong{font-size:11px;display:block;color:#785240}.defender-rule strong span{float:right;font-size:8px;letter-spacing:.7px;color:#96745e}.defender-rule p{font-size:11px;line-height:1.65;color:#817264;margin:6px 0 0}.token.reactive{font-size:10px;border:2px solid #f1d9a0;box-shadow:0 0 0 2px #1c473c30}.bench-player{margin-top:12px;color:#7e5b42;text-decoration:underline;text-underline-offset:3px}@media(max-width:760px){.defender-rules{margin-left:18px}}

.pass-overlay line.defender-move{stroke:#df967d;stroke-dasharray:5 6;stroke-width:2}

/* Player-specific constraints, without repeating the shared rulebook. */
.player-card,.playing .player-card{padding:16px;text-align:left}
.card-top>span:nth-child(2){min-width:0;flex:1}
.card-name{font-size:14px}.card-role{font-size:11px;color:#64705f}
.start-rule{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:8px;margin-top:14px}
.region-chips{display:flex;flex-wrap:wrap;gap:5px}.region-chips>span{display:inline-block;padding:3px 7px;border-radius:4px;background:#eef0e6;color:#36503f;font-size:12px;font-weight:500}
.player-constraints{display:grid;gap:8px;margin-top:12px}
.constraint-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:baseline}
.constraint-label{font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:#65715f}
.constraint-value{font-size:13px;line-height:1.5;font-weight:500;color:#2c4437}
.ability-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.ability-badge{display:inline-block;border:1px solid transparent;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:500;line-height:1.4}
.aerial-badge{color:#365a70;background:#e8eff2;border-color:#d5e1e7}.restriction-badge{color:#80513c;background:#f3e8e0;border-color:#e6d7ca}
.clue-result{margin-top:10px;font-size:11px}.rules-reference{display:block;margin:0 0 14px;color:#36513e;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.defender-rule h4{margin:8px 0 11px;font-size:14px;color:#79513d}.defender-facts{display:grid;gap:8px}.defender-rule .constraint-row{grid-template-columns:44px minmax(0,1fr)}.defender-rule strong span{font-size:9px}.defender-rule .constraint-value{color:#654c3d}
#rules-dialog{max-width:580px;max-height:calc(100dvh - 32px);overflow-y:auto}#rules-dialog h2{font-size:27px;margin:14px 0 20px}
.common-rules{margin:0;display:grid;gap:0}.common-rules>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid #e4e5dc}.common-rules dt{font-size:13px;font-weight:650;color:#294535}.common-rules dd{margin:0;font-size:13px;line-height:1.6;color:#495746}.common-rules dd strong{font-weight:600}
.rules-detail{margin:18px 0 22px}.rules-detail summary{font-size:12px;color:#52634b;cursor:pointer}.rules-detail p{font-size:12px!important;line-height:1.65;color:#52634b;margin:12px 0}
@media(max-width:760px){.player-cards{grid-template-columns:1fr}.player-card,.playing .player-card{padding:16px}.card-name{font-size:15px}.card-role{font-size:12px}.constraint-value{font-size:14px}.constraint-label{font-size:11px}.region-chips>span{font-size:13px}.start-rule,.constraint-row{grid-template-columns:46px minmax(0,1fr)}.mobile-clue .start-rule{margin-top:8px}.mobile-clue .player-constraints{margin-top:9px}.mobile-clue .ability-badges:empty{display:none}.mobile-clue>strong{font-size:13px}.common-rules>div{grid-template-columns:58px minmax(0,1fr);gap:10px}.common-rules dd,.common-rules dt{font-size:13px}#rules-dialog{padding:21px}}

.move-score p:empty{display:none}.starter-note #starter-position{font-size:12px;line-height:1.6;color:#52624d}

/* Step choices are available directly on the pitch. */
.cell.step-target{box-shadow:none}
.cell.step-target::after{content:'';width:6px;height:6px;border:0;border-radius:50%;background:#edcf93;position:absolute;pointer-events:none}
.cell.pending-origin{background:#ffffff12;box-shadow:none}
.pass-overlay line.step-move{stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1 7}

.offball-controls{margin:10px 0 0 22px;display:flex;flex-wrap:wrap;gap:12px}.offball-controls[hidden]{display:none}.offball-controls button{text-align:left;text-decoration:underline;text-underline-offset:3px}

.cell.placement-area{background:#edcf930d}
.cell.placement-available{background:#edcf9340}
.cell.placement-available:hover{background:#edcf9360}
