/**
 * @file
 * @brief Responsive, explicitly opted-in playtest session and private owner roster.
 * @date 2026-10-19
 */
.playtest-page section { margin: 24px 0; }
.playtest-page h2 { margin-bottom: 10px; }
.playtest-page h3 { margin: 18px 0 10px; }
.playtest-page label { display: grid; gap: 7px; margin: 12px 0; font-weight: 600; }
.playtest-page input, .playtest-page textarea, .playtest-page select { box-sizing: border-box; width: 100%; border-radius: 8px; border: 1px solid #6a959a; padding: 10px; background: #0a1b23; color: #f4faf7; font: inherit; }
.playtest-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.playtest-page .playtest-confirm { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; }
.playtest-confirm input { width: 20px; height: 20px; flex: 0 0 20px; }
.playtest-page .button { margin: 6px 8px 6px 0; min-height: 44px; }
.playtest-page button:disabled { opacity: .55; cursor: default; }
.playtest-page [hidden] { display: none !important; }
.playtest-status, .playtest-page [data-owner-status] { border-left: 3px solid #a8dfd3; padding: 12px; background: #102730; }
.playtest-roster article, .playtest-page [data-my-record] article { padding: 14px; margin: 10px 0; border: 1px solid #4d7378; border-radius: 9px; background: #102730; overflow-wrap: anywhere; }
.playtest-roster label { font-weight: 400; }
.playtest-roster textarea { max-width: 100%; }
.playtest-footer { border-top: 1px solid #4d7378; padding-top: 18px; font-size: 0.95rem; }
.playtest-page :focus-visible { outline: 3px solid #ffdc93; outline-offset: 3px; }
@media (max-width: 600px) { .playtest-fields { grid-template-columns: 1fr; } }
