/* misc.css */
*
{
    margin: 0;
    padding: 0;
    font-family: "Arial";
}

body
{
    width: 100%;
    height: 100%;
    background-image: linear-gradient(65deg, rgb(0, 0, 30) 0%, rgb(37, 37, 148) 34%, rgb(0, 176, 240));
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.main-panel
{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
}

.work-panel
{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.work-area
{
    width: calc(100% - 8px);
    margin-left: 8px;
    height: 100%;
    border-top-left-radius: 8px;
    background-color: rgb(255, 255, 255);
    overflow: scroll;
}

/* navbar.css */
.nb-cnt
{
    width: auto;
    height: 100%;
    z-index: 20;
}

.nb
{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color: rgb(255, 255, 255);
    overflow-y: scroll;
    overflow-x: hidden;
}

.nb-active
{
    width: 85%;
    position: absolute;
    box-shadow: 2px 0px 5px;
}

#nb-burger
{
    width: 16px;
    height: 16px;
    padding: 10px;
    fill: rgb(255, 255, 255);
    background-color: rgb(0, 176, 240);
    user-select: none;
}

.nb-item
{
    width: 100%;
    padding: 10px 20px;
    align-items: center;
    box-sizing: border-box;
    display: flex;
    text-decoration: none;
    transition: 0.1s linear;
    user-select: none;
}

.nb-cnt:not(.nb-active) .nb-item
{
    display: none;
}

.nb-item:not(.nb-item-active)
{
    color: rgb(0, 176, 240);
    background-color: rgb(255, 255, 255);
}

.nb-item:hover
{
    color: rgb(255, 255, 255);
    background-color: rgb(200, 200, 200);
}

.nb-item > svg
{
    width: 16px;
    height: 16px;
    margin-right: 5px;
    transition: 0.1s linear; /* FIX: green is shown in transition */
    fill: rgb(0, 176, 240);
}

.nb-item:hover > svg, .nb-item-active > svg
{
    fill: rgb(255, 255, 255);
}


.nb-item-active
{
    color: rgb(255, 255, 255);
    background-color: rgb(0, 176, 240);
}

@media only screen and (min-width: 1300px)
{
    .nb-cnt
    {
	width: 15%;
    }

    #nb-burger
    {
	display: none;
    }

    .nb-item
    {
	display: flex;
    }

    .nb-cnt:not(.nb-active) .nb-item
    {
        display: flex;
    }
}

/* topbar.css */
.top-bar
{
    width: calc(100% - 8px);
    margin-left: 8px;
    margin-bottom: 8px;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    border-bottom-left-radius: 10px;
    border-bottom-left-radius: 10px;
    background-color: rgb(255, 255, 255);
}

/* Account */
.account-cnt
{
    display: flex;
    flex-direction: row;
    align-items: center;
}

.account
{
    padding: 10px;
    display: flex;
    flex-direction: row;
    align-items: center;
    color: rgb(0, 176, 240);
    text-decoration: none;
    transition: 0.1s linear;
}

.account:hover
{
    color: rgb(255, 255, 255);
    background-color: rgb(0, 176, 240);
}

.account > svg
{
    width: 18px;
    height: 18px;
    margin-right: 3px;
    fill: rgb(0, 176, 240);
}

.account:hover > svg
{
    fill: rgb(255, 255, 255);
}


.account-cnt > #logout > svg
{
    width: 19px;
    height: 19px;
    padding: 10px;
    fill: rgb(255, 0, 0);
    transition: 0.1s linear;
}

.account-cnt > #logout:hover > svg
{
    fill: rgb(255, 255, 255);
    background-color: rgb(255, 0, 0);
}



/* button.css */
.btn
{
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px 15px;
    border-radius: 5px;
    outline: none;
    color: rgb(255, 255, 255);
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.1s linear;
    font-size: 85%;
    user-select: none;
}

.btn > svg
{
    width: 16px;
    height: 16px;
    margin-right: 3px;
}

.btn-blue
{
    background-color: rgb(0, 176, 240);
}

.btn-blue:hover
{
    background-color: rgb(0, 136, 200);
}

.btn-green
{
    background-color: rgb(0, 220, 0);
}

.btn-green:hover
{
    background-color: rgb(0, 160, 0);
}

.btn-red
{
    background-color: rgb(220, 0, 0);
}

.btn-red:hover
{
    background-color: rgb(160, 0, 0);
}

.btn-gray
{
    background-color: rgb(140, 140, 140);
}

.btn-gray:hover
{
    background-color: rgb(100, 100, 100);
}

/* textbox.css */
.tb
{
    height: 0%;
    position: relative;
    display: flex;
    align-items: center;
    border: 1px solid rgb(150, 150, 150);
    border-radius: 5px;
}

.tb > input
{
    width: 100%;
    padding: 8px 15px;
    color: rgb(80, 80, 80);
    outline: 5px;
    border: none;
    border-radius: 5px;
}

.tb > input:focus ~ p, .tb > input:not(:placeholder-shown) ~ p
{
    top: -6px;
    left: 10px;
    font-size: 70%;
    background-color: rgb(255, 255, 255);
}

.tb p
{
    position: absolute;
    top: 8px;
    left: 15px;
    padding: 0 2px;
    pointer-events: none;
    color: rgb(80, 80, 80);
    transition: 0.2s ease all;
    font-size: 85%;
}

.tb svg
{
    width: 16px;
    height: 16px;
    padding-right: 8px;
    padding-left: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
    cursor: pointer;
    color: rgb(80, 80, 80);
}

/* textarea.css */
.ta
{
    width: 100%;
    height: 100px;
    padding: 5px;
    color: rgb(80, 80, 80);
    border: 1px solid rgb(150, 150, 150);
    border-radius: 5px;
    outline: none;
    resize: none;
    font-size: 85%;
}

/* dropdown.css */
.dd-cnt
{
    position: relative;
    border: 1px solid rgb(150, 150, 150);
    border-radius: 5px;
}

.dd
{
    width: 100%;
    display: flex;
    flex-direction
    display: flex;
    align-items: center;
}

.dd-selected:not(:empty) ~ .dd-name, .dd-cnt:not(:placeholder-shown) ~ .dd-name
{
    top: -6px;
    left: 10px;
    font-size: 70%;
    background-color: rgb(255, 255, 255);
}

.dd-name
{
    position: absolute;
    top: 8px;
    left: 15px;
    padding: 0 2px;
    pointer-events: none;
    color: rgb(80, 80, 80);
    transition: 0.2s ease all;
    font-size: 85%;
    user-select: none;
}

.dd-selected
{
    width: 100%;
    padding: 0 12px;
    color: rgb(80, 80, 80);
    outline: 5px;
    border: none;
    user-select: none;
    font-size: 85%;
}

.dd-opts
{
    position: absolute;
    top: 33px;
    left: -1px;
    display: none;
    flex-direction: column;
    width: 100%;
    overflow: scroll;
    min-height: 100%;
    max-height: 400%;
    background-color: rgb(255, 255, 255);
    box-shadow: 0 0 2px;
}

.dd-opts > p
{
    width: 100%;
    padding: 8px 15px;
    color: rgb(80, 80, 80);
    box-sizing: border-box;
    cursor: pointer;
}

.dd-opts > p:hover
{
    background-color: rgb(40, 40, 40, 0.4);
}

.dd-opt-empty
{
    min-height: 35px;
}

.dd-active
{
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.dd-active > .dd-opts
{
    display: flex;
    border-top: none;
    border-left: 1px solid rgb(150, 150, 150);
    border-bottom-left-radius: 5px;
    border-right: 1px solid rgb(150, 150, 150);
    border-bottom-right-radius: 5px;
    border-bottom: 1px solid rgb(150, 150, 150);
    z-index: 100;
}

.dd > svg
{
    width: 100%;
    width: 20px;
    height: 20px;
    padding: 6px 8px 6px 8px;
    fill: rgb(80, 80, 80);
    transition: background-color 0.1s linear;
    transition: transform 0.2s linear;
    cursor: pointer;
}

.dd-active > .dd > svg
{
    transform: rotate(180deg);
}

/* checkbox.css */
.cb
{
    position: relative;
    padding-left: 25px;
    display: flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
    color: rgb(80, 80, 80);
    font-size: 80%;
}

.cb > input
{
    display: none;
}

.cb-mark
{
    width: 20px;
    height: 20px;
    position: absolute;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 5px;
    background-color: rgb(190, 190, 190);
}

.cb > input:checked ~ .cb-mark
{
    background-color: rgb(0, 176, 240);
}

.cb-mark > svg
{
    display: none;
    width: 15px;
    height: 15px;
    position: relative;
    top: 0;
    left: 0;
    color: rgb(255, 255, 255);
}

.cb > input:checked ~ .cb-mark > svg
{
    display: inline-block;
}

/* dialog.css */
.dlg-cnt
{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(40, 40, 40, 0.6);
    z-index: 20;
}

.dlg
{
    border-radius: 15px;
    box-shadow: 0 0 5px;
    background-color: rgb(255, 255, 255);
    z-index: 21;
}

.dlg-fixed
{
    width: 50%;
    height: 70%;
}

.dlg-hdr, .dlg-body, .dlg-ctrl
{
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    box-sizing: border-box;
}

.dlg-hdr, .dlg-body
{
    padding: 10px 15px;
}

.dlg-ctrl
{
    padding: 0px 15px 10px 15px;
}

.dlg-hdr
{
    border-bottom: 1px solid rgb(180, 180, 180);
}

.dlg-close
{
    fill: red;
}

.dlg-body
{
    display: flex;
    flex-direction: column;
    overflow-y: scroll;
}

.dlg-ctrl > *
{
    margin: 0px 5px;
}

.dlg-ctrl > .btn
{
    fill: rgb(255, 255, 255);
}

.grp-cnt
{
    width: 100%;
    display: flex;
    flex-direction: column;
}

.grp-cnt:not(:first-child)
{
    margin-top: 15px;
}

.grp
{
    width: 100%;
    display: flex;
    flex-direction: row;
}

.grp > *
{
    margin: 0 5px;
}


.grp-name
{
    box-sizing: border-box;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    font-size: 90%;
    color: rgb(0, 176, 240);
}

.grp-name:after, .grp-name:before
{
    content: "";
    height: 1px;
    background-color: rgb(0, 176, 240);
}

.grp-name:after
{
    flex: 10;
    margin-left: 10px;
}

.grp-name:before
{
    flex: 1;
    margin-right: 10px;
}

.grp-cus
{
    display: flex;
    flex-direction: column;
}

.grp-cus > *
{
    margin-top: 5px;
    margin-bottom: 5px;
}

.grp-apm
{
    display: flex;
    flex-direction: column;
}

.grp-apm > *
{
    margin-top: 5px;
    margin-bottom: 5px;
}

@media only screen and (min-width: 1300px)
{
    .grp-cus
    {
        flex-direction: row;
    }

    .grp-cus > *
    {
	width: 25%;
        margin-top: 0;
	margin-bottom: 0;
    }

    .grp-apm
    {
	flex-wrap: wrap;
        flex-direction: row;
    }

    .grp-apm > *
    {
	width: 25%;
        margin-top: 5px;
	margin-bottom: 5px;
    }
}

/* datepicker.css */
.dp-dlg
{
    width: 95%;
}

.dp-date-ctrl
{
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.dp-date-ctrl > *
{
    margin: 10px;
    user-select: none;
}

.dp-date-ctrl > .dp-date
{
    width: 50%;
    color: rgb(0, 176, 240);
    font-weight: bold;
    text-align: center;
}

.dp-date-ctrl > .btn
{
    width: 25%;
}

.dp-cldr
{
    border-collapse: collapse;
}

.dp-cldr tr:first-child
{
    height: 30px;
}

.dp-cldr tr:not(:first-child)
{
    height: calc((100% - 30px) / 5));
}


.dp-cldr th, td
{
    width: 14.28%;
}

.dp-cldr th
{
    color: rgb(0, 176, 240);
}

.dp-cldr a
{
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    border: 2px solid transparent;
    border-radius: 15px;
    text-decoration: none;
}

.dp-cldr a > p:nth-child(1)
{
    width: 100%;
    height: 100%;
    padding: 5px;
    display: inline-block;
    border-radius: 10px;
    color: rgb(0, 176, 240);
    font-size: 150%;
    text-align: center;
    user-select: none;
    cursor: pointer;
}

.dp-cldr a:is(.date-dis) > p:nth-child(1)
{
    color: rgba(0, 176, 240, 0.5);
}

.dp-dlg > .dlg-ctrl > .btn
{
    width: 100%;
}

.dp-cldr a:is(.dp-sel-date) > p:nth-child(1)
{
    color: rgb(255, 255, 255);
    background-color: rgb(0, 176, 240);
}


@media only screen and (min-width: 1300px)
{
    .dp-dlg
    {
	width: 25%;
    }
    
    .dp-date-ctrl > .dp-date
    {
	width: 30%;
    }

    .dp-date-ctrl > .btn
    {
	width: 10%;
    }

    .dp-dlg > .dlg-ctrl > .btn
    {
	width: auto;
    }
}

/* appointment-editor.css */
.apme
{
    width: 90%;
    max-height: 95%;
    overflow-y: scroll;
}

.apme-ctrl
{
    display: flex;
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
}

.apme-ctrl > div
{
    width: 100%;
    display: flex;
    flex-direction: row;
}

.apme-ctrl > div > a:nth-child(1), .apme-ctrl > div > a:nth-child(2)
{
    width: 100%;
}

.apme-ctrl > div > a:nth-child(1)
{
    margin-right: 5px;
}

.apme-ctrl > div > a:nth-child(2)
{
    margin-left: 5px;
}

.apme-ctrl > a
{
    margin-top: 10px;
    width: 100%;
}

.apme-ctrl > .spacer
{
    display: none;
    width: 0;
}

.grp-cus
{
    display: flex;
    flex-direction: column;
}

.grp-cus > *
{
    margin-top: 5px;
    margin-bottom: 5px;
}

.grp-apm
{
    display: flex;
    flex-direction: column;
}

.grp-apm > *
{
    margin-top: 5px;
    margin-bottom: 5px;
}

.delete-dlg > .dlg-ctrl > .btn
{
    width: 100%;
}

@media only screen and (min-width: 1300px)
{
    .apme
    {
	width: 40%;
    }

    .apme-ctrl
    {
	display: flex;
        flex-direction: row;
        justify-content: flex-start;
	flex-wrap: nowrap;
    }

    .apme-ctrl > div > a:nth-child(1), .apme-ctrl > div > a:nth-child(2)
    {
	width: auto;
    }

    .apme-ctrl > .spacer
    {
	display: inline-block;
	width: 100%;
    }

    
    .apme-ctrl > a
    {
        margin-top: 0;
	width: auto;
    }

    .grp-cus
    {
        flex-direction: row;
    }

    .grp-cus > *
    {
	width: 25%;
        margin-top: 0;
	margin-bottom: 0;
    }

    .grp-apm
    {
	flex-wrap: wrap;
        flex-direction: row;
    }

    .grp-apm > *
    {
	width: 25%;
        margin-top: 5px;
	margin-bottom: 5px;
    }

}



/* error.css */
.error-dlg
{
    max-width: 90%;
}

@media only screen and (min-width: 1300px)
{
    .error-dlg
    {
	max-width: 40%;
    }
}

/* logout.css */
.logout-dlg > .dlg-ctrl > .btn
{
    width: 100%;
}
