/* Only Live's temporary loading hosts. Settled screens reserve no space. */
.nyne-route-bar{display:none}
body:has(main[data-source="live"]) .topbar>.nyne-route-bar{display:block;position:absolute;left:0;right:0;bottom:0;height:3px;z-index:1;pointer-events:none}
main[data-source="live"]>.nyne-route-loading{flex:none;min-width:0;width:100%;padding:16px 0;box-sizing:border-box}
main[data-source="live"] .nyne-route-back{display:grid;place-items:center;width:36px;height:36px;min-height:36px;flex:none;margin:0;padding:0;border:0;border-radius:50%;background:var(--surface);color:var(--action-ink);box-shadow:none;cursor:pointer}
main[data-source="live"] .nyne-route-back svg{width:16px;height:16px}
main[data-source="live"] .nyne-route-skeleton{pointer-events:none}
main[data-source="live"] .nyne-photo-skeleton{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}

/* This marker is set only by the Live photo owner, including full-screen planes.
   Visibility preserves every box/label's geometry and prevents premature taps. */
.review-image-plane.nyne-photo-pending .sheet-annotation,
.review-image-plane.nyne-photo-pending .sheet-annotation *{visibility:hidden!important}

/* Reserve only the in-flight test header, including a cold entry from Tests. */
body.compact-journey-app.nyne-test-route-loading:has(main[data-source="live"]){--app-chrome-height:calc(123px + env(safe-area-inset-top,0px))}
body.compact-journey-app.nyne-test-route-loading:has(main[data-source="live"]) .mp-app-header{min-height:calc(123px + env(safe-area-inset-top,0px))}

/* Keep the existing full-width skeleton below the shared Back row. */
main[data-source="live"] .nyne-route-loading:has(>.nyne-route-back)>.nyne-route-skeleton{grid-column:1/-1;margin-top:12px}
