/**************************************************/
/******************** seAnswer ********************/
.seAnswer {
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    box-sizing: border-box;
    display: none;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 11pt;
    height: 100%;
    left: 0;
    line-height: 1.5;
    overflow: auto;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1;
}
  
.seAnswer>div {
    background-color: #fefefe;
    border: 1px solid #888;
    border-radius: 8px 8px 0px 0px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: inline-block;
    left: 50%;
    padding: 32px 16px 16px 16px;
    position: relative;
    top: 50%;
    transform: translate(-50%, -50%);

}
.seAnswer_buttons {
    display: block;
    text-align: center; 
    margin-top: 4px;
}
.seAnswer_buttons .button { min-width: 15%; }
.seAnswer_buttons .button:not(:last-child) {
    margin-right: 8px;
}
.seAnswer_close {
    background-color: rgb(38, 55, 128);
    border-radius: 50%;
    color: white;
    float: right;
    font-size: 28px;
    font-weight: bold;
    height: 24px;
    line-height: 75%;
    padding-left: 1px;
    position: absolute;
    right: 2px;
    text-align: center;
    top: 2px;
    width: 24px;
    z-index: 1;
}
  
.seAnswer_close:hover, .seAnswer_close:focus {
    color: whitesmoke;
    text-decoration: none;
    cursor: pointer;
}
.seAnswer_form {
    display: flex;
    flex-wrap: wrap;
    margin: 12px 0px 16px 0px;
}
.seAnswer_form input[type=text] { 
    all: initial;
    border: 1px solid lightgrey;
    border-radius: 3px;
    flex-grow: 1;
    margin: auto;
}

.seAnswer_prompt { 
    margin: 12px 12px 8px 0px; 
    white-space: nowrap;
}
.seAnswer_title {
    background-color: rgb(129, 100, 169);
    border-radius: 8px 8px 0px 0px;
    color: white;
    position: absolute;
    left: 0;
    padding: 6px 8px;
    right: 0;
    top: 0;
}
/**************************************************/
/******************* seButton *******************/
.seButton, .seUpload>input[type="file"]::before {
    align-items: center;
    border-radius: 6px;
    box-sizing: border-box;
    color: white;
    cursor: pointer;
    display: flex;
    justify-content: center;
    line-height: 1;
    padding: 4px 8px;
}
.seButton:hover { cursor: pointer; }
.seButton.blue, .seButton.inverted_blue:hover, .seButton.primary, .seButton.inverted_primary:hover { background-color: var(--se-blue); }
.seButton.blue:hover, .seButton.inverted_blue, .seButton.primary:hover, .seButton.inverted_primary, .seButton.light_primary:hover  { background-color: var(--se-light-blue); }
.seButton.brown { background-color: var(--se-brown); }
.seButton.brown:hover { background-color: var(--se-light-brown); }
.seButton.green { background-color: var(--se-green); }
.seButton.green:hover { background-color: var(--se-light-green); }
.seButton.grey { background-color: rgb(112, 112, 112); }
.seButton.grey:hover { background-color: rgb(147, 147, 147); }
.seButton.pink { background-color: var(--se-red); }
.seButton.pink:hover { background-color: var(--se-light-red); }
.seButton.purple { background-color: var(--se-purple); }
.seButton.purple:hover { background-color: var(--se-light-purple); }
.seButton.yellow { background-color: var(--se-orange); }
.seButton.yellow:hover { background-color: var(--se-light-orange); }

