.play-page-header h1 { overflow-wrap: anywhere; }
.play-back { display: inline-flex; gap: .5rem; align-items: center; margin-bottom: 1rem; font-weight: 600; text-decoration: none; }
.play-details { margin-bottom: 1.5rem; }
.play-details .field { display: grid; gap: .5rem; max-width: 42rem; }
.play-form { min-width: 0; }
.play-surface { background: var(--ui-surface-background); border: 1px solid var(--ui-surface-border); border-radius: .75rem; padding: 0; overflow: hidden; }
.play-controls, .play-frames, .play-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.play-controls { padding: .75rem 1rem; border-bottom: 1px solid var(--ui-surface-border); background: var(--ui-surface-background); align-items: flex-end; gap: .75rem; }
.play-controls label { display: grid; gap: .25rem; align-items: start; font-size: .875rem; font-weight: 600; }
.play-controls select, .play-frames select { width: auto; min-width: 7rem; }
.play-tools input, .play-notes textarea, .play-details input { color: var(--ui-text); background: var(--ui-surface-background); border: 1px solid var(--ui-surface-border); border-radius: .375rem; padding: .625rem; font: inherit; max-width: 100%; box-sizing: border-box; }
.play-controls select, .play-frames select { appearance: auto; background-color: var(--ui-surface-background); background-image: none; color: var(--ui-text); border: 1px solid var(--ui-surface-border); border-radius: .375rem; padding: .5rem .85rem; font: inherit; min-height: var(--ui-control-min-height); }
.play-field-settings { align-items: end; }
.play-details input { width: 100%; }
.play-controls button, .play-tools button, .play-frames button { min-height: 2.75rem; padding: .5rem .75rem; border: 1px solid var(--ui-surface-border); border-radius: .375rem; color: var(--ui-text); background: var(--ui-surface-background); font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
.play-controls button:hover, .play-tools button:hover, .play-frames button:hover { background: var(--ui-neutral-background); }
.play-controls button:disabled, .play-frames button:disabled { opacity: .45; cursor: default; }
.play-tools button[aria-pressed=true] { background: var(--ui-info-background); color: var(--ui-info-text); border-color: currentColor; }
.play-workspace { display: grid; grid-template-columns: 12rem minmax(0, 1fr); align-items: stretch; }
.play-workspace:not(:has(.play-tools)) { grid-template-columns: 1fr; }
.play-stage { min-width: 0; width: 100%; max-width: 34rem; margin-inline: auto; border: 1px solid #afbea8; border-radius: .25rem; background: #f4f7ed; overflow: hidden; touch-action: none; }
.play-field { display: block; width: 100%; aspect-ratio: 1; user-select: none; overflow: hidden; }
.play-stage:focus-visible, .play-preview:focus-visible { outline: var(--ui-focus-ring); outline-offset: 3px; }
.play-tools { display: flex; flex-direction: column; gap: .75rem; padding: 1rem; border-right: 1px solid var(--ui-surface-border); }
.play-tools h2 { font-size: .875rem; margin: 0 0 .375rem; }
.play-tools button { text-align: center; }
.play-tools label { display: grid; gap: .375rem; margin-top: .75rem; font-size: .875rem; font-weight: 600; }
.play-tools input { width: 100%; }
.play-frames { padding: .75rem 1rem; border-top: 1px solid var(--ui-surface-border); border-bottom: 1px solid var(--ui-surface-border); }
.play-notes { display: block; white-space: pre-wrap; margin: 0; padding: .75rem 1rem 1rem; font-weight: 600; font-size: .875rem; }
.play-notes textarea { display: block; width: 100%; margin-top: .5rem; font-weight: 400; resize: vertical; }
.play-viewer .play-notes { font-weight: 400; line-height: 1.6; }
.play-actions { flex-shrink: 0; }
.play-editor-heading { display: flex; gap: 2rem; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ui-surface-border); }
.play-title-field { flex: 1; min-width: 0; max-width: 34rem; display: grid; gap: .35rem; }
.play-title-field label { font-size: .75rem; color: var(--ui-text-muted); font-weight: 600; }
.play-title-field input { width: 100%; box-sizing: border-box; min-height: 2.75rem; border: 1px solid var(--ui-surface-border); border-radius: .375rem; padding: .5rem .75rem; background: var(--ui-surface-background); color: var(--ui-text); font: inherit; font-size: 1.125rem; font-weight: 600; }
.play-control-group { display: inline-flex; gap: .5rem; align-items: flex-end; }
.play-control-group + .play-control-group { padding-left: .75rem; margin-left: .25rem; border-left: 1px solid var(--ui-surface-border); }
.play-export-controls { margin-left: auto !important; }
.play-controls label span { color: var(--ui-text-muted); font-size: .75rem; line-height: 1.5; }
.play-controls select { min-width: 8rem; }
.play-controls button, .play-frames button, .play-controls select, .play-frames select { height: var(--ui-control-min-height); min-height: var(--ui-control-min-height); line-height: 1.25; font-size: .875rem; font-weight: 500; margin: 0; }
.play-controls button[aria-label], .play-frame-edit button, .play-frames button[aria-label] { width: var(--ui-control-min-height); min-width: var(--ui-control-min-height); padding-inline: .5rem; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }
.play-tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .375rem; }
.play-tool-grid button { display: flex; align-items: center; flex-direction: column; justify-content: center; gap: .375rem; padding: .625rem .25rem; min-height: 3.75rem; font-size: .6875rem; font-weight: 500; border-color: transparent; }
.play-tool-grid i { font-size: 1rem; }
.play-tool-grid [data-tool="attack"] i { color: #245d83; }
.play-tool-grid [data-tool="defense"] i { color: #b74736; }
.play-tool-grid [data-tool="ball"] i, .play-tool-grid [data-tool="cone"] i { color: #bd7724; }
.play-object-settings { display: grid; gap: .5rem; border-top: 1px solid var(--ui-surface-border); padding-top: .75rem; }
.play-object-settings label { font-size: .75rem; margin: 0; }
.play-object-settings button { font-size: .6875rem; padding: .5rem .25rem; }
.play-canvas { background: var(--ui-page-background); padding: 1.25rem; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.play-canvas-hint { text-align: center; color: var(--ui-text-muted); font-size: .75rem; margin: .75rem 0 0; }
.play-section-label { font-size: .75rem; font-weight: 600; margin-right: auto; }
.play-frames select { min-width: 7rem; padding: .5rem .75rem; }
.play-frame-edit button { padding: .5rem; }
.play-surface > [role="status"] { margin-inline: 1rem; }
.play-collection { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: 1.25rem; }
.play-preview { color: var(--ui-text); text-decoration: none; border: 1px solid var(--ui-surface-border); border-radius: .75rem; background: var(--ui-surface-background); overflow: hidden; transition: box-shadow .15s, border-color .15s; }
.play-preview:hover { border-color: var(--ui-link); box-shadow: var(--ui-shadow-surface); }
.play-preview-field { padding: 1rem 2rem; background: #f4f7ed; border-bottom: 1px solid var(--ui-surface-border); }
.play-preview-field .play-field { max-height: 15rem; }
.play-preview-copy { padding: 1.25rem; }
.play-preview h3 { margin: 0 0 .375rem; font-size: 1.125rem; overflow-wrap: anywhere; }
.play-preview p { margin: 0; }
.play-preview-link { display: flex; justify-content: space-between; align-items: center; margin-top: 1rem; font-size: .875rem; font-weight: 600; color: var(--ui-link); }
.play-empty { padding-block: 3rem; text-align: center; }
.play-empty > i { font-size: 1.75rem; color: var(--ui-text-muted); margin-bottom: 1rem; }
.play-print-frames, .play-tools-toggle { display: none; }
.play-surface [hidden] { display: none !important; }
@media (max-width: 650px) {
  .play-editor-heading { padding: 1rem; flex-wrap: wrap; gap: .75rem; }
  .play-title-field { flex-basis: 100%; max-width: none; }
  .play-actions { width: 100%; }
  .play-actions > .wa-button { flex: 1; }
  .play-workspace { grid-template-columns: 1fr; }
  .play-canvas { order: -1; padding: .75rem; }
  .play-canvas-hint { display: none; }
  .play-tools { border-right: 0; border-top: 1px solid var(--ui-surface-border); padding: .75rem; gap: .5rem; }
  .play-tools h2 { display: none; }
  .play-tool-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .25rem; }
  .play-tool-grid button { font-size: .5625rem; padding: .25rem; min-height: 3rem; overflow-wrap: anywhere; }
  .play-object-settings { grid-template-columns: 1fr 1fr; gap: .375rem; padding-top: .5rem; }
  .play-object-settings label { grid-column: 1 / -1; display: flex; align-items: center; gap: .5rem; }
  .play-object-settings input { flex: 1; min-width: 0; max-width: 6rem; margin-left: auto; }
  .play-object-settings button { min-height: 2.75rem; }
  .play-controls { padding: .75rem; gap: .5rem; }
  .play-controls label { align-items: start; gap: .25rem; min-width: 0; }
  .play-controls select { width: auto; }
  .play-controls button, .play-frames button { font-size: .75rem; }
  .play-controls .play-control-group { border: 0; padding: 0; margin: 0; }
  .play-controls .play-field-settings { width: 100%; align-items: end; }
  .play-field-settings label { flex: 1 1 0; }
  .play-field-settings select { width: 100%; min-width: 0; max-width: none; padding-inline: .375rem; font-size: .75rem; }
  .play-controls .play-export-controls { margin-left: auto; }
  .play-tools-toggle { display: inline-block; }
  .play-frames select { max-width: 7rem; }
  .play-section-label { width: 100%; }
  .play-frames { padding: .75rem; gap: .5rem; }
  .play-frames .play-control-group { border: 0; padding: 0; margin: 0; }
  .play-frame-edit { margin-left: auto !important; }
}
@media print {
  body header, .page-header a, .page-header button, [data-play-designer], .play-back, .rails-layout-footer { display: none !important; }
  .play-print-frames { display: block; }
  .play-print-frames article { break-after: page; }
  .play-print-frames .play-field { max-height: 70vh; }
}
