/*  This project merges a chat UI and code editor, hence the name of this file  */


.capitalize-first-letter:first-letter,
button:first-letter {
	text-transform: uppercase;
}

button,
#playground-overlay button{
	background-color:var(--button-bg);
	color:#ddd;
}
button:hover,
#playground-overlay button:hover{
	background-color:var(--button-hover-bg);
	color:#fff;
}
#playground-overlay button{
	padding:6px;
	box-sizing:content-box;
	display:flex;
	justify-content:center;
	align-items:center;
}

.llm_work_selection,
.button-in-progress{
    background-size: 250% 250%;
	background-image: linear-gradient(-90deg,
            rgba(59, 173, 227, .5) 0%,
            rgba(87, 111, 230, .5) 50%,
            rgba(152, 68, 183, .5) 51%,
            rgba(59, 173, 227, .5) 100%);
    animation: bg-sweep-to-right 2s linear infinite;
}





select{
	cursor:pointer;
	/*border-bottom:1px dashed var(--button-bg);*/
}

.no-pointer-events{
	pointer-events:none;
}
.opacity0{
	transition: opacity 3s;
	opacity:0;
}
.opacity1{
	transition: opacity 2s;
	opacity:1;
}

.flex-space-between{
	display:flex;
	justify-content:space-between;
}
.flex-align-center{
	display:flex;
	align-items:center;
}

.chat button{
	background-color:#0172ad;
}

.chat button:hover{
	background-color: var(--button-hover-bg);
}




#content-container{
	overflow:auto;
}


/*  SIDEBARS  */

#sidebars{
	display:flex;
	flex-direction:column;
	width:0;
	height:100%;
	max-width:0;
	overflow:hidden;
	transition: width 1s, max-width 1s, opacity 1s;
	transition-timing-function: ease;
	position:fixed;
	top:0;
	left:0;
	z-index:11;
}
.sidebar #sidebars{
	min-width:300px;
	width:300px;
	max-width:300px;
}

#sidebars-header{
	display:flex;
	min-height:50px;
	justify-content:space-between;
	align-items:center;
	padding-left:5px;
	background-color:var(--sidebar-header-bg);
	/*border-bottom: 1px solid var(--thin-border-color);*/
}
#sidebar-header-tab-buttons{
	display:flex;
	height:100%;
}
#sidebar-header-tab-buttons > *{
	display:flex;
	justify-content:center;
	align-items:center;
	height:100%;
	font-size:1.4rem;
	padding:0 .5rem;
	cursor:pointer;
	min-width:46px;
}


#sidebar-header-docs-button{
	background-color:var(--sidebar-bg);
	border-bottom:1px solid #ddd;
}
#sidebar-header-chat-button{
	margin-left:5px;
	border-bottom:1px solid transparent;
}
#sidebar-header-settings-button{
	margin-left:5px;
	border-bottom:1px solid transparent;
}

.sidebar-chat #sidebar-header-chat-button{
	background-color:var(--sidebar-bg);
	border-bottom:1px solid #ddd;
}
.sidebar-settings #sidebar-header-settings-button{
	background-color:var(--sidebar-bg);
	border-bottom:1px solid #ddd;
}
.sidebar-chat #sidebar-header-docs-button,
.sidebar-settings #sidebar-header-docs-button{
	background-color:transparent;
	border-bottom:1px solid transparent;
}

#sidebar-header-tab-buttons > *:hover{
	transform: scale(1.2);
	background-color:rgba(255,255,255,.4);
}


#close-sidebar-button{
    width: 50px;
    height: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

#sidebars-content{
	position:relative;
	height:50%;
	flex-grow:1;
}

#chat-sidebar-container{
	height:100%;
}

body:not(.sidebar-chat) #chat-sidebar-container{
	display:none;
}

body:not(.sidebar-settings) #settings-sidebar,
body.sidebar-settings #playground-sidebar,
body.sidebar-chat #playground-sidebar{
	display:none;
}



/*  file manager*/
#settings-sidebar,
#playground-sidebar{
	height:100%;
	background-color: var(--files-bg);
}

body:not(.coder) #take-snapshot-button{
	display:none;
}


/*  SIDEBAR - DOCUMENTS VIEW  */

#file-manager{
	padding-top:10px;
}

#folder-select-container{
	/*
	margin-top:10px;
	background-color: var(--files-bg);
	background-color: rgba(255,255,255,.1);
	*/
	
	background-color: rgba(0,0,0,.15);
	padding: 1rem 0;
	margin-top: 0;
}

.in-folder #folder-select-container{
	display:block;
}

.folder-item.first-folder-item{
	border-top: 1px solid rgba(0,0,0, 0.03);
	border-bottom: 1px solid rgba(0,0,0, 0.03);;
}
.file-pane li{
	
}


#folder-back-button{
	display:none;
	padding: 7px 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
	background: none;
}



/*  FOLDER TREE  */

.folder-tree-item{
	padding:3px 5px;
}
.folder-tree-item:not(:last-of-type){
	cursor:pointer;
}
.folder-tree-item.folder-tree-root{
	padding-left:17px;
}
.folder-tree-item:hover{
	background-color:rgba(255,255,255,.05);
}
.folder-tree-item.folder-tree-root:not(:last-of-type):hover .folder-tree-name,
.folder-tree-item:not(:last-of-type):hover .folder-tree-indent1{
	transform:scale(1.2);
}



.folder-tree-name{
	display:inline-block;
}


.folder-tree .folder-tree-indent{
	display:inline-block;
	min-width:13px;
}
.folder-tree .folder-tree-indent:first-of-type{
	margin-left:13px;
}
.folder-tree .folder-tree-indent:last-of-type:after{
	content:'📂';
}
.folder-tree .folder-tree-indent:last-of-type:before{
	content:'╰';
	margin-right:2px;
	position:relative;
	top:-3px;
	opacity:.5;
}
.folder-tree .folder-tree-indent:not(:last-of-type):after{
	opacity:0;
}
.folder-tree .folder-tree-indent:last-of-type{
	margin-right:5px;
}

