/*----------------------------------+
 | ffBabelfish Editor               |
 +----------------------------------*/

.ffBabelfishEditor{
	border-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background-color:transparent !important;
	left:0  !important;
	top:0 !important;
	width: auto !important;
	max-width: none !important;
	height: auto !important;
	max-height: none !important;
	border-collapse: collapse;
	border-spacing: 0;
}

.ffBabelfishEditor td{
	padding:0 !important;
	width: auto !important;
	min-width:0 !important;
	line-height:11px !important;
	border:0 solid transparent !important;
}

.ffBabelfishEditor input.inputtext{
	padding:.5em !important;
	width:180px !important;
	border: 1px solid var(--widget_color_background_tint_light_75) !important;
}

.ffBabelfishEditor input.inputtext:hover,
.ffBabelfishEditor input.inputtext:focus{
	border:1px solid var(--widget_color_background_tint_light_50) !important;
}

.ffBabelfishEditor .editorframe{
	background-color:#fff !important;
	padding:.5em !important;
}

/*submit button*/
.ffBabelfishEditor .editorframe + td{
	vertical-align:bottom !important;
	padding-left:4px !important;
}

.ffBabelfishEditor .editorframe + td input[type=image]{
	padding:6px !important;
	background-color:transparent !important;
	border:1px solid transparent !important;
	border-radius:2px !important;
}

.ffBabelfishEditor .editorframe + td input[type=image]:hover{
	border:1px solid rgba(255,255,255,.2) !important;
}

.ffBabelfishEditor .ffBabelfishEditorField{
	display:none;
}

.ffBabelfishEditor .ffBabelfishEditorField.active{
	display:block;
}

.ffBabelfishEditor .ffBabelfishEditorField .inputtext{
	width:427px;
	height:250px;
}

.ffBabelfishEditor .languagesTabBar{
	box-sizing: border-box;
	border-bottom:.5em solid #fff;
	display:flex;
}

.ffBabelfishEditor .languagesTabBar .tab{
	cursor:pointer;
	box-sizing:border-box;
	padding-right:2px;
	flex-grow: 1;
}

.ffBabelfishEditor .languagesTabBar .tab:last-child{
	padding-right:0;
}

.ffBabelfishEditor .languagesTabBar .tab>span{
	font-family:sans-serif;
	color:#000;
	font-style:normal;
	font-size:12px;
	line-height:12px;
	border-radius:2px 2px 0 0;
	padding:12px 8px 8px;
	display:block;
	background:var(--widget_color_background_tint_light_35);
	/*background-color:hsl(var(--widget_color_background_h_string), var(--widget_color_background_s_string), calc(var(--widget_color_background_l_string) - var(--widget_color_background_l_string) * .9));*/

	/*
    https://codesalad.dev/blog/color-manipulation-with-css-variables-and-hsl-16
    https://www.smashingmagazine.com/2021/07/hsl-colors-css/
    */
}

.ffBabelfishEditor .languagesTabBar .tab>span:hover{
	background:var(--widget_color_background_tint_light_50);
}

.ffBabelfishEditor .languagesTabBar .tab.active>span{
	background:#fff !important;
}

.ffBabelfishEditor .languagesTabBar .tab.activeOnInit>span{
	font-weight:bold !important;
}

.ffBabelfishEditor .languagesTabBar .tab.nocontent>span{
	font-style:italic !important;
}

del.ffBBMStart,
del.ffBBMEnd {
	display: none;
}

.ffBabelfishTargetFlash{
	animation: ffBabelfishTargetFlash 1.2s;
	outline-color:transparent;
	outline-width:1px;
	outline-style: solid;
	outline-offset: -1px;
}

@keyframes ffBabelfishTargetFlash {
	0% {outline-color:rgba(var(--widget_color_background_rgb_string),0);}
	10% {outline-color:rgba(var(--widget_color_background_rgb_string),1);}
	25% {outline-color:rgba(var(--widget_color_background_rgb_string),1);}
	100% {outline-color:rgba(var(--widget_color_background_rgb_string),0);}
}


/*----------------------------------+
 | ffBabelfish Inline editor        |
 +----------------------------------*/

.ffBabelfishInlineEditing {
  -webkit-user-select: auto;
  -moz-user-select: auto;
  -ms-user-select: auto;
  user-select: auto;
}

.empty-inline-editor{
	min-height:1em;
	min-width:8px;
}
span.empty-inline-editor{
	display:inline-block;
}

.ffBabelfishListen.ffBabelfishInlineEditing{
  cursor:text;
}

