.territory-lesson .lesson-heading { max-width: 850px; }
.territory-lesson .lesson-heading h1 { font-size: 40px; line-height: 1.2; }
.territory-lesson .lesson-heading > p:last-child { max-width: 820px; font-size: 17px; }
.territory-preview { margin: 0 0 22px; padding: 22px 0 24px; border-top: 2px solid #24272b; border-bottom: 1px solid var(--line); }
.territory-topline { display: flex; justify-content: space-between; align-items: end; gap: 16px; }
.territory-kicker { color: var(--brand-accent-text); font-size: 13px; font-weight: 700; }
.territory-topline h2 { margin-top: 4px; font-size: 25px; }
.territory-scores { display: flex; gap: 22px; text-align: right; }
.territory-scores p { display: grid; gap: 3px; margin: 0; color: var(--brand-accent-text); font-size: 13px; }
.territory-scores strong { font-size: 22px; font-variant-numeric: tabular-nums; }
.territory-lesson .territory-intro { max-width: 790px; margin: 12px 0 22px; font-size: 16px; }
.territory-play-layout { display: grid; grid-template-columns: minmax(0, min(765px, calc((100svh - var(--academy-header-height, 110px) - 32px) * 42 / 53))) minmax(200px, 1fr); align-items: start; gap: 24px; }
.territory-board { position: relative; box-sizing: border-box; min-width: 0; width: 100%; aspect-ratio: 42 / 53; overflow: hidden; border: 2px solid #479d91; border-radius: 6px; background: #000; box-shadow: 0 4px 14px #123b3426; }
.territory-board.is-ready { background-image: url('lesson-territory-market-20260924.png'); background-position: center; background-size: cover; background-repeat: no-repeat; }
@media (min-width: 761px) {
  .territory-board { scroll-margin-top: calc(var(--academy-header-height, 110px) + 16px); scroll-margin-bottom: 16px; }
}
.territory-board canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.territory-side { position: sticky; top: 104px; display: grid; min-width: 0; justify-items: start; gap: 16px; }
.territory-key { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; font-size: 13px; color: var(--muted); }
.territory-key span { display: inline-block; width: 15px; height: 15px; margin-left: 8px; border: 2px solid #087773; border-radius: 50%; background: #fff; }
.territory-key .key-enemy { border-color: #17282a; background: #ffdd4a; }
.territory-key .key-trail { border: 0; border-radius: 2px; background: #ff862d; }
.territory-side #territory-status { min-height: 48px; margin: 0; font-size: 17px; font-weight: 700; }
.territory-side button { min-height: 46px; border: 1px solid #207674; border-radius: 4px; background: #fff; color: #205c5b; font: inherit; font-weight: 700; cursor: pointer; }
.territory-side button:hover:not(:disabled) { background: #edf6f5; }
.territory-side button:focus-visible { outline: 3px solid #ff862d; outline-offset: 2px; }
#territory-draw { min-width: 170px; padding: 10px 18px; color: #fff; background: #207674; }
#territory-draw[aria-pressed="true"] { color: #202528; border-color: #ff862d; background: #ff862d; }
#territory-draw:disabled { opacity: .72; cursor: default; }
.territory-dpad { display: grid; grid-template-columns: repeat(3, 56px); grid-template-rows: repeat(2, 52px); gap: 5px; }
.territory-dpad button { width: 56px; height: 52px; padding: 0; font-size: 22px; touch-action: none; user-select: none; }
.territory-dpad button:first-child { grid-column: 2; }
.territory-dpad button:nth-child(2) { grid-column: 1; grid-row: 2; }
.territory-dpad button:nth-child(3) { grid-column: 2; grid-row: 2; }
.territory-dpad button:nth-child(4) { grid-column: 3; grid-row: 2; }
.territory-lesson .territory-keyboard { max-width: 240px; margin: 0; color: var(--muted); font-size: 13px; }
#territory-reset { padding: 8px 16px; }
.territory-lesson .territory-caption { max-width: 790px; margin-top: 14px; color: var(--muted); font-size: 13px; }
.territory-download { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.territory-lesson.template-lesson .copy-panel { border: 0; background: transparent; padding: 0; }
.territory-lesson.template-lesson .copy-panel .copy-source { box-sizing: border-box; border: 1px solid #c9d3d1; border-left: 3px solid #287775; border-radius: 4px; background: #f7faf9; padding: 16px 24px 20px; overflow-wrap: anywhere; }
.territory-lesson.template-lesson .copy-panel .copy-row { justify-content: flex-end; margin: 0 0 10px; }
@media (max-width: 760px) {
  .territory-lesson.template-lesson .copy-panel .copy-source { padding: 14px 16px 16px; }
  .territory-lesson .lesson-heading h1 { font-size: 32px; }
  .territory-topline { align-items: start; }
  .territory-scores { gap: 12px; }
  .territory-scores strong { font-size: 17px; }
  .territory-play-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .territory-board { max-width: 765px; margin-inline: auto; }
  .territory-side { position: static; grid-template-columns: 1fr auto; align-items: center; gap: 12px; }
  .territory-key, #territory-status, .territory-keyboard { grid-column: 1 / -1; }
  .territory-dpad { grid-column: 2; grid-row: 3 / 5; }
  #territory-draw { grid-column: 1; grid-row: 3; min-width: 0; }
  #territory-reset { grid-column: 1; grid-row: 4; }
}
@media (prefers-reduced-motion: reduce) {
  .territory-side button { transition: none; }
}
@media (max-width: 420px) {
  .territory-topline { display: block; }
  .territory-scores { justify-content: flex-start; margin-top: 14px; text-align: left; }
}