.folder-tree-item:not(:last-of-type) .folder-tree-name{
	font-weight: 100;
}



/*  FILES LIST  */

.file-item,
.file-item.loaded.beta .file-name,
.folder-item.unreal .folder-icon-loaded, 
.folder-item.unreal .folder-name{
	color:#cbcbcb;
}

.file-pane .current{
	background-color:var(--editor-bg);
}

.file-item.unreal.modified .file-icon-loaded{
	position:relative;
}


.file-item.unreal.modified .file-icon.file-icon-loaded:after{
	content: '💾';
    background-color: #de5c16;
    bottom: -3px;
    right: -3px;
    padding-left: 1px;
    width: 10px;
    height: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 6px;
    position: absolute;
    border-radius: 50%;
    box-sizing: border-box;
}

body:not(.settings-complexity-advanced) .file-item .file-size{
	display:none;
}


.get-attention{
	transform:scale(1.1);
	transition: all linear .3s;
    background-size: 250% 250%;
	background-image: linear-gradient(-70deg,
            rgba(255,255,255, .1) 0%,
			rgba(255,255,255, 0) 48%,
            rgba(255,255,255, .5) 50%,
            rgba(255,255,255, 0) 52%,
            rgba(255,255,255, .1) 100%);
    animation: bg-sweep-to-right .3s linear normal;
}

body:not(.settings-complexity-advanced):not(.coder) #right-bar,
body:not(.settings-complexity-advanced) #save-document-button,
body:not(.settings-complexity-advanced) #settings-sidebar-tabs-buttons-container,
body:not(.settings-complexity-advanced) .file-item.unreal.modified .file-icon.file-icon-loaded:after,
body:not(.settings-complexity-advanced) #save-all-files-button{
	display:none;
}


#save-all-files-button{
	padding: 0.5rem 1rem 0.5rem 0.5rem;
    display: inline-block;
    white-space: nowrap;
    display: inline-flex;
}
#save-all-files-button:before{
	content: '💾';
    background-color: #de5c16;
    width: 20px;
    height: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    border-radius: 50%;
    box-sizing: border-box;
	margin-right:.5rem;
}



#sidebar-footer{
	display:flex;
}
#sidebar-footer .button{
	margin:0.2rem;
	flex-grow:0;
}

#sidebar-footer #new-folder-button,
#sidebar-footer #new-file-button{
    height: 36px;
    width: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}
#sidebar-footer #new-file-button{
	background-color:#0172ad;
}



#sidebar-footer #new-folder-button > span.material-icons,
#sidebar-footer #new-file-button > span.material-icons{
	font-size:20px;
}

#sidebar-footer #new-file-button-container{
	padding:0 1rem;
	align-items:center;
}
#sidebar-footer .file-input-custom{
	left: -50px;
    display: inline-block;
    background: var(--pico-primary-background);
    width: 150px;
    position: relative;
    text-align: center;
	white-space:nowrap;
}


#sidebar-new-file-and-folder-container{
	display:flex;
	width:100px;
	margin-right:.5rem;
}
#sidebar-new-file-and-folder-container > button{
	margin-left:.5rem;
}

#sidebar-upload-container{
	display:flex;
	width:50%;
	flex-grow:1;
    align-items: center;
    justify-content: center;
}

#upload-file-input,
.file-input-label-container{
	width:150px;
}
.file-input-label-container{
	border-radius:5px;
	background-color:var(--pico-primary-background);
}

.add-icon{
	position:relative;
}
.add-icon:after{
	content: '+';
    position: absolute;
    bottom: -2px;
    right: 0px;
    font-size: 17px;
    color: #ccc;
    background: rgba(0,0,0,.2);
    width: 14px;
    height: 14px;
    display: inline-flex;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    padding-bottom: 3px;
    box-sizing: border-box;
	opacity:.5;
}






/*   SETTINGS SIDEBAR SETTINGS   */

#settings-sidebar{
	display:none;
}
.sidebar-settings #settings-sidebar{
	display:flex;
	flex-direction:column;
	max-height:100%;
	/*
	height:20%;
	flex-grow:1;
	*/
}

#settings-sidebar-tabs-container{
	height:20%;
	flex-grow:1;
}

#settings-sidebar-tabs-tasks{
	height:100%;
	max-height:100%;
	overflow:auto;
}

#settings-sidebar-tabs-buttons-container{
	width:100%;
	padding:15px 15px 0 15px;
	background-color:rgba(0,0,0,.15);
	box-sizing:border-box;
	display:flex;
	align-items:center;
	justify-content:space-around;
	flex-shrink:0;
	flex-grow:0;
}
#settings-sidebar-tabs-buttons-container > div{
	padding:.5rem 1rem;
	border-top-left-radius:.5rem;
	border-top-right-radius:.5rem;
	background-color:rgba(0,0,0,.1);
	color:#ccc;
	display:inline-block;
	cursor:pointer;
}
#settings-sidebar-tabs-buttons-container > div:hover{
	background-color:var(--button-hover-bg);
	color:white;
}

body.settings-complexity-advanced.sidebar-settings-show-tasks #settings-sidebar-tabs-settings{
	display:none;
}

#settings-sidebar-tabs-settings{
	height:100%;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	padding-top:10px
}

body:not(.settings-complexity-advanced):not(.sidebar-settings-show-tasks) #settings-sidebar-tabs-tasks{
	display:none;
}

body:not(.sidebar-settings-show-tasks) #settings-sidebar-settings-button,
.sidebar-settings-show-tasks #settings-sidebar-tasks-button{
	background-color:var(--files-bg);
	transform:scale(1.05);
}


#settings-sidebar-tabs-container > div{
	box-sizing:border-box;
}

#settings-sidebar-tabs-settings li{
	padding:10px 15px;
	box-sizing:border-box;
}


