/* Local main replaces source Layout RouterView container: exact child owns its header.
   These are host allocation adapters, not copied MovieHome rules. No footer/guide
   height is subtracted on these hideFooter source declarations. */
html[data-layout=source] .layout:has(>.main>.source-video-parent){position:relative;height:100dvh;min-height:0;overflow:hidden}
html[data-layout=source] .main:has(>.source-video-parent){padding:0!important;min-height:0;height:100%;flex:1;overflow:hidden}
/* video-mine is an x07 active root name: Layout shows its nav despite hideFooter.
   The local fixed chrome is allocated here instead of source footer padding. */
html[data-layout=source][data-primary=true] .main:has(>[data-source-video-parent=mine]){height:calc(100dvh - var(--source-nav-height));flex:none;margin:0}
html[data-layout=source][data-primary=true][data-download=true] .main:has(>[data-source-video-parent=mine]){height:calc(100dvh - var(--source-nav-height) - var(--source-guide-height) - var(--source-rem)*.02667)}
html[data-layout=source] .layout:has(>.main>[data-source-video-parent=mine])>.source-download-guide{position:absolute;margin:0;bottom:var(--source-nav-height);left:0;right:0}
/* Existing discovery/movie/library roots own their source header in place.
   Local fixed Layout chrome consumes space; these are allocation adapters. */
html[data-layout=source] .layout:has(>.main>[data-source-movie-parent]){position:relative;height:100dvh;min-height:0;overflow:hidden}
html[data-layout=source] .main:has(>[data-source-movie-parent]){padding:0!important;margin:0!important;width:100%;height:100%;min-height:0;flex:1;overflow:hidden}
html[data-layout=source][data-primary=true] .main:has(>[data-source-movie-parent]){height:calc(100dvh - var(--source-nav-height));flex:none}
html[data-layout=source][data-primary=true][data-download=true] .main:has(>[data-source-movie-parent]){height:calc(100dvh - var(--source-nav-height) - var(--source-guide-height) - var(--source-rem)*.02667)}
html[data-layout=source] .layout:has(>.main>[data-source-movie-parent])>.source-download-guide{position:absolute;margin:0;bottom:var(--source-nav-height);left:0;right:0}
