/* Native fullscreen and in-page fallback use the same accessible classroom layout. */
body.ai-atelier.ai-presenting {
  --ai-header-height: 68px;
  --ai-footer-height: 73px;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  overflow: hidden;
}
body.ai-atelier.ai-presenting > .site-header { position: relative; top: auto; min-width: 0; z-index: 55; }
body.ai-atelier.ai-presenting :is(.fl-layout,.lesson-layout,.lab-layout) { display: block; min-height: 0; overflow: hidden; }
body.ai-atelier.ai-presenting :is(.fl-main,.lesson-main,.lab-main) {
  position: relative;
  width: 100%;
  max-width: 2000px;
  height: 100%;
  margin-inline: auto;
  padding: clamp(18px,2.1vh,34px) clamp(22px,3.2vw,70px) 32px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable both-edges;
  scroll-padding-block: 24px;
  display: flex;
  flex-direction: column;
  justify-content: safe center;
}
body.ai-atelier.ai-presenting :is(.fl-main,.lesson-main,.lab-main) > * { flex-shrink: 0; }
body.ai-atelier.ai-presenting :is(.fl-controls,.lesson-controls,.lab-controls) {
  position: relative;
  inset: auto;
  width: 100%;
  z-index: 60;
  min-height: 73px;
  padding: 12px clamp(16px,2.5vw,48px);
}
body.ai-atelier.ai-presenting :is(#lesson-menu,#toggle-outline,#lab-menu) { display: block; min-height: 44px; }
body.ai-atelier.ai-presenting :is(.fl-outline,.lesson-outline,.lab-sidebar) {
  display: none;
  position: fixed;
  z-index: 58;
  top: var(--ai-header-height);
  bottom: auto;
  left: 0;
  width: min(320px,86vw);
  height: calc(100dvh - var(--ai-header-height) - var(--ai-footer-height));
  min-height: 0;
  align-self: stretch;
  max-height: none;
  padding: 22px 18px 28px;
  overflow: auto;
  overscroll-behavior: contain;
  border-right: 1px solid #6482a6;
  box-shadow: 28px 0 90px #0009;
}
body.ai-atelier.ai-presenting.fl-nav-open .fl-outline,
body.ai-atelier.ai-presenting.outline-open .lesson-outline,
body.ai-atelier.ai-presenting.lab-nav-open .lab-sidebar { display: block; }
body.ai-atelier.ai-presenting :is(.fl-heading,.slide-heading,.lab-heading) { margin: 14px 0 20px; }
body.ai-atelier.ai-presenting :is(.fl-heading,.slide-heading,.lab-heading) h1 { font-size: clamp(31px,2.6vw,49px); line-height: 1.4; }
body.ai-atelier.ai-presenting :is(.fl-heading,.slide-heading,.lab-heading) > p:last-child { font-size: clamp(17px,1.2vw,23px); }
body.ai-atelier.ai-presenting :is(.fl-stage,.visual-board,.lab-stage) { height: auto; max-height: none; overflow: visible; padding: clamp(20px,1.7vw,34px); }
body.ai-atelier.ai-presenting .fl-main:has(.fl-break:not([hidden])) .fl-meta { padding-right: 0; }
body.ai-atelier.ai-presenting .fl-break { position: static; white-space: normal; margin: 12px 0; padding: 10px 16px; }
body.ai-atelier.ai-presenting .fl-break strong { font-size: 15px; }
body.ai-atelier.ai-presenting .fl-break span { font-size: 12px; }
body.ai-atelier.ai-presenting .fl-resume { position: static; margin: 10px 0; max-width: none; }
body.ai-atelier.ai-presenting .fl-control-hint { visibility: visible; }
body.ai-atelier.ai-presenting :is(.fl-teacher,.teacher-notes,.lab-teacher) { overflow: visible; max-height: none; }
@media (min-width:1600px) {
  body.ai-atelier.ai-presenting :is(.fl-stage,.lab-stage) { font-size: 20px; }
  body.ai-atelier.ai-presenting :is(.fl-stage,.lab-stage) button { font-size: 17px; }
  body.ai-atelier.ai-presenting :is(.ex-panel p,.visual-board p) { font-size: 18px; }
  body.ai-atelier.ai-presenting .ex-note { font-size: 16px !important; }
  body.ai-atelier.ai-presenting .ov-flow { min-height: 210px; }
  body.ai-atelier.ai-presenting .ov-flow-node .ov-symbol { width: 62px; height: 62px; margin-bottom: 12px; }
  body.ai-atelier.ai-presenting .ov-flow-node strong { font-size: 22px; }
  body.ai-atelier.ai-presenting .ov-flow-node small { font-size: 15px; }
  body.ai-atelier.ai-presenting .ov-history .ex-question { font-size: 27px; }
  body.ai-atelier.ai-presenting .ov-timeline strong { font-size: 22px; }
  body.ai-atelier.ai-presenting .ov-timeline small { font-size: 14px; }
  body.ai-atelier.ai-presenting .ov-history-map { max-height: 260px; }
}
@media (max-width:800px) {
  body.ai-atelier.ai-presenting :is(.fl-main,.lesson-main,.lab-main) { padding: 20px 4vw 28px; }
  body.ai-atelier.ai-presenting :is(.fl-control-hint,.control-hint,#lab-bottom-note,.key-hint) { display: none; }
  body.ai-atelier.ai-presenting :is(.fl-heading,.slide-heading,.lab-heading) h1 { font-size: 29px; }
  body.ai-atelier.ai-presenting :is(.fl-heading,.slide-heading,.lab-heading) > p:last-child { font-size: 15px; }
  body.ai-atelier.ai-presenting :is(.fl-stage,.visual-board,.lab-stage) { padding: 16px; }
}
@media (max-width:540px) {
  body.ai-atelier.ai-presenting :is(.fl-controls,.lesson-controls,.lab-controls) { gap: 7px; padding: 10px 4vw; }
  body.ai-atelier.ai-presenting :is(.fl-heading,.slide-heading,.lab-heading) h1 { font-size: 27px; }
}
@media print {
  body.ai-atelier.ai-presenting { position: static; display: block; height: auto; overflow: visible; }
  body.ai-atelier.ai-presenting :is(.fl-layout,.lesson-layout,.lab-layout,.fl-main,.lesson-main,.lab-main) { height: auto; overflow: visible; }
}
