/* Always-visible course chooser: works on desktop, touch devices and installed PWAs */
.stru-global-nav{position:sticky;top:0;z-index:170;background:rgba(246,250,251,.97);border-bottom:1px solid #c6d9e3;min-height:60px;display:flex;align-items:center;gap:14px;padding:8px clamp(12px,2vw,24px);box-shadow:0 3px 15px rgba(25,56,78,.09);font:700 14px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;box-sizing:border-box}
.stru-global-nav *{box-sizing:border-box}
.stru-global-nav a.stru-course-home{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#154d70;color:#fff;text-decoration:none;border:2px solid transparent;padding:10px 16px;border-radius:12px;min-height:46px;white-space:nowrap;font-weight:850;box-shadow:0 2px 7px #16395022}
.stru-global-nav a.stru-course-home:hover{background:#0a3c5d}
.stru-global-nav a.stru-course-home:focus-visible{outline:3px solid #36a9e0;outline-offset:2px}
.stru-global-nav .stru-course-name{color:#305570;font-weight:800;letter-spacing:.015em;min-width:0}
.stru-global-nav .stru-course-note{margin-left:auto;color:#668293;font-weight:600;font-size:12px}
@media(max-width:700px){.stru-global-nav{min-height:56px;padding:5px 10px;gap:10px}.stru-global-nav a.stru-course-home{padding:8px 12px;min-height:44px}.stru-global-nav .stru-course-note{display:none}.stru-global-nav .stru-course-name{font-size:12px}}
@media print{.stru-global-nav{display:none!important}}
/* The sticky mobile header must sit under the persistent global menu */
.mobilehead{top:60px!important}
@media(max-width:700px){.mobilehead{top:56px!important}}
/* PWA course sidebars must be fully scrollable even when the global menu is visible */
@media(min-width:1101px){.sidebar{top:60px!important;height:calc(100dvh - 60px)!important}}
@media(max-width:1100px){.sidebar{top:60px!important;height:calc(100dvh - 60px)!important}}
/* Havo side navigation and top app header live below the global nav */
.top{top:60px!important}
.side{top:147px!important;height:calc(100dvh - 165px)!important}
@media(max-width:1180px){.side{top:127px!important;height:calc(100dvh - 127px)!important}.scrim:not([hidden]){inset:127px 0 0!important}}
@media(max-width:700px){.top{top:56px!important}.side{top:123px!important;height:calc(100dvh - 123px)!important}.scrim:not([hidden]){inset:123px 0 0!important}}

/* v1.5.1 - highly visible floating MENU button, iPad/iPhone touch */
.stru-floating-menu{display:none;align-items:center;justify-content:center;gap:11px;position:fixed;right:calc(17px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:210;min-height:62px;min-width:62px;max-width:calc(100vw - 24px);padding:12px 24px;border:4px solid #ffffff;border-radius:999px;background:#cdebdc;color:#123d58;font:850 17px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;letter-spacing:.065em;box-shadow:inset 0 0 0 2px #164663,0 0 0 1px #164663,0 7px 22px rgba(10,37,55,.34);-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer}
.stru-floating-menu-symbol{font-size:23px;line-height:1;font-weight:750;min-width:23px;text-align:center;color:#123d58}
.stru-floating-menu:hover,.stru-floating-menu:active{background:#c8ebd8;color:#123d58}
.stru-floating-menu:focus-visible{outline:3px solid #f5b754;outline-offset:4px}
.stru-floating-menu.is-open{background:#bde6cf;color:#123d58}
@media(max-width:1200px){
 body.stru-has-course-sidebar .stru-floating-menu{display:inline-flex}
 /* The top heading is redundant with the persistent course bar. The floating
    control replaces its duplicate menu button while leaving JS intact. */
 body.stru-has-course-sidebar:not(.stru-havo-course) .mobilehead{display:none!important}
 body.stru-has-course-sidebar:not(.stru-havo-course) .sidebar.open{top:60px!important;inset:60px auto 0 0!important;height:calc(100dvh - 60px)!important}
 body.stru-has-course-sidebar:not(.stru-havo-course) .content{padding-bottom:112px!important}
}
@media(max-width:1180px){
 body.stru-havo-course .top .menu-toggle{display:none!important}
 body.stru-havo-course .shell{padding-bottom:115px!important}
}
@media(min-width:1181px){body.stru-havo-course .stru-floating-menu{display:none!important}}
@media(max-width:700px){
 body.stru-has-course-sidebar:not(.stru-havo-course) .sidebar.open{top:56px!important;inset:56px auto 0 0!important;height:calc(100dvh - 56px)!important}
 .stru-floating-menu{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(15px + env(safe-area-inset-bottom,0px));padding:11px 19px;min-height:60px;font-size:16px}
}
@media print{.stru-floating-menu{display:none!important}}

/* Same lightweight course switcher on all three courses, independent of lesson content. */
.stru-course-switcher{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#eaf4f9;border:1px solid #cddfea;border-radius:12px;padding:9px 14px;margin:0 0 16px;font:700 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#244e68}
.stru-course-switcher a{color:#1b587b;text-decoration:none;padding:6px 9px;border-radius:8px;white-space:nowrap}
.stru-course-switcher a[aria-current="page"]{background:#fff;border:1px solid #b5d0de}
.stru-course-switcher small{margin-left:auto;color:#38667a;font-size:12px;font-weight:700}
@media(max-width:760px){.stru-course-switcher{padding:8px;font-size:12px;gap:2px}.stru-course-switcher small{display:none}.stru-course-switcher a{padding:7px}}
@media print{.stru-global-nav,.stru-course-switcher,.stru-floating-menu,.stru-goals-floating,.stru-goals-panel,.stru-goals-backdrop,.stru-update-notice,#struUpdateNotice,#progressManager,.stru-progress,.stru-filebutton,.stru-progress-actions{display:none!important}}
