/* One fixed presentation canvas in either orientation. Only viewer chrome
   and dialogs respond to the device; slide components query the canvas. */
.portrait-hint { display:none; }
@media (max-width:760px) {
  .chrome-top,.chrome-bottom { height:64px; }
  .keyboard-hint { display:none; }
  .nav-button,.icon-button { width:44px; height:44px; }
  .language-toggle { height:44px; }
  .prompt-dialog { width:calc(100% - 24px); }
  .requirement-dialog { width:calc(100% - 24px); max-width:calc(100% - 24px); height:90%; max-height:90%; }
  .requirement-document-scroll { padding:24px 20px; }
  .requirement-doc-heading h2 { font-size:28px; }
  .requirement-section { grid-template-columns:25px 1fr; gap:8px; padding:20px 0; }
  .requirement-section h3 { font-size:18px; }
  .requirement-section p { font-size:15px; }
  .requirement-dialog-actions { flex-wrap:wrap; padding:14px; }
  .requirement-dialog-actions>span { width:100%; font-size:12px; }
  .requirement-dialog-actions button { font-size:13px; padding:10px 12px; min-height:44px; }
  .requirement-file-name { font-size:15px; }
}
@media (max-width:760px) and (orientation:portrait) {
  .portrait-hint { position:fixed; top:96px; left:24px; right:24px; z-index:10; display:flex; gap:12px; align-items:center; justify-content:center; max-width:420px; margin:auto; color:var(--muted); pointer-events:none; }
  .portrait-hint p { font-size:14px; line-height:1.7; max-width:280px; }
  .rotate-device { flex:none; display:grid; place-items:center; width:32px; height:44px; border:1px solid var(--cyan); border-radius:7px; color:var(--cyan); font-size:24px; }
}
@media (max-height:560px) and (orientation:landscape) {
  .chrome-top,.chrome-bottom { height:50px; }
  .keyboard-hint { display:none; }
  .nav-button,.icon-button { width:40px; height:40px; }
}