#settings-sidebar-tabs-settings ul:first-of-type li{
	border-bottom: 1px solid rgba(0,0,0,.1);
}
#settings-sidebar-tabs-settings ul:last-of-type li{
	border-top: 1px solid rgba(0,0,0,.1);
}


#settings-sidebar-tabs-settings li select{
    min-width: calc(150px);
    position: relative;
    padding: 8px 20px 8px 10px;
    background-color: rgba(0,0,0,.1);
    border-radius: 5px;
}


li.settings-select-item{
	position:relative;
}
li.settings-select-item:after{
	content: '⛛';
    position: absolute;
    right: 1rem;
    opacity: .2;
    pointer-events: none;
    z-index: 2;
    height: 15px;
    width: 17px;
    display: inline-block;
	font-size: 80%;
}
li.settings-select-item:hover:after{
	font-size: 90%;
	opacity:.8;
}
li.settings-select-item:hover select{
	background-color: rgba(0,0,0,.2);
}

/*
#scary-settings li{
	background-color:#911;
}
#scary-settings li:not(:first-of-type){
	border-top:1px solid var(--files-bg);
}
*/

#scary-settings li button{
	background-color:#911;
}
#scary-settings li button:hover{
	background-color:#b00;
}

/*
#settings-sidebar-tabs-container > div li{
	padding:0;
	border-bottom:1px solid rgba(255,255,255,.05);
}
*/


.simple-task-item{
	/*
	background-color:rgba(255,255,255,.05);
	border-bottom:1px solid rgba(255,255,255,.05);
	*/
}


.simple-task-item-state-assistant-icon{
	width:15px;
	height:15px;
	border-radius:50%;
	display:inline-block;
	margin-right:5px;
	vertical-align: middle;
}


.simple-task-item details{
	margin:2px 15px;
	border-radius:5px;
	overflow:hidden;
}
.simple-task-item details[open]{
	margin:2px 5px;
	border-radius:8px;
}

.simple-task-item summary{
	display:flex;
	justify-content:space-between;
	align-items:center;
	background-color:rgba(255,255,255,.2);

	padding:.5rem 10px .5rem 15px;
	
	cursor:pointer;
}

.simple-task-item details[open] summary{
	border-bottom-left-radius:0;
	border-bottom-right-radius:0;
	border-top-left-radius:10px;
	border-top-right-radius:10px;
}
.simple-task-item details[open] summary + div{
	border-bottom-left-radius:10px;
	border-bottom-right-radius:10px;
	background-color:rgba(255,255,255,.15);
	padding:7px 15px;
}

.simple-task-item-type-chat summary .simple-task-type:before{
	content:'💬';
}
.simple-task-item-type-speak summary .simple-task-type:before{
	content:'👄';
}
.simple-task-item-type-insert_into_document summary .simple-task-type:before{
	content:'➜📄';
}
.simple-task-item-type-stt_to_document summary .simple-task-type:before{
	content:'👄➜📄';
}
.simple-task-item-type-voice_command summary .simple-task-type:before{
	content:'🗣️';
}
.simple-task-item summary .simple-task-type:before{
	display:inline-block;
	margin-right:5px;
}

.simple-task-details-prompt,
.simple-task-details-sentence{
	font-style:italic;
	max-height:7.5rem;
	overflow:auto;
	white-space: pre-wrap;
}

.simple-task-children-container{
	padding-left:15px;
	background-color:red;
}

.simple-task-children-container:empty{
	display:none;
}


.simple-task-item-state-should_assistant{
	opacity:.5;
	animation: bg-sweep-to-right 8s linear infinite;
}




#simple-task-list-play-button-container{
	position:absolute;
	bottom:0;
	right:0;
	width:50px;
	height:50px;
	border-top-left-radius:10px;
	background-color:var(--files-bg);
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
}
body:not(.simple-task-list-paused) #simple-task-list-play-button-container{
	display:none;
}
body.simple-task-list-paused #simple-task-list-play-button-container:hover{
	background-color:var(--button-hover-bg);
}

.simple-task-state-name{
	padding:15px;
	box-sizing:border-box;
}

#simple-tasks-list-container{
	/*max-height:100%;*/
	box-sizing:border-box;
	padding-bottom:2rem;
	margin-bottom:2rem;
}

#simple-tasks-list-container:empty:before{
	content:'😴';
	font-size:2rem;
	display:block;
	text-align:center;
	padding-top:2rem;
}



/* thanks to: https://codepen.io/collinbrewer/pen/abzvLX*/
body.blueprint #editor,
#simple-tasks-list-container .simple-task-item-origin-blueprint {
  background-color: rgba(16,75,119,0.3);
  background-image:
    linear-gradient(rgba(255,255,255,.1) 2px, transparent 2px),
    linear-gradient(90deg, rgba(255,255,255,.1) 2px, transparent 2px),
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
  background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px;
}

/*
#show-advanced-settings-button{
	background-color:orange;
	color:white;
}
*/

















/*  CHAT VIEW  */

/*
.action-item * {
	pointer-events:none;
}
*/
body:not(.doing-assistant):not(.waiting-for-response) #stop-assistant-button{
	display:none;
	transition:all ease .3s;
}


.hamburger-icon{
	font-size:1.5rem;
	opacity:.8;
}
.hamburger-icon-close:hover{
	-webkit-clip-path: polygon(100% 0%,75% 50%,100% 100%,25% 100%,0% 50%,25% 0%);
	clip-path: polygon(100% 0%,75% 50%,100% 100%,25% 100%,0% 50%,25% 0%);
}


.hamburger-icon:hover{
	opacity:1;
}

#stop-assistant-button > span{
	pointer-events:none;
}

#stop-assistant-button:hover > span{
	transform:scale:1.2;
}

#main-chat{
	flex-grow:1;
	min-width:300px;
	flex-basis: 40%;
}

#chat-content{
	height:100%;
}


.busy-speaking #speaker-icon{
	transform:scale(1.5);
	border:3px solid blue;
}


