/* Shared screen layout. Reading surfaces expand; canvases keep their coordinates. */
:root{--page-gutter:clamp(18px,2.5vw,64px);--reading-size:18px;--reading-line:1.85}
@media(min-width:1600px){:root{--reading-size:20px}}
html:has(.school-platform-brand){font-size:var(--reading-size)}
body:not([data-local-lab]):not(.museum-body){margin:0;min-height:100svh;font-size:var(--reading-size);line-height:var(--reading-line)}
body :is(.p-main,.mirror-pro-main,.map-main,.ws-wrap,.gzeic-section,.gzeic-hero-inner,.gzeic-footer-inner,.local-reference-note){width:100%;max-width:none!important;box-sizing:border-box;margin-inline:auto;padding-inline:var(--page-gutter)!important}
body main.page-main--with-footer{width:100%;max-width:none!important;box-sizing:border-box}
body main.page-main--with-footer:not(.no-padding):not(:has(.docs-page-container)){padding-inline:var(--page-gutter)!important}
body .blog-container{width:100%;max-width:none!important;box-sizing:border-box}
body .post-full__body{grid-template-columns:minmax(0,1fr) 300px}
body .post-full__column{min-width:0;max-width:none!important}
body .post-full__content :is(p,li){font-size:var(--reading-size);line-height:1.9;max-width:90ch}
body .local-reference-note{font-size:17px;line-height:1.8}
body :is(.p-header__in,.gzeic-header-inner,.mirror-pro-header,.cmap-header-inner,.landing-header__container,.global-footer__container){width:100%;max-width:none!important;padding-inline:var(--page-gutter)!important;box-sizing:border-box}
body :is(.p-main,.mirror-pro-main,.map-main,.ws-wrap){padding-top:clamp(28px,3vw,48px);padding-bottom:64px}
body :is(.p-footer,.mirror-pro-footer,.gzeic-footer){max-width:none;width:100%;box-sizing:border-box;font-size:16px;line-height:1.8}
body :is(.p-nav,.gzeic-nav,.mirror-pro-header nav,.cmap-nav) a{font-size:18px!important;line-height:1.5;padding-block:10px!important}
body :is(.p-header__in,.gzeic-header-inner,.mirror-pro-header,.cmap-header-inner){min-height:128px;gap:10px 24px;padding-block:18px}
body .school-platform-brand img{width:290px;height:auto;max-height:52px}
body .school-unit{font-size:26px;line-height:1.4}
body .school-unit small{font-size:13px;letter-spacing:.4px}
body .platform-ui-button{font-size:17px;line-height:1.5;padding:10px 14px;min-height:44px}
body :is(.p-h1,.map-heading h1,.mirror-lesson-main h1){font-size:clamp(32px,2.4vw,46px);line-height:1.4;letter-spacing:0;margin:12px 0 26px}
body :is(.p-card h2,.p-tile h3,.study-card h2,.mirror-course-card h3,.map-department h2,.ws-card h2){font-size:clamp(23px,1.5vw,28px);line-height:1.55}
body :is(.p-card h3,.map-program h3,.map-course-card h4,.mirror-pro-main h3){font-size:21px;line-height:1.6}
body :is(.p-main,.mirror-pro-main,.ws-wrap) :is(p,li,dd,dt,summary,label,legend){font-size:var(--reading-size);line-height:var(--reading-line)}
body :is(.p-eyebrow,.mirror-pro-eyebrow,.p-note,.mirror-pro-caption,.mirror-pro-callout p){font-size:16px!important;line-height:1.8}
body :is(.p-main,.mirror-pro-main,.ws-wrap) :is(small,.p-tag){font-size:16px;line-height:1.65}
body :is(.p-card,.p-tile,.mirror-course-card,.mirror-exercise,.ws-card){padding:clamp(22px,1.7vw,34px);min-width:0;box-sizing:border-box}
body :is(.p-main,.mirror-pro-main,.ws-wrap) :is(input,select,textarea,button){font-size:18px;line-height:1.6;max-width:100%;box-sizing:border-box}
body :is(.p-main,.mirror-pro-main,.ws-wrap) button{min-height:44px}
body :is(.p-main,.mirror-pro-main,.ws-wrap) input:is([type=checkbox],[type=radio]){width:19px;height:19px;min-height:0;flex-shrink:0}
body :is(.p-main,.mirror-pro-main,.ws-wrap) :is(th,td){font-size:18px;line-height:1.75;padding:14px 16px}
body :is(.p-main,.mirror-pro-main,.ws-wrap) pre{max-width:100%;box-sizing:border-box;overflow:auto;font-size:18px;line-height:1.8}
body .mirror-pro-lead,body .map-heading p{max-width:90ch;font-size:var(--reading-size)}
body .mirror-course-grid{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:24px}
body .template-grid{grid-template-columns:repeat(auto-fit,minmax(min(350px,100%),1fr));gap:24px}
body .p-grid{gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}
.guide-sections,.guided-details{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.guide-sections>.p-card,.guided-details>.p-card{margin:0}
.guided-details dt{font-weight:650;margin-top:14px}.guided-details dd{margin-left:0;margin-bottom:12px}
.guided-details .p-tile{font-size:19px;line-height:1.7}
.map-navigation,.learning-return{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0;margin:0 0 20px;line-height:1.7;font-size:17px}
.map-navigation span,.learning-return span{overflow-wrap:anywhere;min-width:0}.map-navigation button{min-height:44px}.map-navigation button:disabled{opacity:.45;cursor:default}.learning-return a{font-weight:650;padding:8px 14px;border:1px solid #7d9fb9;border-radius:5px;text-decoration:none}.learning-return span{font-size:16px}
body>.learning-return{padding-inline:var(--page-gutter);box-sizing:border-box}
body[data-local-lab] .learning-return{padding:0;margin:0 0 6px;font-size:15px}body[data-local-lab] .learning-return a{padding:3px 8px}body[data-local-lab] .learning-return span{font-size:14px}
body.museum-body .learning-return{padding:0;margin:0;font-size:16px}body.museum-body .learning-return span{display:none}
body .gzeic-hero h1{font-size:clamp(34px,3vw,56px)!important}
body .gzeic-section :is(p,li,.gzeic-task-desc,.gzeic-course-card-mini p,.gzeic-lab-card p,.gzeic-calc-form label){font-size:var(--reading-size)!important;line-height:1.85}
body .gzeic-section :is(.gzeic-stat-label,.gzeic-lab-tags span,.gzeic-sec-badge){font-size:16px!important}
body .gzeic-section :is(button,input,select,.gzeic-lib-tab,.gzeic-btn){font-size:18px!important}
body .gzeic-sec-title{font-size:30px!important;line-height:1.5}
body .gzeic-lab-grid{gap:24px}
/* Reference pages keep the rail and the experiment preview beside a wider article. */
body :is(.docs-detail-grid,.template-detail-grid,.docs-index-shell,.docs-hero,.docs-lab-tabs,.docs-guided-band){width:calc(100% - var(--page-gutter)*2)!important;max-width:none!important;box-sizing:border-box;margin-inline:auto}
body .template-article{min-width:0;width:100%!important;max-width:none!important}
body .template-article :is(p,li){font-size:var(--reading-size);line-height:1.9}
body .docs-article{min-width:0;width:100%!important;max-width:none!important}
body .docs-article article{width:100%;max-width:none!important}
body .docs-article :is(p,li,dd,dt){font-size:var(--reading-size)!important;line-height:1.9}
body .docs-article :is(p,ul,ol){max-width:88ch}
body .docs-article :is(th,td){font-size:17px;line-height:1.75}
body :is(.docs-rail,.docs-bench) :is(p,a,button,summary,label){font-size:16px!important;line-height:1.7}
body :is(.docs-catalog-card__description,.docs-lab-tab__copy,.docs-breadcrumbs){font-size:16px!important;line-height:1.7}
body .docs-catalog-card__title{font-size:21px!important}
body .docs-bench-card__header{font-size:16px!important}
/* Graph UI and card geometry are sized together in course-map.js. */
body .map-layout{grid-template-columns:minmax(0,1fr) 400px;gap:28px}
body .map-toolbar label,body .map-inspector :is(p,li,summary,h3),body .map-course-card p{font-size:18px;line-height:1.8}
body .map-inspector h2{font-size:26px;line-height:1.5}
body .map-chips button,body #map-node-list button{font-size:16px!important;padding:8px 10px!important}
body .map-inspector button,body .map-graph-toolbar,body .map-view-controls,body .map-legend,body .map-graph-hint{font-size:17px;line-height:1.7}
body .map-view-controls output{font-size:16px}
body svg .map-node text{font-size:18px}
body .map-canvas-scroll{height:clamp(560px,70vh,900px)}
body .map-layout.map-expanded{grid-template-columns:1fr}
body .bi-toggle button,body .bi-toggle .mirror-pro-help{font-size:15px;line-height:1.5}
/* Fullscreen editors and 3D scenes retain the space needed by their canvases. */
body[data-local-lab] :is(.simulator-header,.ws-panel,.inspector-panel){font-size:16px}
body[data-local-lab] :is(.ws-panel,.inspector-panel) :is(label,button,select,input,.ws-sec-h,.ip-section__head){font-size:16px!important;line-height:1.6}
body[data-local-lab] .mat-mdc-menu-item-text{font-size:16px!important}
body[data-local-lab] :is(#local-guided,#local-course){width:min(480px,calc(100vw - 32px));max-width:none;font:18px/1.8 system-ui,"Microsoft YaHei",sans-serif;box-sizing:border-box;padding:22px;max-height:calc(100svh - 220px)}
body[data-local-lab] :is(#local-guided,#local-course) :is(p,li,label,button,textarea,summary){font-size:18px;line-height:1.8}
body[data-local-lab] .local-dialog:not(#local-guided):not(#local-course){font-size:18px;width:min(780px,calc(100vw - 32px));max-width:none;box-sizing:border-box}
body[data-local-lab] #local-labs{font-size:15px;line-height:1.6}
body[data-local-lab] #local-status{font-size:14px}
body.museum-body :is(.platform-controls,.exhibit-header){font-size:16px}
body.museum-body :is(.platform-brand__neighbours,.platform-brand__name){font-size:16px!important}
@media(min-width:1500px){.guide-sections,.guided-details{grid-template-columns:repeat(2,minmax(0,1fr))}body .docs-detail-grid{grid-template-columns:240px minmax(0,1fr) 320px!important;gap:32px}body .mirror-lesson-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}body .mirror-lesson-main>:not(section),body .mirror-lesson-main>.mirror-completion{grid-column:1/-1}body .mirror-lesson-main>section{margin-top:0;padding:28px;border:1px solid #71869b55;min-width:0;box-sizing:border-box}}
@media(min-width:1800px){body :is(.p-header__in,.gzeic-header-inner,.mirror-pro-header,.cmap-header-inner){grid-template-columns:auto minmax(0,1fr) auto;min-height:104px}body :is(.p-header__in,.gzeic-header-inner,.mirror-pro-header,.cmap-header-inner)>nav{grid-column:2;grid-row:1;justify-content:center;gap:20px!important}body :is(.p-header__in,.gzeic-header-inner,.mirror-pro-header,.cmap-header-inner)>.platform-ui-button:not(.platform-nav-toggle){grid-column:3}}
@media(max-width:1100px){body .map-layout{grid-template-columns:minmax(0,1fr) 330px;gap:18px}body .school-platform-brand img{width:260px}body .school-unit{font-size:23px}}
@media(max-width:850px){body .map-layout{grid-template-columns:minmax(0,1fr)}body .map-inspector{max-height:none;position:static}body .mirror-course-grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}}
@media(min-width:1500px){body .template-detail-grid{grid-template-columns:240px minmax(0,1fr)!important;gap:32px}}
@media(max-width:1000px){body .post-full__body{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){:root{--page-gutter:18px}body :is(.p-header__in,.gzeic-header-inner,.mirror-pro-header,.cmap-header-inner){min-height:100px;padding-block:16px}body .school-platform-brand img{width:210px}body .school-unit{font-size:20px;padding-left:12px}body .school-unit small{font-size:11px;letter-spacing:0}body :is(.p-nav,.gzeic-nav,.mirror-pro-header nav) a{font-size:17px!important}body .p-h1{font-size:32px}body :is(.p-card,.mirror-exercise,.ws-card){padding:22px 18px}body :is(.p-main,.mirror-pro-main,.ws-wrap) :is(th,td){font-size:16px;padding:12px}body .p-grid{grid-template-columns:minmax(0,1fr)}body .map-toolbar label{min-width:0;flex:1 1 100%}body .map-inspector{padding:20px}body .map-heading h1{font-size:30px}body[data-local-lab] #local-labs{font-size:14px}body[data-local-lab] :is(#local-guided,#local-course){font-size:17px;padding:18px;max-height:60svh}body[data-local-lab] :is(#local-guided,#local-course) :is(p,li,label,button,textarea,summary){font-size:17px}}
@media(max-width:390px){body .school-platform-brand{gap:8px}body .school-platform-brand img{width:175px}body .school-unit{font-size:18px}body .school-unit small{font-size:10px}}
@media(max-width:360px){body .school-platform-brand img{width:145px}body .school-unit{font-size:16px}body .school-unit small{font-size:9px;max-width:105px;white-space:normal}}
@media print{body :is(.p-main,.mirror-pro-main,.ws-wrap,.gzeic-section){max-width:100%!important;padding:0!important}.guide-sections,.guided-details{display:block}body{font-size:11pt!important}}
