#page_block {
    /*Properties overwritten from JavaScript*/
    font-family: Georgia;
    font-size:14px;
    
    /*Properties partially set from JavaScript*/
    text-shadow: 0px 0px black;
    font-weight: normal;
}

#page_block #page_content
{
    position:static;
    width:100%;
    /*display flex will make child elements stay side by side*/
    display: flex; 
    flex-direction: row; 
    flex-wrap: wrap; 
    margin: 0px;
    padding: 0px;
    
    /*
    Alternative way: display: inline-block; will do the same thing
    display: inline-block; 
    */
    
}

#page_block #menu_div
{
    position: sticky;
    width:30%; /*width not really needed flex will control the width*/
    left: 0%;
    top:0%;
    margin:0px;
    margin-left:2px;
    
    /* this will ensure that the menu will never go beneath the header nav*/
    /*top: 120px;*/ 
    /*height: calc(100vh - 120px);*/ /*fills remaining space */
    /*This will be done from JavaScript as I can't get the actual height of the header*/
    
    /*height: 98vh;*/ /*height in percent of viewport height*/
    
    padding: 2px;
    /*border: solid 1px #995500;*/
    border: groove 0.5vw rgba(0,0,0,0.1);
    border-radius: 10px;
    overflow-x: hidden;
    overflow-y: auto;
    /*flex and md-flex sets the width*/
    -ms-flex:  0.2;  /* IE 10 */  
    flex: 0.25; /*0.5 means 25% as 1 means 50:50*/
    /*menu_div flex width is decreased by 10%. 0.2 is like 20% of 50% screen width. 
    Aproximatively: 10% of screen width.*/
    min-width: 130px; /*prevents shrinking too far */
}

#page_block #menu_div #menu #searchForm
{
    position: relative;
    margin: 2%;
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#searchForm #SearchBox {
    position: relative;
    width: 98%;
    padding: 1%;
    padding-left: 3%;
    /*background-image: linear-gradient(to right, white, #ffeecc);*/
    background-image: linear-gradient(to right, white, rgba(143,55,0, 0.01));
    font-size: 12px;
    font-family: Georgia;
    color: black;
    margin: 0%;
    border: outset 1px black;
    border-radius: 5px;
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#clearSearchButton, #searchButton, #save_button {
    position: relative;
    min-width: 45px; /*we need at least this width to be able to display the button text value properly*/
    font-size: 12px;
    font-family: Georgia;
    padding: 1% 0px;
    margin: 0%;
    margin-top: 2%;
    background-image: radial-gradient(circle, rgba(255,255,255,1.0), rgba(143,55,0, 0.001));
    font-size: 12px;
    border: outset 1px black;
    border-radius: 5px;
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#searchType
{
    position: relative;
    width: 98%;
    margin: 0%;
    margin-top: 2%;
    padding: 0%;
    padding-left: 3%;
    background-image: linear-gradient(to right, white, rgba(143,55,0, 0.01));
    font-size: 12px;
    font-family: Georgia;
    color: black;
    border: outset 1px black;
    border-radius: 5px;
    text-align: center;
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#searchButton
{
    width: 48%;
}

#clearSearchButton
{
    width: 47%;
}

#save_button
{
    width: 98%;
}

#clearSearchButton:hover, #searchButton:hover, #save_button:hover{
    opacity: 0.7;
    background-image: linear-gradient(to right, #ffeecc, white);
}

searchHighlight{
    color: darkred;
    background-color: rgba(255,0,0,0.3);
    padding: 0px;
    text-shadow: 1px 1px white;
}

#page_block #menu_div #menu {
    position: relative;
    width: 98%;
    top:0%;
    font: var(--paragraph-font);
    color: #005500;
    margin: 0%;
    text-shadow: 1px 1px white;
    list-style: none;
    padding: 0%;
    height: auto;
}

#page_block #menu_div .selection_list
{
    display: flex;
    justify-content: center; /* THIS evenly distributes content vertically */
    flex-wrap: wrap;
    margin: auto;
    width: auto;
}

#page_block #menu_div .selection_list, #concept_selection{
    position: relative;
    padding: 5% 0%;
    list-style: none;
    text-align: left;

    
    /*Properties overwritten from JavaScript*/
    color: #995500;
    font-variant: small-caps;
    font: var(--menu-font);
    margin: 0%;

}

#concept_selection{
    margin-bottom: 30%;
}

#page_switch_button{
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 160px;

    margin: 0 auto;
    box-sizing: border-box;
    text-align: center;

    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;

    border: 5px groove rgba(0,0,0,0.1) !important;
    border-radius: 10px;
}

@media (max-width: 768px) {
    #page_switch_button {
        width: 120px;
    }
}

@media (max-width: 480px) {
    #page_switch_button {
        width: 90px;
    }
}

