.cbo-app-dialog { box-sizing: border-box; width: min(92vw, 480px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: auto; border: 1px solid #bdb4a2; border-radius: 20px; padding: 24px; background: #faf5eb; color: #30453d; font: 16px/1.65 system-ui, sans-serif; box-shadow: 0 16px 60px #17261f33; }
.cbo-app-dialog::backdrop { background: #162a2466; }
.cbo-app-dialog h2 { margin: 0 0 12px; font-size: 23px; }
.cbo-app-dialog button { display: block; width: 100%; min-height: 44px; margin-top: 12px; padding: 9px 12px; color: #30453d; background: #fffdf7; border: 1px solid #c3c4b5; border-radius: 12px; font: inherit; cursor: pointer; }
.cbo-app-dialog img { vertical-align: middle; }
.cbo-app-dialog [hidden], [hidden].cbo-app-dialog { display: none; }
.cbo-app-dialog button:focus-visible, .cbo-play-toolbar button:focus-visible { outline: 3px solid #8670b3; outline-offset: 2px; }
.cbo-app-entry { min-height: 44px; border: 1px solid #bdb4a2; border-radius: 12px; background: #fffdf7; color: #30453d; padding: 8px 12px; font: inherit; cursor: pointer; }
.cbo-play-page { margin: 0; width: 100%; height: 100vh; height: 100dvh; display: flex; flex-direction: column; overflow: hidden; background: #faf5eb; color: #30453d; font-family: system-ui, sans-serif; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); box-sizing: border-box; }
.cbo-play-toolbar { display: flex; flex: 0 0 44px; gap: 8px; align-items: center; padding: 0 6px; border-bottom: 1px solid #dbd7ca; }
.cbo-play-toolbar strong { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 14px; text-align: center; }
.cbo-play-toolbar button { min-height: 44px; min-width: 44px; border: 0; background: transparent; color: inherit; font: inherit; font-size: 14px; cursor: pointer; }
#play-stage { flex: 1; min-height: 0; display: flex; flex-direction: column; }
#play-frame { display: block; border: 0; width: 100%; flex: 1; min-height: 0; background: #faf5eb; }
#play-status { margin: 0; padding: 8px 12px; font-size: 14px; }