#message-form-resize-handle{
	height:20px;
	min-height:20px;
	max-height:20px;
	flex-shrink:0;
	flex-grow:0;
	cursor: n-resize;
    /*border-top: 1px solid var(--thin-border-color);*/
    background: rgb(44, 44, 44);
	box-sizing:border-box;
	display:flex;
	justify-content:center;
	align-items:center;
	/*padding-top:3px;*/
	border-top-left-radius:5px;
	border-top-right-radius:5px;
}

.chat-message-form-maximum-height #message-form-resize-handle{
	cursor: s-resize;
	border-top-left-radius:0;
	border-top-right-radius:0;
}

#message-form-resize-handle-indicator{
	background-color:rgba(255,255,255,.4);
	height:6px;
	width:30px;
	border-radius:5px;
}
#message-form-resize-handle-indicator:hover{
	background-color:var(--button-hover-bg);
}



.chat-message-form-more-height #message-form-prompt-container{
	flex-direction:column;
}

#prompt-inputs-container{
	display:flex;
	flex-direction:column;
	height: 100%;
	flex-grow: 1;
	max-height: 100%;
}
#negative-prompt{
	display:none;
	height:0;
	max-height:0;
	
}

body#assistant-imager.chat-message-form-more-height.settings-complexity-advanced #negative-prompt{
	display:block;
	max-height:80%;
	height:20%;
	min-height:50px;
	transition: height .2s, max-height .2s;
	transition-timing-function: ease;
}



#message-form-prompt-container{
	display:flex;
}
#prompt{
	height: 100%;
	flex-grow:1;
	max-height:100%;
	line-height:140%;
}

#message-form-prompt-buttons{
	text-align:right;
	padding: 0 5px;
}
.chat-message-form-more-height #message-form-prompt-buttons{
	padding: 5px 0;
	margin-top:5px;
	margin-left:40px;
}

.chat-message-form-more-height #message-form-audio-buttons-container{
	justify-content: flex-end;
	width:0;
	padding:0;
	margin:0;
	z-index:2;
}

.chat-message-form-more-height #microphone-icon-container{
	margin-bottom:5px;
}

.chat-message-form-more-height .chat .content .message-form{
	padding-bottom:5px;
	padding-top:0;
	border-top:none;
}



/*   DIFFUSION IMAGE GENERATION   */


.generated-image-container{
	position:relative;
}
.generated-image-buttons-container{
	position:absolute;
	bottom:15px;
	right:15px;
	display:flex;
}
.generated-image-buttons-container .generated-image-button{
	width:25px;
	height:25px;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:50%;
	background-color:var(--button-bg);
	cursor:pointer;
	margin-left:15px;
}

.generated-image-buttons-container .generated-image-button:hover{
	background-color:var(--button-hover-bg);
}

/*
.chat .message-content .message .bubble .diffusion-progress{
	appearance: auto;
    box-sizing: border-box;
    display: inline-block;
    block-size: 1em;
    inline-size: 10em;
    vertical-align: -0.2em;
}
*/


/*   DOCUMENT VIEW  */


#main-view{
	display:none;
	position:fixed;
	z-index:1;
	top:0;
	left:0;
	height:100vh;
	width:100%;
	flex-grow:2;
	flex-basis:50%;
}


body.show-document #main-view{
	display:flex;
}

body.document-active #editor{
	box-shadow:inset 0 0 1px 100vw rgba(255,255,255,0.03);
}

/*
#submit-prompt-button-image{
	transition:all ease .2s;
	transform:rotate(-30deg) scale(0.8,1);
}
body.document-active #submit-prompt-button-image{
	transform:rotate(10deg);
}
*/

#submit-prompt-button{
	overflow:hidden;
}

#submit-prompt-button-image{
	position:relative;
	left:0rem;
	bottom:0rem;
}

.fly-the-plane > #submit-prompt-button-image{
	transition: all 0.5s ease-in-out;
	position:relative;
	left:3rem;
	bottom:1rem;
	opacity:0;
}

button:not(.fly-the-plane) > #submit-prompt-button-image{
	transition: opacity 0.5s ease-in-out;
	opacity:1;
}
	



#header{
	min-height:50px;
	background-color:var(--sidebar-header-bg);
	justify-content: center;
	align-items: center;
	border-bottom: 1px solid var(--thin-border-color);
}


#file-path{
	background-color:transparent;
}

#close-document-view{
	position: absolute;
    top: 0;
    right: 0;
    font-size: 1.5rem;
    height: 50px;
    opacity: 1;
	border-radius:0;
	background-color:var(--sidebar-header-bg);
	border-bottom: 1px solid var(--thin-border-color);
}
#close-document-view:hover{
	opacity: 1;
	background-color:var(--button-hover-bg);
}


#editor{
	background-color:var(--editor-bg);
}
#editor.code-editor{
	padding-top:0;
	max-width:100%;
}
#editor.code-editor .cm-editor{
	max-width:100%;
}

#editor.code-editor div[spellcheck]{
	white-space: pre-wrap;
	width:calc(100% - 1rem);
	max-width:calc(100%);
	padding-right:4rem;
	
}
/*
#editor.code-editor div[spellcheck] > .cm-line:last-of-type:after{
	content:'CONTINUE';
	display:block;
	text-align:center;
	padding:.5rem;
	border-radius:.5rem;
	background-color:var(--button-bg);
	margin:1rem auto;
	width:50%;
	max-width:50%;
	transition: max-width .3s;
	cursor:pointer;
	box-sizing: border-box;
	
}
*/
/*
#editor.code-editor div[spellcheck] > .cm-line + .cm-line:last-of-type:after:hover{
	background-color:var(--button-hover-bg);
}
*/
/*
#editor.code-editor div[spellcheck] > .cm-line:last-of-type:hover:after{
	background-color:var(--button-hover-bg);
	width:100%;
	max-width:100%;
	color:white;
}

#editor.code-editor div[spellcheck] > .cm-line.cm-activeLine:last-of-type:after{
	width:100%;
	max-width:100%;
	transition: max-width .6s;
}
*/



.ͼ1 .cm-gutter{
	overflow:visible;
}

