label.mat { display: block; position: relative; color: rgba(0, 0, 0, 0.87); cursor: pointer; font-size: 16px; line-height: 18px; margin-top: 20px; margin-bottom: 20px; /* white-space: nowrap; */}
label.mat > input { appearance: none; -moz-appearance: none; -webkit-appearance: none; position: absolute;   left: -15px; top: -15px; display: block; margin: 0; border-radius: 50%; width: 48px; height: 48px; background-color: rgba(0, 0, 0, 0.42); outline: none; opacity: 0; transform: scale(1); -ms-transform: scale(0); /* Graceful degradation for IE */ transition: opacity 0.5s, transform 0.5s; }
label.mat > input:checked { background-color: #2196f3; }
label.mat:active > input { opacity: 1; transform: scale(0); transition: opacity 0s, transform 0s; }
label.mat > input:disabled { opacity: 0; }
label.mat > input:disabled + span { cursor: initial; }
label.mat > span::before { content: ""; display: inline-block; margin-right: 10px; border: solid 2px rgba(0, 0, 0, 0.42); border-radius: 2px; width: 14px; height: 14px; vertical-align: -4px; transition: border-color 0.5s, background-color 0.5s; }
label.mat > input:checked + span::before { border-color: #2196f3; background-color: #2196f3; }
label.mat > input:active + span::before { border-color: #2196f3; }
label.mat > input:checked:active + span::before { border-color: transparent; background-color: rgba(0, 0, 0, 0.42); }
label.mat > input:disabled + span::before { border-color: rgba(0, 0, 0, 0.26); }
label.mat > input:checked:disabled + span::before { border-color: transparent; background-color: rgba(0, 0, 0, 0.26); }
label.mat > span::after { content: ""; display: inline-block; position: absolute; top: 0; left: 0; width: 5px; height: 10px; border: solid 2px transparent; border-left: none; border-top: none; transform: translate(5.5px, 1px) rotate(45deg); -ms-transform: translate(5.5px, 2px) rotate(45deg); }
label.mat > input:checked + span::after { border-color: #fff; }

input::file-selector-button { overflow:hidden;transform:translate3d(0,0,0); display: inline-block; cursor: pointer; border: 1px solid #d0d0d0;; outline: none; border-radius: 5px; color: #5e5e5e; font-size: 16px; background: #f4f4f4; padding: 8px 10px 8px 10px; text-decoration: none; }


button { overflow:hidden;transform:translate3d(0,0,0); display: inline-block; cursor: pointer; border: 1px solid #d0d0d0;; outline: none; border-radius: 5px; color: #5e5e5e; font-size: 16px; background: #f4f4f4; padding: 8px 10px 8px 10px; text-decoration: none; }
button:hover { background: #eeeeee; text-decoration: none; }
button:after{ display:block;position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,#000 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10,10);opacity:0;transition:transform .5s,opacity 1s}
button:active:after{transform:scale(0,0);opacity:.2;transition:0s}

button.blue {  color: #ffffff; background: #45a2ed; transition: all .2s ease-in-out; }
button.blue:hover { background: #93cfff;  }
button.red {  color: #ffffff; background: #b63030; transition: all .2s ease-in-out; }
button.green {  color: #ffffff; background: #1a6a00; transition: all .2s ease-in-out; }

button.orange {  color: #ffffff; background: #ff7b00;  }
button.orange:hover { background: #ff9d64;  }


button{

    &.disabled {
        background-color: #c9c9c9; color: #737373; pointer-events: none; cursor: not-allowed;
        :hover { background-color: #c9c9c9; color: #737373; }
    }

}



p.attention { margin: 0; padding: 15px; background-color: #f5ebcd;}

/* SORTABLES */
.sortable-container {
  background-color: #333;
  padding: 1rem;
  margin-top: 1rem;
}

sortable-container>.sortable.draggable {
  padding: 1rem;
  background-color: white;
  border: 1px solid black;
  cursor: move;
}

sortable-container>.sortable.draggable.dragging {
  opacity: .5;
}

/* BANNERFRAMES PREVIEW */ /* JS: frag_banner_frames() */
.banner-frames-preview {
    display: flex; gap: 20px; overflow-x: scroll; padding-bottom: 10px;
    .fr-holder { display: flex; flex-direction: column; justify-content: center; padding: 10px;min-width: 300px; width: 200px; height: 400px; background-size: cover; background-repeat: no-repeat; background-position: center;  border-radius: 10px;}
    .fr-texts { display: flex; flex-direction: column; align-items: center; }
    .fr-ttl { font-size: 24px; font-weight: bold;}
    .fr-txt { }
    .fr-img1 { background-repeat: no-repeat; background-position: center; background-size: contain; flex: 2;}
    .fr-butts-1 { display: flex; gap: 10px; justify-content: center; margin-top: 10px;}
    .fr-butts-2 { display: flex; gap: 10px; justify-content: center; margin-top: 10px;}
    .fr-holder.tpos-m-top { .fr-butts-1{ display: none}}
    .fr-holder.tpos-m-top:not(:has(.fr-img1)) .fr-texts { flex: 2  }
    .fr-holder.tpos-m-bottom {
        flex-direction: column-reverse;
        justify-content: end;
        .fr-butts-2{ display: none}
    }
    .fr-holder.tpos-m-undefined {
        justify-content: space-between;
        .fr-butts-1 { display: none;}
    }
}





/* TABS */
.tabs { display: flex; }
.tabs>div { width: 100%; flex-shrink: 0;}

.tabsshortcuts { display: flex; overflow: hidden; background-color: white; height: 45px;}
.tabsshortcuts>div { cursor: pointer; display: block; font-size: 18px; padding: 10px; border-bottom: 1px solid lightgrey; flex: 1; text-align: center; white-space: nowrap; position:relative; transform:translate3d(0,0,0); box-sizing: border-box;}
.tabsshortcuts>div:hover { background-color: #f4fafd; border-bottom: 5px solid lightgrey;}
.tabsshortcuts>div:after{content:"";display:block;position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,#000 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10,10);opacity:0;transition:transform .5s,opacity 1s}
.tabsshortcuts>div:active:after{transform:scale(0,0);opacity:.2;transition:0s}
.tabsshortcuts>div.selected { border-bottom: 5px solid rgb(28, 71, 151);}
.tabsshortcutsholder { position: sticky; top:0; z-index: 1}
tab>tabtoolbar-win { display: none;}


/* DROPDOWNOPTIONS */
.dropdownoptions-holder { background-image: url(/f/svg/controls/ddo-icon.svg); background-position: center; background-repeat: no-repeat; background-size: 18px; display: inline-block; width: 32px; height: 32px; cursor: pointer; position: relative;}
.dropdownoptions { display: none; position: absolute; top: 0; right: 0; background-color: white; box-shadow: 0px 0px 49px 0px rgba(0,0,0,0.2); list-style: none; padding: 0; margin: 0; z-index: 1;}
.dropdownoptions li { padding: 10px; border-top: 1px solid rgb(236, 236, 236); min-width: 100px;}
.dropdownoptions li:hover { background-color: rgb(238, 238, 238); }
.dropdownoptions li:first-child { border-top: none;}


/* PICKERS */
#picker_list {}
#picker_list>div { border-bottom: 1px solid lightgrey; display: flex; height: 50px; padding-top: 5px; padding-bottom: 5px;}
#picker_list>div .pchk { display: block; width: 32px; height: 32px; padding-right: 10px; background-image: none; background-size: 32px; background-repeat: no-repeat; align-self: center;}
#picker_list>div.checked .pchk { background-image: url(/f/svg/controls/picker-check.svg); }
#picker_list>div .thmb { width: 50px; height: 50px; padding-right: 10px; }
#picker_list>div .inf { flex: 1;}
#picker_list>div .descr { overflow: hidden; text-overflow: ellipsis; font-size: 12px;}

/* DROPDOWN MENU */
.ddm-scut { display: inline-block; background-image: url(/f/svg/controls/ddo-icon.svg); background-size: 18px; background-position: center; padding: 9px; position: relative; align-self: center;}
.ddm-list { position: absolute; background-color: white; box-shadow: 0px 0px 30px 0px rgba(0,0,0,0.2); top: 0; right: 0; z-index: 1;}
.ddm-list>div { padding: 10px; border-bottom: 1px solid #e5e5e5; cursor: pointer;}
.ddm-list>div:hover { background-color: #ededed; }
.ddm-list>div:last-child { border-bottom: none;}



/* POPUP CTRL */
.ctrl-pop {
    position: fixed; z-index: 1; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; background-color: #00000029; justify-content: center;
    .ctrl-win {
        background-color: white; border-radius: 5px; overflow: hidden; margin-left: auto; margin-right: auto; display: flex; flex-direction: column;
        .hdr { background-color: #e5e5e5; display: flex; align-items: center;}
        .ctrl-pop-ttl { flex: 1; font-size: 18px; margin-right: 5px}
        .ctrl-pop-closer { background: url(/f/svg/controls/win-closer.svg) no-repeat center/20px; padding: 20px; }
    }
}

.ctrl-win { max-height: 60%;}
.ctrl-win>.content { overflow-y: auto;}
.ctrl-poplist .sublist { overflow-y: hidden; margin-left: 20px; height: 0;}
.ctrl-poplist .sublist.expanded { height: auto;}
.ctrl-poplist .list-item { display: flex; padding: 10px; cursor: pointer;}
.ctrl-poplist .list-item:hover { background-color: #e9e9e9}
.ctrl-poplist .list-item>span { align-self: center;}
.ctrl-poplist .list-item .checkbox { background-image: url('/f/svg/controls/checkbox-empty.svg'); background-size: 20px; background-repeat: no-repeat; background-position: center; display: inline-block; width: 32px; height: 20px; vertical-align: middle; }
.ctrl-poplist .list-item .checkbox.checked { background-image: url('/f/svg/controls/checkbox-checked.svg'); }
.ctrl-poplist .list-item .checkbox.undefined { background-image: url('/f/svg/controls/checkbox-undefined.svg'); }
.ctrl-poplist .list-item .expander { display: inline-block; vertical-align: middle; padding: 12px; margin-right: 3px; background-image: url(/f/svg/controls/expander-arrow.svg); background-position: center; background-repeat: no-repeat; background-size: 18px; transition: transform .2s ease-in-out; }
.ctrl-poplist .list-item .no-expander {padding: 12px; margin-right: 3px; }
.ctrl-poplist .list-item .expander.expanded { transform: rotate(90deg); }
.ctrl-poplist.nochecks .list-item .checkbox { display: none;}
.ctrl-poplist.noexpanders .list-item .expander, .ctrl-poplist.noexpanders .list-item .no-expander { display: none;}
.ctrl-popfooter { display: flex; flex-direction: column; }
.ctrl-popfooter .butts { display: flex; cursor: pointer; border-top: 1px solid lightgrey;}
.ctrl-popfooter .butts>div { padding: 15px; text-align: center; flex:1; white-space: no-wrap;}
.ctrl-popfooter .butts>div:hover { background-color: #d2efff;}
.ctrl-popfooter .butt-ok { color: rgb(0, 136, 255); font-weight: bold;}
.ctrl-popfooter .butt-cancel { color: rgb(143, 143, 143); font-weight: bold;}
.ctrl-popfooter .hint { padding: 10px; background-color: rgb(255, 255, 201); }
.ctrl-popheader { display: flex; border-bottom: 1px solid lightgrey;}
.ctrl-popheader .ttl { flex: 1; font-weight: bold; padding: 10px; }
.ctrl-popheader .closer { padding: 20px; cursor: pointer; background-image: url('/f/svg/controls/ico-cross.svg'); background-position: center; background-repeat: no-repeat; background-size: 20px;}
.ctrl-popheader .closer:hover { opacity: .5;}
/*
div.ctrlpopup_win .sellist .row { padding: 10px; white-space: nowrap; cursor: pointer;}
div.ctrlpopup_win .sellist>.row {border-bottom: 1px solid lightgrey;}
div.ctrlpopup_win .sellist .row .sect .row { margin-left: 24px;}
div.ctrlpopup_win .sellist .row .txt { line-height: 24px; display: inline-block; vertical-align: middle; width: 100%; overflow: hidden; text-overflow: ellipsis;}
*/
.ctrl-like-frame { border: 1px solid #beb9b9; border-radius: 6px; margin-top: 15px; margin-bottom: 15px; padding: 10px;}
.ctrl-like-frame .hdr { display: flex; margin-bottom: 10px;}
.ctrl-like-frame .hdr>div:first-child {flex: 1; font-size: 20px;}
.ctrl-like-frame .empty { padding: 20px; color: grey; text-align: center;}

/* CTRL - COMMON */
div.ctrl {
    background-color: white; cursor: pointer; font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; font-size: 16px; display: flex; border: 1px solid #beb9b9; border-radius: 3px;
    box-sizing: border-box; padding-top: 5px; padding-bottom: 2px;
    &:hover { border-color: rgb(66, 66, 66);}
    .field { flex: 1;}
    .lbl {
        font-size: 13px; height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color:grey; display: block; width: fit-content; padding-right: 5px; padding-left: 10px;
        &:empty { display: none;}
    }
    &:has(.lbl:empty) .field { padding-top: 8px; padding-bottom: 8px;}
    .txt { display: block; padding: 5px 0px 7px 10px; color:black; flex: 1;}
    .cross { width: 32px ;height: 32px; display: block; mask: url("/f/svg/controls/select-cross.svg") no-repeat center/16px; align-self: center; background-color: lightgrey; &:hover { background-color: grey; }}
    .arrow { width: 32px ;height: 32px; display: block; mask: url("/f/svg/controls/select-ddarrow.svg") no-repeat center/20px; align-self: center; background-color: lightgrey; &:hover { background-color: grey; }}

    &.collapse-right { border-right: none; border-radius: 3px 0 0 3px;}
    &.collapse-left { border-left: none; border-radius: 0 3px 3px 0;}
    &.collapse-both { border-left: none; border-right: none; border-radius: 0;}
    .singleline .txt { overflow-x: hidden; text-overflow: ellipsis; white-space: nowrap;}
    .hidden { display: none!important; }
    &.err{
        border-color: red;
        .lbl { color: red;}
        .txt { color: red;}
        input { color: red;}
    }
}
.fctrl{
    background-color: white; border: 1px solid #beb9b9; border-radius: 3px; display: flex;; flex-direction: column; gap: 5px; align-items: flex-start;
    .lbl { font-size: 13px; padding-left: 10px; color: grey; text-align: center; padding-top: 5px;}
    .val { padding-left: 10px; padding-bottom: 8px;}
    &.disabled { background-color: #f1f1f1;}

}

/* CTRL - TEXT */
.ctrl-txt {
    display: flex;
    .edthldr { display: flex; flex: 1; align-items: center;}
    .edttxt {
        -webkit-appearance: none; appearance: none; border: none; outline: none; padding:5px 0 7px 10px; width:100%; font-size: 16px; box-sizing: border-box; background-color: transparent;
        &::placeholder {color: grey;} &::-webkit-input-placeholder {color: grey; } &::-moz-placeholder {color: grey;  opacity: 1;} &::-ms-input-placeholder {color: grey;  }
    }
    .edttxtgrp { display: flex; .hyp { display: block; padding-left: 10px; padding-right: 10px;}}
    .ctrl-text-unitsel { color: #1572be; white-space: nowrap; }
    .ctrl-text-unitsel-ddl { position: absolute; z-index: 1; right: 0; background-color: white; border: 1px solid grey; border-radius: 5px; overflow-y: scroll;}
    .ctrl-text-unitsel-ddl-item { padding: 10px; border-bottom: 1px solid lightgrey;}
    .hyphen { padding: 6px;}
    &.err{
        .edttxt::placeholder {color: #cd5457;}
        .edttxt::-webkit-input-placeholder {color: #cd5457; }
        .edttxt::-moz-placeholder {color: #cd5457;  opacity: 1;}
        .edttxt::-ms-input-placeholder {color: #cd5457;  }
        .edttxt::placeholder, div.ctrl.err .edttxt:-ms-input-placeholder, div.ctrl.err .edttxt:-ms-input-placeholder, div.ctrl.err .edttxt::-ms-input-placeholder {color: #cd5457;  opacity: 1;}
    }
}

/* CTRL - TextArea */
.ctrl-txta {
    display: flex; flex-direction: column; align-items: flex-start;
    &.empty .lbl{ display: none;}
    textarea { border: none; width: 100%; resize: none; outline: none; box-sizing: border-box; padding: 5px; padding-left: 10px; }
    textarea::placeholder {color: grey; }
}

/* CTRL - SWITCH */
.ctrl-switch{
    display: flex; gap: 10px; align-items: center; cursor: pointer;
    .ellipse { border: 2px solid grey; min-height: 22px; max-height: 22px; min-width: 38px; border-radius:11px; display: inline-flex; justify-content: space-between; box-sizing: border-box; background-color: #e6e6e6;transition: all 0.1s;}
    .spacer { flex: 1; transition: all 0.1s;}
    .dot { min-width: 18px; max-width: 18px; min-height: 18px; max-height: 18px; background-color: grey; border-radius: 11px;transition: all 0.1s;}
    &.val-t {
        .spacer-r { flex: 0}
        .ellipse { border-color: #267028; }
        .dot { background-color: #267028; }
    }
    &.val-f {
        .spacer-l { flex: 0}
        .ellipse { border-color: #959595  }
        .dot { background-color: #959595; }
    }
    &.val-f.undefinable {
        .spacer-l { flex: 0}
        .ellipse { border-color: #9c2525 }
        .dot { background-color: #9c2525; }
    }
}

/* CTRL - CHECKBOX */
.ctrl-checkbox{ display: flex; gap: 5px; align-items: center; cursor: pointer;
    .ctrl-cb-box { padding: 15px; mask:url('/f/svg/controls/chbox-undefined.svg') no-repeat center/28px; background-color: grey;  transition: all 0.5s;}
    .ctrl-cb-box.v-true { mask-image:url('/f/svg/controls/chbox-true.svg'); background-color: #2e76bd;}
    .ctrl-cb-box.v-false { mask-image:url('/f/svg/controls/chbox-false.svg'); background-color: darkred}
}

/* CTRL - RADBUTTS */
.ctrl-radbutts { display: flex; gap: 10px;}
.ctrl-radbutts.vertical { flex-direction: column;}
.ctrl-radbutts .itm { border: 1px solid lightgrey; border-radius: 5px; padding: 10px; cursor: pointer; text-align: center;}
.ctrl-radbutts .itm:hover { background-color: #ebebeb;}

/* CTRL - ADS SELECTOR */
.ctrl-adsselector{
    .v-list { display: flex; flex-direction: column; }
    .v-empty { padding: 50px; text-align: center; color: grey;}
    .v-itm { display: flex; gap: 10px; align-items: center; border-bottom: 1px solid lightgrey; cursor: pointer; height: 38px; padding-bottom: 5px; padding-top: 5px;}
    .i-txt, .i-txts { flex: 1}
    .i-txt-ad { font-size: 14px; color: grey}
    .i-txt-back { color: grey; font-weight: bold;}
    .i-ico, .i-chk { min-height: 38px; min-width: 38px; max-width: 30px; max-height: 30px;}
    .i-img { min-height: 30px; min-width: 30px; max-height: 30px; max-width: 30px; object-fit: cover;}
    .v-list-am .i-img {  min-height: 40px; min-width: 40px; max-height: 40px; max-width: 40px;}
    .i-ico-folder { background:url('/f/svg/controls/tableview-folder.svg') no-repeat center/20px;}
    .i-ico-back { mask:url('/f/svg/controls/tableview-back.svg') no-repeat center/20px; background-color: grey;}
    .i-chk:not(.selected) { background:url('/f/svg/controls/adselector-chkbox-f.svg') no-repeat center/20px; }
    .i-chk.selected { background:url('/f/svg/controls/adselector-chkbox-t.svg') no-repeat center/20px; }
    .v-itm:has(.i-chk.selected) { background-color: #dee8de;}
}


/* TABLEVIEW */
.tableview {
    .tableview-nav { margin-bottom: 10px;}
    .brcrmbs {
        >span:first-child { font-weight: bold;}
        .britm { cursor: pointer;}
        >.britm:hover { text-decoration: underline;}
    }
    .backitem {
        display: flex;gap: 5px; align-items: center; cursor: pointer; padding-top: 15px; padding-bottom: 15px; cursor: pointer; border-bottom: 1px solid lightgrey;
        .bi-ico { padding: 10px; mask:url('/f/svg/controls/tableview-back.svg') no-repeat center/18px; background-color: grey; }
        .bi-lbl { color: grey;}
        &:hover { .bi-ico {background-color: black;} .bi-lbl { color: black;} }
    }
    >table {
        width: 100%; border-collapse: collapse;
        >thead>tr>td { font-weight: bold; border-bottom: 2px solid grey; background-color: #e3e3e3; padding: 10px;}
        >tbody>tr { cursor: pointer;}
        >tbody>tr>td { border-bottom: 1px solid lightgrey; padding-top: 12px; padding-bottom: 12px; padding-left: 10px}
        >tbody>tr>td.td-ico { min-width: 24px; max-width: 24px; background-repeat: no-repeat; background-position: center; background-size: 18px; box-sizing: border-box;}
        >tbody>tr>td.td-del { mask:url("/f/svg/controls/ico-cross.svg") no-repeat center/18px; background-color: grey; &:hover {background-color: black;} }
        >tbody>tr>td.wmax { width: 100%; }
        >tbody>tr>td.wmin { width: 1px; }
        .tr-back {
            .td-back-ico { mask:url('/f/svg/controls/tableview-back.svg') no-repeat center/18px; background-color: grey; }
            .td-back-lbl { color: grey; font-style: italic}
            &:hover { .td-back-ico{ background-color: black;} .td-back-lbl { color: black;} }
        }
    }
    .td-edit { background-color: grey; width: 20px; mask: url("/f/svg/controls/ico-edit.svg") center/20px no-repeat; &:hover { background-color: black}}
    .td-cross { background-color: grey; width: 20px; mask: url("/f/svg/controls/ico-cross.svg") center/20px no-repeat; &:hover { background-color: black}}
}

.tdsrth { min-width: 24px; width: 1px; background-image: url("/f/svg/ico/move.svg"); background-position: center; background-repeat:no-repeat; background-size: 20px; padding: 8px; }
.tdico {min-width: 20px; width: 1px; background-position: center; background-repeat:no-repeat; background-size: 20px; padding: 8px; }
.tdico-tick {  background-image: url("/f/svg/controls/ico-tick.svg");  }

.tableview .td-folder { width: 24px; background: url("/f/svg/controls/tableview-folder.svg") left center no-repeat; background-size: 18px;}
.tableview .td-item { width: 24px; background: url("/f/svg/controls/tableview-item.svg") left center no-repeat; background-size: 18px;}
.tableview .sorthandler-default { background: url("/f/svg/controls/sortable-handler.svg") center/20px no-repeat; padding: 10px; width: 20px;}
.tableview td.tools { position: relative; width: 20px;  background: url("/f/svg/controls/ddo-icon.svg") center/20px no-repeat;}

.tableview .foldertools { margin-top: 10px; margin-bottom: 10px;}
.tableview-popup { position: absolute; z-index: 1; right: 0; top: 0; background-color: white; box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.15);}
.tableview-popup>div { padding: 10px; border-bottom: 1px solid lightgrey;}
.tableview-popup>div:hover { background-color: rgb(223, 223, 223);}
.tv-itm .greyed { color: #989898; font-style: italic;}


/* GUI ELEMENTS - CARD LIST */
.cardlist>div { border-radius: 5px; margin-top:8px; margin-bottom: 8px; display: flex; overflow: hidden; box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.51); min-height: 42px;}
.cardlist>div>.content { flex: 1; padding: 5px;}
.cardlist>div>.sorthandler { width:42px; background-color: #dfe4e4; background-image: url(/f/svg/controls/sortable-handler.svg); }
.cardlist>div>.options { width:42px; background-color: #dfe4e4; }
.cardlist>div>.del { width:42px; background-color: #dfe4e4; background-image: url(/f/svg/controls/select-cross.svg); }
.cardlist>div>.sorthandler, .cardlist>div>.del { background-position: center; background-size: 24px; background-repeat: no-repeat; cursor: pointer; }
.cardlist>div>.sorthandler:hover, .cardlist>div>.del:hover { background-color: #d2d7d7; }
.cardlist>div>.sorthandler:active, .cardlist>div>.del:active { background-color: #b2b6b6; }


/* WINDOWS */
div.winovl { position: fixed; z-index: 100; top: 0; bottom: 0; left: 0; right: 0; background:#00000093; display: flex; justify-content: center; align-items: center;}
div.winframe {
    transition: transform 100ms ease-out; transform: scale(.9); min-width: 400px; box-sizing: border-box;
    position: relative; background: #ffffff; border-radius: 3px; overflow: hidden; box-shadow: 0px 0px 49px 0px rgba(0,0,0,0.2);
    font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; visibility: hidden;
    padding-bottom: 50px; padding-top: 50px;
}

div.winframe header>.wh1 { display: flex; justify-content: space-between; position: absolute; left: 0; right: 0; top: 0; height: 50px; overflow: hidden; padding: 10px; box-sizing: border-box;}
div.winframe header>nav { padding: 10px; }
div.winframe header .closer { width: 32px; height: 32px; background-image: url('/f/svg/controls/win-closer.svg'); background-size: 18px; background-position: center; background-repeat: no-repeat;}
div.winframe header h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 20px; font-weight: normal; align-items: center; margin: 0;}
div.winframe footer { box-sizing: border-box; display: flex; justify-content: space-between; position: absolute; left: 0; right: 0; bottom: 0; height: 50px; overflow: hidden; }
div.winframe footer button { flex: 1 1; background: transparent; border: none; font-size: 18px; outline: none; color: royalblue;}
div.winframe .winarticle { left: 0; right: 0; bottom: 50px; top: 50px; overflow-y: auto; box-sizing: border-box;}
div.winframe .winarticle .artwrapper { padding: 15px; box-sizing: border-box;}
div.winframe .winarticle { overflow-y: hidden; }
div.winframe .winarticle.scrollable { overflow-y: scroll; }








div.ctrlpopup_win {
    transition: max-height 1s ease-in-out;
    flex-direction: column; align-self: center; max-height: 90vh; min-width: 250px; position: relative; background: white; border-radius: 5px; overflow: hidden; display: flex;
    font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
}

div.ctrlpopup_holder { position: fixed; z-index: 110; top: 0; bottom: 0; left: 0; right: 0;  }
div.ctrlpopup_container { display: inline-flex; flex-direction: column; justify-content: center; position: absolute; top: 0; bottom: 0; left: 0; right: 0;  }
div.ctrlpopup_ovl {position: absolute; top: 0; bottom: 0; left: 0; right: 0; background:#000000; opacity: .4;}
div.ctrlpopup_win .sellist { position: relative; overflow-y: scroll; overflow-x: hidden;  }
div.ctrlpopup_win .selfooter { bottom: 0; left: 0; right: 0; height: 50px; display: flex; }
div.ctrlpopup_win .selfooter>span { display: block; flex: 0 0 50%; text-align: center;vertical-align: middle; line-height: 50px;}



/* EXPANDER */
div.ctrlexpander .contentholder { padding-left: 28px;}
div.ctrlexpander .contentheader { display: flex; align-items: center; justify-content: space-between;}
div.ctrlexpander .contentheader > * { display: block;}
div.ctrlexpander .contentheader span { flex: 1;}
div.ctrlexpander .contentheader .arrow { flex: 0 0 32px; height: 32px; display: block; background: url("/f/svg/controls/expander-arrow.svg") no-repeat center; background-size: 16px; -webkit-transition-duration: 0.2s;-moz-transition-duration: 0.2s;-o-transition-duration: 0.2s;transition-duration: 0.2s;}
div.ctrlexpander .contentheader .cross { flex: 0 0 32px; height: 32px; display: none; background: url("/f/svg/controls/select-cross.svg") no-repeat center; background-size: 16px;}
div.ctrlexpander.expanded .contentheader .cross { display: block;}
div.ctrlexpander.expanded .contentheader .arrow { transform:rotate(90deg); -webkit-transform:rotate(90deg); -moz-transform:rotate(90deg); -o-transform:rotate(90deg); }

/* TREE */
ul.ctrltree, ul.ctrltree ul { list-style: none; padding: 0;}
ul.ctrltree li { padding: 10px; font-size: 16px; }
ul.ctrltree li>div { border: 1px solid lightgrey; padding: 10px; }
ul.ctrltree li .hndlr { background-image: url('/f/svg/controls/tree-handler.svg'); background-position: center; background-size: 24px; background-repeat: no-repeat; display: inline-block; width: 32px; height: 32px; }




div.ctrl>div.ctrl { padding-top: 0; padding-bottom: 0;}
div.ctrl .edtaffix { padding: 6px;}
div.ctrl .edtaffix:empty { padding: 0;}



.ctrl.margin-bottom-30 { margin-bottom: 30px;}
.ctrl.margin-bottom-40 { margin-bottom: 40px;}






/* constrols - ads selector */
.ctrlads .ads { display: flex; justify-content: flex-start; }
.ctrlads .ads>div { padding: 5px; border-radius: 4px; border: 1px solid lightgrey; display: inline-block; box-sizing: border-box; max-width: 100px; min-width: 100px; margin-right: 10px; margin-bottom: 10px;}
.ctrlads .ads>div .img { width: 100%; height: 90px; background-size: cover; background-position: center;}
.ctrlads .ads>div .img .del { float: right; display: inline-block; padding: 13px; background-image: url("/f/svg/controls/ico-cross.svg"); background-size: 16px; background-repeat: no-repeat; background-position: center; border: 1px solid lightgrey; border-radius: 5px; background-color: white;}
.ctrlads .ads>div .img .del:hover { filter: invert(1); }
.ctrlads .ads>div .ttl { font-size: 12px;}
.ctrlads-picker .list>div { display: flex; padding-top: 10px; padding-bottom: 10px; border-bottom: 1px solid lightgrey; cursor: pointer;}
.ctrlads-picker .list>div .chk { padding: 15px; margin-right: 10px; background-size: contain; }
.ctrlads-picker .list>div.sel .chk { background-image: url("/f/svg/controls/picker-ads-ticked.svg"); }
.ctrlads-picker .list>div img { width: 30px; height: 30px; object-fit: cover; margin-right: 10px;}
.ctrlads-picker .list>div .ttl { font-size: 16px; }



/* controls - RTE (Rich Text Editor)*/
.ctrlrte { margin-top: 10px; margin-bottom: 10px; padding: 10px; background-color: white; border: 1px solid lightgrey; }
.ctrlrte ._page { padding: 10px; }
.ctrlrte ._page img { max-width: 80%}
.ctrlrte ._page img:hover { cursor: pointer}
.ctrlrte ._page img.active { opacity: .7}
.ctrlrte ._page iframe { max-height: 400px; aspect-ratio: 16 / 9;}
.ctrlrte ._page>.block { padding: 10px; }
.ctrlrte ._page>.block-img { text-align: center; }
.ctrlrte ._page>.block-img.selected { background-color: #c7e1ee;}
.ctrlrte ._page>.block-txt.selected { background-color: #f0f8fd;}




 .ctrlrte ._page a {
    pointer-events: none; /* Prevents click events */
    cursor: default;     /* Changes the cursor from a hand pointer */
  }

/*
.ctrlrte-popup { position: fixed; z-index: 110; top: 0; left: 0; right: 0; bottom: 0; width:100%; height:100%; background: rgba(255, 255, 255, 0.788); display: flex; align-items: center; justify-content: center;}
.ctrlrte-popup-win { width: 600px; padding: 15px;   display: inline-block; background: white; box-shadow: 0px 0px 24px -1px rgba(0,0,0,0.41); box-sizing: border-box;}
.ctrlrte .rte-block { display: flex; margin-top: 10px; }
.ctrlrte .hcontrol { margin-left: -42px; margin-top: -20px;}
.ctrlrte .hcontrol .blockctrl>div { display: block; width: 32px; height: 32px; background-size: 18px; background-repeat: no-repeat; background-position: center; opacity: .7;}
.ctrlrte .hcontrol .blockctrl>div:hover { opacity: 1;}
.ctrlrte .hcontrol .handler { background-image: url(/f/svg/controls/rte-control-sort.svg); cursor: move;}
.ctrlrte .hcontrol .bprepend { background-image: url(/f/svg/controls/rte-control-prepend.svg); cursor: pointer;}
.ctrlrte .hcontrol .del { background-image: url(/f/svg/controls/rte-control-del.svg); cursor: pointer; background-size: 14px;}
.ctrlrte .hcontent { flex:1; padding-left: 10px; position: relative; border-left: 3px solid #d8d8d8; }
.ctrlrte .rte-block-jpg .hcontent, .ctrlrte .rte-block-gif .hcontent { text-align: center; }
.ctrlrte .editable { min-height: 60px; padding: 5px;}
.ctrlrte .uplfldhldr { display: none; }
.ctrlrte .toolbar-adder { padding-top: 10px; }
.ctrlrte .toolbar-adder .ttl { text-align: center; margin-bottom: 10px;}
.ctrlrte .toolbar-adder .butts { display: flex; justify-content: center;  text-align: center; }
.ctrlrte .toolbar-adder .butts>div { margin: 5px; flex-basis: 80px; cursor: pointer;}
.ctrlrte .toolbar-adder .butts>div>div { display: inline-block; width: 36px; height: 36px; background-position: center; background-repeat: no-repeat; background-size: 18px; background-color: rgb(90, 160, 90); border-radius: 32px;}
.ctrlrte .toolbar-adder .butts>div>span { font-size: 12px; display: block; margin-top: 5px; color: grey; padding-left: 20px; padding-right: 20px;}
.ctrlrte .toolbar-adder .butts .b-app-txt>div { background-image: url(/f/svg/controls/rte-add-txt.svg); }
.ctrlrte .toolbar-adder .butts .b-app-img>div { background-image: url(/f/svg/controls/rte-add-img.svg); }
.ctrlrte .toolbar-adder .butts .b-app-vid>div { background-image: url(/f/svg/controls/rte-add-vid.svg); }
.ctrlrte .toolbar-adder .butts>div:hover>div { background-color: rgb(68, 124, 68); }
.ctrlrte .toolbar-adder .butts>div:hover>span { color: black;}
.ctrlrte .toolbar-adder .butts .b-app-closer>div { background-image: url(/f/svg/controls/rte-add-closer.svg); background-color: rgb(211, 138, 78);}
.ctrlrte .rte-block-reqdel { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-color: rgba(255, 255, 255, 0.7);}
.ctrlrte .rte-block-reqdel>div { position: absolute; text-align: center; top: calc(50% - 20px); left: 0; right: 0; }
.ctrlrte .rte-block-reqdel>div>div { display: inline-block; padding-left: 10px; padding-right: 10px; margin-left: 10px; margin-right: 10px; text-align: center; line-height: 40px; border: 1px solid grey; box-sizing: border-box; cursor: pointer;}
.ctrlrte .rte-block-reqdel>div>.rte-del { background-color: #ff9d64; color: white; }
.ctrlrte .rte-block-reqdel>div>.rte-del:hover { background-color: #e08149; }
.ctrlrte .rte-block-reqdel>div>.rte-cnl { background-color: #b4b1af; color: white; }
.ctrlrte .rte-block-reqdel>div>.rte-cnl:hover { background-color: #868686; }
*/
.ctrlrte ._toolbar { font-size: 0; transition: all .15s ease-out; background-color: white;}
.ctrlrte ._toolbar.active { opacity: 1;}
.ctrlrte ._toolbar .butts { }
.ctrlrte ._toolbar button.active { background-color: rgb(218, 218, 218);}
.ctrlrte ._toolbar button:hover { background-color: #e0ddda; background-size: 22px 22px;}
.ctrlrte ._toolbar button { border: none; background-color: transparent; display: inline-block; vertical-align: top; width: 34px; height: 34px; background-size: 18px 18px; background-repeat: no-repeat; background-position: center; padding: 0; border-radius: 0; color: black;}
.ctrlrte ._toolbar .rtetbb-b { background-image: url("/f/svg/controls/rte-b-bold.svg");}
.ctrlrte ._toolbar .rtetbb-i { background-image: url("/f/svg/controls/rte-b-italic.svg");}
.ctrlrte ._toolbar .rtetbb-u { background-image: url("/f/svg/controls/rte-b-underline.svg");}
.ctrlrte ._toolbar .rtetbb-strike { background-image: url("/f/svg/controls/rte-b-strike.svg");}
.ctrlrte ._toolbar .rtetbb-jleft { background-image: url("/f/svg/controls/rte-b-align-left.svg");}
.ctrlrte ._toolbar .rtetbb-jright { background-image: url("/f/svg/controls/rte-b-align-right.svg");}
.ctrlrte ._toolbar .rtetbb-jcenter { background-image: url("/f/svg/controls/rte-b-align-center.svg");}
.ctrlrte ._toolbar .rtetbb-jfull { background-image: url("/f/svg/controls/rte-b-align-full.svg");}
.ctrlrte ._toolbar .rtetbb-bquot { background-image: url("/f/svg/controls/rte-b-cite.svg");}
.ctrlrte ._toolbar .rtetbb-undo { background-image: url("/f/svg/controls/rte-b-undo.svg");}
.ctrlrte ._toolbar .rtetbb-redo { background-image: url("/f/svg/controls/rte-b-redo.svg");}
.ctrlrte ._toolbar .rtetbb-href { background-image: url("/f/svg/controls/rte-b-href.svg");}
.ctrlrte ._toolbar .rtetbb-unhref { background-image: url("/f/svg/controls/rte-b-unhref.svg");}
.ctrlrte ._toolbar .rtetbb-clean { background-image: url("/f/svg/controls/rte-b-clean.svg");}
.ctrlrte ._toolbar .rtetbb-indent { background-image: url("/f/svg/controls/rte-b-indent.svg");}
.ctrlrte ._toolbar .rtetbb-divider { background-image: url("/f/svg/controls/rte-b-divider.svg");}
.ctrlrte ._toolbar .rtetbb-ul { background-image: url("/f/svg/controls/rte-b-ul.svg");}
.ctrlrte ._toolbar .rtetbb-img { background-image: url("/f/svg/controls/rte-b-img.svg");}

.ctrlrte_editimg{
    img, iframe { max-width: 100%; margin-bottom: 20px; margin-top: 10px; display: block; justify-self: center;}
    iframe { aspect-ratio: 16 / 9; }
    .preview {text-align: center}
    .preview>* { box-sizing: border-box; }
    .figcap { margin-top: 20px}
    .lorupload { margin-top: 20px; margin-bottom: 20px;}
}


body>main article .ctrlrte ._toolbar { position: sticky; top: 124px; margin-left: -10px; margin-right: -10px; margin-top: -10px; border-bottom: 1px solid lightgrey;}
body.appbar-hidden>main article .ctrlrte ._toolbar { position: sticky; top: 51px;}
.win article ._toolbar { position: sticky; top: 0px;}
.win article .tabs ._toolbar { position: sticky; top: 45px;}

/* controls - date */
.ctrldate>.lblh{ flex: 1}
.ctrl-datepicker {
    .page-wrapper>article { display: flex; flex-direction: column; height: 100%}
}
.ctrl-date-picker-tools {
    display: flex; justify-content: space-between; cursor: pointer; align-items: center;
    .ctrl-date-year-lbl { font-size: 24px; font-weight: bold; }
    .ctrl-date-year-left { background: url("/f/svg/controls/date-prev.svg") no-repeat center/24px; padding: 30px; opacity: .5}
    .ctrl-date-year-right { background: url("/f/svg/controls/date-next.svg") no-repeat center/24px; padding: 30px; opacity: .5}
    .ctrl-date-year-left:hover, .ctrl-date-year-right:hover { opacity: 1;}
}
.ctrl-date-grids {
    overflow-x: hidden; overflow-y: auto; height: 50vh; min-height: 400px; padding: 20px; position: relative; display: flex; flex-direction: column;
    .ctrl-date-grd-month-lbl { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 20px; color: #2c2c8e  }
    .ctrl-date-grd-month-lbl:not(:first-child) { margin-top: 20px;}
}
.ctrl-date-grd-month {
    border-collapse: collapse;
    .lbl-dow td { background-color: #ededed;}
    td { border: 1px solid lightgrey; width: 34px; height: 38px; text-align: center; cursor: pointer; box-sizing: border-box;}
    td:not(.lbl-dow td):hover { background-color: #e7e7e7 }
    td.outdated { color: #aeaeae; }
    td.today { border: 3px solid #eea400; }
    td.selected { border: 3px solid #4242a1;}
}
.ctrl-date-btoday { text-align: center; font-size: 18px; text-decoration: underline; padding: 20px; cursor: pointer;}
.ctrl-date-btoday:hover { background-color: #dfdfdf;}

/* controls - TIME */
.ctrltime>.lblh{ flex: 1}
.ctrl-time-scrolls { display: flex; background: url("/f/svg/controls/time-dots.svg") no-repeat center/24px; }
.ctrl-time-scroll {
    flex: 1; max-height: 400px; overflow-y: scroll; -ms-overflow-style: none; scrollbar-width: none; position: relative;
    .lbl { font-size: 40px; line-height: 100px; max-height: 100px; text-align: center; padding: 20px; border-bottom: 1px solid lightgrey; color: grey; transition: font-size .1s, color .1s;}
    .lbl.sel { color: red; font-size:60px; color: black; }
}
.ctrl-time-scroll::-webkit-scrollbar { display: none; }
.ctrl-time-butts {
    display: flex;
    div { flex: 1; padding: 30px; opacity: .6; cursor: pointer;}
    div:hover { background-color: #e9f5ff; opacity: 1; }
    .ctrl-time-up { background: url("/f/svg/controls/time-up.svg") no-repeat center/32px; }
    .ctrl-time-down { background: url("/f/svg/controls/time-down.svg") no-repeat center/32px; }
}
.datetimeholder {
    display: flex;
    >*:first-child { flex: 2}
    >*:last-child { flex: 1}
}


/* OLD
.ctrldate-calendar { box-sizing: border-box; width: 800px; display: inline-block; overflow: hidden;}
.ctrldate-calendar .gridline { white-space: nowrap; }
.ctrldate-calendar .calgrid { display: inline-block; width: 33.33% }
.ctrldate-calendar .calgrid .row { display: flex;}
.ctrldate-calendar .calgrid .row>div { max-width: 14.29%; min-width: 14.29%; text-align: center; font-size: 16px; line-height: 30px; cursor: pointer; box-sizing: border-box;}
.ctrldate-calendar .calgrid .row>div:hover { background-color: lightgray; }
.ctrldate-calendar .calgrid .row>div.hlght { background-color: #e0e0e0; }
.ctrldate-calendar .calgrid .row>div.out { color: darkgrey;}

.ctrldate-calendar .tools { display: flex; justify-content: space-around;}
.ctrldate-calendar .tools span { display: inline-block; vertical-align: middle; font-size: 18px; color: #ff7b00;}
.ctrldate-calendar .tools .arrow {  width: 36px; height: 36px; background-size: 18px; background-position: center; background-repeat: no-repeat;  }
.ctrldate-calendar .tools .prev { background-image: url("/f/svg/controls/date-prev.svg");}
.ctrldate-calendar .tools .next { background-image: url("/f/svg/controls/date-next.svg");}


.ctrldate-calendar table { border-collapse: collapse; width: 100%; }
.ctrldate-calendar table thead td { color: #caad6e; }
.ctrldate-calendar table td { color: #1572be; }
.ctrldate-calendar table td { font-size: 20px; padding-top: 5px; padding-bottom: 5px; padding-left: 10px; padding-right: 10px; text-align: center; cursor: pointer;}
.ctrldate-calendar table td.out { color: rgb(155, 155, 155); cursor: auto;}
.ctrldate-calendar table td.disabled { color: lightgrey; text-decoration: line-through; cursor: auto;}
.ctrldate-calendar table td.selected {  background-color: #58abef; color: white; border-radius: 30px; text-decoration: none;}
.ctrldate-calendar table td.today { border: grey 1px dashed;border-radius: 30px; text-decoration: none;}
.ctrldate-calendar .ftr { display: flex; justify-content: space-between; margin-top: 10px;}
.ctrldate-calendar .ftr a { display: block; padding: 10px; }
.ctrldate-calendar .ftr a span { border-bottom: 1px dashed grey; }
*/

/* controls - select */
/*
div.ctrlsel .txt.hyperlinked { color: #0f72c4!important; }
.ctrlsel.ctrlembed { padding-top: 0; padding-bottom: 0; }
.ctrlsel.ctrlembed .ico, .ctrlsel.ctrlembed .cross, .ctrlsel.ctrlembed .lbl { display: none!important; }
.ctrlsel.ctrlembed .lblh { border-bottom: none; }
.ctrlsel.ctrlembed.nulled .txt { background-image: none; }
.ctrlsel.ctrlembed .txt { color: #0085CF!important;}
*/



div.ctrltxtarea {align-items: normal; }
div.ctrltxtarea .edttxtarea { width: 100%; box-sizing: border-box; font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; font-size: 16px; border: none; outline: none; }
div.ctrltxtarea .ico { margin-top: 14px; }
div.ctrltxtarea .cross { margin-top: 14px; }

/*
div.ctrl.ok .txt { display: block; padding: 6px; padding-top: 0; color: black;}
div.ctrl .dda { flex: 0 0 32px; height: 32px; display: block; background: url("/f/svg/controls/select-ddarrow.svg") no-repeat center; background-size: 16px; }
*/





/* CONTROLS - IMAGE */
.ctrlimg {
    display: flex;; flex-direction: column;
    .imgs {
        display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; padding: 20px; width: 100%; box-sizing: border-box;
        .img { background-size: cover; background-position: center; display: block; width: 120px; height: 120px; position: relative; border: 1px solid lightgrey; background-color:#efefef; border-radius: 3px; overflow: hidden;}
        .img.uplbutt { background: url('/f/svg/controls/images-add.svg') no-repeat center/48px; }
        .img.uploading .progrholder { position: absolute; display: block; height: 10px; left: 10px; right:10px; top: 60%; border-radius: 3px; background-color:white; border: 1px solid lightgrey; overflow: hidden;}
        .img.uploading .progrholder .fill { display:block; width: 0px; height: 10px; background-color: grey; }
        .img.error { background-color: #ffb69c;}
        .img .idel { display: inline-block; width: 32px; height: 32px; position: absolute; top: 0; right: 0; background-image: url(/f/svg/controls/images-del.svg); background-position: center; background-repeat: no-repeat; background-size: 24px; background-color: rgba(255, 255, 255, 0.692);}
        .dropdummy { min-width: 1px }
    }
}
.ctrlimg input { display: none;}



div.ctrl.framed { border: 1px solid lightgrey; border-radius: 3px; }
div.ctrl.framed.nulled .txt { background-position: right 8px center;}
div.ctrl.bolded .txt { font-weight: bold;}
div.ctrl.bolded .edttxt { font-weight: bold;}
div.ctrl.nulled .txt { font-weight: normal;}

div.ctrl .edttxt::-webkit-input-placeholder { color: grey; font-weight: normal; }
div.ctrl .edttxt::-moz-placeholder {color: grey; font-weight: normal; }
div.ctrl .edttxt:-ms-input-placeholder {color: grey; font-weight: normal; }



div.ctrlmap { display: block; width: 100%; background-color: rgb(236, 236, 236); padding-top: 0; padding-bottom: 0; }
div.ctrlmap .ctrlmapcanvas { width: 100%; height: 100%; min-height: 300px; z-index: 0;}


/* ************************************ */
/*              ANIMATIONS              */
/* ************************************ */

/* Circles */
/* <div class="anim-circles"><div id="loader"></div></div> */

.anim-circles {  }
.anim-circles #loader {
    width: 100%; height: 100%; border-radius: 50%; border: 3px solid transparent; border-top-color: #9370DB; box-sizing: border-box;
    -webkit-animation: spin 2s linear infinite;  animation: anim-circles-spin 2s linear infinite;
}
.anim-circles #loader:before {
    content: ""; position: absolute; top: 5px; left: 5px; right: 5px; bottom: 5px;
    border-radius: 50%; border: 3px solid transparent; border-top-color: #BA55D3;  box-sizing: border-box;
    -webkit-animation: spin 3s linear infinite; animation: anim-circles-spin 3s linear infinite;
}
.anim-circles #loader:after {
    content: ""; position: absolute; top: 15px; left: 15px; right: 15px; bottom: 15px;
    border-radius: 50%;  border: 3px solid transparent; border-top-color: #FF00FF;  box-sizing: border-box;
    -webkit-animation: spin 1.5s linear infinite; animation: anim-circles-spin 1.5s linear infinite;
}
@-webkit-keyframes anim-circles-spin {
    0%   {  -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); }
    100% {  -webkit-transform: rotate(360deg);  -ms-transform: rotate(360deg); transform: rotate(360deg); }
}
@keyframes anim-circles-spin {
    0%   {  -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); }
    100% {  -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); }
}


/* FillBox */
/* <div class="anim-circles"><div id="loader"></div></div> */
/* <span class="anim-fillbox"><span class="loader-inner"></span></span> */

.anim-fillbox {
  display: inline-block; width: 30px; height: 30px; position: relative; border: 4px solid #848484; top: 50%;
  animation: anim-fillbox-outer 2s infinite ease;
}

.anim-fillbox .loader-inner {
  vertical-align: top; display: inline-block; width: 100%; background-color: #b4b4b4;
  animation: anim-fillbox-inner 2s infinite ease-in;
}

@keyframes anim-fillbox-outer {
  0% { transform: rotate(0deg); }
  25% {transform: rotate(180deg); }
  50% {transform: rotate(180deg);}
  75% {transform: rotate(360deg);}
  100% {transform: rotate(360deg);}
}

@keyframes anim-fillbox-inner {
  0% {height: 0%;}
  25% {height: 0%;}
  50% {height: 100%;}
  75% { height: 100%; }
  100% { height: 0%; }
}


/* Umbrella */
/* <div class="anim-umbrella"></div> */
.anim-umbrella { display: inline-block; position: relative; width: 64px;  height: 64px; }
.anim-umbrella:after {
  content: " "; display: block; border-radius: 50%; width: 0; height: 0; margin: 6px; box-sizing: border-box;
  border: 26px solid #b199ff; border-color: #ad87ff transparent #ad87ff transparent;
  animation: anim-umbrella 1.2s infinite;
}
@keyframes anim-umbrella {
  0% { transform: rotate(0); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  50% { transform: rotate(900deg); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  100% { transform: rotate(1800deg); }
}


/* Ripple */
/* <div class="anim-ripple"><div></div><div></div></div> */

.anim-ripple { display: inline-block; position: relative; width: 64px; height: 64px; }
.anim-ripple div {
  position: absolute; border: 4px solid #9286ff; opacity: 1; border-radius: 50%;
  animation: anim-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.anim-ripple div:nth-child(2) { animation-delay: -0.5s; }
@keyframes anim-ripple {
  0% { top: 28px; left: 28px; width: 0; height: 0; opacity: 1; }
  100% { top: -1px; left: -1px; width: 58px; height: 58px; opacity: 0; }
}

/* SVGA */
.svga { background-size: cover; background-position: center; background-repeat: no-repeat;}
.svga-rocket { background-image: url("/f/svga/rocket.svg");}

@media screen and (max-width: 400px) {
     .ctrl-date-grids { height: auto!important; }
}