.ffBabelfishListen .ffWidgetTitle.inline.ffBabelfishInlineEditor{
	display:none;
}

[contenteditable]:focus{
	outline: none;
}

.ffBabelfishListen::focus{
	outline: none;
}

.ffBabelfishListen.mce-edit-focus{
	outline: none;
}

.inlineIndicator,
.inlineIndicatorFlush{
	position:fixed;
	z-index:1299;
	pointer-events:none;
}

.inlineIndicatorHandle,
.inlineIndicatorLine {
	border-color:rgb(var(--widget_color_background_rgb_string));
}
.inlineIndicator .inlineIndicatorHandle {
	background-color:rgb(var(--widget_color_background_rgb_string));
}

.inlineIndicatorHandle {
	border-width: 1px;
	border-style:solid;
	position:absolute;
	width:3px;
	height:3px;
}

.inlineIndicatorHandle.inlineIndicatorHandleA {
	left:-2px;
	top:-2px;
}
.inlineIndicatorHandle.inlineIndicatorHandleB {
	right:-2px;
	top:-2px;
}
.inlineIndicatorHandle.inlineIndicatorHandleC{
	right:-2px;
	bottom:-2px;
}
.inlineIndicatorHandle.inlineIndicatorHandleD{
	left:-2px;
	bottom:-2px;
}

.inlineIndicatorLine {
	border-width:0;
	position:absolute;
	border-style:solid;
}

.inlineIndicatorFlush .inlineIndicatorLine {
	border-style: dotted;
}

.inlineIndicatorLine.inlineIndicatorLineAB{
	border-top-width:1px;
	left:4px;
	right:4px;
	top:-1px;
	height:0;
}
.inlineIndicatorLine.inlineIndicatorLineBC {
	border-left-width:1px;
	right:-1px;
	top:4px;
	bottom: 4px;
	width:0;
}
.inlineIndicatorLine.inlineIndicatorLineCD {
	border-top-width:1px;
	left:4px;
	right:4px;
	bottom:-1px;
	height:0;
}

.inlineIndicatorLine.inlineIndicatorLineDA {
	border-left-width:1px;
	left:-1px;
	top:4px;
	bottom:4px;
	width:0;
}

.inlineIndicatorTools{
	display:flex;
	position:absolute;
	top:-24px;
	left:4px;
	font-size:12px;
	font-family:sans-serif;
	pointer-events:all;
	line-height: 16px;

	/* WIP */
	display:none;
}

.inlineIndicator-toolbar{
	display:flex;
	background-color:var(--widget_color_background);
	border: 1px solid var(--widget_color_background);
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	position:relative;
}
.inlineIndicator-toolbar:after{
	content:"";
	position:absolute;
	top:0;
	right:0;
	bottom:0;
	left:0;
	background-image:linear-gradient(to bottom, rgba(255,255,255,.12) 25%, rgba(255,255,255,0) 75%);
	pointer-events:none;
}


.inlineIndicator-button{
	color: var(--widget_color_text);
	cursor:pointer;
	margin-right:.5px;
	display: flex;
	justify-content: center;
	position:relative;
}
.inlineIndicator-button>span{
	padding: 3px 5px;
	min-width:1em;
}

.inlineIndicator-button:last-child{
	margin-right:0;
}

.inlineIndicator-button:hover {
	background-color:var(--widget_color_background_tint_light_75);
	color:var(--widget_color_background);
}

.inlineIndicator-button--active{
	background-color:var(--widget_color_background_tint_light_90);
	color:var(--widget_color_background);
}

/*---------------------------*
 | TINYMCE                   |
 +---------------------------*/

div.tox-tinymce{
	border:none !important;
}

div.tox .tox-toolbar,
div.tox .tox-toolbar__overflow,
div.tox .tox-toolbar__primary {
	background:none;
	border-bottom:.5px solid var(--widget_color_background_tint_light_75)
}

div.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){
	border-right:none;
}

div.tox .tox-button{
	background:var(--widget_color_background);
	color:var(--widget_color_text);
	border:none;
	border-radius:0;
}

div.tox .tox-button:hover:not(:disabled){
	background:var(--widget_color_background_tint_light_50);
}

div.tox .tox-button--secondary,
div.tox .tox-button--naked{
	background:none;
	color:inherit;
}
div.tox .tox-button--secondary:hover:not(:disabled),
div.tox .tox-button--naked:hover:not(:disabled){
	background:none;
}

div.tox .tox-tbtn{
	border-radius:0;
}
div.tox .tox-tbtn svg{
	fill:var(--widget_color_background);
}

