@media screen{
    :root {
        --tiny-font-size: 0.7rem !important;
        --smallest-font-size: 1.25rem !important;
        --small-font-size: 1.9rem !important;
        --medium-font-size: 2.5rem !important;
        --large-font-size: 3rem !important;

        --color-appointment: #03626e;
        --color-day-off: #b21a28;
        --color-working: #9dcc66;
        --color-holiday: #f6ec35;
        --color-requested-off: #dc1dc3;
        --color-extra-off: #028e94;
        --color-no-roster: #cccbc7;
        --color-sick: #d5c72c;

        --font-color-normal: #54514e;
        --font-color-dark: #282828;
        --font-color-light: #7c7c7c;

        --border-gray-small: solid 1px #c0c0c0 !important;

        --font: 100% Roboto, system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
        "Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji",
        "Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji" !important;
    }

    /****************************************************************************************************
    Top level elements
    *****************************************************************************************************/
    /* Reset margins and padding */
    * {
        margin: 0;
        padding: 0;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

    /* Tell the browser to render HTML 5 elements as block */
    header, main, section, article, aside, nav, footer {
        display: block;
    }

    input:focus,
    select:focus,
    textarea:focus,
    button:focus {
        outline: none;
    }

    ::-webkit-input-placeholder { /* Edge */
        color: #cccbc7;
    }

    :-ms-input-placeholder { /* Internet Explorer 10-11 */
        color: #cccbc7;
    }

    ::placeholder {
        color: #cccbc7;
    }

    input::-webkit-outer-spin-button,
    input::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    /* Firefox */
    input[type=number] {
        -moz-appearance: textfield;
    }

    /* Font */
    html {
        font: var(--font);
        color: var(--font-color-normal);
        height: 100%;
        width: 100%;
    }

    html, body{
        text-size-adjust: 100%;
        -webkit-text-size-adjust: 100%;
        -moz-text-size-adjust: 100%;
        -ms-text-size-adjust: 100%;

        -moz-user-select: none;
        -khtml-user-select: none;
        -webkit-user-select: none;
        -ms-user-select: none;
        user-select: none;
    }

    input,select,textarea,button{
        font: var(--font);
        color: var(--font-color-normal);
    }

    h2{
        color: var(--font-color-dark);
    }

    p, span, h3{
        color: var(--font-color-light);
    }

    body{
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .burlington{
        width: 40%;
        height: auto;
    }
    /********************************************************************************************************
    Menus
    *********************************************************************************************************/

    #logoTop{
        background-color: #414141;
        align-items: center;
        flex-wrap: nowrap;
    }

    #logoTop img{
        height: 7rem;
        margin: 1.5rem;
        border-radius: 50%;
        background-color: white;
        padding: 0.5rem;
    }

    #logoTop h1{
        color: #f8f6ef;
        text-transform: uppercase;
        margin-left: 1rem;
        font-weight: 600;
    }

    #menuTop{
        background-color: #2a2a2a;
    }

    #menuBtn{
        height: 5rem;
        width: 7rem;
        padding: 1rem;
        margin: 0.5rem 0;
    }

    #menHead{
        width: calc(100% - 7rem);
    }

    #menHead button{
        background-color: transparent;
        color: white;
        font-size: var(--medium-font-size);
        width: 33%;
        padding: 1.5rem 1.5rem 0.75rem 1.5rem;
        text-align: center;
        border: none;
        border-bottom: solid 0.75rem transparent;
    }

    .greenUnderline{
        border-bottom: solid 0.75rem #05bb05 !important;
    }

    #mobileMain{
        padding: 0.5rem;
        background-color: #ababab;
        overflow-y: auto;
        height: inherit;
        width: 100%;
    }

    #mobileMain .shadowWhite{
        background-color: white;
        border-radius: 1.5rem;
        width: 100%;
        overflow-y: initial;
    }

    /*Side menu*/
    #sideMenu{
        margin: 0;
        padding: 2rem 1rem;
        background-color: white;
        color: #54514e;
        height: 100%;
        min-width: 75%;
        max-width: 75%;
        position: absolute;
        left: -100%;
        overflow-y: auto;
    }

    #sideMenu hr{
        border: var(--border-gray-small);
        width: 90%;
        margin: 5%;
    }

    #sideMenu button, #sideMenu a{
        margin-left: 2rem;
        align-items: center;
        display: flex;
        text-align: left;
        background-color: transparent;
        border: none;
        color: inherit;
        width: 100%;
    }

    #sideMenu form button{
        width: auto;
    }

    #sideMenu button:active, #sideMenu a:active{
        background-color: #e1e0db;
    }

    #sideMenu button span, #sideMenu a span{
        font-weight: 600;
        font-size: var(--medium-font-size);
        padding: 1.5rem 0;
        white-space: nowrap;
    }

    #sideMenu button img, #sideMenu a img{
        height: 3rem;
        margin: 0 0 0 2rem;
    }

    #sideMenu button img:first-child, #sideMenu a img:first-child{
        height: 3rem;
        margin: 0 2rem 0 0;
    }

    #searchCPN{
        height: 4em;
        margin-left: 2rem;
    }

    #loggedIn{
        font-size: var(--small-font-size);
        margin-top: 1rem;
        margin-left: 2rem;
        text-align: left;
        max-width: 70%;
    }

    #menuLogo {
        max-width: 6rem;
        max-height: 6rem;
        margin-top: 1rem;
        margin-left: 2rem
    }

    #appSpec{
        font-size: var(--smallest-font-size);
        margin-top: 1rem;
        margin-left: 2rem;
        flex-direction: column;
    }


    /********************************************************************************************************
    Generally applicable classes
    *********************************************************************************************************/
    .border{
        border: var(--border-gray-small);
        border-radius: 1rem;
    }

    /* flex box default */
    .fullFlex{
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        min-height: 0;
        min-width:  0;
        align-items: flex-start;
        align-content: flex-start;
    }

    .centerFlex{
        justify-content: space-around;
        align-content: center !important;
        text-align: center;
        align-items: center !important;
    }

    .topLeftFlex{
        justify-content: flex-start;
        align-content: flex-start;
    }

    .topSpace{
        margin-top: 2rem !important;
    }

    .break{
        flex-basis: 100%;
        width: 100%;
        height: 0;
    }

    div.sticky {
        position: -webkit-sticky; /* Safari */
        position: sticky;
        background-color: white;
        border-top: var(--border-gray-small);
        border-bottom: var(--border-gray-small);
        padding: 0.8rem 0;
        z-index: 1;
    }

    div.top{
        top: -2rem;
    }

    div.bottom{
        bottom: -2rem;
    }

    /*cut off too long*/
    .nowrap{
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .noShow{
        display: none !important;
    }

    /*Font sizing*/
    .tinyFont{
        font-size: var(--tiny-font-size);
    }

    .smallestFont{
        font-size: var(--smallest-font-size);
    }

    .smallFont{
        font-size: var(--small-font-size);
    }

    .mediumFont{
        font-size: var(--medium-font-size);
    }

    .largeFont{
        font-size: var(--large-font-size);
    }

    /* Alignment within element */
    .rightAlign{
        margin-left: auto;
        text-align: right;
    }
    .leftAlign{
        margin-right: auto;
        text-align: left;
    }
    .centerAlign{
        align-self: center;
        text-align: center;
        margin: auto;
    }

    /*generic button*/
    .button{
        background-color: #037303;
        color: white;
        font-weight: 600;
        border: none;
        border-radius: 2.5rem;
        font-size: var(--medium-font-size);
        padding: 1rem 2rem;
        margin: 0.5rem;
    }

    .clearButton{
        background-color: transparent;
        border: none;
    }

    .clearButton:active{
        background-color: #e1e0db;
    }

    .cpn{
        color: #4b4bef;
        font-weight: bolder;
    }

    .hidden{
        visibility: hidden;
        /*height: 0;
        width: 0; TODO: do I need this? */
    }

    .collapse{
        height: 0;
        width: 0;
        display: none !important;
    }

    .fullSize{
        width: 100% !important;
        height: 100% !important;
    }

    /*form*/
    input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"]{
        border: none;
        font-size: var(--medium-font-size);
        padding: 1rem;
        border-bottom: var(--border-gray-small);
        background-color: transparent !important;
    }

    input[type="checkbox"], input[type="radio"]{
        transform: scale(200%);
        margin: 0 1rem;
    }

    label{
        font-weight: 600;
    }

    textarea{
        border: none;
        border-radius: 1rem;
        background-color: #efefef;
        padding: 1rem;
    }

    /********************************************************************************************************
    Roster
    *********************************************************************************************************/
    .rosterName{
        width: 16%;
        flex-basis: 16%;
        font-size: var(--small-font-size);
        display: flex;
        /*flex-wrap: nowrap;*/
        justify-content: flex-start;
        align-items: center;
    }

    .rosterName b:nth-child(1){
        min-width: 25%;
    }
    .rosterName b:nth-child(2){
        display: none;
        width: 60%;
    }

    .rosterName .warning{
        height: var(--small-font-size);
    }

    .rosterName.tier{
        width: calc(16% - 1rem);
        flex-basis: calc(16% - 1rem);
    }

    .rosterDay{
        font-size: var(--small-font-size);
        width: 11%;
        margin: 0.5%;
        padding: 0.5rem;
        border-radius: 0.5rem;
    }

    .rosterDay:active{
        box-shadow: 0 5px 10px 0px rgba(0,0,0,0.6);
    }

    .hasBeen{
        opacity: 0.6;
    }

    .appCal{
        height: var(--medium-font-size);
    }

    #rostHeader, #attHeader{
        font-size: var(--medium-font-size);
        margin: 1rem 0;
    }

    #rostHeader img, #attHeader img{
        height: calc(var(--medium-font-size) * 1.5);
    }

    #stickDays p{
        margin: 0 0.5%;
        font-size: var(--small-font-size);
    }

    .appointment{
        border: dashed 0.4rem #03626e;
        padding: 0.1rem !important;
    }

    .appointment .rosterDay{
        display: block;
        width: 100%;
    }

    /**-------------------Attendance----------------------**/
    .slider{
        --tumbback: #a2a1a0;
        -webkit-appearance: none;
        height: calc(var(--smallest-font-size) / 1.5);
        background: #e1e1e1;
        outline: none;
        opacity: 0.7;
        -webkit-transition: .2s;
        transition: opacity .2s;
        border-radius: 20px;
        margin: 1.5rem 0 !important;
        width: 90%;
        margin-right: 10%;
        cursor: pointer;
    }

    .slider::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: var(--smallest-font-size);
        height: calc(var(--large-font-size) * 1.25);
        background: var(--tumbback);
        cursor: pointer;
        border-radius: 0.5rem;
    }

    .slider::-moz-range-thumb {
        width: var(--smallest-font-size);
        height: calc(var(--large-font-size) * 1.25);
        background: var(--tumbback);
        cursor: pointer;
        border-radius: 0.5rem;
    }

    input[type=range] {
        pointer-events: none;
    }

    input[type=range]::-webkit-slider-thumb {
        pointer-events:auto;
    }

    #listBody h3{
        font-size: var(--medium-font-size);
    }

    #listBody hr{
        margin-top: 2rem;
    }

    .attRow{
        font-size: var(--small-font-size);
        color: var(--font-color-normal);
    }

    .attRow span{
        color: var(--font-color-normal) !important;
    }

    .attRow b{
        font-size: var(--small-font-size) !important;
    }

    .appText{
        padding: 0.5rem;
        display: block;
        color: var(--color-appointment);
        font-size: var(--small-font-size);
    }

    .offWorker{
        background-color: #efefef;
        margin: 0 -1.5rem;
        padding: 0.5rem 1.5rem;
        width: calc(100% + 3rem) !important;
    }

    .hasNote{
        border-color: var(--color-appointment);
        border-style: solid;
        border-width: 0.25rem;
        border-radius: 1rem;
    }

    /****
    Appointments
     */
    .floatingAdd{
        position: fixed;
        right: 4rem;
        bottom: 4rem;
        background-color: #2a2a2a;
        border-radius: 5rem;
        width: 9rem;
        height: 9rem;
        padding: 2rem;
        border: none;
    }

    .appDiv{
        font-size: var(--small-font-size);
        padding: 2rem;
    }

    .appDiv .leaveTime{
        color: var(--color-appointment);
    }

    h4{
        font-size: var(--medium-font-size);
        margin: 4rem 0 0 2rem;
        text-decoration: underline;
    }

    /***********************************************************
    Individual
     ***********************************************************/
    .indiv{
        padding: var(--large-font-size) !important;
    }

    .indiv h3{
        font-size: var(--large-font-size);
        color: var(--font-color-dark);
    }

    .indiv p{
        font-size: var(--large-font-size);
        color: var(--font-color-light);
        font-weight: 700;
        margin-left: calc(var(--large-font-size) * 2);
    }

    .indiv p.small{
        font-size: var(--medium-font-size);
        color: var(--font-color-normal);
        margin-left: calc(var(--large-font-size) * 2);
    }

    .indiv .rosterDay{
        width: 70%;
        margin: 0.5%;
        padding: 0.25rem;
        border-radius: 0.5rem;
        min-height: calc(var(--large-font-size) * 3);
        align-content: center;
    }

    /****************************
    Day attendance
     ****************************/
    .dayAtt h2{
        font-size: var(--large-font-size);
        color: var(--font-color-dark);
    }

    .dayAtt h3{
        font-size: var(--medium-font-size);
        color: var(--font-color-normal);
    }

    .dayAtt p{
        font-size: var(--large-font-size);
        color: var(--font-color-light);
        font-weight: 700;
    }

    /********************************************************************************************************
    Overlay
    *********************************************************************************************************/
    .overlay {
        height: 100%;
        width: 100%;
        visibility: hidden;
        position: fixed;
        z-index: 2;
        top: 0;
        left: 0;
        background-color: rgb(0,0,0);
        background-color: rgba(0,0,0, 0.5);
        text-align: center;

        opacity: 0;
    }

    #prompt{
        margin: 0;
        padding: 3rem;
        background-color: white;
        width: 75%;
        max-height: 95%;
        border-radius: 1rem;
        position: absolute;
        text-align: center;
        left: 50%;
    }

    #prompt h2{
        font-weight: 600;
        font-size: var(--large-font-size);
    }

    #prompt div{
        margin: 0 auto;
        max-height: 100%;
        width: 100%;
        font-size: var(--medium-font-size);
    }

    #overContent #promptSelect img{
        height: calc(var(--medium-font-size)*1);
        margin-right: 1.5rem;
    }

    #promptSelect:only-child{
        border: none !important;
        margin-top: 0 !important;
    }

    #promptSelect:only-child label:nth-child(2){
        margin-top: 0 !important;
    }

    #promptSelect:only-child label {
        margin-top: 2rem;
    }

    /*.nameResult{
        font-size: var(--smallest-font-size);
    }*/

    .blendIn{
        transition: opacity 800ms;
        visibility: visible;
        /* Fade - takes 1 second to go from 0% to 100% opac: */
        opacity: 1;
    }

    .blendOut{
        transition: visibility 800ms, opacity 800ms;
        visibility: hidden !important;
        opacity: 0;
    }

    .slideIn{
        animation-duration: 800ms;
        animation-name: slidein;
        animation-fill-mode: forwards;
    }

    .slideOut{
        animation-duration: 800ms;
        animation-name: slideout;
        animation-fill-mode: forwards;
    }

    @keyframes slidein {
        from {
            left: -100%;
        }

        to {
            left: 0;
        }
    }

    @keyframes slideout {
        from {
            left: 0;
        }

        to {
            left: -100%;
        }
    }

    .slideDown{
        animation-duration: 600ms;
        animation-name: slidedown;
        animation-fill-mode: forwards;
    }

    .slideUp{
        animation-duration: 600ms;
        animation-name: slideup;
        animation-fill-mode: forwards;
    }

    @keyframes slidedown {
        from {
            top: -100%;
            -ms-transform: translate(-50%, -100%);
            transform: translate(-50%, -100%);
        }

        to {
            top: 50%;
            -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
        }
    }

    @keyframes slideup {
        from {
            top: 50%;
            -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
        }

        to {
            top: -100%;
            -ms-transform: translate(-50%, -100%);
            transform: translate(-50%, -100%);
        }
    }

    .loader {
        border: 1.5rem solid #f3f3f3;
        border-radius: 50%;
        border-top: 1.5rem solid #05bb05;
        width: 10rem !important;
        height: 10rem !important;
        -webkit-animation: spin 2s linear infinite; /* Safari */
        animation: spin 2s linear infinite;
    }

    .sync {
        border: 0.5rem solid #949494;
        border-radius: 50%;
        border-top: 0.5rem solid #05bb05;
        padding: 0 !important;
        -webkit-animation: spin 1s linear infinite; /* Safari */
        animation: spin 1s linear infinite;
    }

    /* Safari */
    @-webkit-keyframes spin {
        0% { -webkit-transform: rotate(0deg); }
        100% { -webkit-transform: rotate(360deg); }
    }

    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
}