.cm-gutters{
	margin-left:.5rem;
}


.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter{
	position: relative;
	overflow: visible;
	background-color:transparent;
}

/*
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:not(:last-of-type):after{
*/
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:after{
	content: '+';
    width: 1.5rem;
    height: 1.5rem;
    border-radius: .75rem;
    border-bottom-right-radius: 0;
    background-color: var(--button-bg);
    transition: all .2s ease-in-out;
    display: flex;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    position: absolute;
    bottom: 0;
    color: white;
    font-size: 15px;
    z-index: 20;
}
/*
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:not(:last-of-type):before{
*/
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:before{	
	content:'';
    position: absolute;
    bottom: 0;
	right:0;
	transition: all .2s ease-in-out;
	border-bottom:1px dashed var(--button-hover-bg);
	width:0;
	max-width:0;
	opacity:0;
	/*pointer-events:none;*/
}
/*
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:not(:last-of-type):hover:after{
*/
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:hover:after{
	border-radius:.5rem;
	border-bottom-right-radius: 0;
	background-color:var(--button-hover-bg);
	/*transform:scale(1.2);
	width:4rem;
	bottom:-.75rem;*/
}
/*
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:not(:last-of-type):hover:before{
*/
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:hover:before{
	width:10rem;
	max-width:10rem;
	right:-10rem;
	opacity:1;
	cursor: pointer;
}
/*
.cm-gutter.cm-lineNumbers .cm-gutterElement.cm-activeLineGutter:last-of-type{
	background-color:transparent;
}
*/


body:not(.coder) .cm-foldGutter .cm-activeLineGutter{
	background-color:transparent;
}


body:not(.coder) .cm-gutter.cm-lineNumbers .cm-gutterElement{
	font-size:0;
}



#editor.code-editor .ͼ1 .cm-scroller{
	padding:2rem 0;
	width:100%;
	max-width:100%;
}

#editor.code-editor .ͼ2 .cm-gutters{
	background-color:transparent;
}

body:not(.coder) #editors #output,
body:not(.coder) #editors #resizer{
	display:none;
}


.cm-cursor{
	box-shadow: 0px 0px 0px 1px #fff;
}




#document-form-container{
	max-height:200px;
	background-color: var(--sidebar-header-bg);
}

.doc-empty #document-form-container{
	max-height:0;
	overflow:hidden;
}

#document-form{
	display:flex;
	justify-content:space-around;
	padding:10px;
}

#document-form > *{
	margin:.5px;
}

#doc-selection-hint{
	display:flex;
	flex-direction:column;
	position:fixed;
	left:-10000px;
	bottom:-10000px;
	border-radius:.5rem;
	padding:.5rem;
	background-color:#036294;
	z-index:1000;
}
#doc-selection-hint > button + button{
	margin-top:.5rem;
}
#doc-selection-hint > button:hover{
	transform:scale(1.03);
}

#doc-selection-hint button{
	background-color:var(--button-bg);
}


body:not(.model-loaded) .requires-model-loaded{
	opacity:.2;
	pointer-events:none;
}





/*   CODE MIRROR SEARCH   */

.ͼ2 .cm-panels-bottom{
	border-top:none;
}

.ͼ2 .cm-button{
	border: 0.1px solid var(--sidebar-header-bg);
	border-radius:5px;
	background:var(--button-bg);
	color:#ddd;
	font-size: inherit;
}

.ͼ2 .cm-button:hover{
	background:var(--button-hover-bg);
	color:#fff;
}


#search-input1,
.ͼ1 .cm-panel.cm-search input{
	background-color:rgba(255,255,255,.1);
	border:1px solid transparent;
	border-bottom:2px dashed var(--button-bg);
	margin-bottom:4px;
    color: wheat;
    font-size: inherit;
}

.ͼ1 .cm-panel.cm-search input, 
.ͼ1 .cm-panel.cm-search button, 
.ͼ1 .cm-panel.cm-search label{
	margin:0;
	font-family:inherit;
}

.ͼ1 .cm-panel.cm-search label{
	cursor:pointer;
}
.ͼ1 .cm-panel.cm-search label:hover{
	background:var(--button-hover-bg);
	color:#fff;
}

.ͼ1 .cm-panel.cm-search label > input[type=checkbox]{
	transform:scale(1.2);
	margin-right:7px;
}

.ͼ1 .cm-panel.cm-search{
	padding:0;
	background-color: var(--sidebar-header-bg);
	border:none;
	padding: 7px 5px 6px 5px;
}


.ͼ1 .cm-panel.cm-search input[name="search"],
#search-input1,
.ͼ1 .cm-panel.cm-search input[name="replace"]{
	width: calc(100% - 32.5px);
	min-height: 40px;
	margin-left: 2px!important;
	margin-bottom:2px;
}
.ͼ1 .cm-panel.cm-search input[name="replace"]{
	margin-top:10px;
}

button.cm-button[name="next"],
button.cm-button[name="prev"],
button.cm-button[name="select"],
#search-both-button{
	width:calc(25% - 8px);
}

#search-both-button{
	margin-left:2px;
}

button.cm-button[name="search"]{
	margin-left:10px;
}


.ͼ1 .cm-panel.cm-search label{
	margin:0;
	text-align:center;
}
.ͼ1 .cm-panel.cm-search label:first-of-type{
	margin-left:2px;
}

button.cm-button[name="select"] + label{
	margin-left:2px!important;
}
button.cm-button[name="select"] + label,
button.cm-button[name="select"] + label + label,
button.cm-button[name="select"] + label + label + label{
	background-color:rgba(255,255,255,.6);
	width: calc(50% - 16px);
	display:inline-block;
	padding-left:10px;
	border-radius:5px;
}

button.cm-button[name="select"] + label,
button.cm-button[name="select"] + label + label{
	border-right:1px solid var(--sidebar-header-bg);
}


body:not(.settings-complexity-advanced) button.cm-button[name="select"] + label + label{
	display:none;
}

