/* Shared viewport: the browser document never scrolls. */
html.dts-shell,html.dts-shell body{height:100%;height:100dvh;min-height:0!important;max-height:100dvh;overflow:hidden!important;margin:0}
html.dts-shell body{display:flex!important;flex-direction:column!important}
html.dts-shell #dtsContentScroll{flex:1 1 0;min-height:0;min-width:0;width:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;position:relative}
html.dts-shell body>header,html.dts-shell body>nav,html.dts-shell body>.tabs,html.dts-shell .role-view-panel{flex:0 0 auto}
html.dts-shell body>header{padding:6px 12px;gap:8px;min-height:0}
html.dts-shell body>nav{padding:4px 12px;gap:4px}
html.dts-shell body>.nav{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;white-space:nowrap}
html.dts-shell body>.nav>*{flex:0 0 auto}
html.dts-shell .role-view-panel{padding:4px 12px;gap:6px}
html.dts-shell .role-view-panel :is(select,button){min-height:32px;padding:4px 8px}
html.dts-shell :is(.role-view-panel,.topbar,.top) button{min-height:36px;padding:5px 10px}
html.dts-shell .mark,html.dts-shell .brandmark{width:32px;height:32px;font-size:16px}
html.dts-shell #dtsContentScroll>main{margin:0;width:100%;min-height:0;height:auto}
html.dts-shell #dtsContentScroll :is(.controls,.insights,.sidepanel,.library-grid,#events,.events,#road-options,.field-map-choices,.incidentBody,.sandbox-lower .asset-list,pre){overflow-y:visible!important;max-height:none!important;height:auto}
html.dts-shell #dtsContentScroll :is(.table-wrap,.tablewrap,.comparison,#comparison,.scroll){max-height:none;height:auto;overflow-x:auto;overflow-y:hidden}
html.dts-shell #dtsContentScroll :is(.tv-ai #ai-summary,#compare-summary,#operations){overflow:visible;max-height:none}
html.dts-shell #dtsContentScroll .workspace:not(.app .workspace){height:auto;min-height:0}
html.dts-shell #dtsContentScroll .scenePanel{min-height:400px}
html.dts-shell #dtsContentScroll .incidentPanel{position:static;margin:8px 12px;width:auto;max-width:none}
html.dts-shell .scenario-run-bar{position:static;width:auto;margin-top:10px}
html.dts-shell .inputs{padding-bottom:12px}
html.dts-shell #dtsContentScroll :is(.bottom-dock details[open] .card){position:static;max-height:none;overflow:visible;box-shadow:none}
html.dts-shell #dtsContentScroll .bottom-dock{position:static;align-items:flex-start}
html.dts-shell #dtsContentScroll>footer,html.dts-shell .app-footer{padding:3px 12px;margin:0;font-size:10px;line-height:1.4;min-height:0}
html.dts-shell .vast-research-footer{display:block!important;padding:3px 12px!important;font-size:10px!important;white-space:normal!important;overflow:visible!important}
html.dts-shell .vast-research-footer summary{cursor:pointer;padding:3px 0}
html.dts-shell .vast-research-footer details:not([open])>*:not(summary){display:none}
html.dts-shell.dts-embedded body>header,html.dts-shell.dts-embedded .vast-research-footer{display:none!important}
/* Admin uses the same content scroller as its navigation; no nested sidebar bar. */
html.dts-shell body[data-shell-page=admin] .app:not(.hidden){display:flex;min-height:100%;height:auto}
html.dts-shell body[data-shell-page=admin] .sidebar{position:static;inset:auto;width:196px;padding:12px 10px;overflow:visible;flex-shrink:0}
html.dts-shell body[data-shell-page=admin] .sidebar nav button,html.dts-shell body[data-shell-page=admin] .sidebar nav a{padding:8px 9px;min-height:36px;font-size:12px}
html.dts-shell body[data-shell-page=admin] .workspace{margin-left:0;flex:1;min-width:0}
html.dts-shell body[data-shell-page=admin] .topbar{position:sticky;top:0;z-index:10;padding:6px 12px;min-height:44px;background:#102733}
html.dts-shell body[data-shell-page=admin] #main{padding:12px 16px;max-width:none}
html.dts-shell body[data-shell-page=admin] .page-heading{margin-bottom:10px;gap:12px}
html.dts-shell body[data-shell-page=admin] .page-heading h1{font-size:23px;margin:0}
html.dts-shell body[data-shell-page=admin] .page-heading .eyebrow{display:none}
html.dts-shell body[data-shell-page=admin] .page-heading p{margin:4px 0;font-size:12px}
html.dts-shell body[data-shell-page=admin] :is(td,th){padding:9px 12px}
html.dts-shell body[data-shell-page=admin] .card{margin-bottom:12px}
html.dts-shell body[data-shell-page=admin] input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:#57d8b8;cursor:pointer;vertical-align:middle}
.publication-selection{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;margin:0 0 12px}.publication-selection p{margin:0}.publication-check-cell{width:62px;text-align:center}.publication-check-cell label{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0}.publication-check-cell input:disabled{cursor:not-allowed}
th.publication-check-cell label{flex-direction:column;gap:3px;font-size:10px;white-space:nowrap}
/* A frame fills its parent's content region; only its own content can scroll. */
html.dts-shell #dtsContentScroll:has(>#staffWorkspace:not([hidden])){display:flex;flex-direction:column;overflow:hidden;scrollbar-gutter:auto}
html.dts-shell #staffWorkspace{flex:1;min-height:0;display:flex;flex-direction:column}
html.dts-shell #staffWorkspace[hidden]{display:none}
html.dts-shell #staffFrame{flex:1;min-height:0;height:0;width:100%}
html.dts-shell #dtsContentScroll:has(>#staffWorkspace:not([hidden]))>footer{display:none}
html.dts-shell body[data-shell-page=workspace] #dtsContentScroll{display:flex;flex-direction:column;overflow:hidden;scrollbar-gutter:auto}
html.dts-shell body[data-shell-page=workspace] iframe{flex:1;min-height:0;height:0;width:100%}
html.dts-shell.dts-modal-open #dtsContentScroll{overflow:hidden!important}
html.dts-shell dialog{max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
html.dts-shell dialog :is(.fields,pre,.inspection-history,.controls,.inputs,.sidebar,.sidepanel){max-height:none;overflow:visible;height:auto;flex:none}
html.dts-shell dialog.dts-settings[open]{display:block}
html.dts-shell #dtsContentScroll:has(.sidebar.open){overflow:auto}
@media(max-width:760px){
 html.dts-shell body>header{padding:5px 8px;gap:5px}
 html.dts-shell .top .account{width:auto;margin-left:auto;gap:5px}
 html.dts-shell .top .account:empty{display:none}
 html.dts-shell .brand small{font-size:8px}
 html.dts-shell .role-view-panel{padding:4px 8px}
 html.dts-shell .role-view-panel span{display:none}
 html.dts-shell body[data-shell-page=admin] .app{flex-direction:column}
 html.dts-shell body[data-shell-page=admin] .sidebar{display:none;transform:none;width:100%;height:auto;max-height:none;border-bottom:1px solid #28424f}
 html.dts-shell body[data-shell-page=admin] .sidebar.open{display:flex}
 html.dts-shell body[data-shell-page=admin] .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}
 html.dts-shell body[data-shell-page=admin] .sidebar-bottom,html.dts-shell body[data-shell-page=admin] .sidebar-label{display:none}
 html.dts-shell body[data-shell-page=admin] #main{padding:8px}
 html.dts-shell body[data-shell-page=admin] .topbar{gap:5px;flex-wrap:wrap}
 html.dts-shell .bottom-dock{flex-wrap:wrap}
 html.dts-shell .bottom-dock details[open]{flex-basis:100%}
 html.dts-shell .map-wrap{height:calc(100dvh - 245px);min-height:300px}
}