div.tox .tox-tbtn:hover{
	background:var(--widget_color_background_tint_light_50);
}

div.tox .tox-tbtn--enabled{
	background:var(--widget_color_background);
}

div.tox .tox-tbtn--enabled:hover{
	background:var(--widget_color_background_tint_light_15);
}

div.tox .tox-tbtn:hover svg,
div.tox .tox-tbtn--enabled svg,
div.tox .tox-tbtn--enabled:hover svg{
	fill:var(--widget_color_text);
}

/* inline tooltip */

div.tox .tox-pop__dialog {
	border: 1px solid var(--widget_color_background);
	border-radius: 2.5px;
	box-shadow: none;
	background-color: var(--widget_color_background);
	background-image:linear-gradient(to bottom, rgba(255,255,255,.12) 25%, rgba(255,255,255,0) 75%);
	min-width:34px;
}

div.tox .tox-toolbar__group {
	padding: 0;
}

div.tox .tox-pop::after {
	display:none;
}

div.tox .tox-pop .tox-tbtn{
	margin:0 .4px;
	color:var(--widget_color_text);
}

div.tox .tox-pop .tox-tbtn svg{
	fill:var(--widget_color_text);

}

div.tox .tox-pop .tox-tbtn--enabled{
	background:rgba(var(--widget_color_text_rgb_string),.9);
}

div.tox .tox-pop .tox-tbtn:hover{
	background:rgba(var(--widget_color_text_rgb_string),.5);
}

div.tox .tox-pop .tox-tbtn--enabled:hover{
	background:rgba(var(--widget_color_text_rgb_string),.66);
}

div.tox .tox-pop .tox-tbtn:hover svg,
div.tox .tox-pop .tox-tbtn--enabled svg,
div.tox .tox-pop .tox-tbtn--enabled:hover svg{
	fill:var(--widget_color_background);
}

div.tox .tox-pop.tox-pop--top::before {
	border-color: transparent transparent var(--widget_color_background) transparent;
}
div.tox .tox-pop.tox-pop--bottom::before {
	border-color: var(--widget_color_background) transparent transparent transparent;
}
div.tox .tox-pop.tox-pop--left::before {
	border-color: transparent var(--widget_color_background) transparent transparent;
}
div.tox .tox-pop.tox-pop--right::before {
	border-color: transparent transparent transparent var(--widget_color_background);
}

/*----------------------------------+
 | Date-Picker                      |
 +----------------------------------*/
.ui-datepicker-calendar{
	display:block;
	padding:10px 5px;
}

.ui-state-active,
.ui-widget-content .ui-state-active {
	/*border:1px dotted #fff;*/
	background-color:rgba(255,255,255,0.5);
	color:#fff;
}

.ui-datepicker-header{
	text-align:center;
	padding:4px 8px;
}

.ui-datepicker-prev,
.ui-datepicker-next{
	display:block;
	padding:6px 10px;
	margin:8px 5px;
	cursor:pointer;
	position:absolute;
	top:0;
	background-color:rgba(255,255,255,.2);
	color:#000;
}
.ui-datepicker-prev {
  left:0;
}
.ui-datepicker-next {
	right:0;
}

.ui-datepicker-prev:hover,
.ui-datepicker-next:hover{
  background-color:rgba(255,255,255,.5);
}
.ui-datepicker-title{
	display:inline-block;
	min-width:120px;
}
.ui-datepicker-trigger{
	vertical-align:text-bottom;
	cursor:pointer;
}
.ui-datepicker-calendar td>a,
.ui-datepicker-calendar th>span{
	display:inline-block;
	padding:6px;
}

.ui-datepicker-calendar td.ui-datepicker-week-end{
  background-color:rgba(0,0,0,0.05);
}

.ui-datepicker-calendar td>a:hover{
	background-color:rgba(255,255,255,.2);
}

.ui-datepicker-calendar td>a.ui-state-active:hover{
  background-color:rgba(255,255,255,.6);
}


/*----------------------------------+
 | ffUpload Editor enhanced         |
 +----------------------------------*/

.ffWidget form.ffUploadFileEditor{
	display:block !important;
	margin-bottom:1em;
}

.ffUploadFileEditor .dz-message{
	cursor:pointer;
}

.ffUploadFileEditor .dz-message>span>span:first-child{
	display: block;
	padding: 1em .5em;
	border: 1px dashed rgba(255,255,255,.25);
	border-bottom-width:0;
	text-align: center;
}