body.settings-complexity-advanced button.cm-button[name="select"] + label,
body.settings-complexity-advanced button.cm-button[name="select"] + label + label,
body.settings-complexity-advanced button.cm-button[name="select"] + label + label + label{
	width: calc(33.33333% - 10.8px);
}


.ͼ1 .cm-panel.cm-search button[name="replace"]{
	margin-left:2px;
}


.ͼ1 .cm-panel.cm-search button[name="replace"],
.ͼ1 .cm-panel.cm-search button[name="replaceAll"]{
	width:calc(50% - 16px);
}



.ͼ1 .cm-panel.cm-search [name=close]{
	width:20px;
	height:20px;
	border-radius:10px;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size: 1.5rem;
	padding-top: 1px;
	top:10px;
	right:6px;
}
.ͼ1 .cm-panel.cm-search [name=close]:hover{
	background:var(--button-hover-bg);
}




/*   IMAGE EDITOR   */

#playground-overlay{
	padding:0;
}

.FIE_topbar{
	background-color:var(--sidebar-header-bg);
}


.FIE_topbar-buttons-wrapper{
	flex-grow:1;
}
#playground-overlay .FIE_topbar-history-buttons{
	display:flex;
	flex-grow:1;
	justify-content:center;
	column-gap: 8px;
}

.eSPdgw{background-color:transparent}

.FIE_main-container{
	background-color:black;
	border: none;
}

#playground-overlay button.FIE_topbar-close-button{
	display:none;
}

#playground-overlay .FIE_tools-bar-wrapper{
	max-height:none;
	flex-shrink:0;
}
/*
#playground-overlay .FIE_tool-options-wrapper{
	flex-wrap:wrap;
}
*/
#playground-overlay .FIE_tools-bar{
	flex-wrap:wrap;
}

#playground-overlay .yGSXZ{
	height: calc(100% - 138px);
}

#SfxPopper .SfxMenuItem-wrapper,
#SfxPopper .SfxMenuItem-root,
#SfxPopper .FIE_root .SfxPopper-root .SfxMenu-root, 
#SfxPopper .SfxPopper-root .SfxMenu-root,
#SfxPopper .SfxPopper-root,
#SfxPopper .SfxMenuItem-wrapper{
	background-color:#111!important;
}

#playground-overlay .FIE_main-container{
	background-color:var(--sidebar-header-bg);
}

#playground-overlay div[class$="-tool-button"]{
	background-color:var(--button-bg);
	color:#ddd;
}
#playground-overlay div[class$="-tool-button"]:hover{
	background-color:var(--button-hover-bg);
	color:#fff;
}


#playground-overlay .SfxLabel-text,
#playground-overlay div[class$="-tool-button"] .SfxLabel-text{
	color:#ddd;
}

#playground-overlay .FIE_root :not(button) > svg:not([color]), 
#SfxPopper :not(button) > svg:not([color]){
	color:white;
	stroke:white;
}

#playground-overlay .FIE_tab{
	background-color:var(--button-bg);
	color:#ddd;
}
#playground-overlay .FIE_tab:hover{
	background-color:var(--button-hover-bg);
	color:#fff;
}


.image-editor #document-form-container,
#assistant-speaker .bubble-doc-button,
#assistant-developer .bubble-doc-button,
#assistant-imager .bubble-doc-button{
	display:none;
}

.vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="text"]{
	caret-color: var(--button-bg);
}



/*  DOCUMENT FOOTER  */


body:not(.playing-document) #stop-play-document-button{
	display:none;
}
body.playing-document #play-document-button{
	display:none;
}

#stop-play-document-button{
    background-size: 200% 200%;
	background-image:none;
	background-image: linear-gradient(-90deg,
            rgba(59, 173, 227, .5) 0%,
            rgba(87, 111, 230, 1) 50%,
            rgba(152, 68, 183, .5) 51%,
            rgba(59, 173, 227, 1) 100%);
    animation: bg-sweep-to-right .2s ease infinite;
	/*transform:scale(1);*/
}





body.playing-document #stop-play-document-button,
body:not(.playing-document) #play-document-button,
#save-document-button{
	transition: max-width ease .3s;
	max-width:100px;
}


body:not(.can-undo) #undo-document-button,
body:not(.can-redo) #redo-document-button,
body.show-document:not(.doc-is-long) #document-summarize-button,
body.show-document:not(.doc-has-text) #document-continue-button,
body.show-document:not(.doc-has-text) #play-document-button,
body.playing-document #play-document-button,
body:not(.playing-document) #stop-play-document-button,
body:not(.current-modified) #save-document-button{
	transition: max-width ease .2s;
	max-width:0;
    padding: 0;
    overflow: hidden;
}




.undo-redo-button{
	font-size:2rem;
	padding: 0 0.5rem;
	max-width:5rem;
	transition: max-width ease .2s;
}

#redo-document-button{
	transform:scaleX(-1);
}



/*  RIGHT BAR  */

#right-bar{
	margin-top:50px;
	height:calc(100vh - 50px);
}

body:not(.developer) #right-bar{
	display:none;
}




#right-bar button{
	padding:2px;
}





/*  VEX DIALOG*/

.vex.vex-theme-top .vex-dialog-button.vex-dialog-button-primary{
	background-color:var(--button-bg);
}

.vex.vex-theme-top .vex-dialog-button.vex-dialog-button-primary:hover{
	background-color:var(--button-hover-bg);
}
/*
.vex-content{
	transition:opacity linear.3s;
}
*/

/*  DIALOG  */

dialog {
	margin:auto;
	background-color:var(--sidebar-bg);
	background-color:#5d5d5d;
	padding: 1rem;
	border-radius:.5rem;
	border: none !important;
	width:40rem;
	max-width: 90vw;
}
dialog::backdrop {
  background: repeating-linear-gradient(
    45deg,
    rgba(0, 0, 0, 0.2),
    rgba(0, 0, 0, 0.2) 1px,
    rgba(0, 0, 0, 0.3) 1px,
    rgba(0, 0, 0, 0.3) 20px
  );
  backdrop-filter: blur(3px);
}