/**************************************************/
/******************* seCheckBox *******************/
.seChkBox { 
    all: unset;
    display: flex; 
}
.seChkBox input[type="checkbox"] {
    all: unset;
    appearance: none;
    background-color: #eee;
    cursor: pointer;
    height: 25px;
    width: 25px;
    flex-grow: 0;
    flex-shrink: 0;

}
.seChkBox input[type="checkbox"]::after {
    background-color: Canvas;
    content: '';
    display: block;
    height: calc(100% - 6px);
    margin: 3px auto;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    width: calc(100% - 4px);
}
.seChkBox input[type="checkbox"]:checked { background-color: #263780; }
.seChkBox input[type="checkbox"]:checked::after {
    background-color: white;
    transform: scale(1);
    transform-origin: bottom left;
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}
.seChkBox input[type="checkbox"]:disabled {
    form-control-color: var(--form-control-disabled);
    color: #f0f0f0;
    cursor: not-allowed;
}
.seChkBox input[type="checkbox"]:hover { background-color: #ccc; }
.seChkBox label { 
    all: unset;
    flex-grow: 1;
    flex-shrink: 1;
    line-height: 25px;
    margin-left: 6px;
    width: unset;     
}
.seChkBox label.right { 
    margin-left: 0;
    margin-right: 6px;
}

/**************************************************/
/******************** seDialog ********************/
.seDialog {
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    box-sizing: border-box;
    display: none;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 11pt;
    height: 100%;
    left: 0;
    line-height: 1.5;
    overflow: auto;
    /*padding-top: 100px;*/
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1;
}
  
.seDialog>div {
    background-color: #fefefe;
    border: 1px solid #888;
    border-radius: 8px 8px 0px 0px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: inline-block;
    left: 50%;
    padding: 32px 16px 16px 16px;
    position: relative;
    top: 50%;
    transform: translate(-50%, -50%);
}

.seDialog label { 
    display: inline-block;
}

.seDialog_buttons {
    display: block;
    text-align: right; 
    margin-top: 4px;
}
.seDialog_buttons input[type="button"]:not([class]), .seDialog_buttons input[type="submit"]:not([class])  {
    background-color: rgb(63,174,41);
    border: none;
    border-radius: 4px;
    box-sizing: border-box;
    color: white;
    cursor: pointer;
    display: inline-block;
    font-size: 12px;
    font-weight: normal;
    line-height: 200%;
    margin: 0px;
    padding: 0px 12px;
    text-align: center;
    width: initial;
}
.seDialog_buttons input[type="button"]:not([class]):hover { background-color: rgb(94,199,73); }
.seDialog_buttons input[type="submit"]:not([class]) { background-color: rgb(0, 71, 186); }
.seDialog_buttons input[type="submit"]:not([class]):hover { background-color: rgb(0,129,201); }
  
.seDialog_close {
    background-color: rgb(38, 55, 128);
    border-radius: 50%;
    color: white;
    float: right;
    font-size: 28px;
    font-weight: bold;
    height: 24px;
    line-height: 75%;
    padding-left: 1px;
    position: absolute;
    right: 4px;
    text-align: center;
    top: 4px;
    width: 24px;
    z-index: 1;
}
 
.seDialog_close:hover, .seDialog_close:focus {
    color: whitesmoke;
    text-decoration: none;
    cursor: pointer;
}
.seDialog_form {
    display: inline-block;
    position: relative;
    width: 100%;
}
/*
.seDialog_form label:not([class]) {
    font-size: small;
    clear: left;
    float: left; 
    min-width: calc(100% / 4);
    margin-right: 12px 0px 12px 0px; 
    width: initial;
}
.seDialog_form input[type="text"]:not([class]),
.seDialog_form input[type="text"][class="invalid"] {
    border: 1px solid silver;
    border-radius: 3px;
    clear: right;
    float: left; 
    margin: 12px 0px 0px 0px;
    padding: 0px;
    width: calc(100% / 2);
}
.seDialog_form input[type="checkbox"]:not([class]) {
    clear: right;
    float: left; 
    margin: 12px 0px 0px 0px;
}
*/
.seDialog_title {
    background-color: rgb(129, 100, 169);
    border-radius: 8px 8px 0px 0px;
    color: white;
    position: absolute;
    left: 0;
    padding: 6px 8px;
    right: 0;
    top: 0;
}

/**************************************************/
/******************** seEmbed ********************/
.seEmbed {
    background-color: white;
    border-radius: 8px 8px 0px 0px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: none;
    left: 50%;
    padding-top: 32px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    .seEmbed_title {
        background-color: var(--se-purple);
        border-radius: 8px 8px 0px 0px;
        color: white;
        left: 0px;
        position: absolute;
        right: 0px;
        top: 0px;
        & > div {
            all: initial;
            background-color: var(--primary-bg-colour);
            border-radius: 50%;
            color: var(--primary-colour);
            cursor: pointer;
            position: absolute;
            right: 4px;
            text-align: center;
            top: 4px;
            width: 22px;
        }
    }
    .seEmbed_browser {
        height: 100%;
        width: 100%;
        border: none;
    }
}

/**************************************************/
/******************** seMsgBox ********************/
.seMsgBox {
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    box-sizing: border-box;
    display: none;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 11pt;
    height: 100%;
    left: 0;
    line-height: 1.5;
    overflow: auto;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1;
}
  
.seMsgBox>div {
    background-color: #fefefe;
    border: 1px solid #888;
    border-radius: 8px 8px 0px 0px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: inline-block;
    left: 50%;
    padding: 32px 16px 16px 16px;
    position: relative;
    top: 50%;
    transform: translate(-50%, -50%);

}

.seMsgBox_message { padding: 16px 8px; }

.seMsgBox label { 
    display: inline-block;
}
.seMsgBox_buttons {
    display: block;
    text-align: center; 
    margin-top: 4px;
}
.seMsgBox_close {
    background-color: rgb(38, 55, 128);
    border-radius: 50%;
    color: white;
    float: right;
    font-size: 28px;
    font-weight: bold;
    height: 24px;
    line-height: 75%;
    padding-left: 1px;
    position: absolute;
    right: 2px;
    text-align: center;
    top: 2px;
    width: 24px;
    z-index: 1;
}
  
.seMsgBox_close:hover, .seMsgBox_close:focus {
    color: whitesmoke;
    text-decoration: none;
    cursor: pointer;
}

.seMsgBox_title {
    background-color: rgb(129, 100, 169);
    border-radius: 8px 8px 0px 0px;
    color: white;
    position: absolute;
    left: 0;
    padding: 6px 8px;
    right: 0;
    top: 0;
}

/**************************************************/
/******************** sePlayer ********************/
.sePlayer {
    background-color: black;
    border-radius: 8px 8px 0px 0px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: none;
    left: 50%;
    padding-top: 32px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    .sePlayer_title {
        background-color: var(--se-purple);
        border-radius: 8px 8px 0px 0px;
        color: white;
        left: 0px;
        position: absolute;
        right: 0px;
        top: 0px;
        & > div {
            all: initial;
            background-color: var(--primary-bg-colour);
            border-radius: 50%;
            color: var(--primary-colour);
            cursor: pointer;
            position: absolute;
            right: 4px;
            text-align: center;
            top: 4px;
            width: 22px;
        }
    }
    &>video {
        width: 100%;
    }
}


/**************************************************/
/******************** seProgress ********************/
.seProgress {
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    box-sizing: border-box;
    display: none;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 11pt;
    height: 100%;
    left: 0;
    line-height: 1.5;
    overflow: auto;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1;
}
  
.seProgress>div {
    background-color: #fefefe;
    border: 1px solid #888;
    border-radius: 8px 8px 0px 0px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: inline-block;
    left: 50%;
    padding: 32px 16px 16px 16px;
    position: relative;
    top: 50%;
    transform: translate(-50%, -50%);

}
.seProgress_title {
    background-color: rgb(129, 100, 169);
    border-radius: 8px 8px 0px 0px;
    color: white;
    position: absolute;
    left: 0;
    padding: 6px 8px;
    right: 0;
    top: 0;
}
.seProgress_Bar {
    border: 1px solid lightgrey;
    padding: 8px 12px;
    margin-top: 16px;
}
.seProgress_Bar>div {
    height: 16px;
    width: 100%;
    background: linear-gradient(90deg,var(--se-blue) 0%, rgba(255,255,255,1) 0%);
    text-align: center;
}

/**************************************************/
/******************** seQuestion ********************/
.seQuestion {
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    box-sizing: border-box;
    display: none;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 11pt;
    height: 100%;
    left: 0;
    line-height: 1.5;
    overflow: auto;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1;
}
  
.seQuestion>div {
    background-color: #fefefe;
    border: 1px solid #888;
    border-radius: 8px 8px 0px 0px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: inline-block;
    left: 50%;
    padding: 32px 16px 16px 16px;
    position: relative;
    top: 50%;
    transform: translate(-50%, -50%);
}

.seQuestion label { 
    display: inline-block;
}
.seQuestion_buttons {
    display: block;
    text-align: center; 
    margin-top: 4px;
}
.seQuestion_buttons .button { min-width: 15%; }
.seQuestion_buttons .button:not(:last-child) {
    margin-right: 8px;
}
.seQuestion_close {
    background-color: rgb(38, 55, 128);
    border-radius: 50%;
    color: white;
    float: right;
    font-size: 28px;
    font-weight: bold;
    height: 24px;
    line-height: 75%;
    padding-left: 1px;
    position: absolute;
    right: 2px;
    text-align: center;
    top: 2px;
    width: 24px;
    z-index: 1;
}
  
.seQuestion_close:hover, .seQuestion_close:focus {
    color: whitesmoke;
    text-decoration: none;
    cursor: pointer;
}
.seQuestion_message { margin: 12px 0px; }
.seQuestion_title {
    background-color: rgb(129, 100, 169);
    border-radius: 8px 8px 0px 0px;
    color: white;
    position: absolute;
    left: 0;
    padding: 6px 8px;
    right: 0;
    top: 0;
}

/**************************************************/
/******************** seRadio ********************/
.seRadio {
    all: unset;
    display: flex;
    margin: 10% auto;
}
.seRadio input[type="radio"] {
    box-shadow: 0 0 0 1px silver;
    height: 18px;
    width: 18px;
    appearance: none;
    border: 3px solid #fff;
    background-color: #eee;
    border-radius: 50%;
    transform: scale(1);
    transition: 120ms transform ease-in-out;

}
.seRadio input[type="radio"]:checked {
    box-shadow: 0 0 0 1px #263780;
    background-color:#263780;
    animation-duration: 120ms;
    animation-name: radioZoom;
}
.seRadio input[type="radio"]:disabled {     box-shadow: 0 0 0 1px #eee; } 
    .seRadio input[type="radio"]:focus-visible { outline-offset: 0; }
.seRadio input[type="radio"]:hover { 
    transform: scale(1.1);
    transition: 120ms transform ease-in-out;
}
.seRadio label { 
    all: unset; 
    font-size: initial;
    padding: 0px 8px;
    line-height: 18px;
}
/******************************************************/
/******************** seToolButton ********************/
div.seToolButton {
    color: inherit;
    cursor: pointer;
    display: flex;
    justify-content: stretch;
    height: 100%;
    padding: 0 4px;
    position: relative;
}
div.seToolButton:hover>div { filter: drop-shadow(1px 1px 1px var(--se-blue)); }
div.seToolButton.bottom { flex-direction: column; }
div.seToolButton.left { flex-direction: row-reverse; }
div.seToolButton.right { flex-direction: row; }
div.seToolButton.top { flex-direction: column-reverse; }
div.seToolButton>div {
    font-size: smaller;
}
div.seToolButton>div:first-of-type {
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}
div.seToolButton.bottom>div:first-of-type { flex-grow: 1; }
div.seToolButton.bottom>div:last-of-type {
    flex-grow: 0;
    text-align: center;
}
div.seToolButton.right>div:first-of-type { flex-grow: 0; }
div.seToolButton.right>div:last-of-type {
    flex-grow: 1;
    padding-left: 4px;
    margin: auto;
}

div.seToolButton>ul {
    background-color: rgba(255,255,255,0.7);
    border: 1px solid rgb(196, 196, 196);
    border-radius: 0px 0px 4px 4px;
    box-shadow: 3px 3px 2px rgb(136, 136, 136);
    display: none;
    line-height: 2;
    list-style-type: none;
    margin: 0;
    padding: 2px 0 4px 0;
    position: absolute;
    top: 90%;
    width: 90%;
    z-index: 65534;
}
div.seToolButton:hover>ul { display:block; }
div.seToolButton li {
    font-size: smaller;
    padding: 0 6px;
}
div.seToolButton li:hover { 
    background-color: var(--se-green); 
    color: white;
}

/**************************************************/
/******************** seUpload ********************/
div.seUpload {
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    box-sizing: border-box;
    display: none;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 11pt;
    height: 100%;
    left: 0;
    line-height: 1.5;
    overflow: auto;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1;
}
.seUpload>form {
    background-color: #fefefe;
    border: 1px solid #888;
    border-radius: 8px;
    box-shadow: black 3px 4px 4px;
    box-sizing: border-box;
    display: inline-block;
    left: 50%;
    padding: 32px 16px 16px 16px;
    position: relative;
    top: 50%;
    transform: translate(-50%, -50%);

}
.seUpload input[type=file] { display: none;}
.seUpload input::file-selector-button { display: none; }
.seUpload_close {
    background-color: rgb(38, 55, 128);
    border-radius: 50%;
    color: white;
    float: right;
    font-size: 28px;
    font-weight: bold;
    height: 24px;
    line-height: 75%;
    padding-left: 1px;
    position: absolute;
    right: 2px;
    text-align: center;
    top: 2px;
    width: 24px;
    z-index: 1;
}
.seUpload_close:hover, .seUpload_close:focus {
    color: whitesmoke;
    text-decoration: none;
    cursor: pointer;
}
.seUpload_Dropzone {
    align-items: center;
    border: 3px dashed var(--se-blue);
    border-radius: 6px;
    box-sizing: border-box;
    display: inline-flex;
    height: 100%;
    margin-top: 8px;
    padding: 8px;
    width: 100%;
}
.seUpload_Dropzone:hover { cursor: pointer; }
.seUpload_Dropzone.highlight { border-color: var(--se-green); color: var(--se-green); }
.seUpload_title {
    background-color: rgb(129, 100, 169);
    border-radius: 8px 8px 0px 0px;
    color: white;
    position: absolute;
    left: 0;
    padding: 6px 8px;
    right: 0;
    top: 0;
}


@keyframes radioZoom {
    from {border-width: 8px; }
    to {border-width: 3px; }
}