#page_block #menu_div  p{
    position: relative;
    width: 100%;
    margin:auto;
    text-align: center;
    /*font: var(--paragraph-font);*/
    font: var(--menu-title-font);
    color: var(--darkblue-color);
    font-variant: small-caps;
    padding: 0px;

    border-bottom: solid 2px rgba(0,0,0,0.2);
}

#page_block #menu_div .selection_div{
    width: 90%;
    margin:auto;
    margin-top: 1%;
    /*border-top: ridge 1vw rgba(255,255,255,0.2);*/
}

.selection_list_element, .concept_collection_element
{
    width: auto; 
    max-width: 100%;
    list-style: none;
    text-align: left;
    margin: 0.1vw;
    
    /*The script will overwrite many of these properties by setting the style 
    of li elements to tag_selection_on or tag_selection_off*/
    
    border: solid 1px white;
    padding: 2px 5px;
    background-image: linear-gradient(to right, white, #ffeecc);
    font: var(--menu-font);
    color: #995500;
    text-shadow: 0px 0px white;
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

/*selecting from .selection_list class the children which are part of class .selection_list_element*/
.selection_list_element
{
    display: inline-block;
}

/*selecting from element with concept_selection id the children which are part of class .selection_list_element*/
#page_block #menu_div .concept_collection_element
{
    /*overwrite the display property for the concept_seleciton*/
    display: block;
    text-align: center;
}


.selection_list_element:hover, .concept_collection_element:hover, .page_switch_button:hover{
    background-image: none !important; /*!important fixes the specificity issues, as this element's style is mainly set from the script*/
    background-color: silver;
    cursor: pointer; /*this is the hand arrow*/
}

#page_block #content{
    position: relative;
    width: 68%;
    /*border: solid 1px #995500;*/
    border: groove 0.5vw rgba(0,0,0,0.1);
    border-radius: 10px;
    margin:0px 0.5vw;
    /*flex and md-flex sets the width*/
   -ms-flex: 1;  /* IE 10 */ 
    flex: 1;
}

#page_block #database_info{
    position:relative;
    width: 100%;
    margin: auto;
    padding: 1%;
    border: ridge 0.5vw rgba(0,0,0,0.1);
    text-align: center;    
    color: black;
    font: var(--mini-font);
    background-image: radial-gradient(circle, rgba(255,255,255,0.1), rgba(143,55,0, 0.05))
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#page_block #database_info info{
    position: relative;
    border-style: none;
    text-decoration: none;
}

#page_block #database_info description{
    position: relative;
    border-style: none;
    text-decoration: none;
}

/*
#page_block #database_info info a{
    position: relative;
    font-family: Tahoma;
    color: darkgreen;
    border-style: none;
    text-decoration: none;
}

#page_block #database_info info a:hover{
    color: darkblue;
}*/

#page_block #database_info q{
    position: relative;
    border-style: none;
    text-decoration: none;
}

#page_block #database_info q:before {
  content: none;
}

#page_block #database_info q:after {
  content: none;
}

#page_block #database_info q blue{
    position: relative;
    
    /*Overwriting parent properties*/
    font-family: Consolas;
    font-weight: bold;
    color: rgba(255,0,0,1.0);
}

#page_block #table_content{
    /*properties overwritten in the script*/
    background-color: rgba(255,255,255, 0.3);
    width: 98%;
    margin: 1%;
    text-align: center;
    table-layout: fixed;
    word-wrap: break-word;
    /*background-color and other properties are set from the script*/
    
    /*workaround for maintaining same font-weight when saving webpage*/
    font-weight: normal;
}

/*Selecting only tr elements whose parent is  #table_content*/
#page_block #table_content>tr{
    /*properties overwritten in the script*/
    border: none 2px black;
    padding: 0.5vw 1vw;
    background-color: red;
}

#page_block code{
    font: var(--code-font);
    white-space: pre-wrap;
    color: blue;
}

#page_block code table{
    border: none 1px black;
    width: 100%;
    table-layout: fixed;
    word-wrap: break-word;
    padding:0px;
    margin: 0px;
    height: auto;
    
    /*workaround for maintaining same font-weight when saving webpage*/
    font-weight: normal;
}

#page_block code table p
{
    border: red 2px solid;
}

#page_block code table td{
    text-align: left;
    border: solid 1px rgba(0,0,0,0.1);
    
    /*workaround for keeping colors and style when saving webpage*/
    /*font-family: Consolas;
    font-size: 16px;*/
    font: var(--code-font);
    white-space: pre-wrap;
    color: blue;
    
    /*properties set explicitly within the script
    padding: 0px;
    margin: 0px;
    width: auto;
    */
}

#page_block code box{
    background-color: rgba(255,255,255,0.4);
    border: solid 1px rgba(0,0,0,0.1);
    display: block;
    padding: 0px;
    margin: 15px 0px;
}