.ffUploadFileEditor .dz-message>span>span:last-child{
	display: block;
	padding: .4em 0;
	background-color: rgba(255,255,255,.25);
	text-align: center;
	margin-bottom:.5em;
}

.ffUploadFileEditor .file-to-upload{
	padding: .3em 0;
	display:block;
	transition:max-height .3s, padding .3s;
	max-height:1.8em;
}

.ffUploadFileEditor .file-to-upload.dz-success{
	max-height:0;
	padding:0;
	overflow-y:hidden;
}

.ffUploadFileEditor .file-to-upload .dz-size{
	display:none;
}

.ffUploadFileEditorSubmitBtn.ffUploadFileEditorSubmitBtn{
	margin-top:1em;
}


/*----------------------------------+
 | Modal                            |
 +----------------------------------*/

.ffModal{
	background-color:rgba(255,255,255,0.9);
	z-index:10000;
	box-sizing: border-box;
	padding:1em;
}

.ffModal.fullscreen{
	position:fixed;
	margin-top:0;
	top:0;
	right:0;
	bottom:0;
	left:0;
}

.ffModal>div{
	box-sizing: border-box;
	padding:2em;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ffModal .ffWidgetTitle{
	display:none;
}

.ffModal .ffWidget{
	width: 50%;
	max-width:500px;
	min-width:250px;
	box-sizing: border-box;
	flex: 1;
}

.ffModal .ffWidget .body{
	white-space: normal;
}

.ffModal .ffWidget .body .value{
	padding:1.4em;
	font-size:1.4em;
	line-height:1.4em;
	box-sizing: border-box;
}

.ffModal .ffWidgetLabel{
	padding:.7em 1.4em;
	font-size:1.4em;
	line-height:1.4em;
	box-sizing: border-box;
}

.ffModal .actionBar button{
	background-color: rgba(255,255,255,.7);
	border: 1px solid rgba(255,255,255,.7);
	padding: .7em;
	border-radius:.1em;
	margin-right:.7em;
	cursor:pointer;
}

.ffModal .actionBar button:hover{
	background-color: rgba(255,255,255,.95);
}

.ffModal .actionBar label{
	font-size:1em;
	line-height:1.2em;
	display:block;
	margin-bottom:1.4em;
}

.ffModal .actionBar input[type=checkbox]{
	margin-right:.7em;
}

.ffModal .message p{
	margin:0 0 .7em 0;
	padding:0;
}

.ffModal .message a{
	color:#fff;
	text-decoration:underline;
}


/*----------------------------------+
 | Settings-panel and -widgets      |
 +----------------------------------*/

.ffSetupWidgetFrm input.inputtext,
.ffSetupWidgetFrm input.inputtext[type=text],
.ffSetupWidgetFrm input.inputtext[type=number]{
	border:1px solid transparent;
	color: #fff !important;
	background:transparent;
	padding:2px 3px;
	font-family:sans-serif;
	display:inline-block;
	width:0;
	min-width:100px;
}
.ffSetupWidgetFrm label {
  font-family:sans-serif;
  padding:0;
}

.ffSetupWidgetFrm input.inputtext:hover,
.ffSetupWidgetFrm input.inputtext[type=text]:hover,
.ffSetupWidgetFrm input.inputtext[type=number]:hover{
  border-color:rgba(255,255,255,.3);
}

.ffSetupWidgetFrm input.inputtext:focus,
.ffSetupWidgetFrm input.inputtext[type=text]:focus,
.ffSetupWidgetFrm input.inputtext[type=number]:focus{
	border-color:#fff;
}

.ffSetupWidgetFrm input[type=submit] {
	display:none !important;
}

.ffSetupWidgetFrm input[type=number]::-webkit-outer-spin-button,
.ffSetupWidgetFrm input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ffSetupWidgetFrm input[type=number] {
  -moz-appearance:textfield;
}


/*----------------------------------+
 | Selects                          |
 +----------------------------------*/

.ffSetupWidgetFrm select.inputtext {
  border:none;
  color: #fff !important;
  background:transparent;
  padding-left:3.56em;
  padding-top:0;
  padding-bottom:0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
	cursor:pointer;
}

.ffSetupWidgetFrm select option{
	color:#000;
}

.ffSetupWidgetFrm select:hover {
  text-decoration:underline;
}

.ffSetupWidgetFrmSelects::before{
  content:"❯";
  display:block;
  position:absolute;
  pointer-events:none;
  box-sizing:border-box;
  text-align:center;
  padding: 0 1px;
  border:1px solid #fff;
  width: 1.45em;
  line-height: 1.25;
  transform: rotate(90deg);
  margin-left: 1.2em;
}


/*----------------------------------+
 | Checkboxes                       |
 +----------------------------------*/

.ffSetupWidgetFrm--toggler{
  display:inline-block;
  padding: 0 3px;
  border:1px solid #fff;
  width: 2.66em;
  cursor:pointer;
  text-align:center;
  box-sizing:border-box;
  margin-right:.8em;
  float: left;
}

.ffSetupWidgetFrm--spacer{
	display: inline-block !important;
	padding: 0 3px !important;
	width: 2.66em;
	text-align: right !important;
	box-sizing: border-box;
	margin-right: .8em !important;
}

/*well, some tweak*/
.ffSetupWidgetFrm--spacer>.ffWidgetTitle{
	text-align: right !important;
	margin-right: -5px !important;
}

input.ffSetupWidgetFrm-checkbox{
  display:none !important;
  float:left;
}

.ffSetupWidgetFrmCheckboxes label{
  display:inline-block;
  padding:0 .3em;
}

input.ffSetupWidgetFrm-checkbox+label{
  opacity:.5;
  display:none;
  cursor:pointer;
}

input.ffSetupWidgetFrm-checkbox+label:hover{
  text-decoration:underline;
}

input.ffSetupWidgetFrm-checkbox:checked+label{
	opacity:1;
	display:inline-block;
}

input.ffSetupWidgetFrm-checkbox+label::before{
  content:"☐";
  display:inline-block;
}

input.ffSetupWidgetFrm-checkbox:checked+label:hover{
  text-decoration:line-through;
}

input.ffSetupWidgetFrm-checkbox:checked+label::before{
  content:"☑";
  display:none;
}

/*no oversized widget bodies*/
.ffWidget .ffSetupWidgetFrmCheckboxes:not(.ffSetupWidgetFrmCheckboxesActive) {
	overflow-x: hidden;
  max-width: 140px;
  display: inline-block !important;
  word-break: keep-all;
  text-overflow: ellipsis;
}

.ffSetupWidgetFrmCheckboxesActive input.ffSetupWidgetFrm-checkbox+label {
  display:block !important;
  margin-left:3.56em;
  line-height:2;
}

.ffSetupWidgetFrmCheckboxesActive input.ffSetupWidgetFrm-checkbox:checked+label::before{
  display:inline-block;
}


/*----------------------------------+
 | Boolean toggles                  |
 +----------------------------------*/

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl {
	display: none !important;
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl:after,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl:before,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl *,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl *:after,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl *:before,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl+label {
	box-sizing: border-box;
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl::selection,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl:after::selection,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl:before::selection,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl *::selection,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl *:after::selection,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl *:before::selection,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl+label::selection {
	background: none
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl+label {
	outline: 0;
	display: inline-block;
	vertical-align: middle;
	width: 2.666em;
	height: 1.5em;
	position: relative;
	cursor: pointer;
	user-select: none;
	border:1px solid #fff;
	border-radius: 0px;
	padding: 2px;
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl+label:after,
.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl+label:before {
	position: relative;
	display: block;
	content: "";
	width: 50%;
	height: 100%
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl+label:after {
	left: 0;
	border-radius: 0;
	background-color: rgba(255,255,255,0);
	transition: all 0.1s ease;
	outline: 1px solid #fff;
	outline-offset: -1px;
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl+label:before {
	display: none
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-tgl:checked+label:after {
	left: 50%;
	background-color: rgba(255,255,255,1);
}


/*----------------------------------+
 | Color-swatches                   |
 +----------------------------------*/

.ffSetupWidgetFrm .ffSetupWidgetFrm-swatch{
	width:1.2em;
	height:1.2em;
	display:inline-block;
}

.ffSetupWidgetFrm .ffSetupWidgetFrm-swatch--transparent {
	/* https://stackoverflow.com/a/65129916*/
	background: repeating-conic-gradient(rgba(255,255,255,.1) 0% 25%, rgba(0,0,0,.1) 0% 50%) 50% / 50% 50%;
}
.ffSetupWidgetFrmSwatches input[type="radio"]+label{
	position:relative;
}
.ffSetupWidgetFrmSwatches input[type="radio"]:checked+label::before{
	position:absolute;
	bottom:-1px;
	left:0;
	right:0;
	border-top:2px solid #fff;
	display:block;
	content:" ";
}
.ffSetupWidgetFrm.ffSetupWidgetFrmSwatches input[type="radio"]{
	display:none;
}