/* PASS 1: persistent global owners; internal workspace rows stay unchanged. */
#app.app-shell{grid-template-rows:56px minmax(0,1fr);min-width:0}
.global-topline{grid-column:1/-1;display:flex;align-items:center;gap:18px;min-width:0;padding:0 16px;background:var(--bg-base);border-bottom:1px solid var(--border-subtle);position:relative;z-index:100}
#app>.left-rail{grid-row:2;min-height:0}
#app>.workspace-shell{grid-row:2;height:100%;min-height:0;display:flex;flex-direction:column}
#app>.workspace-shell>.workspace{flex:1;min-height:0;height:auto}
#app .sequence-grid{height:100%!important}
.global-topline .prevision-wordmark{width:150px;height:auto;margin:0;flex:none;opacity:.55}
.global-topline .prevision-wordmark:hover{opacity:.85}
.topline-project{display:flex;align-items:center;gap:6px;min-width:0;max-width:260px;color:var(--text-muted);white-space:nowrap}
.global-topline .brand-title{min-width:0;overflow:hidden;text-overflow:ellipsis;margin:0;font-size:11px;font-weight:500;letter-spacing:.06em;color:inherit;white-space:nowrap}
.topline-project:hover{color:var(--text-secondary)}
.global-topline #currentScriptLabel{display:block!important;font-size:10px;white-space:nowrap;flex:none;color:var(--text-secondary)}
.global-topline #currentScriptLabel.synced{color:var(--success)}
.global-topline #versionReview{flex:none}
.global-topline .save-status{position:static;flex:none;white-space:nowrap}
.global-topline .save-status.failed{color:var(--error)}
.global-topline .cartouche-search{width:130px;min-width:28px;gap:5px;margin:0;padding:0}
.global-topline .cartouche-search::before,.global-topline .cartouche-search::after{display:none}
.global-topline #searchToggle{flex:none;border:0;background:none;box-shadow:none;color:var(--text-muted)}
.global-topline #searchToggle:hover{color:var(--text-secondary)}
#app .global-topline #searchInput{position:static;width:100%;min-width:0;opacity:1;margin:0;padding:4px;border:0;background:none;box-shadow:none;color:var(--text-secondary);font-size:11px;transition:none}
#app .global-topline .book-switcher{display:flex;flex-direction:row;flex:1;justify-content:flex-end;gap:14px;margin:0!important;border:0!important;min-width:0}
#app .global-topline .book-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;flex:none;white-space:nowrap;padding:8px 0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:var(--text-muted)!important;font-size:10px;letter-spacing:.06em}
#app .global-topline .book-btn::before,#app .global-topline .book-btn::after{display:none}
#app .global-topline .book-btn:hover{color:var(--text-secondary)!important}
#app .global-topline .book-btn:is(.active,:focus-visible){color:var(--accent)!important}
#app .global-topline .book-btn:focus{outline:none}

