/* Shared accessibility layout: text may wrap and panels remain scrollable. */
:is(button,summary,label,.settings-label,.site-menu a){overflow-wrap:anywhere}
:is(dialog,.side-dock,.site-menu) :is(button,input,select,textarea){max-width:100%;min-width:0}
.text-size-setting{display:flex!important;flex-wrap:wrap;align-items:center;gap:10px!important}
.text-size-setting input[type=range]{flex-basis:100%;width:100%;margin:8px 0}
.text-size-setting output{margin-inline-end:auto}
.text-size-setting button{white-space:normal}
.selected-value{display:none}
html[data-large-text=true] .selected-value{display:block;flex:1 1 100%;grid-column:1 / -1;font-size:var(--text-small);line-height:var(--reading-line-height);overflow-wrap:anywhere}
body :is(.settings-surface,.settings-navigation) :is(button,summary,label,.settings-label){font-size:var(--text-small)}
body :is(.settings-surface,.settings-navigation) :is(p,small,.console-note){font-size:var(--text-small)!important}
body :is(.learning-reading,#lessonText,.article-content) :is(p,li){font-size:var(--text-body);line-height:var(--reading-line-height)}
body :is(.catalog-tabs,.catalog-filters,.catalog-families,.public-discover-filters,.site-primary) button{font-size:var(--text-small)}
body :is(.console-head,.settings-page-head){min-width:0}
body :is(.console-head,.settings-page-head) :is(h2,h3){min-width:0;overflow-wrap:anywhere}
body dialog.settings-surface .settings-scroll{min-height:0;overflow:auto}
body dialog.settings-surface .settings-native label{height:auto;flex-wrap:wrap}
body dialog.settings-surface .settings-native select{width:100%}
html[data-large-text=true] body.tool-rail-layout header nav :is(button,#discoverSky){height:auto;min-height:64px;white-space:normal;padding:6px;line-height:1.25}
html[data-large-text=true] body.tool-rail-layout header nav :is(.nav-short,.nav-wide){font-size:var(--text-small);white-space:normal}
html[data-large-text=true] body.tool-rail-layout header{height:auto;min-height:var(--nav-height)}
html[data-large-text=true] body dialog.settings-navigation .settings-quick-grid{grid-template-columns:minmax(0,1fr)}
html[data-large-text=true] body dialog.settings-navigation .settings-quick-caption{white-space:normal;max-width:100%;height:auto}
html[data-large-text=true] body dialog.settings-navigation .settings-quick-presets{flex-wrap:wrap}
html[data-large-text=true] body dialog.settings-navigation .settings-quick-presets button{flex-basis:100%}
html[data-large-text=true] #catalogDialog .console-head{flex-wrap:wrap}
html[data-large-text=true] #catalogDialog .console-head h2{flex:1 1 calc(100% - 60px);order:-1}
html[data-large-text=true] #catalogDialog .console-head .close-console{order:-1}
html[data-large-text=true] .landing-hero h1{overflow-wrap:anywhere;min-width:0}
html[data-large-text=true] .agenda-card-summary{display:block;-webkit-line-clamp:unset;overflow:visible}
html[data-large-text=true] body dialog.settings-surface .date-wheel{grid-template-columns:minmax(0,1fr)}
html[data-large-text=true] .site-header{height:auto;min-height:76px;flex-wrap:wrap}
html[data-large-text=true] .site-menu{max-height:calc(100dvh - var(--nav-offset,76px) - 16px);overflow:auto}
html[data-large-text=true] :is(.site-primary,.site-actions){flex-wrap:wrap}
@media(max-width:760px){
 :root[data-large-text=true]{--nav-height:calc(84px + var(--safe-area-inset-top, env(safe-area-inset-top,0px)))}
 html[data-large-text=true] .site-header .launch{display:none}
 html[data-large-text=true] .site-menu .mobile-primary{display:block}
 html[data-large-text=true] .site-header .site-primary{display:none}
 html[data-large-text=true] .site-header .site-menu{width:min(32rem,calc(100vw - 24px))}
}

/* Enhanced selectors already wrap their selected value. */
html[data-large-text=true] label:has(select[hidden]) .selected-value{display:none}


/* UI safe viewport only: astronomical canvases remain edge to edge. Load last. */
:root{
 --ui-safe-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));
 --ui-safe-right:var(--safe-area-inset-right,env(safe-area-inset-right,0px));
 --ui-safe-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));
 --ui-safe-left:var(--safe-area-inset-left,env(safe-area-inset-left,0px));
 --ui-safe-width:calc(100vw - var(--ui-safe-left) - var(--ui-safe-right));
 --ui-safe-height:calc(100dvh - var(--ui-safe-top) - var(--ui-safe-bottom));
 --ui-safe-center:calc((100% + var(--ui-safe-left) - var(--ui-safe-right))/2);
}
/* A full-height dock must move its border box, not merely pad one child. This
   also protects nested headers, tab bars and actions in either orientation. */
