:root {
    /* colors */
    --main-background-color: #ccccdd;
    --main-gradient: linear-gradient(to bottom, #353550, #151533);
    --entries-gradient: linear-gradient(to bottom, #47476b, #252559);
    --button-background-color: #8484b4;
    --button-text-color: white;
    --menu-background-color: #202052;
    --menu-text-color: white;
    --menu-hover-color: #ffcc00;
    --button-hover-color: #444499;
    --input-text-color: black;
    --overlay-background-color: rgba(0, 0, 0, 0.7);

    /* font sizes */
    --main-font-size: 12pt;
    --entry-font-size: 12pt;
    --menu-font-size: 16pt;

    /* dimensions */
    --content-width: 900px;
    --datetime-width: 187px;
    --location-width: 260px;
    --datetime-button-width: 106px;
    --action-button-width: 82px;
    --input-height: 30px;
    --button-height: 40px;

    /* menu */
    --menu-toggle-top: 29px;
    --menu-toggle-left: 24px;
    --menu-input-top: -10px;
    --menu-input-left: -5px;
    --menu-icon-width: 40px;
    --menu-icon-height: 32px;
    --menu-icon-layer-width: 33px;
    --menu-icon-layer-height: 4px;
    --menu-icon-layer-bottom: 5px;
    --menu-transform-origin: 4px 0;

    /* padding and margins */
    --input-padding: 5px 15px;
    --input-margin: 5px 0px;
    --date-place-margin: 79px;
    --data-place-gap: 0px 10px;
    --change-time-margin: 79px;
    --datetime-button-margin: 5px 0px;
    --svg-padding: 0 20px;

    /* filters */
    --drop-shadow-filter: drop-shadow(0 0 1em black);
}
body {
    font-family: Helvetica, sans-serif;
    font-size: var(--main-font-size);
    background-image: var(--main-gradient);
    background-color: var(--main-background-color);
    padding: 0;
    margin: 0;
}
#load-entries {
    position: fixed;
    display: none;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
    min-height: 100vh;
    background: var(--overlay-background-color);
    z-index: 10;
}
.popup-content {
    position: absolute;
    background-image: var(--entries-gradient);
    border: 1px var(--button-background-color) solid;
    border-radius: 10px;
    filter: var(--drop-shadow-filter);
    display: grid;
    grid-template-columns: 1fr auto;
    row-gap: 0.5em;
    column-gap: 0.5em;
    align-items: center;
    left: 50%;
    top: 0;
    max-width: 100%;
    transform: translate(-50%);
    margin: 50px auto 0 auto;
    padding: 1rem;
    z-index: 10;
    font-size: var(--entry-font-size);
    color: var(--button-text-color);
}
.popup-content .saved-entry {
    border-radius: 10px;
    padding: 0.5em;
}
.popup-content .delete-entry {
    border-radius: 10px;
    padding: 0.5em;
}
.popup-content .no-entries {
    padding: 0 0.5em;
}
.popup-content .date, .popup-content .location {
    font-size: 80%;
    font-style: italic;
    opacity: 0.5;
}
#content {
    position: relative;
    background-color: var(--main-background-color);
    display: block;
    margin: 0 auto;
    width: var(--content-width);
    min-height: 100vh;
}
input {
    height: var(--input-height);
    padding: var(--input-padding);
    margin: var(--input-margin);
    color: var(--input-text-color);
}
button, input[type=submit] {
    font-size: var(--main-font-size);
    width: var(--action-button-width);
    height: var(--button-height);
    padding: var(--input-padding);
    margin: var(--input-margin);
    background: var(--button-background-color);
    color: var(--button-text-color);
    border: 0 none;
    cursor: pointer;
    -webkit-border-radius: 5px;
    border-radius: 5px;
}
@media (hover: hover) {
    .popup-content .saved-entry:hover,
    .popup-content .delete-entry:hover{
        background: rgba(255, 255, 255, 0.1);
    }
    button:hover, input[type=submit]:hover {
        background: var(--button-hover-color);
    }
    #menu-toggle a:hover {
        color: var(--menu-hover-color);
    }
}
.date-place {
    padding-top: 15px;
    display: flex;
    flex-flow: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--data-place-gap);
    margin-top: 0;
    margin-left: var(--date-place-margin);
}
#location-id {
    order: -1;
}
#datetime {
    width: var(--datetime-width);
    margin: var(--input-margin);
    order: 0;
}
#location {
    width: var(--location-width);
    margin: var(--input-margin);
}
.date-place .awesomplete {
    order: 1;
}
#action-show {
    order: 2;
}
#action-load {
    order: 3;
}
#action-save {
    order: 4;
}
#change-time {
    margin-left: var(--change-time-margin);
    display: flex;
    flex-flow: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--data-place-gap);
}
#change-time button, #change-time input {
    width: var(--datetime-button-width);
    padding: 0;
    margin: var(--datetime-button-margin);
}
#svg-container {
    padding: var(--svg-padding);
}
#svg-image {
    display: block;
    width: 100%;
}
#menu-toggle {
    display: block;
    position: absolute;
    top: var(--menu-toggle-top);
    left: var(--menu-toggle-left);

    z-index: 1;

    -webkit-user-select: none;
    user-select: none;
}
#menu-toggle a {
    text-decoration: none;
    color: var(--menu-text-color);

    transition: color 0.3s ease;
}
#menu-toggle input {
    display: block;
    width: var(--menu-icon-width);
    height: var(--menu-icon-height);
    position: absolute;
    top: var(--menu-input-top);
    left: var(--menu-input-left);

    cursor: pointer;

    opacity: 0; /* hide this */
    z-index: 2; /* and place it over the hamburger */

    -webkit-touch-callout: none;
}
#menu-toggle span {
    display: block;
    width: var(--menu-icon-layer-width);
    height: var(--menu-icon-layer-height);
    margin-bottom: var(--menu-icon-layer-bottom);
    position: relative;

    background: var(--menu-background-color);
    border-radius: 3px;

    z-index: 1;

    transform-origin: var(--menu-transform-origin);

    transition: transform 0.4s cubic-bezier(0.77, 0.2, 0.05, 1.0),
    background 0.4s cubic-bezier(0.77, 0.2, 0.05, 1.0),
    opacity 0.45s ease;
}
#menu-toggle span:first-child {
    transform-origin: 0 0;
}
#menu-toggle span:nth-last-child(2) {
    transform-origin: 0 100%;
}
#menu-toggle input:checked ~ span {
    opacity: 1;
    transform: rotate(45deg) translate(-2px, -1px);
    background: var(--menu-text-color);
}
#menu-toggle input:checked ~ span:nth-last-child(3) {
    opacity: 0;
    transform: rotate(0deg) scale(0.2, 0.2);
}
#menu-toggle input:checked ~ span:nth-last-child(2) {
    transform: rotate(-45deg) translate(0, -1px);
}
#menu {
    position: absolute;
    width: 200px;
    margin: -100px 0 0 -24px;
    padding: 125px 30px 15px;

    background: var(--menu-background-color);
    list-style-type: none;
    -webkit-font-smoothing: antialiased;
    /* to stop flickering of text in safari */

    transform-origin: 0 0;
    transform: translate(0, -100%);
    transition: transform 0.4s cubic-bezier(0.77, 0.2, 0.05, 1.0);
}
#menu li {
    padding: 10px 0;
    font-size: var(--menu-font-size);
}
#menu-toggle input:checked ~ ul {
    transform: none;
}
@media screen and (max-width: 900px) {
    :root {
        /* font sizes */
        --main-font-size: 10pt;
        --menu-font-size: 14pt;

        /* dimensions */
        --content-width: 720px;
        --datetime-width: 157px;
        --location-width: 212px;
        --datetime-button-width: 82px;
        --action-button-width: 64px;
        --input-height: 24px;
        --button-height: 34px;

        /* menu */
        --menu-toggle-top: 24px;
        --menu-input-top: -7px;

        /* padding and margins */
        --input-padding: 3px 5px;
        --input-margin: 3px 0px;
        --datetime-button-margin: 3px 0px;
        --data-place-gap: 0px 8px;
    }
}
@media screen and (max-width: 720px) {
    :root {
        /* font sizes */
        --main-font-size: 9pt;
        --menu-font-size: 12pt;

        /* dimensions */
        --content-width: 600px;
        --datetime-width: 343px;
        --location-width: 416px;
        --datetime-button-width: 65px;
        --action-button-width: 65px;
    }
    #datetime {
        order: 0;
    }
    #action-load {
        order: 1;
    }
    #action-save {
        order: 2;
    }
    .date-place .awesomplete {
        order: 3;
    }
    #action-show {
        order: 4;
    }
}
@media screen and (max-width: 600px) {
    :root {
        /* colors */
        --main-gradient: none;

        /* font sizes */
        --main-font-size: 9pt;
        --menu-font-size: 12pt;

        /* dimensions */
        --content-width: 428px;
        --datetime-width: 213px;
        --location-width: 277px;
        --datetime-button-width: 47px;
        --action-button-width: 60px;
        --input-height: 22px;
        --button-height: 28px;

        /* menu */
        --menu-toggle-top: 22px;
        --menu-toggle-left: 19px;
        --menu-input-top: -4px;
        --menu-input-left: -5px;
        --menu-icon-width: 30px;
        --menu-icon-height: 22px;
        --menu-icon-layer-width: 24px;
        --menu-icon-layer-height: 4px;
        --menu-icon-layer-bottom: 3px;
        --menu-transform-origin: 0 0;

        /* padding and margins */
        --date-place-margin: 58px;
        --change-time-margin: 58px;
        --input-padding: 3px 4px;
        --input-margin: 3px 0px;
        --datetime-button-margin: 0px;
        --svg-padding: 0 5px;
        --data-place-gap: 0px 4px;
    }
    #change-time {
        margin-top: 2px;
    }
    #day-min span {
        display: none;
    }
    #day-min:after {
        content: "- D";
    }
    #day-plus span {
        display: none;
    }
    #day-plus:after {
        content: "+ D";
    }
    #hour-min span {
        display: none;
    }
    #hour-min:after {
        content: "- H";
    }
    #hour-plus span {
        display: none;
    }
    #hour-plus:after {
        content: "+ H";
    }
    #minute-min span {
        display: none;
    }
    #minute-min:after {
        content: "- M";
    }
    #minute-plus span {
        display: none;
    }
    #minute-plus:after {
        content: "+ M";
    }
}
@media screen and (max-width: 427px) {
    :root {
        /* font sizes */
        --main-font-size: 8pt;

        /* dimensions */
        --content-width: 414px;
        --datetime-width: 322px;
        --location-width: 322px;
        --datetime-button-width: 44px;
        --action-button-width: 108px;
        --input-height: 20px;
        --button-height: 22px;

        /* padding and margins */
        --input-padding: 2px 3px;
    }
    #datetime {
        order: 0;
    }
    .date-place .awesomplete {
        order: 1;
    }
    #action-show {
        order: 2;
    }
    #action-load {
        order: 3;
    }
    #action-save {
        order: 4;
    }
}
@media screen and (max-width: 413px) {
    :root {
        /* dimensions */
        --content-width: 375px;
        --datetime-width: 293px;
        --location-width: 293px;
        --datetime-button-width: 40px;
        --action-button-width: 98px;
    }
}
@media screen and (max-width: 374px) {
    :root {
        /* dimensions */
        --content-width: 320px;
        --datetime-width: 238px;
        --location-width: 238px;
        --datetime-button-width: 32px;
        --action-button-width: 80px;
    }
}