.global-topline .book-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.global-topline .book-count{font-variant-numeric:tabular-nums;color:inherit;font-weight:400}
.global-topline #modeToggle{flex:none;margin:0}
.global-topline #scriptVersionActions{flex:none;justify-content:center;width:28px;height:30px;color:var(--text-muted);font-size:22px}
.global-topline #scriptVersionActions:hover{color:var(--text-secondary)}
#projectMenu{left:auto;right:16px;top:anchor(bottom)}
.global-menu-label{padding:16px 12px 3px;font-size:9px;letter-spacing:.1em;color:var(--text-muted)}
.global-menu-label:first-child{padding-top:8px}
#app .library-context-controls{flex:none;border:0;background:none;margin-left:auto}
#app .library-context-controls .nav-library-tools{display:flex;gap:8px!important;padding:0;margin:0;border:0;background:none}
#app .library-context-controls button{position:relative;margin:0!important}
#app>.workspace-shell>.library-context-controls:not([hidden]){padding:8px 16px}
/* Same input opens on demand; no resize listener or replacement control. */
@media(max-width:1350px){
 .global-topline{gap:12px}
 .global-topline .cartouche-search{width:28px}
 #app .global-topline #searchInput{position:absolute;top:36px;left:0;width:210px;padding:10px;background:var(--surface-2);border:1px solid var(--border-subtle);visibility:hidden;opacity:0;z-index:101}
 #app .global-topline .cartouche-search.open #searchInput{visibility:visible;opacity:1}
 .topline-project{max-width:190px}
 #app .global-topline .book-switcher{gap:10px}
}
@media(max-width:1100px){.topline-project{max-width:150px}.global-topline{gap:8px;padding:0 10px}#app .global-topline .book-btn:not(.active) .book-count{display:none}}
@media(max-width:950px){#app .global-topline .book-btn:not(.active)>span{display:none}.topline-project{max-width:140px}}
@media(max-width:720px){.topline-project .brand-title,.topline-project>span[aria-hidden]{display:none}.global-topline{gap:6px}#app .global-topline .book-switcher{gap:8px}.global-topline .book-btn.active svg{display:none}}
/* Popouts keep their previous section ownership and restricted global surface. */
body.popout-window .global-topline .cartouche-search,body.popout-window .global-topline .book-switcher,body.popout-window .global-topline #modeToggle,body.popout-window .global-topline #scriptVersionActions,body.popout-window .global-topline #versionReview,body.popout-window #projectMenu{display:none!important}
body.popout-window .global-topline .topline-project{max-width:none}

#app #navigator{padding-top:12px;padding-bottom:30vh}

#app .library-context-controls button{width:auto;padding:0 10px;font-size:10px;letter-spacing:.06em}

/* PASS 2: equal outer tracks keep the collection centre at the window centre. */
#app.app-shell{grid-template-rows:48px minmax(0,1fr)}
.global-topline{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px}
.topline-left{display:flex;align-items:center;gap:12px;min-width:0}
.topline-project{flex:0 1 auto;min-width:0;align-items:baseline}
.global-topline .brand-title,.global-topline #currentScriptLabel,.global-topline #versionReview{font-size:10px;line-height:16px;padding-block:0}
#app .global-topline .book-switcher{height:100%;justify-content:center;gap:18px;overflow:visible}
#app .global-topline .book-btn{height:100%;align-self:stretch}
#app .global-topline .book-btn.active::after{display:block}
.global-topline #modeToggle{justify-self:end}
.topline-left .cartouche-search{flex:0 1 130px}
.topline-left #scriptVersionActions{order:0}
@media(max-width:1350px){.topline-left .cartouche-search{flex:0 0 28px}.topline-left{gap:8px}.global-topline{gap:10px}.topline-project{max-width:150px}}
@media(max-width:1250px){#app .global-topline .book-btn:not(.active) .book-count{display:none}}
@media(max-width:1100px){#app .global-topline .book-btn:not(.active)>span{display:none}#app .global-topline .book-switcher{gap:12px}.global-topline{gap:8px}.topline-project{max-width:120px}}
@media(max-width:850px){.topline-left .prevision-wordmark{display:none}.topline-left{gap:6px}}
body.popout-window .global-topline{display:flex}
body.popout-window .topline-left .prevision-wordmark{display:block}

/* One mounted toolbar. Overflow relocates controls, never pane content. */
#app .viewer-pane>.contextual-toolbar{display:flex!important;justify-content:flex-start;gap:8px!important;flex:0 0 44px!important;height:44px!important;min-height:44px!important;max-height:44px!important;padding:6px 12px!important;top:0!important;border-bottom:1px solid var(--border-subtle)!important}
.contextual-toolbar>.section-selector{flex:none;position:relative}
.section-selector>button{display:flex;align-items:center;gap:6px;height:28px;padding:0 8px;font-size:10px;letter-spacing:.06em;white-space:nowrap}
.section-selector .control-icon{width:12px;height:12px}
.contextual-toolbar>.pane-header-actions,.contextual-toolbar>.toolbar-overflow-trigger{margin-left:auto!important;flex:none}
.contextual-toolbar>.toolbar-overflow-trigger[hidden]{display:none!important}
.contextual-toolbar>.toolbar-overflow-trigger{font-size:20px;width:28px!important;height:28px!important}
#app .contextual-toolbar>.script-reading-controls{gap:6px}
#app .contextual-toolbar .context-actions{position:static!important;transform:none!important;display:flex!important}
.toolbar-popover{position:fixed;inset:auto;margin:0;padding:10px;max-width:calc(100vw - 16px);max-height:calc(100vh - 80px);overflow:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-2);color:var(--text-primary);box-shadow:var(--light-contact-2),var(--light-ambient-2)}
.section-menu{width:210px}
.section-menu>button{display:block;width:100%;text-align:left;padding:10px;border:0;background:none;color:var(--text-secondary);font-size:11px;cursor:pointer}
.section-menu>button:hover{background:var(--surface-3);color:var(--text-primary)}
.section-menu>button.active{color:var(--accent)}
.toolbar-overflow:popover-open{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:240px}
.toolbar-overflow .pane-header-actions{margin:0!important}
.toolbar-overflow .special-filter{position:relative}
#app .contextual-toolbar .size-control{flex:none}
#app .contextual-toolbar .coverage-tools{padding:0!important}
#app .contextual-toolbar .coverage-mode{display:flex!important}
/* Existing global Profile/variant navigation stays one row. */
#app .book-topbar{flex-wrap:nowrap}
#app .book-topbar>.subtabs{min-width:0;overflow-x:auto;flex-wrap:nowrap}
#app .book-topbar>.library-context-controls{flex:none}
.global-topline{grid-template-rows:minmax(0,1fr)}
.global-topline .script-import-entry[hidden]{display:none!important}

/* Keep A/B at old tablet breakpoints as well; popout remains single-owner. */
body:not(.popout-window) #app .sequence-grid{grid-template-columns:minmax(0,var(--split,50%)) 7px minmax(0,calc(100% - var(--split,50%) - 7px))!important;gap:0!important}
body:not(.popout-window) #app .sequence-grid>.pane-splitter{display:block!important}
.contextual-toolbar>.section-selector{min-width:0;max-width:calc(100% - 40px)}
.section-selector>button{max-width:100%}
.section-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.library-toolbar>.toolbar-overflow-trigger{margin-left:auto!important;font-size:20px;width:28px;height:28px;flex:none}
.library-toolbar>.toolbar-overflow-trigger[hidden]{display:none!important}
.library-toolbar>.subtabs{flex:1;min-width:0}
.library-toolbar .toolbar-overflow .library-context-controls{margin:0!important}
#projectMenu{left:anchor(left);right:auto}

/* Library toolbar alignment; existing controls and overflow ownership stay intact. */
#app .book-topbar.library-toolbar{align-items:center!important;padding-block:2px!important;height:48px!important;min-height:48px!important;box-sizing:border-box;gap:12px!important}
#app .book-topbar.library-toolbar>.subtabs{align-items:center!important;min-height:30px!important;overflow-y:hidden}
#app .book-topbar.library-toolbar .subtab{height:30px!important;min-height:30px!important;margin-block:0!important;display:inline-flex;align-items:center;justify-content:center}
#app .library-toolbar>.library-context-controls{order:2;margin-left:0}
#app .library-toolbar>:is(.pane-header-actions,.element-grid-actions){order:3;margin-left:auto!important}
#app .library-toolbar>.toolbar-overflow-trigger{order:4}
#app .library-toolbar .nav-library-tools{align-items:center}
#app .library-toolbar .nav-library-tools button{height:30px!important;min-height:30px!important;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}
#app .book-topbar.library-toolbar .location-variant-tab{margin-bottom:0}
#app .library-toolbar .element-grid-actions{align-items:center}
#app .library-toolbar .element-grid-actions>.icon-btn{height:30px;min-height:30px}
#app .library-toolbar .element-grid-actions>#downloadCharacters{order:1}
#app .book-topbar.library-toolbar>.subtabs{scrollbar-width:none}
#app .book-topbar.library-toolbar>.subtabs::-webkit-scrollbar{display:none}

/* Grid context spans both content panes; inspector changes only row two. */
#app .element-grid-layout{grid-template-rows:48px minmax(0,1fr)}
#app .element-grid-layout>.element-grid-header{grid-column:1/-1;grid-row:1;display:flex;flex-direction:row;align-items:center;gap:12px;padding:4px var(--pane-gutter);min-width:0}
#app .element-grid-layout>.element-grid-page,#app .element-grid-layout>.element-inspector,#app .element-grid-layout>[data-grid-splitter]{grid-row:2;min-height:0}
#app .element-grid-header>.element-grid-heading{flex:0 1 440px;flex-wrap:nowrap;min-width:0}
#app .element-grid-heading input{min-width:80px;width:100%}
#app .element-grid-header>.element-grid-status-row{flex:1;min-width:0;flex-wrap:nowrap;gap:12px}
#app #elementGridCount{order:1;margin-left:auto;white-space:nowrap}
#app #workspace>.book-page>.library-toolbar{height:48px!important;min-height:48px!important;box-sizing:border-box}
#app :is(#workspace>.book-page>.library-toolbar,.element-grid-status-row)>:is(.pane-header-actions,.element-grid-actions){min-width:calc(2 * var(--action-size) + var(--action-gap));justify-content:flex-end}
#app .element-inspector{border:0!important;border-radius:0;background:transparent;box-shadow:none}
#app .element-inspector::after{display:none}
#app #elementInspectorContent .inspector-context-toolbar{flex-wrap:nowrap!important}
#app .inspector-context-toolbar>.pane-header-actions{flex:none}
#app .element-grid-status-row>.element-grid-actions{margin-left:0!important}
#app .element-grid-status-row>.element-grid-actions{gap:var(--action-gap)!important}
#app .inspector-context-toolbar .character-tabs>.subtab{flex:0 0 auto!important;width:auto!important}
#app .inspector-context-toolbar .character-tabs>.character-name-tab{flex:0 1 auto!important;min-width:0;overflow:hidden;white-space:nowrap}

/* VIEW projects the existing Grid nodes without reserving a checkbox column. */
body:not(.editing) .element-card-heading{grid-template-columns:minmax(0,1fr) auto}