#page_block code lineNumber {
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none; /* IE 10 and IE 11 */
    user-select: none; /* Standard syntax */
    color: rgba(0,0,0,0.5);
    margin:0px;
    padding:0px;
    font: var(--code-font);
    height: auto;
    /*border and other properties are set from the script*/
}

#page_block code comment{
    color: #aa0000;
}

#page_block red{
    color: #dd0000;
    font-weight: inherit;
    font-family: inherit;
    font-size: inherit;
    text-shadow: 0px 0px #dd0000; /*shadow will surround the text even with 0px on all sides*/
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    text-align: left; 
    width: 98%; 
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#page_block azure{
    color: #008080;
    font-weight: inherit;
    font-family: inherit;
    font-size: inherit;
    text-shadow: 0px 0px #008080; /*shadow will surround the text even with 0px on all sides*/
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    text-align: left; 
    width: 98%; 
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#page_block purple{
    color: #aa00cc;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    text-shadow: 0px 0px #aa00cc; /*shadow will surround the text even with 0px on all sides*/
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    text-align: left; 
    width: 98%; 
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

#page_block brown
{
    /*brown header*/
    position: relative;
    display: inline-block; /*this will allow us to set margins for the element*/
    
    color: var(--darkbrown-color);
    font-family: inherit;
    font-size: 20px;
    font-weight: bold;
    text-shadow: 0px 0px white; /*shadow will surround the text even with 0px on all sides*/
    background-color: rgba(255,255,0,0.1);
    padding: 2px;
    padding-bottom: 0px;
    margin: 5px 0px;
    border-bottom: solid 2px darkred;

    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
    
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    text-align: left; 
    width: auto; 
}

#page_block indigo{
    /*indigo header*/
    color: rgba(0,0,100,1.0);
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    text-shadow: 0px 0px rgba(0,0,100,1.0); /*shadow will surround the text even with 0px on all sides*/
    background-color: rgba(100,255,255,0.1);
    padding: 2px;
    margin: 0px;
    border: groove 0px rgba(0,0,0,0.1);
    
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    text-align: left; 
    width: 98%; 
}

#page_block green{
    /*green header*/
    
    position: relative;
    display: inline-block; /*this will allow us to set margins for the element*/
    color: #007700;
    font-family: inherit;
    font-size: 22px;
    font-weight: bold;
    text-shadow: 0px 0px white; /*shadow will surround the text even with 0px on all sides*/
    background-color: rgba(0,255,0,0.01);

    
    border: solid 0.2vw rgba(0,0,0,0.1);       /* inner border */
    outline: solid 0.2vw rgba(0,0,0,0.1);        /* outer border */
    outline-offset: 0.4vw;           /* controls spacing between the two */
    
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    text-align: left; 
    width: auto; 
    padding: 3px;
    margin: 5px 0px;
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
}

@media (max-width: 768px) {
    #page_block green{
        font-size: 19px;
    }
    #page_block brown{
        font-size: 17px;
    }
}

@media (max-width: 480px) {
    #page_block green{
        font-size: 16px;
    }
    #page_block brown{
        font-size: 13px;
    }
}

#page_block bold{
    font-weight: bold;
}

#page_block highlight{
    font-weight: bold;
    color: red;
    font-family: inherit;
    
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    text-align: left; 
    width: 98%; 
}

/*Styling the scroll bar*/
#page_block #menu_div::-webkit-scrollbar 
{
    width: 10px;
}

/* Track */
#page_block #menu_div::-webkit-scrollbar-track 
{
    box-shadow: inset 0 0 5px grey; 
    border-radius: 10px;
}
 
/* Handle */
#page_block #menu_div::-webkit-scrollbar-thumb 
{
    /*background: #995500;*/
    background: rgba(0,0,0,0.5);
    border-radius: 10px;
}

/* Handle on hover */
#page_block #menu_div::-webkit-scrollbar-thumb:hover
{
    background: rgba(0,0,0,1.0);
    /*background: #aa7700;*/
}

#page_block .database_image{
    width: 80%; 
    position: relative; 
    left: 10%;
}

/*Need to check for proper formatting of p element.*/
#page_block #table_content p{
    border: none;
}

#page_block enum
{
    display: list-item;
    position: relative;
    margin: 5px 3%;
    padding: 2px;
    padding-left: 5px;
    font-family: inherit;
    font-size: inherit;
    
    /*The following will ensure that the width of the element will not grow with the added border-size.
    So the border will be within the defined element width.
    */
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */
    
    /*workaround for maintaining same style when saving the webpage*/
    /*these values will be overwritten by the script.*/
    color: #663300; 
    text-align: left; 
    width: 94%; 
    background-color: rgba(255,255,255,0.4);
    border: ridge 5px rgba(255,255,255,0.1);
}

#page_block enum::marker
{
    content: "-> ";
    font-size: inherit;
    font-weight: inherit;
}