html:not(.astrolab-widget) body dialog:is(#viewSettingsDock,.side-dock,.settings-with-done,.sky-settings,.stellar-settings){
 top:var(--ui-safe-top)!important;right:var(--ui-safe-right)!important;
 bottom:var(--ui-safe-bottom)!important;left:auto!important;
 height:var(--ui-safe-height)!important;max-height:var(--ui-safe-height)!important;
 max-width:var(--ui-safe-width)!important;margin:0!important;
}
@media(max-width:760px) and (orientation:portrait){
 html:not(.astrolab-widget) body dialog:is(#viewSettingsDock,.side-dock,.settings-with-done,.sky-settings,.stellar-settings){left:var(--ui-safe-left)!important;width:var(--ui-safe-width)!important}
}
/* Docks now live within the safe rectangle; these children need ordinary
   spacing, rather than reserving the system insets a second time. */
html:not(.astrolab-widget) body dialog:is(.side-dock,.settings-with-done) .settings-scroll{padding-top:16px!important}
html:not(.astrolab-widget) body dialog:is(.side-dock,.settings-with-done) :is(.settings-done,.moment-done){padding-bottom:12px!important}
/* Native modal centering is otherwise relative to the unsafe full viewport. */
html:not(.astrolab-widget) body dialog:not(.side-dock):not(.settings-with-done):not(.sky-settings):not(.stellar-settings):not(#captureDialog):not(#filmMenu){
 inset:calc(var(--ui-safe-top) + 8px) calc(var(--ui-safe-right) + 8px) calc(var(--ui-safe-bottom) + 8px) calc(var(--ui-safe-left) + 8px)!important;
 max-width:calc(var(--ui-safe-width) - 16px)!important;
 max-height:calc(var(--ui-safe-height) - 16px)!important;margin:auto!important;
}
html:not(.astrolab-widget) body.tool-rail-layout.documentary-playing:not(.documentary-promotional) #appToolbar{top:calc(10px + var(--ui-safe-top))!important}
html:not(.astrolab-widget) body :is(.film-controls,.stellar-controls,.capture-stop){left:var(--ui-safe-center)!important;max-width:calc(var(--ui-safe-width) - 16px)!important}
html:not(.astrolab-widget) body :is(.capture-floating,#filmCurtain>button){right:calc(12px + var(--ui-safe-right))!important}
html:not(.astrolab-widget) body dialog#captureDialog{right:calc(10px + var(--ui-safe-right))!important;max-width:calc(var(--ui-safe-width) - 20px)!important;max-height:calc(var(--ui-safe-height) - 16px)!important}
html:not(.astrolab-widget) body .object-card{max-width:calc(var(--ui-safe-width) - 24px)!important}


/* Film options are compact modals, centred within the same safe rectangle. */
html:not(.astrolab-widget) body dialog#filmMenu{inset:calc(var(--ui-safe-top) + var(--ui-safe-height)*.5) auto auto var(--ui-safe-center)!important;transform:translate(-50%,-50%)!important;width:min(380px,calc(var(--ui-safe-width) - 40px))!important;height:auto!important;max-height:calc(var(--ui-safe-height) - 24px)!important;margin:0!important}

/* The same square remains completely visible in a short landscape viewport. */
.editorial-figure-host {
  inline-size: min(100%, 36rem, max(16rem, 76dvh));
  margin: 1.25rem auto;
}
.editorial-article { min-inline-size: 0; }
.editorial-article h1, .editorial-article h2, .editorial-article a { overflow-wrap: break-word; }
.editorial-article a { color: var(--accent, #a9d9e9); }
.editorial-figure-description { margin: .5rem 0 1rem; }
.editorial-figure-description summary { cursor: pointer; padding-block: .55rem; }
