@font-face {
  font-family: "dinpro";
  src: url("DINPro-Regular.woff") format("woff"),
        url("DINPro-Regular.woff2") format("woff2");
}

html, body {
  font-family: "dinpro", sans-serif;
  scroll-behavior: smooth;
  scroll-padding-top: 60px;
  min-width: 0;
}

@supports (hyphens: auto) {
  p, td, th, li {
    text-align: justify;
    hyphens: auto;
  }
  
  a {
    hyphens: auto;
  }
  
  h1 > p {
    text-align: left;
    hyphens: none;
  }
  
  @media screen and (max-width: 480px) {
    h1,
    h1 > p {
      hyphens: auto;
    }
  }
  
  /*h1 { 
    hyphens: auto;
  }*/ /* das muss man noch anschauen, für die startseite wichtig, für die unterseiten ev. nicht? */
}

/* layout generell */
div.main_panel_holder {
  display: grid;
  grid-template-columns: minmax(10px, 1fr);
  width: 98%;
  max-width: 1400px;
  margin: 1rem auto 0 auto;
}

div.select_wrapper {
  grid-row: 1;
  grid-column: 1;
}

div.ivz {
  grid-column: 1;
  grid-row: 2;
  padding: 19px;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
  background-color: #f5f5f5;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-sizing: border-box;
  margin-bottom: 2rem;
}

div.main_panel {
  grid-column: 1;
  grid-row: 3;
}

@media (min-width: 768px) {
  div.main_panel_holder {
    grid-template-columns: minmax(200px, 300px) 1fr;
  }

  div.select_wrapper {
    grid-column: 2;
    grid-row: 1;
  }

  div.ivz {
    grid-column: 1;
    grid-row: 2;
    align-self: start;
    margin-right: 3rem;
    margin-bottom: 0;
    position: sticky;
    top: 1rem;
  }

  div.main_panel {
    grid-column: 2;
    grid-row: 2;
  }
}
/* layout ende */

div.button_margin_top {
  height: 11px;
  height: calc(1rem + 1px);
}

button.totop {
  position: sticky;
  top: 1rem;
  margin-bottom: 1rem;
  z-index: 50;
  pointer-events: none;
  opacity: 0.1;
  transition: opacity 0.3s linear;
}

button.totop.is_sticky {
  pointer-events: all;
  opacity: 1;
}

a.jump_link {
  display: block;
  margin: 0.3rem 0;
}

a.jump_link.secondlvl {
  padding-left: 1rem;
}

a.jump_link.thirdlvl {
  padding-left: 1.5rem;
}

h1 {
  margin-top: 0;
}

h2, h3, h4 {
  margin-top: 2.5rem;
}

div#display_ui {
  max-width: 1200px;
}

div#display_ui p,
div#display_ui ul {
  max-width: 650px;
}

/* tabellen */
table.bra {
  max-width: 1000px;
  table-layout: justify;
  border-collapse: collapse;
  margin-bottom: 1rem;
}

table.bra.hhr {
  max-width: 1200px; /* weil eine sehr breite tabelle */
}

table.bra th {
  text-align: center;
  padding: 0.3rem;
  vertical-align: bottom;
}

table.bra td {
  text-align: right;
  padding: 0.3rem;
  border: 1px solid #fff;
}

table.bra td:first-child,
table.bra td:nth-child(2){
  text-align: left;
}

table.bra.vr th:first-child,
table.bra.er th:first-child,
table.bra.fr th:first-child {
  width: 65px;
}

/* die zweite spalte der vermögensrechnung einheitlich breit machen */
table.bra.vr th:nth-child(2) {
  width: auto;
  min-width: 200px;
}

@media screen and (min-width: 1024px) {
  table.bra.vr th:nth-child(2) {
    width: 145px;
  }
}

@media screen and (min-width: 1200px) {
  table.bra.vr th:nth-child(2) {
    width: 225px;
  }
}

table.bra.er td:nth-child(2),
table.bra.fr td:nth-child(2),
table.bra.vvr_eh th:nth-child(2),
table.bra.vvr_fh th:nth-child(2) {
  min-width: 200px;
}

table.bra.vr th:nth-child(n+3),
table.bra.er th:nth-child(n+3),
table.bra.fr th:nth-child(n+3),
table.bra.vvr_eh th:nth-child(n+3),
table.bra.vvr_fh th:nth-child(n+3),
table.bra.hhr th:nth-child(n+3) {
  width: 110px;
}

table.bra.gf th:nth-child(n+2) {
  width: 110px;
}

/*
table.bra.vvr_eh td:nth-child(2),
table.bra.vvr_fh td:nth-child(2),
table.bra.hhr td:nth-child(2) {
  text-align: left;
}*/

table.bra.vr tr.dark,
div.sml_outer.aktiva table.sml_bra tr.dark,
div.sml_outer.aktiva div.sml_tabs_row.dark,
div.sml_outer.passiva table.sml_bra tr.dark,
div.sml_outer.passiva div.sml_tabs_row.dark {
  background-color: #dcb7d7;
}

table.bra.vr tr.normal,
div.sml_outer.aktiva table.sml_bra tr.normal,
div.sml_outer.aktiva div.sml_tabs_row.normal,
div.sml_outer.passiva table.sml_bra tr.normal,
div.sml_outer.passiva div.sml_tabs_row.normal {
  background-color: #e5cbe3;
}

table.bra.vr tr.light,
div.sml_outer.aktiva table.sml_bra tr.light,
div.sml_outer.aktiva div.sml_tabs_row.light,
div.sml_outer.passiva table.sml_bra tr.light,
div.sml_outer.passiva div.sml_tabs_row.light {
  background-color: #edddec;
}

