/*
 *  Fonts
 */
@font-face { /* License: OFL 1.1 */
  font-family: 'Raleway';
  font-style: normal;
  font-weight: 400;
  src: local('Raleway'), local('Raleway-Regular'),
       url('../../fonts/raleway-v11-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+ */
       url('../fonts/raleway-v11-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
@font-face { /* License: OFL 1.1 */
  font-family: 'Quicksand';
  font-style: normal;
  font-weight: 400;
  src: local('Quicksand Regular'), local('Quicksand-Regular'),
       url('../fonts/Quicksand-Regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+ */
       url('../fonts/Quicksand-Regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
@font-face {
    font-family: 'Quicksand';
    src: local('Quicksand Bold'), local('Quicksand-Bold'),
        url('../fonts/QuicksandBold.woff2') format('woff2'),
        url('../fonts/QuicksandBold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}
/* @font-face {
    font-family: 'Quicksand';
    src: local('Quicksand Bold Oblique'), local('Quicksand-Bold-Oblique'),
        url('../fonts/QuicksandBoldOblique.woff2') format('woff2'),
        url('../fonts/QuicksandBoldOblique.woff') format('woff');
    font-weight: bold;
    font-style: oblique;
    font-display: swap;
}
@font-face {
    font-family: 'Quicksand';
    src: local('Quicksand Oblique'), local('Quicksand-Oblique'),
        url('../fonts/QuicksandBookOblique.woff2') format('woff2'),
        url('../fonts/QuicksandBookOblique.woff') format('woff');
    font-weight: 400;
    font-style: oblique;
    font-display: swap;
} */
@font-face { /* License: OFL 1.1 */
  font-family: 'Metrisch';
  font-style: normal;
  font-weight: 400;
  src: local('Metrisch Book'), local('Metrisch-Book'),
       url('../fonts/Metrisch-Book-webfont.woff2') format('woff2'), /* Chrome 26+, Opera 23+ */
       url('../fonts/Metrisch-Book-webfont.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

@font-face { /* License: OFL 1.1 */
  font-family: 'Luxora Grotesk';
  font-style: normal;
  font-weight: 400;
  src: local('Luxora Grotesk Light'), local('Luxora-Grotesk-Light'),
       url('../fonts/LuxoraGrotesk-Light.woff2') format('woff2'), /* Chrome 26+, Opera 23+ */
       url('../fonts/LuxoraGrotesk-Light.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
@font-face { /* License: OFL 1.1 */
  font-family: 'Bremenoff';
  font-style: normal;
  font-weight: 400;
  src: local('Bremenoff Regular'), local('Bremenoff-Regular'),
       url('../fonts/Bremenoff-Regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+ */
       url('../fonts/Bremenoff-Regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
@font-face { /* License: OFL 1.1 */
  font-family: 'Groteska';
  font-style: normal;
  font-weight: 400;
  src: local('Groteska Light'), local('Groteska-Light'),
       url('../fonts/Groteska-Light.woff2') format('woff2'), /* Chrome 26+, Opera 23+ */
       url('../fonts/Groteska-Light.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

:root{
  --color: #242121;
  --red: #C50E1F
}

/*
 * Basics
 */
*{
  box-sizing: border-box;
}

a {
  color: var(--red);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
a.btn{
  cursor: pointer;
}

body, html {
  height: 100%;
  width: 100%;
}
body {
  margin: 0;
  padding: 0;
  background-color: #fff;
  color: var(--color);
  font-family: 'Quicksand', serif;
  font-size: 1.1rem;
  line-height: 1.8em;
  --vp-state: 0;
}

@media screen and (min-width: 850px) {
  body{
    --vp-state: 1;
  }
}
@media screen and (min-width: 1024px) {
  body{
    --vp-state: 2;
  }
}
@media screen and (min-width: 1280px) {
  body{
    --vp-state: 3;
  }
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Quicksand', sans-serif;
  font-weight: normal;
  line-height: 1.2;
}
h1 { font-size: 2.5em; margin-bottom: 0em; }
h2 { font-size: 2.0em; }
h3 { font-size: 1.6em; }
h4 { font-size: 1.36em; }
h5 { font-size: 1.2em; }
h6 { font-size: 1.1em; }
h7 { font-size: 0.9em; }

p {
  margin: 1em 0;
  text-align: justify;
  text-justify: inter-word;
}
.content, .description{
  margin-bottom: 2em;
}


.edit{
  /* display: none; */
  position: absolute;
  top: 0;
  right: 0;
}
*:hover > .edit{
  display: block;
}
article, section, header{
  position: relative;
}

.logout, .login{
  display: none;
}

@media screen and (min-width: 850px) {
  .logout, .login{
    display: block;
    position: absolute;
    bottom: 1em;
    left: 1em;
  }
  .logout a, .login a{
    color: var(--red);
  }
  .logout a:hover, .login a:hover {
    text-decoration: underline;
  }
}
/*
 * Layout
 */
 .container{
   display: grid;
   grid-template-columns: 1fr;
   grid-template-areas: "left"
                        "main"
                        "divider"
                        "right"
                        "footer";
 }

 @media screen and (min-width: 850px) {
  .container{
    grid-template-columns: minmax(220px,15%) 1fr 4px minmax(260px,15%);
    grid-template-areas: "left main divider right"
                         "left footer divider right";
  }
}

.container hr.right{
  grid-area: divider;
  height: 4px;
  position: static;
  margin: 0 3vw;
  width: 94vw;
  border: none;
  background-color: var(--red);
}

@media screen and (min-width: 850px) {
  .container hr.right{
    margin: 0;
    height: 96vh;
    width: 100%;
    top: 2vh;
    position: sticky;
  }
}

main{
  grid-area: main;
  min-width: 0;
}

/* header::after{
  display: block;
  clear: both;
} */

footer{
  grid-area: footer;
}

main, footer{
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0 4vw 0 4vw;
}
@media screen and (min-width: 850px) {
  main, footer{
    padding: 0 6vw 0 4vw;
  }
}

main>header::after{
  content: "";
  display: block;
  border: 1px solid #534c4c;
}



aside#right, aside#left{
  text-align: left;
  position: relative;
}

@media screen and (min-width: 850px) {
  aside#right, aside#left{
    position: sticky;
    top: 0;
    height: 100vh;
  }
}

aside#left{
  grid-area: left;
  padding: 2vw 2vw 0 2vw;
  background-color: #fff;
  color: #333;
}

@media screen and (min-width: 850px) {
  aside#left{
    padding: 2vw 0vw 0 2vw;
  }
}

aside#right{
  margin-top: 0;
  grid-area: right;
  padding: 0 1vw 0 1vw;
  /* overflow-x: hidden; */
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

aside#right p{
  margin: 0;
  margin-bottom: 1.090917025em;
  font-size: 0.91666rem;
}
/* font-size: 14.6667px;
line-height: 31.6833px */
@media screen and (min-width: 850px) {
  aside#right>:last-child{
    margin-bottom: 2vh;
  }
  aside#right{
  }
}

aside#right img {
  display: none;
}
@media screen and (min-width: 850px) {
  aside#right img {
    height: 104.25px;
    width: 150px;
    margin-left: 1.75vw;
    margin-top: 1.75vw;
    margin-bottom: 2vh;
    display: block;
  }
}
aside#left .logos{
  display: flex;
  justify-content: center;
  align-items: center;
}
aside#left img{
  height: 111px;
}
@media screen and (min-width: 850px) {
  aside#left nav{
    margin-top: 3.5vw;
  }
}
aside#left .logos>*{
  margin: 4vw 5vw;
}
aside#left .mobile img{
  width: 150px;
  height: 104.25px;
}

@media screen and (min-width: 850px) {
  aside#left .logos{
    justify-content: flex-start;
  }
  aside#left .logos>*{
    margin: 0;
  }
  .mobile {
    display: none;
  }
}

aside a {
  color: #333;
  transition: text-shadow 0.2s linear;
}
aside a:hover {
  color: var(--red);
  text-shadow: 0 0 1.5em #fff, 0 0 2.5em #fff;
  text-decoration: none;
}
@keyframes borderFadeIn {
  from {
    border-bottom-color: rgba(217,65,30,0.0);
    text-shadow: 0 0 1.5em rgba(255,255,255,1.0), 0 0 2.5em rgba(255,255,255,1.0);
  }
  to   {
    border-bottom-color: rgba(217,65,30,1.0);
    text-shadow: 0 0 1.5em rgba(255,255,255,0.0), 0 0 2.5em rgba(255,255,255,0.0);
  }
}
aside li.active>a {
  animation: borderFadeIn 0.5s;
  border-bottom: 3px solid rgba(217,65,30,1.0);
  /* padding-bottom: 0.1em; */
}
aside li.active.noanim>a {
  animation: none;
}
aside li li.active>a {
  border-bottom: 2px solid rgba(217,65,30,1.0);
}
aside h1 {
  font-size: 1.76rem;
  margin: 15px 0 5px 0;
  text-align: center;
}

aside h5 {
  text-align: center;
  margin-bottom: 0.8em;
  margin-top: 0.8em;
}
aside h6{
  font-size: 1.1rem;
  line-height: 1.8em;
  margin: 0.8em 0 0 0;
  text-align: center;
}
aside p {
  margin-top: 0.8em;
  text-align: center;
}

aside .subtitle {
  font-size: 1rem;
  margin: 0 0 15px 0;
}
aside nav ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-rule: 1px dotted #999;
  list-style-type: none;
  padding: 0;
}
aside nav li {
  font-size: 1.5rem;
  line-height: 1.6em;
}
aside nav li:nth-of-type(odd) {
  text-align: right;
  border-right: 1px dotted #999;
  padding-right: 1em;
}
aside nav li:nth-of-type(even) {
  text-align: left;
  padding-left: 1em;
}
aside nav li ul {
  display: none;
}

@media screen and (min-width: 850px) {
  aside nav li ul {
    margin-left: 1em;
    display: block;
  }
  aside nav li ul li:first-child {
  }
  aside nav li ul li {
    font-size: 0.9rem;
  }

  aside {
    padding: 0px 0;
  }
  aside nav ul {
    display: block;
    text-align: left;
  }
  aside nav li:nth-of-type(odd) {
    text-align: left;
    padding-left: 0;
    border-right: none;
  }
  aside nav li:nth-of-type(even) {
    padding-left: 0;
  }
  aside h1 {
    text-align: left;
  }
  aside p {
    text-align: left;
  }
  aside h5 {
    text-align: left;
    margin-top: 0;
  }
  aside h6 {
    text-align: left;
  }
}

footer{
  border-top: #F49F90 1px solid;
  line-height: 1.2;
}
@media screen and (min-width: 850px) {
  footer{
    margin-top: 2em;
  }
}




/*
 * Sections
 */
article{
  clear: none;
}
section{
  clear: none;
}
section.layout{
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: auto;
}

@media screen and (min-width: 1280px) {
  section.layout{
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
    grid-column-gap: 1em;
  }
  section.layout > .column{
    grid-column: span var(--span);
  }
}
hr{
  border: 1px solid #534c4c;
  margin: 2em 0;
}
/*
 * Some Children
 */
.person.children{
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  grid-column-gap: 0;
}
@media screen and (min-width: 1280px) {
  .person.children{
    grid-template-columns: 1fr 1fr;
    grid-column-gap: 1em;
  }
}
.person.children>*:only-child{
  grid-column: 1 / -1;
}

/*
 * Articles
 */
/* news text */
article.news .content .image{
  margin: 0.5em 1em 0.25em 1em;
  max-width: 100%;
  text-align: center;
}
article.news .content .image img{
  max-width: 100%;
}
article.news .content.right .image{
  float: right;
  max-width: 30%;
}
article.news .content.left .image{
  float: left;
  max-width: 30%;
}
/* article.news .content{
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 1em;
}
article.news .content.right, article.news .content.left{
  flex-wrap: nowrap;
}
article.news .text{
  order: 1;
  flex-basis: 0;
  flex-grow: 1;
}
article.news .content .image{
  margin: 1.5em 1em 0.5em 1em;
  max-width: 100%;
  flex-grow: 0;
  flex-basis: auto;
}
article.news .content .image img{
  max-width: 100%;
}
article.news .content.top .image{
  order: 0;
  width: 100%;
  text-align: center;
}
article.news .content.left .image{
  order: 0;
}
article.news .content.right .image{
  order: 2;
}
article.news .content.bottom .image{
  order: 2;
  width: 100%;
  text-align: center;
} */

article.news .content .column{
  flex-grow: var(--span);
}
article.news .date{
  /* margin-bottom: -1.5em; */
  margin-top: -1.5em;
}
article.news::after{
  content: "";
  display: block;
  border: 1px solid #534c4c;
  clear: both;
}
article.news figure{
  margin: 0.5em 1em 0.5em 1em;
  max-width: 100%;
  display: flex;
  justify-content: center;
}
article.news figure img{
  max-width: 100%;
}
/*
article.news figure img{
  width: 100%;
} */

section:last-of-type article.news:last-of-type::after, section:last-of-type article.text:last-of-type::after{
  display: none;
}


/* person */
article.person + article.person{
  margin-top: 2em;
}
article.person:last-child{
  margin-bottom: 1em;
}
@media screen and (min-width: 1280px) {
  .person article.person + article.person:nth-child(2){
    margin-top: 0em;
  }
  article.person:last-child{
    margin-bottom: 0;
  }
}

article.person{
  display: grid;
  grid-template-areas: "img headding   headding"
                       "img occupation occupation"
                       "img tel tel"
                       "img room room"
                       "img mail mail";
  /* grid-template-columns: max(140px, 15%) 1fr auto; */
  grid-template-columns: 140px 1fr auto;
  grid-template-rows: auto 1fr auto auto;
  grid-column-gap: 20px;
  line-height: 1.6em;
}

article.person.clickable:hover{
  background-color: #EEE;
  cursor: pointer;
  outline: #EEE 0.5em solid;
}



article.person img{
  grid-area: img;
  width: 100%;
  aspect-ratio: 7/9;
  object-fit: cover;
  display: block;
}

article.person h3{
  grid-area: headding;
  margin: 0;
}

article.person .occupation{
  grid-area: occupation;
  /* display: none; */
  align-self: start;

}

article.person .office{
  grid-area: room;
  /* text-align: right; */
}
article.person *::before{
  font: normal normal normal 14px/1 FontAwesome;
  display: inline-block;
  width: 20px;
}
article.person .office::before{
  content: "\f1ad"; /* black */
  content: "\f0f7"; /* white */
  /* content: "\f015\ "; */
}
article.person .tel{
  grid-area: tel;
  /* text-align: right; */
}
article.person .tel::before{
  content: "\f095"; /* black */
}
article.person .mail{
  grid-area: mail;
}
article.person .mail::before{
  content: "\f0e0"; /* black */
  content: "\f003"; /* white */
}

/* publication */
article.publication{
  display: grid;
  grid-template-areas: "img headding headding"
                       "img author author"
                       "img journal journal"
                       "img links links";
  grid-template-columns: minmax(140px, 18%) auto 1fr;
  grid-template-rows: auto 1fr auto auto;
  margin-bottom: 1em;
  position: relative;
}
article.publication img{
  grid-area: img;
  width: 100%;
  aspect-ratio: 2/1;
  object-fit: contain;
  display: block;
  padding-right: 20px;
  align-self: center;
}
@media screen and  (max-width: 1024px) {
  article.publication{
    display: grid;
    grid-template-areas: "img img"
                         "headding year"
                         "author author"
                         "journal journal"
                         "links links";
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr auto auto;
    margin-bottom: 3em;
  }
}
article.publication .title{
  grid-area: headding;
  font-weight: bold;
}
article.publication .author{
  grid-area: author;
}

article.publication .author ul{
  display: inline;
  padding-left: 0;
}
article.publication .author ul li{
  display: inline;
}
article.publication .author ul li::after{
  content: ","
}
article.publication .author ul li:last-child::after{
  content: ""
}
article.publication .journal{
  grid-area: journal;
  font-style: italic;
}
article.publication .year{
  font-weight: normal;
  /* grid-area: year; */
  /* justify-self: left;  */
}
/* article.publication .year::before{
  content: "\00a0 (";
  display: inline;
}
article.publication .year::after{
  content: ")";
  display: inline;
} */
article.publication .links{
  grid-area: links;
}
article.publication .links a{
  margin-right: 0.4em;
  margin-left: 0.4em;
}

article.publication .links a:first-child{
  margin-left: 0;
}
article.publication .bibtex{
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background-color: white;
  padding: 1em;
  border: 2px solid var(--red);
  display: none;
  z-index: 100000;
}
article.publication .bibtex.visible{
  display: block;
}
/* theses */
div.thesis{
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-gap: 0 20px;
  grid-auto-flow: dense;
}
@media screen and (min-width: 1280px) {
  div.thesis{
    display: grid;
    grid-template-columns: auto 1fr 5fr auto;
    grid-gap: 1em 20px;
  }
  div.thesis h2{
    margin-bottom: 0.3em;
  }
}
div.thesis h3{
  grid-column: 1/ -1;
}
div.thesis h2{
  font-size: 1.6em;
  grid-column: 1/ -1;
}
div.thesis header{
  font-weight: bold;
}
div.thesis header, div.thesis article{
  display: contents;
}
div.thesis header>div, div.thesis article>div{
  margin-bottom: 2em;
  align-self: center;
}
@media screen and (min-width: 1280px) {
  div.thesis header>div, div.thesis article>div{
    margin-bottom: 0.5em;
  }
}
div.thesis header>div.title, div.thesis article>div.title{
  grid-column: 1/ -1;
  margin-bottom: 0em;
  font-style: italic;
}
@media screen and (min-width: 1280px) {
  div.thesis header>div.title, div.thesis article>div.title{
    margin-bottom: 0.5em;
  }
}
@media screen and (min-width: 1280px) {
  div.thesis header>div.title, div.thesis article>div.title{
    grid-column: 3;
  }
}
div.thesis header>div:last-child,div.thesis article>div:last-child{
  text-align: right;
}
div.thesis header>div.date,div.thesis article>div.date{
  width: min-intrinsic;
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content;
  display: table-caption;
  display: -ms-grid;
  -ms-grid-columns: min-content;
}

div.thesis .thesistype{
  position: relative;
}
div.thesis .thesistype .edit{
  top: -1em;
}
 

/* semester */
section.semester{
  display: grid;
  grid-template-columns: auto;
  grid-auto-columns: auto;
}
section.semester header{
  font-weight: bold;
  display: contents;
}
section.semester header :nth-child(1){
  grid-column-start: 1;
}
section.semester h3{
  grid-column: 1/ -1;
}
section.semester article{
  display: contents;
}
section.semester article div{
}
section.semester article :nth-child(1){
  grid-column-start: 1;
}
section.semester article :nth-child(2){
  grid-column-start: 2;
}
section.semester article :nth-child(3){
  grid-column-start: 3;
}
section.semester article :nth-child(4){
  grid-column-start: 4;
}
section.semester article :nth-child(5){
  grid-column-start: 5;
}
section.semester article :nth-child(6){
  grid-column-start: 6;
}
section.semester article :nth-child(7){
  grid-column-start: 7;
}
section.semester article :nth-child(8){
  grid-column-start: 8;
}
section.semester article :nth-child(9){
  grid-column-start: 9;
}
@media screen and (max-width: 850px) {
  section.semester article :nth-child(1){
    grid-column-start: 1;
    margin-bottom: -0.4em;
  }
  section.semester article :nth-child(2){
    grid-column-start: 1;
  }
  section.semester article :nth-child(3){
    grid-column-start: 2;
  }
  section.semester article :nth-child(4){
    grid-column-start: 3;
  }
  section.semester article :nth-child(5){
    grid-column-start: 4;
  }
  section.semester article :nth-child(6){
    grid-column-start: 5;
  }
}
@media screen and (min-width: 850px) {
  section.semester{

  }
}

/*
 * CV Page
 */

figure.cv-image{
  float: right;
  margin: 1em 0em 0em 1.5em;
}
figure.cv-image img{
  width: 40vw;
}
@media screen and (min-width: 850px){
  figure.cv-image{
    /* float: none; */
  }
  figure.cv-image img{
    width: 250px;
  }
}

article.person.business-line{
  display: flex;
  flex-wrap: wrap;
}

/*
 * Module Page
 */
main.module{
  display: block;
}
main.module section{
  margin-bottom: 2em;
}
main.module section.layout{
  margin-bottom: 0;
}

main.module[lang="de"] .de{
  display: block;
}
main.module[lang="en"] .en{
  display: block;
}
main.module[lang="de"] .en{
  display: none;
}
main.module[lang="en"] .de{
  display: none;
}
main.module h2{
  font-size: 1.4em;
  margin-bottom: 0.4em;
  margin-top: 0em;
}
main.module h3{
  font-size: 1.15em;
  margin-bottom: 0.4em;
  margin-top: 0em;
}
main.module h4{
  font-size: 1.1em;
  margin-bottom: 0.4em;
  margin-top: 0em;
}
main.module h5{
  font-size: 1.05em;
  margin-bottom: 0.4em;
  margin-top: 0em;
}
main.module p{
  margin: 0 0 1em 0;
}
main.module .content{
  /* margin-bottom: 0; */
}
main.module header{
  margin-bottom: 1em;
}
main.module .business-line{
  display: flex;
  justify-content: space-between;
}
main.module .business-line .lp{
  text-align: right;
}

main.module .people{

}

@media screen and (min-width: 1024px){
  main.module .people{
    float: right;
    margin-left: 2em;
  }
}

main.module .people ul{
  padding-left: 0;
  list-style: none;
  margin: 0 0 1em 0;
}
main.module .people ul li{
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-items: center;
  margin-bottom: 0.2em;
}
main.module .people ul li a{
  grid-column-start: span 2;
}
main.module .people ul li address{

}
main.module .people ul li h4{
  margin-bottom: 0;
  font-size: 1em;
  margin-right: 0.5em;
}
main.module article.person > *{
}

main.module .dual{
  display: flex;
  flex-wrap: wrap;
}

@media screen and (max-width: 1024px){
  main.module .dual{
    display: block;
  }
}

main.module h2 {
  width: 100%;
}

main.module .lleft, main.module .rright{
  width: 50%;
}
@media screen and (min-width: 850px) and (max-width: 1024px){
  main.module .dual{
    display: block;
  }
  main.module .lleft, main.module .rright{
    width: 100%;
  }
}

main.module .timetable{
  min-width: 0;
  overflow: scroll;
}


.bgcolor1, .reed{
  background-color: #ff595e;
}
.bgcolor2, .yellow{
  background-color: #ffca3a;
}
.bgcolor3, .greeen{
  background-color: #8ac926;
}
.bgcolor4, .blue{
  background-color: #1982c4;
}
.bgcolor5, .purple{
  background-color: #6a4c93;
  color: #FFF;
}

main.module table{
  width: auto;
  border: solid black 1px;
  margin: 0.4em 0;
}
main.module table th{
  font-weight: bold;
  background-color: darken($bg-color, 4);
}
main.module table td,main.module table th{
  padding: 0.3em 0.75em;
  border-bottom: solid black 1px;
  border-right: solid black 1px;
}
main.module table.center{
  text-align: center;  
}
main.module table.center td,  main.module table.center th{
  vertical-align: middle;
}

main.module .timetable table{
    border: solid black 2px;
}
main.module .timetable table td, main.module .timetable table th{
  border-bottom: solid black 2px;
  border-right: solid black 2px;
}
main.module table td:last-child, main.module table th:last-child{
  border-right: none;
}
main.module table tr:last-child>*{
  border-bottom: none;
}
main.module .timetable table td:first-child{
  padding: 0.3em 0.75em;
}
main.module .timetable table td{
  padding: 0;
}
main.module .timetable table td div{
  padding: 0.6em 0.75em;
  height: 100%;
}
main.module .timetable table hr:last-child{
  display: none;
}
main.module .timetable table hr{
  border-bottom: 1px solid black;
  border-top: 1px solid black;
  margin: 0;
}
main.module .timetable p{
  margin: 0;
  text-align: center;
}

main.module table{
  width: 100%;
}

main.module .module{
  display: grid;
  grid-template-areas: "title title title"
                       "typ sws lp"
                       "elements elements elements"
                       "scale scale scale";
  grid-template-columns: auto auto auto;
  grid-gap: 0.5em;
}

main.module .module > h3{
  grid-area: title;
}
main.module .module > * h3{
  margin-bottom: 0;
}
main.module .module .typ{
  grid-area: typ;
}
main.module .module .sws{
  grid-area: sws;
  justify-self: center;
  text-align: center;
}
main.module .module .lp{
  grid-area: lp;
  justify-self: end;
  text-align: right;
}


main.module .module .elements{
  min-width: 0;
  overflow: scroll;
}
main.module .module .elements{
  grid-area: elements;  
}
main.module .module .elements th{
  padding: .2em .75em;
  text-align: center;
}
main.module .module .elements td{
  padding: 0 .75em;
  text-align: center;
}
main.module .module .elements td:first-child, main.module .module .elements th:first-child{
  text-align: left;
}
main.module .module .elements td:last-child, main.module .module .elements th:last-child{
  text-align: left;
}

main.module .module .scale{
  min-width: 0;
  overflow: scroll;
}

main.module .module .scale th{
  padding: 0 .5em;  
}
main.module .module .scale td{
  padding: 0 .5em;
  text-align: center;
}
main.module .module .scale{
  grid-area: scale;
}