/**********************************************************************************************************
 *LANDSCAPE
 **********************************************************************************************************/
@media (orientation: landscape){
    #logoTop {
        display: none;
    }

    #menHead button{
        font-size: var(--smallest-font-size);
        padding: 0.75rem 0.5rem 0.25rem 0.5rem;
        border-bottom: solid 0.5rem transparent;
    }

    .greenUnderline{
        border-bottom: solid 0.5rem #05bb05 !important;
    }

    #menuBtn{
        height: 3rem;
        margin: 0;
    }

    .burlington{
        width: 20%;
    }

    /*Side menu*/
    #sideMenu button, #sideMenu a{
        margin-left: 2rem;
    }

    #sideMenu button span, #sideMenu a span{
        font-size: var(--small-font-size);
        padding: 1.5rem 0;
    }

    #sideMenu button img, #sideMenu a img{
        height: 2rem;
        margin: 0 1rem;
    }

    #searchCPN{
        height: 2rem;
        margin: 0 1rem;
    }

    input[type="text"], input[type="number"], input[type="password"]{
        font-size: var(--small-font-size);
        padding: 0.5rem;
    }

    /*Roster*/
    .rosterName{
        width: 30%;
        flex-basis: 30%;
        font-size: var(--smallest-font-size);
    }

    .rosterName.tier{
        width: calc(30% - 1rem);
        flex-basis: calc(30% - 1rem);
    }

    .rosterName b:nth-child(2){
        display: inline-block;
        padding-left: 0.5rem;
    }

    .rosterName .warning{
        width: 15%;
    }

    .rosterDay{
        font-size: var(--smallest-font-size);
        width: 9%;
        margin: 0.5%;
        padding: 0.25rem;
        border-radius: 0.5rem;
    }

    .appCal{
        height: var(--small-font-size);
    }

    #rostHeader, #attHeader{
        font-size: var(--small-font-size);
        margin: 0;
        margin-bottom: 1rem;
    }

    #rostHeader img, #attHeader img{
        height: calc(var(--small-font-size) * 1.5);
    }

    #stickDays p{
        font-size: var(--smallest-font-size);
    }

    /*pop up*/
    #prompt{
        min-width: 40%;
        max-width: 75%;
    }

    #overContent #promptSelect, #overContent #promptHead{
        width: 50%;
    }

    #overContent #promptHead{
        font-size: var(--smallest-font-size) !important;
    }

    #promptSelect:only-child label {
        margin-top: 0.5rem;
    }

    #overContent #promptHead h2{
        font-size: var(--small-font-size) !important;
    }

    #overContent #promptSelect:nth-of-type(2){
        border: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border-left: var(--border-gray-small) !important;
    }

    #overContent #promptSelect img{
        height: calc(var(--small-font-size)*1) !important;
    }

    #prompt div{
        font-size: var(--smallest-font-size) !important;
    }


    #prompt h2{
        font-size: var(--small-font-size) !important;
    }

    .button{
        font-size: var(--smallest-font-size) !important;
        padding: 0.75rem 1.5rem;
    }

    .loader {
        border: 1rem solid #f3f3f3;
        border-radius: 50%;
        border-top: 1rem solid #05bb05;
        width: 6rem !important;
        height: 6rem !important;
    }

    .nameResult{
        font-size: var(--smallest-font-size);
    }
}