table.bra.er tr.dark,
table.bra.vvr_eh tr.dark,
div.sml_outer.er table.sml_bra tr.dark,
div.sml_outer.er div.sml_tabs_row.dark,
div.sml_outer.vvr_eh table.sml_bra tr.dark,
div.sml_outer.vvr_eh div.sml_tabs_row.dark {
  background-color: #b4d7b1;
}

table.bra.er tr.normal,
table.bra.vvr_eh tr.normal,
div.sml_outer.er table.sml_bra tr.normal,
div.sml_outer.er div.sml_tabs_row.normal,
div.sml_outer.vvr_eh table.sml_bra tr.normal,
div.sml_outer.vvr_eh div.sml_tabs_row.normal {
  background-color: #d8e9d5;
}

table.bra.fr tr.dark,
table.bra.vvr_fh tr.dark,
table.bra.gf tr.dark,
table.bra.hhr tr.dark,
div.sml_outer.fr table.sml_bra tr.dark,
div.sml_outer.fr div.sml_tabs_row.dark,
div.sml_outer.vvr_fh table.sml_bra tr.dark,
div.sml_outer.vvr_fh div.sml_tabs_row.dark,
div.sml_outer.hhr table.sml_bra tr.dark,
div.sml_outer.hhr div.sml_tabs_row.dark,
div.sml_outer.gf table.sml_bra tr.dark,
div.sml_outer.gf div.sml_tabs_row.dark {
  background-color: #cce3ff;
}

table.bra.fr tr.normal,
table.bra.vvr_fh tr.normal,
table.bra.gf tr.normal,
table.bra.hhr tr.normal,
div.sml_outer.fr table.sml_bra tr.normal,
div.sml_outer.fr div.sml_tabs_row.normal,
div.sml_outer.vvr_fh table.sml_bra tr.normal,
div.sml_outer.vvr_fh div.sml_tabs_row.normal,
div.sml_outer.hhr table.sml_bra tr.normal,
div.sml_outer.hhr div.sml_tabs_row.normal,
div.sml_outer.gf table.sml_bra tr.normal,
div.sml_outer.gf div.sml_tabs_row.normal {
  background-color: #e4f0fa;
}

table.bra.gf td:nth-child(2), 
table.bra.hhr td:nth-child(2) {
  text-align: right;
}

table.bra.mm {
  width: 100%;
  max-width: 650px;
  margin-bottom: 0.5rem;
}

/*table.bra.mm td:first-child {
  width: 175px;
}*/

table.bra.mm td:nth-child(2) {
  width: 170px;
}

table.bra.mm.toggle td:first-child {
  width: 20px;
}

table.bra.mm.toggle td:nth-child(2) {
  width: 175px;
}

table.bra.mm td:nth-child(2) {
  text-align: right;
}

table.bra.mm.toggle td:nth-child(2) {
  text-align: left;
}

table.bra.mm.toggle td:nth-child(3) {
  text-align: right;
}

table.bra.mm tr td {
  border-bottom: 1px solid #e4f0fa;
}

div.quelle  {
  font-size: 1rem;
  text-align: left;
  margin-bottom: 3rem;
}

div.quelle.chart {
  margin-top: 2.5rem;
}

div.quelle.start {
  margin-left: 25px;
}

div.quelle.tree {
  margin-top: -15px;
  margin-left: 4px;
}

div.checkbox {
  margin-bottom: 5rem;
}
 
/* neue tabelle schmal */
div.sml_outer {
  width: 100%;
  max-width: 480px;
}

div.sml_outer div.sml_tabs_row {
  border: 1px solid #888;
  margin-bottom: 1rem;
}

div.sml_outer div.sml_tabs_row div:first-child {
  border-bottom: 3px solid #fff;
}

div.sml_outer div.sml_tabs_row div {
  padding: 0.1rem 0.3rem;
}

div.sml_tabs table.sml_bra {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

div.sml_tabs table.sml_bra td {
  padding: 0.1rem 0.3rem;
}

div.sml_tabs table.sml_bra td:first-child {
  width: 150px;
}

div.sml_tabs table.sml_bra td:nth-child(2) {
  text-align: right;
}

div.sml_outer div.sml_tabs_row.light,
div.sml_outer div.sml_tabs_row.normal {
  display: none;
}

div.sml_outer.aktiva div.sml_tabs_row.normal,
div.sml_outer.passiva div.sml_tabs_row.normal {
  display: table;
}

table.bra {
  display: none;
}

/* einschalten*/
table.bra.mm {
  display: table;
}

div.switcher_details div.checkbox {
  margin-bottom: 0.5rem;
}

@media screen and (min-width: 480px) {
  div.quelle.chart {
    margin-top: 1.5rem;
  }
}

@media screen and (min-width: 640px) {
  div.sml_outer {
    display: none;
  }
  
  table.bra {
    display: table;
  }
    
  table.bra.mm {
    max-width: 650px;
  }
  
  div.switcher_details {
    display: none;
  }
}

/*
@media screen and (min-width: 800px) {
  div.main_panel_holder {
    flex-flow: row nowrap;
    align-items: flex-start;
  }
  
  div.ivz {
    max-width: 280px;
    min-width: 200px;
    margin-right: 35px;
    position: sticky;
    top: 1rem;
  }
  
  div.main_panel {
    flex-grow: 1;
  }
}*/

/*
@media print {
  div.sml_outer {
    display: none;
  }
  
  table.bra {
    display: table;
  }
  
  table.bra th,
  table.bra td {
    border: 1px solid #cccccc;
  }
    
  table.bra.mm {
    max-width: 650px;
  }
  
  table.bra.mm tr td {
    border: none;
    border-bottom: 1px solid #e4f0fa;
}
  
  div.switcher_details {
    display: none;
  }
}*/