/*
.dialog-bg-icon{
	font-size:15rem;
	pointer-events:none;
	opacity:0.05;
	position:absolute;
}
*/
#rewrite-dialog-hint{
	color:white;
	display:none;
}

#rewrite-dialog-content-container{
	display:flex;
	flex-direction:column;
	margin:1rem 0;
}
#rewrite-dialog-content-container textarea{
	width:100%!important;
	min-height:4rem;
}
#rewrite-dialog-selected-text{
	margin-top: 1rem;
    opacity: .6;
	height:8rem;
    max-height: 30vh;
    font-family: inherit;
    line-height: inherit;
    padding: 1rem;
    background-color: rgba(0,0,0,.1);
	overflow:auto;
	white-space: pre-wrap;
}
#rewrite-dialog-selected-text:empty{
	display:none;
}

dialog #rewrite-prompt{
	
}

dialog button{
	background-color:var(--button-bg);
}


.submit-multi-commands-buttons-wrapper{
	display:flex;
	align-items:center;
	justify-content:flex-end;
}

.multi-submit-button,
#dialog-rewrite-2x-submit-prompt-button,
#dialog-rewrite-4x-submit-prompt-button{
	display:flex;
	flex-direction:column;
	margin-right:10px;
}

.multi-submit-button img,
#dialog-rewrite-2x-submit-prompt-button img,
#dialog-rewrite-4x-submit-prompt-button img{
	width:25px;
	height:25px;
}

.multi-submit-button > div,
#dialog-rewrite-x4-submit-prompt-button > div{
	height:25px;
}



/*   REWRITE RESULTS PICKER   */

#rewrite-results-dialog{
	width:100%;
	height:100%;
	max-width:90vw;
	max-height:90vh;
	padding:0;
}
#rewrite-results-dialog h3{
	color:white;
	font-weight:bold;
	margin-bottom:.5rem;
}

#rewrite-results-dialog textarea{
	width:100%;
	background-color:rgba(0,0,0,.1);
	padding:1rem;
	border-radius:.5rem;
	border:none;
	flex-grow:1;
	line-height:150%;
}

#rewrite-results-dialog #rewrite-results-dialog-original-text-container textarea{
	background-color:rgba(0,0,0,.2);
}


#rewrite-results-dialog-content-container{
	display:flex;
	height:100%;
}
#rewrite-results-dialog-content-container > div{
	padding:2rem 0;
}


#rewrite-results-dialog #rewrite-results-dialog-original-text-container{
	width:30vw;
	min-width:300px;
	padding:3rem 2rem;
	flex-grow:1;
	border-right:1px solid #888;
	display:flex;
	flex-direction:column;
	background-color: #777;
}


#rewrite-results-dialog-creations-container{
	display:flex;
	overflow-x:auto;
	height:100%;
}
#rewrite-results-dialog-creations-container > div{
	min-width:300px;
	height:100%;
	box-sizing:border-box;
	padding:1rem 2rem;
	width:30vw;
}
#rewrite-results-dialog-creations-container > div:not(:first-of-type){
	border-left:1px solid #888;
}

.rewrite-result-header-of{
	font-size:80%;
	opacity:.3;
	margin-left:3px;
}

.rewrite-result-container{
	display:flex;
	flex-direction:column;
}

.rewrite-result-footer{
	text-align:right;
	padding:.5rem 0;
}

#rewrite-results-dialog-original-text-footer{
	padding:.5rem 0;
}






/*  BUTTONS TO INSERT CHAT BUBBLES INTO A (NEW) DOCUMENT  */

.bubble-doc-button{
	/*display:none;*/
	width:15px;
	height:15px;
	border-radius:50%;
	position:absolute;
	bottom:30px;
	right:-7px;
	cursor:pointer;
	white-space: nowrap;
	transition:opacity .3s;
}

.message-content .message:hover .bubble-doc-button{
	display:inline-block;
}

.bubble-new-doc-button:after{
	content: '+';
    position: absolute;
    bottom: -3px;
    right: -15px;
    font-size: 17px;
    color: #ccc;
    background: var(--button-hover-bg);
    width: 14px;
    height: 14px;
    display: inline-flex;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    padding-bottom: 3px;
    box-sizing: border-box;
	transition:opacity .3s;
    opacity: 0;
}
.bubble-new-doc-button:hover:after{
	opacity: 1;
}





.show-document .bubble-insert-into-doc-button:hover:after{
	content:'➞';
}

#assistant-developer .bubble-new-doc-button,
.show-document .bubble-new-doc-button,
body:not(.show-document) .bubble-insert-into-doc-button{
	display:none!important;
}




























/*
@media only screen and (min-width: 1200px){
	.coder #right-bar{
		display:block;
	}
}
*/



/*
body:not(.sidebar) #sidebar-header-tab-buttons{
	flex-direction:column;
}
*/

/*
body:not(.sidebar) #sidebars-header{
	display:none;
}*/

body:not(.sidebar) #open-sidebar-button{
	position:fixed;
	top:0;
	left:0;
	width:50px;
	height:50px;
	border-left: 1px solid var(--thin-border-color);
	border-radius: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index:99999;
}

#back-button{
	opacity:0;
}

body:not(.sidebar) #back-button-container{
	display:flex;
}
/*
body:not(.sidebar) #back-button{
	opacity:0;
}
*/



#flash-message{
	right:0;
	width:100%;
	height:50px;
}




/*  TASK VIEWER  */

#draggable-dialog{
	position:fixed!important;
	z-index:2;
}

#task-overview:empty:after{
	content:'😴';
	font-size:3rem;
	display:block;
	padding:2rem;
	text-align:center;
}
#task-overview-update-toggle-button{
	/*position:absolute;
	top:auto;
	bottom:1rem;
	right:1rem;
	z-index:1;*/
}

