[ajax-status] {
	transition: 200ms;
}
:is([ajax-status="in-progress"], [data-ajax-blur="true"]) {
    user-select: none;
    pointer-events: none;
}
:is([ajax-status="in-progress"][ajax-flags*="no-spinner"], [data-ajax-blur="true"]) {
    filter: opacity(0.5);
}
[ajax-status="in-progress"]:not([ajax-flags*="no-spinner"]) {
    filter: saturate(0.25);
	position: relative;
	min-height: 7.5em;
	z-index: 1;
}
[ajax-status="in-progress"]:not([ajax-flags*="no-spinner"]):after {
	position: absolute;
	z-index: 30;
	font: normal normal normal 3em/1 FontAwesome;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	content: "\f021";
	color: #3A4246;
	font-size: 3em;
	animation: spin 2s linear infinite;
	left: calc(50% - 0.4em);
}
[ajax-status="in-progress"]:not([ajax-flags*="no-spinner"]):not([data-spinner-text]):after {
	top: calc(50% - 0.5em);
}
[ajax-status="in-progress"][data-spinner-text]:not([ajax-flags*="no-spinner"]):after {
	top: calc(50% - 0.75em);
}

[ajax-status="in-progress"]:not([ajax-flags*="no-spinner"]):before {
	content: " ";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #ffffff2b;
	z-index: 20;
}
[ajax-status="in-progress"][data-spinner-text]:not([ajax-flags*="no-spinner"]):before {
	content: attr(data-spinner-text);
	display: grid;
	place-content: center;
	padding-top: 3.75em;
	text-transform: uppercase;
	font-weight: bold;
}

[ajax-refresh-modal] {
    float: right;
    color: #3A4246;
    transition: 100ms;
    display: grid !important;
    width: 37px;
    height: 37px;
    margin-top: -27px;
    justify-items: center;
    align-items: center;
    background: #dedede;
}

[ajax-refresh-modal]:hover {
    background-color: #d2d2d2;
}

[data-open="false"],
[data-hidden~="open"]:is(
    [data-hidden~="is"][data-open="true"],
    [data-hidden~="!is"]:not([data-open="true"]),
    [data-hidden~="has"]:has([data-open="true"]),
    [data-hidden~="!has"]:not(:has([data-open="true"])),
    [data-hidden~="+is"]:has(+ [data-open="true"]),
    [data-hidden~="!+is"]:not(:has(+ [data-open="true"])),
    [data-hidden~="+has"]:has(+ * [data-open="true"]), 
    [data-hidden~="!+has"]:not(:has(+ * [data-open="true"])), 
    [data-hidden~="++is"]:has(+ * + * + [data-open="true"]), 
    [data-hidden~="!++is"]:not(:has(+ * + * + [data-open="true"])), 
    [data-hidden~="++has"]:has(+ * + * + * [data-open="true"]), 
    [data-hidden~="!++has"]:not(:has(+ * + * + * [data-open="true"])), 
),
[data-hidden~="ajax-in-progress"]:is(
    [data-hidden~="is"][ajax-status="in-progress"],
    [data-hidden~="!is"]:not([ajax-status="in-progress"]),
    [data-hidden~="has"]:has([ajax-status="in-progress"]),
    [data-hidden~="!has"]:not(:has([ajax-status="in-progress"])),
    [data-hidden~="+is"]:has(+ [ajax-status="in-progress"]),
    [data-hidden~="!+is"]:not(:has(+ [ajax-status="in-progress"])),
    [data-hidden~="+has"]:has(+ * [ajax-status="in-progress"]), 
    [data-hidden~="!+has"]:not(:has(+ * [ajax-status="in-progress"])), 
    [data-hidden~="++is"]:has(+ * + [ajax-status="in-progress"]), 
    [data-hidden~="!++is"]:not(:has(+ * + [ajax-status="in-progress"])), 
    [data-hidden~="++has"]:has(+ * + * [ajax-status="in-progress"]), 
    [data-hidden~="!++has"]:not(:has(+ * + * [ajax-status="in-progress"])),  
),
[data-hidden~="ajax-done"]:is(
    [data-hidden~="is"][ajax-status="done"],
    [data-hidden~="!is"]:not([ajax-status="done"]),
    [data-hidden~="has"]:has([ajax-status="done"]),
    [data-hidden~="!has"]:not(:has([ajax-status="done"])),
    [data-hidden~="+is"]:has(+ [ajax-status="done"]),
    [data-hidden~="!+is"]:not(:has(+ [ajax-status="done"])),
    [data-hidden~="+has"]:has(+ * [ajax-status="done"]), 
    [data-hidden~="!+has"]:not(:has(+ * [ajax-status="done"])), 
    [data-hidden~="++is"]:has(+ * + [ajax-status="done"]), 
    [data-hidden~="!++is"]:not(:has(+ * + [ajax-status="done"])), 
    [data-hidden~="++has"]:has(+ * + * [ajax-status="done"]), 
    [data-hidden~="!++has"]:not(:has(+ * + * [ajax-status="done"])),  
) 
{ display: none; }