#atlasBrowser{position:fixed;inset:0;z-index:105;pointer-events:none}
#atlasBrowser[hidden]{display:none}
.ab-drawer{pointer-events:auto;position:absolute;left:24px;top:78px;display:flex;flex-direction:column;width:540px;height:650px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 90px);min-width:280px;min-height:280px;resize:both;overflow:hidden;background:#152328;border:1px solid #40565b;border-radius:14px;box-shadow:0 18px 70px #0007;box-sizing:border-box}
.ab-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 12px;background:#203439;border-bottom:1px solid #344b50}
.ab-head>div{flex:1;cursor:grab;user-select:none}.ab-head>div:active{cursor:grabbing}
.ab-head small{color:#93cdbb;letter-spacing:.12em;font-size:10px}.ab-title{margin:5px 0 0;font-size:20px;color:#eef4f2;font-weight:600}
.ab-close{background:transparent;border:0;color:#c1d3cf;font-size:24px;cursor:pointer;min-width:32px;min-height:32px;border-radius:8px}
.ab-close:hover{background:#ffffff12}
.ab-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:12px 16px;background:#182a2f;border-bottom:1px solid #2a4146}
.ab-crumbs button{background:none;border:0;color:#95aaa5;padding:4px 2px;font-size:12px;cursor:pointer;text-align:left}
.ab-crumbs button[aria-current="page"]{color:#b8e6d4;font-weight:650}.ab-crumbs button:hover{text-decoration:underline}.ab-separator{color:#607e76;font-size:19px;padding:0 3px}
.ab-toolbar{display:flex;align-items:center;gap:10px;padding:12px 16px}.ab-layout{display:flex;gap:3px;flex:none}.ab-layout button{width:34px;height:34px;min-height:34px;background:transparent;border:1px solid #3d5457;color:#9db5ac;border-radius:6px;font-size:18px;cursor:pointer}.ab-layout button[aria-pressed="true"]{color:#d9f0e6;background:#34584a;border-color:#709f8b}
.ab-search{flex:1;min-width:0}.ab-search input{box-sizing:border-box;width:100%;padding:9px 10px;border-radius:8px;border:1px solid #3c5355;background:#102025;color:#e6eeeb;font-size:13px}.ab-search input:focus{outline:1px solid #91cdbb}
.ab-list{flex:1;min-height:0;overflow:auto;padding:0 12px 12px;overscroll-behavior:contain}
.ab-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 6px;background:transparent;border:0;border-bottom:1px solid #2c4044;color:#e0eae5;font-size:13px;cursor:pointer;box-sizing:border-box}
.ab-row:hover,.ab-row:focus-visible{background:#243c3c;outline:none;border-radius:8px}.ab-name{flex:1;min-width:0;line-height:1.5;overflow-wrap:anywhere}.ab-name small{display:block;color:#8da99e;font-size:10px;margin-top:3px}.ab-count{color:#9ab8aa;font-size:11px;white-space:nowrap}.ab-count::after{content:none}
.ab-thumb{width:56px;height:56px;flex:0 0 56px;object-fit:contain;border-radius:8px;background:#f1f1ec}.ab-no-thumb{display:grid;place-items:center;background:#233a3d;color:#66897c;font-size:23px}
.ab-section{grid-column:1/-1;padding:16px 6px 8px;margin:0;color:#a4c8b8;font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.ab-list.is-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:10px;align-content:start}
.is-grid .ab-row{display:flex;flex-direction:column;align-items:stretch;padding:8px;background:#1d3236;border:1px solid #344d4f;border-radius:10px;gap:5px}.is-grid .ab-thumb{width:100%;height:auto;aspect-ratio:1;flex:auto}.is-grid .ab-name{font-size:12px;margin-top:5px}.is-grid .ab-count{font-size:11px}
.ab-status{margin:0;padding:4px 18px 8px;color:#93cdbb;font-size:11px}.ab-status:empty{padding:0}.ab-empty{color:#8da99e;font-size:13px;padding:18px 10px}
.sidebar .tabs [data-tab="tree"],.sidebar [data-pane="tree"],.sidebar [data-tree]{display:none!important}
@media(max-width:600px){.ab-drawer{left:8px;top:72px;width:calc(100vw - 16px);height:70dvh}.ab-head{padding:12px 14px}.ab-title{font-size:18px}.ab-toolbar{padding:10px 12px}.ab-crumbs{padding:8px 12px}.ab-list.is-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-thumb{width:48px;height:48px;flex-basis:48px}.is-grid .ab-thumb{width:100%;height:auto;flex:auto}}
/* Viewer toolbar rules set a fixed button height; cards must size to image and text. */
#atlasBrowser .ab-row{height:auto;min-height:72px;max-height:none;flex-shrink:0}
#atlasBrowser .is-grid .ab-row{height:auto;min-height:0;align-self:start}
#atlasBrowser .is-grid .ab-thumb{flex:none}
#atlasBrowser .ab-list.is-grid{grid-auto-rows:max-content;grid-template-rows:none}

.ab-head{padding:10px 14px;align-items:center}.ab-title{margin:0;font-size:17px}.ab-head>div{min-height:30px;display:flex;align-items:center}.ab-list{scrollbar-width:none}.ab-list::-webkit-scrollbar{display:none}
.source-lesson-markers{pointer-events:none;position:fixed;inset:0;z-index:35}.source-anchor{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;padding:0!important;border:2px solid #eaf9f0!important;border-radius:50%;background:#438e73;box-shadow:0 0 0 2px #173c2aaa;cursor:pointer}.source-anchor[hidden]{display:none}

.source-lesson-tools>small{flex:0 0 100%;display:block;text-align:left;overflow-wrap:anywhere;white-space:normal}
.source-lesson-tools>small:empty{display:none}
#btnData{display:none!important}

/* Width belongs to the buttons; region text cannot widen the toolbar. */
.source-lesson-tools>small{flex:none;contain:inline-size;min-width:0;width:100%;box-sizing:border-box;line-height:1.5}

#modelSettingsPanel{position:fixed;z-index:100;background:#172a2ef5;border:1px solid #476256;border-radius:10px;padding:8px;width:150px;box-sizing:border-box;box-shadow:0 4px 16px #0005}
#modelSettingsPanel[hidden]{display:none}
#modelSettingsPanel .body-gender,#modelSettingsPanel .body-quality{display:flex!important;width:100%;margin:0;gap:4px}
#modelSettingsPanel .body-quality{margin-top:7px}
#modelSettingsPanel button{flex:1;min-width:0;min-height:34px;font-size:20px}
#modelSettingsPanel button::after{display:none!important}

/* Retired generic web Quiz entry; reserved source Quiz module is separate. */
.tools>[data-mobile-pane="quiz"]{display:none!important}
@media(max-width:950px){
 .topbar{padding-bottom:0!important}
 .menu-open .tools{top:calc(100% + 6px)}
 .search-results{top:56px}
}
@media(max-width:950px){
 #app{grid-template-rows:48px minmax(0,1fr);grid-template-areas:'top' 'stage'}
 #app.distraction-free{grid-template-rows:0 minmax(0,1fr)}
}

/* Controls are relocated by JS; never expose their staging nodes in header. */
.topbar .tools>.body-gender,.topbar .tools>.body-quality{display:none!important}

.topbar a.brand{color:inherit;text-decoration:none;cursor:pointer}
@media(max-width:950px){
 #atlasBrowser .ab-head{padding:4px 10px;gap:8px;min-height:40px;box-sizing:border-box}
 #atlasBrowser .ab-head>div{min-height:30px}
 #atlasBrowser .ab-title{font-size:15px;line-height:20px;margin:0}
 #atlasBrowser .ab-close{min-width:36px;min-height:36px;font-size:22px;padding:0}
 #atlasBrowser .ab-crumbs{padding:2px 10px;gap:3px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex-shrink:0}
 #atlasBrowser .ab-crumbs::-webkit-scrollbar{display:none}
 #atlasBrowser .ab-crumbs button{white-space:nowrap;flex-shrink:0;padding:6px 2px;min-height:32px;font-size:11px}
 #atlasBrowser .ab-separator{font-size:15px;padding:0 1px}
 #atlasBrowser .ab-toolbar{padding:5px 10px;gap:6px;flex-shrink:0}
 #atlasBrowser .ab-layout button{width:32px;height:34px;min-height:34px;font-size:16px}
 #atlasBrowser .ab-search input{padding:6px 8px;min-height:34px;font-size:13px}
 #atlasBrowser .ab-list{padding:0 8px 8px}
 #atlasBrowser .ab-row{padding:5px 4px;min-height:48px;gap:8px}
 #atlasBrowser .ab-thumb{width:38px;height:38px;flex-basis:38px;border-radius:6px}
 #atlasBrowser .ab-name{font-size:12px;line-height:1.35}
 #atlasBrowser .ab-name small{margin-top:2px;font-size:9px}
 #atlasBrowser .ab-section{padding:9px 4px 4px;font-size:10px}
 #atlasBrowser .ab-status{padding:3px 10px 5px;font-size:10px}
 #atlasBrowser .ab-status:empty{padding:0}
 #atlasBrowser .is-grid{gap:6px}
 #atlasBrowser .is-grid .ab-row{padding:6px;min-height:0;gap:4px}
 #atlasBrowser .is-grid .ab-thumb{width:100%;height:auto;flex:none}
}

/* Source group headings are distinct separator rows, never selectable items. */
#atlasBrowser .ab-section{display:flex;align-items:center;grid-column:1/-1;flex-shrink:0;box-sizing:border-box;width:100%;margin:10px 0 4px;padding:9px 10px;background:#2a4548;color:#d5efe5;border:1px solid #42635f;border-left:3px solid #91cdbb;border-radius:6px;font-size:12px;font-weight:750;line-height:1.4;text-transform:none;letter-spacing:.02em}
@media(max-width:950px){#atlasBrowser .ab-section{margin:7px 0 3px;padding:7px 9px;font-size:11px}}
/* Edge-to-edge group bands, centered across the popup content width. */
#atlasBrowser .ab-list{--ab-list-gutter:12px}
#atlasBrowser .ab-section{width:calc(100% + 2 * var(--ab-list-gutter));margin-left:calc(-1 * var(--ab-list-gutter));margin-right:calc(-1 * var(--ab-list-gutter));border-left:0;border-right:0;border-radius:0;justify-content:center;text-align:center}
@media(max-width:950px){#atlasBrowser .ab-list{--ab-list-gutter:8px}}

@media(max-width:950px){#atlasBrowser .ab-crumbs{flex-wrap:wrap;overflow-x:visible}#atlasBrowser .ab-crumbs button{white-space:normal;overflow-wrap:anywhere;flex-shrink:1;text-align:left}}
.lesson-labels{position:fixed;inset:0;z-index:40;pointer-events:none}.lesson-labels[hidden]{display:none}.lesson-label-dot{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;min-width:24px;min-height:24px;padding:0;border:0;background:transparent;pointer-events:auto}.lesson-label-dot::after{content:'';position:absolute;inset:7px;border:1px solid #000;border-radius:50%;background:#fff}

.lesson-region-tip{position:fixed;z-index:25;left:50%;bottom:76px;transform:translateX(-50%);max-width:calc(100vw - 24px);padding:8px 12px;background:#203b3cf5;color:#b3ebcd;border:1px solid #648b7c;border-radius:8px;font:600 13px/1.5 system-ui;text-align:center}.lesson-region-tip[hidden]{display:none}

.point-quiz-active .source-lesson-tools,.point-quiz-active .lesson-labels{display:none!important}

#atlasBrowser .ab-related-highlight{animation:related-topic-pulse .7s ease-in-out 4;outline:1px solid #91cdbb;outline-offset:-1px;border-radius:8px}@keyframes related-topic-pulse{0%,100%{background-color:#91cdbb0a}50%{background-color:#91cdbb38}}@media(prefers-reduced-motion:reduce){#atlasBrowser .ab-related-highlight{animation:none;background:#91cdbb25}}

#atlasBrowser .ab-head{padding:7px 12px;gap:8px;align-items:center}#atlasBrowser .ab-head>div{min-height:26px}#atlasBrowser .ab-title{font-size:16px;line-height:22px;margin:0}#atlasBrowser .ab-close{border:0;background:transparent;box-shadow:none;border-radius:0;width:26px;height:26px;min-width:26px;min-height:26px;padding:0;font-size:22px;line-height:26px}

#atlasBrowser .ab-count{display:inline-block;flex-shrink:0;font-family:var(--sans);font-size:11px;font-weight:400;line-height:1.5;letter-spacing:normal;text-transform:none;font-variant-numeric:tabular-nums;white-space:nowrap}

.ab-row[aria-current="true"]{background:#294e44!important;border-color:#a8ddd0!important;box-shadow:inset 3px 0 #a8ddd0}.systems-shortcut{display:inline-flex!important;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0}.topbar>.learning-back{margin-left:auto!important}

.ab-row.ab-selected-branch{border-left:3px solid #719c90;background:#203a34}
/* Shared content-type popover beside search; no separate motion popup. */
.ab-filter-wrap{position:relative;flex:none}
#atlasBrowser .ab-filter-toggle{position:relative;display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:0;border:1px solid #55726d;border-radius:8px;background:#223c3b;color:#c3e6d8;cursor:pointer}
.ab-filter-dot{position:absolute;right:3px;top:3px;width:6px;height:6px;border-radius:50%;background:#b7e7b0}
.ab-filter-dot[hidden]{display:none}
#abContentFilters{position:absolute;right:0;top:42px;z-index:4;min-width:190px;padding:12px;margin:0;border:1px solid #587c70;border-radius:10px;background:#18312f;box-shadow:0 8px 24px #0006;color:#e0eee7}
#abContentFilters[hidden]{display:none}
#abContentFilters legend{font-size:12px;padding:0 5px;color:#bce0cd}
.ab-filter-options{display:grid;gap:4px}.ab-filter-options label{display:flex;align-items:center;gap:10px;min-height:38px;cursor:pointer;font-size:13px}.ab-filter-options input{width:17px;height:17px;accent-color:#99d2b9}
/* Compact library controls; override generic viewer button dimensions. */
#atlasBrowser .ab-toolbar{padding:5px 10px;gap:6px;flex-shrink:0}
#atlasBrowser .ab-layout{gap:3px}
#atlasBrowser .ab-layout button,#atlasBrowser .ab-filter-toggle{box-sizing:border-box;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;line-height:1;font-size:16px}
#atlasBrowser .ab-search input{box-sizing:border-box;height:30px;min-height:30px;padding:3px 8px;line-height:20px;font-size:13px}
#atlasBrowser .ab-crumbs{flex-shrink:0;align-content:flex-start;align-items:center;row-gap:1px;column-gap:3px;padding:4px 10px}
#atlasBrowser .ab-crumbs button{height:auto;min-height:0;max-height:none;padding:2px;line-height:18px}
#atlasBrowser .ab-separator{line-height:18px;padding:0 1px}
#abContentFilters{top:36px}
/* One shared shell: tab state changes visibility only, never viewer state. */
#atlasBrowser .ab-head{padding:0 8px 0 12px;gap:12px;min-height:42px;cursor:grab;flex:none}
#atlasBrowser .ab-head .ab-header-tabs{display:flex;align-items:stretch;gap:18px;min-width:0;align-self:stretch;cursor:default;touch-action:manipulation}
#atlasBrowser [data-library-tab]{position:relative;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;height:42px;min-height:42px;min-width:0;padding:0 2px;color:#91aaa1;font:550 13px var(--sans);cursor:pointer;white-space:nowrap}
#atlasBrowser [data-library-tab][aria-selected=true]{color:#d6eee2;border-bottom-color:#a8ddd0}
#atlasBrowser [data-library-tab]:hover{color:#edf7f1}
#atlasBrowser [data-library-tab]:focus-visible{outline:1px solid #a8ddd0;outline-offset:-4px}
#atlasBrowser .ab-page{display:flex;flex:1;min-height:0;min-width:0;flex-direction:column;overflow:hidden}
#atlasBrowser .ab-page[hidden]{display:none!important}
#atlasBrowser #abLayersPage .pane{display:flex;padding:0 10px 8px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}
#atlasBrowser #abLayersPage .pane::-webkit-scrollbar{display:none}
#atlasBrowser .ab-layer-tools{flex:none;padding:3px 10px 0;border-bottom:1px solid #344b50}
#atlasBrowser #layerControlBar{position:static;margin:0;padding:2px 0 4px!important;background:transparent;border:0;flex-wrap:wrap}
#atlasBrowser #layerAllRow{display:flex;align-items:center;justify-content:flex-start;gap:7px;padding:2px 0 5px;min-height:24px;font-size:11px;color:#a8c4b7}
#atlasBrowser #layerAllRow input{flex:none}
#atlasBrowser #hiddenNote{display:none}
#atlasBrowser #layerCaption{padding:5px 0;font-size:11px;line-height:1.4}
#atlasBrowser .layer-list{flex:none;padding:0}
#atlasBrowser .layer-list li[data-group]{grid-template-columns:30px minmax(0,1fr) 62px 36px;column-gap:6px;padding:2px 0;min-height:42px;border-radius:0}
#atlasBrowser .layer-list li[data-group] .name{min-height:36px;gap:5px;font-size:12px}
#atlasBrowser .layer-list li.layer-child{padding-left:14px}
#atlasBrowser .layer-list li.layer-child .name{font-size:11px}
#atlasBrowser .layer-list .solo{font-size:10px;min-width:32px;padding:2px;min-height:30px}
#atlasBrowser .pane-foot{flex:none;margin-top:auto;padding:6px 0;border:0}
#atlasBrowser .pane-foot:has(> :only-child[hidden]){display:none}
/* Keep the legacy layers node for controller compatibility, not as a second entry. */
.topbar .layers-shortcut{display:none!important}
#app .topbar .layers-shortcut{display:none!important}
#atlasBrowser #layerAllRow{box-sizing:border-box;height:auto;flex:none;margin:0}
#atlasBrowser #layerCaption{flex:none}
#atlasBrowser #layerCaption:empty{display:none}

/* Retain inert node IDs for existing bindings, remove two right-rail affordances. */
#app #mobileFullscreen,#app #mobileFrame{display:none!important}
#atlasBrowser .layer-expand:disabled{opacity:.25;cursor:default}

#atlasBrowser .ab-head .ab-header-tabs,#atlasBrowser [data-library-tab]{cursor:grab;touch-action:none;user-select:none}
#atlasBrowser .ab-head:active,#atlasBrowser [data-library-tab]:active{cursor:grabbing}

/* Compact source tools: one strip, equal action cells, no heading. */
.source-lesson-tools{position:fixed;bottom:auto;left:50%;transform:translateX(-50%);width:min(382px,calc(100vw - 16px));z-index:75;box-sizing:border-box}
.source-lesson-tools[hidden]{display:none}
.source-lesson-tools .selection-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:2px;padding:2px 4px;border:1px solid #476256;border-radius:10px;background:#172a2ef5;box-shadow:0 4px 16px #0003;touch-action:none}
.source-lesson-tools button{box-sizing:border-box;width:100%;height:44px;min-height:44px;min-width:0;padding:2px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:6px;background:transparent;color:#d7e8df;cursor:pointer;touch-action:manipulation}
.source-lesson-tools button svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.source-lesson-tools button span{font-size:10px;line-height:14px;white-space:nowrap;pointer-events:none}
.source-lesson-tools button[aria-pressed=true]{background:#48705b;color:#fff;box-shadow:none}
.source-lesson-tools button:disabled{opacity:.38;cursor:not-allowed}
.source-lesson-tools button:focus-visible{outline:2px solid #9cdbbd;outline-offset:-2px}
.source-lesson-tools>small{margin-top:4px;font-size:10px;line-height:1.5;color:#bdc8b0;text-shadow:0 1px 3px #000}
@media(hover:hover){.source-lesson-tools button:not(:disabled):hover{background:#355749}}
/* Short mobile labels, compact40px cells and no vertical outer padding. */
.source-lesson-tools button .tool-label-short{display:none}
@media(max-width:950px){
 .source-lesson-tools{width:274px;max-width:calc(100vw - 16px)}
 .source-lesson-tools .selection-actions{gap:0;padding:0 4px}
 .source-lesson-tools button{height:40px;min-height:40px;padding:0;gap:0}
 .source-lesson-tools button svg{width:20px;height:20px}
 .source-lesson-tools button span{font-size:10px;line-height:12px}
 .source-lesson-tools button:has(.tool-label-short) .tool-label-full{display:none}
 .source-lesson-tools button .tool-label-short{display:block}
 .source-lesson-tools>small{margin-top:2px}
}

.source-lesson-tools{touch-action:none;cursor:grab;user-select:none}
.source-lesson-tools button{touch-action:none}
.source-lesson-tools.tools-dragging,.source-lesson-tools.tools-dragging *{cursor:grabbing!important}
.source-lesson-tools:focus-visible{outline:2px solid #9cdbbd;outline-offset:3px;border-radius:10px}

/* Primary entry: icon only; 36px visual tile within 44px touch target. */
#app .explore-launcher{position:fixed;top:var(--explore-top,56px);left:max(8px,env(safe-area-inset-left));z-index:130;display:inline-flex!important;align-items:center;justify-content:center;gap:0;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:#17382f;font-size:12px;font-weight:650;line-height:1;cursor:pointer;isolation:isolate;box-shadow:none;white-space:nowrap;touch-action:manipulation}
.explore-launcher::before{content:'';position:absolute;inset:4px;background:#9cdbbd;border:1px solid #b8e6d4;border-radius:9px;z-index:-1;box-shadow:0 2px 8px #0003}
.explore-launcher>svg{flex:none;pointer-events:none}
.explore-launcher[aria-expanded=true]::before{background:#c2edd8;border-color:#e0f8ed}
.explore-launcher:focus-visible{outline:2px solid #e0f8ed;outline-offset:2px}
@media(hover:hover){.explore-launcher:hover::before{background:#b8e6d4}}
#atlasBrowser .ab-drawer{top:calc(var(--explore-top,56px) + 2px);max-height:calc(100dvh - var(--explore-top,56px) - 8px)}
#app.distraction-free .explore-launcher{display:none!important}

/* Ordinary lesson markers only; never Quiz answer dots. Fill remains source-owned. */
.lesson-label-dot[aria-pressed=true]::before{content:'';position:absolute;inset:3px;border:2px solid #8fdbcc;border-radius:50%;pointer-events:none;opacity:.85;animation:lesson-marker-ring 1.8s ease-in-out infinite}
@keyframes lesson-marker-ring{0%,100%{opacity:.9}50%{opacity:.6}}
@media(prefers-reduced-motion:reduce){.lesson-label-dot[aria-pressed=true]::before{animation:none;opacity:.85}}

.source-lesson-tools button[aria-pressed=mixed]{background:linear-gradient(135deg,#48705b 50%,transparent 50%);box-shadow:inset 0 0 0 1px #9cdbbd;color:#fff}
