/*
 * QA layout corrections for the reference-informed play shell.
 *
 * Active Daily play gets one stable three-column geometry: controls, puzzle,
 * and a genuinely narrow circuit rail. Transition/result states get the full
 * canvas so journey metadata never competes with the completion message.
 */

/* -------------------------------------------------------------------------
   ACTIVE DAILY: fixed geometry, no giant journey cards
   ------------------------------------------------------------------------- */

@media (min-width: 761px) {
  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) {
    grid-template-columns: 200px minmax(0, 1fr) 220px;
    grid-template-rows: auto minmax(0, 1fr) auto;
    column-gap: 28px;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .back-button {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .stage-track {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    width: min(560px, 100%);
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-time {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .game-panel {
    grid-column: 2 !important;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin-top: 28px;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .game-meta,
  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .game-body {
    width: min(760px, 100%);
    max-width: 760px;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-bottom {
    grid-column: 2;
    grid-row: 3;
    width: min(760px, 100%);
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey {
    grid-column: 3 !important;
    grid-row: 2 / 4;
    justify-self: end;
    align-self: stretch;
    display: flex !important;
    flex-direction: column;
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    margin: 28px 0 0 !important;
    padding: 6px 0 18px 24px !important;
    border: 0 !important;
    border-left: 1px solid var(--play-rule) !important;
    background: transparent !important;
    box-shadow: none !important;
    list-style: none;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey::before {
    content: "DAILY CIRCUIT";
    display: block;
    margin: 0 0 24px;
    color: #65716c;
    font-family: var(--heading);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .15em;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .circuit-row {
    position: relative;
    display: grid !important;
    grid-template-columns: 31px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 13px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 96px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #727e79;
    overflow: visible !important;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .circuit-row::before {
    content: none !important;
    display: none !important;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .circuit-row::after {
    content: "";
    display: block;
    position: absolute;
    left: 15px;
    top: 32px;
    bottom: 0;
    width: 1px;
    height: auto;
    background: #303a35;
    z-index: 0;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .circuit-row:last-child::after {
    display: none;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .journey-node {
    position: relative;
    z-index: 1;
    width: 31px;
    height: 31px;
    margin: 0;
    box-shadow: 0 0 0 6px #0e1215;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .journey-step-copy {
    min-width: 0;
    padding: 0;
    align-items: flex-start;
    text-align: left;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .journey-state {
    display: block;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey .circuit-name {
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
}

/* -------------------------------------------------------------------------
   STAGE / RESULTS: full-canvas transition state
   ------------------------------------------------------------------------- */

body[data-view="play"] .session-top:has(.stage-celebration),
body[data-view="play"] .session-top:has(.transition-panel) {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

body[data-view="play"] .session-top:has(.stage-celebration) .session-journey,
body[data-view="play"] .session-top:has(.transition-panel) .session-journey {
  display: none;
}

body[data-view="play"] .session-top:has(.stage-celebration) .stage-track,
body[data-view="play"] .session-top:has(.transition-panel) .stage-track {
  grid-column: 2;
}

body[data-view="play"] .session-top:has(.stage-celebration) .session-time,
body[data-view="play"] .session-top:has(.transition-panel) .session-time {
  grid-column: 3;
}

body[data-view="play"] .stage-celebration,
body[data-view="play"] .session-top:has(.transition-panel) > .game-panel {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
}

body[data-view="play"] .stage-celebration {
  min-height: min(720px, calc(100svh - 110px));
  margin-top: 24px;
}

body[data-view="play"] .stage-celebration .transition-panel,
body[data-view="play"] .session-top:has(.transition-panel) .transition-panel {
  width: min(700px, 100%);
  max-width: 700px;
  margin: 0 auto;
  padding-inline: 24px;
}

body[data-view="play"] .stage-celebration .transition-panel h1 {
  max-width: 11ch;
  margin-inline: auto;
}

body[data-view="play"] .stage-celebration .curiosity-reveal {
  width: min(560px, 100%);
  margin-inline: auto;
}

body[data-view="play"] .stage-celebration .next-name {
  width: min(560px, 100%);
  margin-inline: auto;
}

@media (max-width: 980px) and (min-width: 761px) {
  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) {
    grid-template-columns: 150px minmax(0, 1fr) 200px;
    column-gap: 20px;
  }

  body[data-view="play"] .session-top:has(.session-journey):not(:has(.transition-panel)) .session-journey {
    width: 200px !important;
    min-width: 200px !important;
    max-width: 200px !important;
    padding-left: 18px !important;
  }
}

@media (max-width: 760px) {
  body[data-view="play"] .stage-celebration {
    min-height: auto;
    margin-top: 14px;
  }

  body[data-view="play"] .stage-celebration .transition-panel,
  body[data-view="play"] .session-top:has(.transition-panel) .transition-panel {
    padding-inline: 0;
  }
}
