html{height:100%}body.embed-page{height:100%;margin:0;font-size:16px;overflow:auto}.embed-page main{height:var(--app-height,100%);min-height:0;padding:8px;display:flex;flex-direction:column;gap:4px;max-width:none;width:100%}.embed-page main>header{flex:none}.embed-page h1{font-size:20px;margin:2px 0}.embed-page #test-content{flex:1;min-height:0;overflow:auto;border:0;background:none;padding:0;margin:0}.embed-page [hidden]{display:none!important}.embed-page #class-details{margin:0 0 8px}.embed-page #class-details section{border:0;background:none;padding:0;margin:4px 0}.embed-page summary{font-size:14px;min-height:44px;padding:10px 0;cursor:pointer}.embed-page form{margin:0;max-width:none}.embed-page #join{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}.embed-page #join p{grid-column:1/-1;font-size:12px;order:1;margin:0}.embed-page label{margin:0;min-width:0}.embed-page input{min-width:0}.embed-page #viewing-area{border:0;padding:0;margin:8px 0 0;background:#fff;min-width:0;min-height:0}.embed-page .viewer-tools{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:4px 6px;min-width:0}.embed-page #status{flex:1;max-width:none;min-width:0;font-size:13px;line-height:1.3;padding:6px 8px;margin:0;border-left:3px solid #62746c;background:#f4f0e9}.embed-page #status[data-state=connected]{border-color:#28734e;background:#e7f3eb}.embed-page #status[data-state=error]{border-color:#a32e25;background:#fff0ee}.embed-page #status[data-state=joining]{border-color:#9b6c1c;background:#fff6df}.embed-page #fullscreen{flex:none;width:auto;min-height:44px;padding:6px 10px;font-size:13px}.embed-page #fullscreen-note{font-size:12px;margin:0;padding:0 8px}.embed-page #fullscreen-note:empty{display:none}.embed-page #viewer{width:100%;height:60vh;min-height:240px;border:0;display:block}.embed-page.viewing #test-content{display:flex;flex-direction:column;overflow:visible}.embed-page.viewing #class-details{flex:none;max-height:none;overflow:visible}.embed-page.viewing #viewing-area{display:flex;flex-direction:column;flex:1;min-height:180px}.embed-page.viewing #viewer{flex:1;min-height:0;height:0}.embed-page.viewing main>header,.embed-page.viewing main>p:last-of-type{display:none}.embed-page #viewing-area:fullscreen{width:100%;height:100%;margin:0;background:#fff;display:flex;flex-direction:column;padding:0}.embed-page #viewing-area:fullscreen #viewer{flex:1;height:0;min-height:0}.embed-page main>p:last-of-type{font-size:12px;margin:0}@media(max-width:600px){.embed-page main{padding:4px}.embed-page #join{grid-template-columns:1fr}.embed-page #join p{order:0}.embed-page h1{font-size:18px}.embed-page .viewer-tools{padding:2px;gap:4px}.embed-page #status{font-size:12px}}@media(max-height:420px){.embed-page .viewer-tools{padding:0}.embed-page #status{padding:4px}.embed-page summary{padding:4px 0;min-height:32px}.embed-page.viewing #viewing-area{min-height:140px}}

@media (max-width:600px), (max-width:1000px) and (pointer:coarse){
 .embed-page.viewing:not(.content-height) #class-details[open] ~ #viewing-area:not(:fullscreen){
  flex:none;
  height:var(--mobile-viewer-height);
  min-height:var(--mobile-viewer-height);
 }
}
/* Enabled only after a validated parent handshake; no viewport-height feedback. */
html:has(body.content-height){height:auto}.embed-page.content-height{height:auto;overflow:visible}.embed-page.content-height main{height:auto;min-height:0;display:block}.embed-page.content-height #test-content,.embed-page.content-height.viewing #test-content{display:block;overflow:visible;min-height:0}.embed-page.content-height.viewing #viewing-area:not(:fullscreen){display:flex;flex:none;height:var(--host-viewer-height);min-height:0}.embed-page.content-height #class-details{max-height:none;overflow:visible}.embed-page.content-height #viewing-area:fullscreen{height:100%;min-height:0}.embed-page.content-height:not(.viewing) #viewing-area{height:auto;min-height:0}.embed-page.content-height #viewer{min-height:0}
/* Joining screens can be taller than the connected workout viewport. */
.embed-page.content-height.viewing #viewing-area[data-state=joining]:not(:fullscreen){height:auto;min-height:var(--host-viewer-height)}
.embed-page.content-height.viewing #viewing-area[data-state=joining]:not(:fullscreen) #viewer{flex:none;height:var(--joining-frame-height,var(--host-viewer-height));min-height:0}