#task-overview{
	padding-bottom:1rem;
	border-bottom:1px solid rgba(255,255,255,.6);
	margin-bottom:2rem;
}
#task-overview > .task{
	padding:.5rem 0;
	border-bottom:1px dashed rgba(128,128,128,.1);
	margin:.5rem 0;
}

.task-key{
	margin-right:2rem;
	min-width:300px;
	display:inline-block;
}







/*   SPEAKER VOICE ICONS   */

/*
#type-widget{
    width:100%;
    transition: all 1s linear;
    overflow:hidden;
}
*/
/* transition: 0.5s cubic-bezier(.18,1.14,.5,1.18) */

#speaker-voice-buttons-container{
	display:none;
	width:100%;
    position:relative;
    height:2.3rem;
	margin-top:5px;
	margin-bottom:10px;
}

body:not(#assistant-speaker) #speaker-voice-buttons-container{
	display:none;
}

.chat-message-form-more-height #speaker-voice-buttons-container{
	display:block;
}

#speaker-voice-buttons-container *{
	 box-sizing:border-box;
}

#speaker-voice-buttons-container > div{
	width:100%;
}

#speaker-voice-buttons-background{
    position:absolute;
    top:0;
    left:0;
    display: flex;
    overflow: visible;
    transition: opacity .2s linear;
}
/*
.invisible{
    transition: opacity .2s linear;
    opacity:0;
}
*/


#speaker-voice-buttons-background-ball-container{
    width:0;
    overflow:hidden;
    text-align:right;
    background-color:yellow;
}

#speaker-voice-buttons-background-ball-pusher{
    display:inline-block;
    height:2.3rem;
    width:0;
    transition: all 0.5s cubic-bezier(.18,1.14,.5,1.18);
}


#speaker-voice-buttons-background-ball{
    display:inline-block;
    background-color:rgba(255,255,255,.4);
    width:2.3rem;
    height:2.3rem;
    border-radius:50%;
}

#speaker-voice-buttons{
    display:flex; 
    position:relative;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    height:2.3rem;
}



#speaker-voice-buttons > span{
    display:inline-block;
    padding:.4rem;
    border-radius:50%;
    background-color:rgba(255,255,255,.1);
    box-sizing:border-box;
    cursor:pointer;
    margin-right:0;
    width:2.3rem;
    height:2.3rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:1.5rem;
}

#speaker-voice-buttons > span:hover,
#speaker-voice-buttons > span.selected{
    background-color:rgba(2255,255,255,.4);
    color:black;
}


.speaker-voice-icon-us:after{
	content:'🇺🇸';
	position:absolute;
	font-size:1rem;
}

.speaker-voice-icon-canadian:after{
	content:'🇨🇦';
	position:absolute;
	font-size:1rem;
}

.speaker-voice-icon-scottish:after{
	content:'🏴󠁧󠁢󠁳󠁣󠁴󠁿';
	position:absolute;
	font-size:1rem;
}

.speaker-voice-icon-indian:after{
	content:'🇮🇳';
	position:absolute;
	font-size:1rem;
}











/*  SPECIAL STYLES, e.g fairytale fairy tale */

.fairytale #header{
	background-color:green!important;
}









/*  LOADING/WAITING SPINNER  */

.spinner{
	width:15px;
	height:15px;
	margin:15px auto;
	border-radius:50%;
	border:3px dashed rgba(0,0,0,.5);
}

.spinner,
.rotating {
  -webkit-animation: rotating 3s linear infinite;
  -moz-animation: rotating 3s linear infinite;
  -ms-animation: rotating 3s linear infinite;
  -o-animation: rotating 3s linear infinite;
  animation: rotating 3s linear infinite;
}

@keyframes rotating {
  from {
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}






@media only screen and (min-width: 640px){
	#main-view{
		position:initial;
	}
}


@media only screen and (min-width: 801px){
	body:not(.show-document) #sidebars{
		position:initial;
	}
	dialog{
		max-width: 80vw;
		padding: 2rem;
	}
	.vex-dialog-form{
		max-width:600px;
	}
}

@media only screen and (min-width: 980px){
	body #sidebars{
		position:initial;
	}
	dialog{
		max-width: 80vw;
		padding: 2rem;
	}
	.vex-dialog-form{
		max-width:600px;
	}
}

@media only screen and (min-width: 1201px){
	dialog{
		max-width: 80vw;
		padding: 4rem;
	}
	
	#document-continue-button:before{
		content:'✒️ ';
	}
	
	
	#document-summarize-button:before{
		content:'🗜️ ';
	}
	
	.vex-dialog-form{
		max-width:800px;
	}
	
	
}





@media only screen and (min-width: 641px) and (max-width: 1024px){
	body:not(.sidebar).sidebar-chat #sidebars-header{
		width:56px;
		overflow:hidden;
	}
	/*
	body.sidebar-chat #chat-sidebar-container{
		width:56px;
	}
	*/
	
	body.sidebar.sidebar-chat.show-document #sidebars{
		min-width:56px;
		width:56px;
		max-width:56px;
		position:initial;
	}
	
	#file-manager .button{
		min-width:50%;
		text-align:center;
		justify-content:center;
	}
}


@media only screen and (max-width: 640px) {
	body:not(.chat-message-form-more-height) #submit-prompt-button{
		max-width: 4rem;
		padding: 0.2rem 0.5rem 0 0.5rem;
	}
}

@media only screen and (max-width: 1024px) {
	body.show-document:not(.chat-message-form-more-height) #submit-prompt-button{
		max-width: 4rem;
		padding: 0.2rem 0.5rem 0 0.5rem;
	}
}

@media only screen and (max-width: 1200px) {
	body.sidebar.show-document:not(.chat-message-form-more-height) #submit-prompt-button{
		max-width: 4rem;
		padding: 0.2rem 0.5rem 0 0.5rem;
	}
}



/*  touch devices  */
@media (hover: none) {
	body .message-content .message .bubble-new-doc-button,
	body.show-document.message-content .message .bubble-insert-into-doc-button{
		display:inline-block;
	}
}
