/* --- Presentation mode (dashboard/js/05-present.js) --- */
/* Shows the report's own live view at 150% with the persistent chrome tucked
   off-canvas -- no synthetic slide deck. .app-shell is the positioning context
   so the peeked panels scale and clip correctly under its `zoom`. */
[data-present="1"] .app-shell{position:relative;zoom:1.5}
[data-present="1"] .report-loading{display:none !important}
/* Off-canvas rail/side leaves a sliver of their dark header-bg showing behind
   the report's rounded top-left corner; repaint it to match the page. */
[data-present="1"] .rmain{background:var(--bg-page)}

[data-present="1"] .rail{position:absolute;left:0;top:0;height:100%;z-index:400;transform:translateX(-100%);transition:transform .18s ease}
[data-present="1"] .rside{position:absolute;left:66px;top:0;height:100%;z-index:400;transform:translateX(-316px);transition:transform .18s ease}
[data-present="1"][data-peek="1"] .rail,[data-present="1"][data-peek="1"] .rside{transform:none;box-shadow:6px 0 24px rgba(0,0,0,0.35)}

/* Fixed physical hot zone (unaffected by the zoom above) that peeks the chrome
   back in; the gradient sliver is the only visible hint it's there. */
.present-hotzone{position:fixed;left:0;top:0;width:14px;height:100%;z-index:401;background:linear-gradient(90deg,rgba(255,255,255,0.14),transparent)}

@media print{
  .rail, .report-loading, #atlasToast, .af-overlay, .as-overlay{display:none !important}
  .rside{display:none !important}
  .rmain, .rmain-body{overflow:visible !important;height:auto !important}
  .card{break-inside:avoid}
  body, .app-shell{background:#fff !important}
}
