
/* Variablendefinitionen */


/* Blaues Farbschema von https://htmlcolorcodes.com/color-chart/material-design-color-chart/ -> indigo */

:root {
  /* Hauptfarb-Kombi 
  Menü */ 
  --pri-color:  #ededf8;  
  --priOn-color: black;  
    
  /* zweite Farbkombi
  untergeordnete Auswahlfelder */
  --sec-color:  #ededf8;  
  --secOn-color: black;  
  
  /* dritte Farbkombi
  besonders hervorgehobene Schaltflächen 
   Farbe für Schaltfläche und Unterstreichungen aktiver Eingabefelder etc. */
  --ter-color:   #536dfe
  --terOn-color: white;
  
  /* normaler Hintergrund
  App-Hintergrund
  */
  --neutral-color:   #ededf8; /*#ffedf0;  #FFC0CB77;*/
  --neutralOn-color: #424242;
  
  /* hervorgehobener Hintergrund
  Eingabefelder
  */
  --neutralvar-color: #00000011;
  --neutralvarOn-color: #00000099;
  --neutralvarOnInactive-color: #00000044;
  
  --neutralvarOnAlert-color: darkred;
  --neutralvarOnOK-color: green;
  
  /* Menüfarbe */
  --menu-color: black;
  --menuOn-color: #eeeef6; /*#ededf8; with only 30% saturation*/
  
  
  
  --pad_m: 0.75rem;
  
  --transition-medium: 0.3s;
  
  --icon-opacity: 0.6;
  
  --dimmed-opacity: 0.6;
  
  --border-radius: 5px;
  
}
.primaryColors {
    color:            var(--priOn-color);
    background-color: var(--pri-color);
}

.pad_m  {padding: var(--pad_m) !important;}
.nowrap {white-space: nowrap;}
.smallfont { font-size: 0.8em;}
.ok     {color: var(--neutralvarOnOK-color);}
.alert  {color: var(--neutralvarOnAlert-color);}

/*
@media only screen and (prefers-color-scheme: dark) {
    :root {
        --priOn-color:   pink;
        --pri-color: #1a1a1a;
        
        --pri-color: pink;
        --priOn-color: pink;

        --neutralOn-color:     pink;
        --neutral-color:  #070707;
    }
}*/


@media print {
    .no_print { display: none !important; }
}

@media screen {
    .print_only { display: none !important; }
}


html, body{
    height: 100%;
    min-height:100%;
    /*height: 100vw;*/
    position:relative;/**/
    margin: 0;
    padding: 0;
    border-width: 0;
    /*font-size: 25px;*/
}

body {
    /*font-family: Verdana, Arial, Helvetica, sans-serif;*/
    font-family: 'Roboto', sans-serif;
    color:            var(--neutralOn-color);
    background-color: var(--neutral-color);/*#f5f5fa;*/
}



/* common styles 
* { box-sizing: border-box; }
a,
a:active,
a:focus,
a:visited {
    color: inherit;
    text-decoration: inherit;
}*/

.linkIconArea {
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    min-width: 40px;
    height: 40px;
    opacity: var(--icon-opacity);
}



/* (A) WRONG ORIENTATION - SHOW MESSAGE HIDE CONTENT */

/*@media only screen and (orientation:portrait) {*/
@media screen /*and (max-aspect-ratio: 13/9) and (max-width: 580px)*/ { /* portrait styles here */
  #turnMessage { display:none; }
  #wrapper     { display:flex; }
  #slide-out   { display:block; }
}

/*@media only screen and (orientation:landscape) {*/
@media screen and (min-aspect-ratio: 13/9)/**/ and (min-width: 490px) { /* landscape styles here */
  #turnMessage { display:flex; }
  #wrapper     { display:none; }
  #slide-out   { display:none; }
}


#turnMessage {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    font-size: 24px;
}

#wrapper{
    min-height: 100vh;
    align-items: stretch;
    position: relative;
}

#contentContainer {
    display: flex;/**/
    flex-direction: column;
    justify-content: flex-start;
    /*min-height: 100%;
    height: 100%;*/
    width: 100%;
    max-width: 100%;
    box-shadow: 0px 0px 22px -8px var(--neutralOn-color);
    /*transition: left 0.3s;*/
    position: relative;
    
    overflow-x: hidden;
} 

.elements3colsGrid {
    display: grid;
    width: 100%;
    justify-content: center; /* horizontal - der Container in seinem Parent selbst */
    align-content: start;    /* vertical - der Container in seinem Parent selbst */
    grid-template-columns: minmax(40px, 12.5%) 75% minmax(40px, 12.5%);
    column-gap: 0px;
    row-gap: 16px;
    justify-items: center;  /* horizontal - der Zelleninhalt */
    align-items: center;    /* vertikal - der Zelleninhalt */
    
}
.elements3colsGrid > .leftCol {
    grid-column: 1;
    justify-self: right;
    
}
.elements3colsGrid > .centerCol {
    grid-column: 2;
    width: 100%;
}
.elements3colsGrid > .rightCol {
    grid-column: 3;
    justify-self: left;
}

.elements3colsGrid > .centerCol.input-field {
    margin-top: 0;
    margin-bottom: 0;
}




.elementsContainer75,
.elementsContainer60 {
    display: flex;/**/
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.elementsContainer75 .element {
    width: 75%;
    min-width: 270px;
}
.elementsContainer60 .element {
    width: 60%;
    min-width: 216px;
}

.element.pad {
    padding: 0.5rem 0;
} 







/*
    #################################################################################
    Titel und Navigationsmenü
    #################################################################################
*/

#pagetop {
    
  line-height: 1.2em;
    
  background-color: var(--menu-color); /* Black background color */
  color:            var(--menuOn-color);
  position: fixed; /* Make it stick/fixed */
  top: 0; /* Stay on top */
  width: 100%;
  box-shadow: 0px 0px 22px -8px var(--pri-color);
  z-index: 1010;   /* muss höher sein als das Drag-Target des Hauptmenüs */
}

#pagetop > .title {
    
    display: flex;
    align-items: center;
    
}

#pagetop > .title > *:not(.modal) {
    padding: 8px 16px;   
}

#pagetop > .title .hamburger,
#pagetop > .title .search {  
   /* color: var(--priOn-color);*/
   cursor: pointer; 
}
/* kein Icon in der Titelleiste rechts */
#pagetop > .title .dummy {
    display: block;
    width: 24px;
    position: relative;
}

#pagetop > .title .appname{
    flex-grow: 1;
    text-align: center;
    position: relative;  /* für die Alert-Felder (watchdog) */

    font-size: 20px;
    font-weight: bold;
    
}
#pagetop > .title .appname img{
    height: 20px;
    padding-right: 4px;
}

#pagetop > .title .appnameSearchfield {
    display: none;
}

#pagetop > .desc {
    /*font-size: 20px;*/
    display: flex;
    justify-content: center;
    align-items: center;
    /*font-weight: bold;*/
    text-align: center;
    padding: 0px 16px;
}
#pagetop > .desc.cond {
    font-family: 'Roboto Condensed';
}

#pagetop > .navbar{
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    
}

/* Style the navbar links */
#pagetop > .navbar > * {
  flex-grow: 1;
  text-align: center;
  padding: 12px 8px 10px 8px;  /* unten die höhe der underline abziehen */
  text-decoration: none;
  transition: opacity 0.3s;
  
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  
  color: var(--menuOn-color);
  font-size: 16px;
  font-weight: 500;
  
}

#pagetop > .navbar > *:hover {
  background-color: var(--menu-color-hover);
  color:            var(--menu-color-hover);
}

#pagetop > .navbar > * .navbaritemunderline,
#pagetop > .navbar > * .navbaritemtext{
    transition: opacity 0.3s;
    transition: width 0.3s;
    position: relative;
}

#pagetop > .navbar > *.selected .navbaritemtext{
    opacity: 1;
}

/*#navbar a.tempunselected .navbaritemtext,*/
#pagetop > .navbar > * .navbaritemtext {
    opacity: var(--icon-opacity);
}

#pagetop > .navbar > *.selected .navbaritemunderline,
#pagetop > .navbar > *.tempselected .navbaritemunderline{
    opacity: 1;
    width: 80%;
}

#pagetop > .navbar > *.tempselected .navbaritemtext{
    opacity: 1;
}

#pagetop > .navbar > *.tempunselected .navbaritemunderline {
     opacity: 0;
     width: 5%;
}


#pagetop > .navbar > * .navbaritemunderline{
    opacity: 0;
    position: relative;
    display: inline-block;
    bottom: -10px;
    width: 5%;
    
    height: 0.2em;
    border-radius: 2px 2px 0 0;
    border-bottom: 1px solid var(--menu-color);
    /*border: 1px solid var(--priOn-color);*/
    background-color: var(--menuOn-color);
}

.navTargetContainer {
    width: 100%;
    min-height: 100%;
}
.navTargetContainer[navtargetcontainerid] {
    display: none;
}

.navTargetContainer.active[navtargetcontainerid] {
    display: block;
}



/*
    #################################################################################
    Seitenmenü
    #################################################################################
*/

/* Hauptmenü Text unter Logo (nicht eingeloggt) */
.sidenav .headlogo {
    line-height: 32px;
}

/* im gefüllten Bereich des Seitenmenüs eingeloggt -> Name*/
.sidenav .headtext {
    line-height: 20px;
    padding: 16px 32px 0 32px;
}

.sidenav li a i.material-icons{
    opacity: var(--icon-opacity);
    font-weight: 200;
}


/* Debugmenü */
#debug_dropdown_content > li{
    font-weight: normal;
}

/* debugModal */

#modal_debug{
    color: var(--priOn-color);
}

.debugShowJSConsoleOutputSwitch {
    padding-right: 0.5rem;
    white-space: nowrap;
}
.debug_console_log,
.debug_console_warn,
.debug_console_error{
    font-family: 'Roboto Mono', monospace;
    font-size: 0.8rem;
    padding-top: 0.2rem;
    white-space: pre;
}
.debug_console_warn {
    background-color: lightgoldenrodyellow;
}
.debug_console_error{
    background-color: lightpink;
}



/*
    #################################################################################
    Formularzeugs (Material-Stil)
    
    Text - Eingabefeld
    #################################################################################
*/

/* verhindert Änderung der Hintergrundfarbe bei automatisch ausgefüllten Feldern */
.form__group input:-autofill,
.form__group input:-autofill:focus,
.form__group input:-webkit-autofill,
.form__group input:-webkit-autofill:focus {
    transition: background-color 60000s 0s, color 600000s 0s;
}
.form__group input[data-autocompleted] {
    background-color: transparent !important;
}


.form__group {
  position: relative;
  padding: 0;
  /*margin: 8px 16px;*/
  border: 0;
  transition: border-color 0.2s;
  display:flex;
  flex-direction: column;
  /*align-items: center;*/
  /*justify-content: space-between;*/
  
}

.form__group .form__field,
.form__group  input.form__field{
  font-family: inherit;
  font-size: 16px;
  
  color: var(--neutralOn-color);
  background: var(--neutralvar-color);
  
  width: auto;
  padding: 16px 16px 0px 16px;
  outline: 0;
  
  border: 0;
  border-radius: 3px 3px 0 0;
  border-bottom: 1px solid var(--neutralvarOn-color);
  transition: border-color 0.2s;
  
  height: 48px;
  margin: 0;
  /*cursor: text;
  caret-color: red;*/
}

.form__group input.form__field::placeholder, 
.form__group .form__field::placeholder {
  color: transparent;
}

.form__group .form__label{ 
    
  border: 0;
  
  display: block;
  position: absolute;
  top: 4px;
  left: 16px;
  
  transition: 0.2s;
  
  font-size: 12px;
  /*font-weight: 500;*/
  color: var(--pri-color);
  
}

.form__group .form__field:not(:focus) ~ .form__label{
   color: var(--neutralvarOn-color);
}

.form__group .form__field:not(:focus):placeholder-shown ~ .form__label {
  font-size: 16px;
  /*font-weight: normal;*/
  color: var(--neutralvarOn-color);
  cursor: text;
  top: 22px;
  pointer-events:none;
}

.form__group .form__field:focus {
  border-bottom-color: var(--pri-color);
  border-bottom-width: 3px;
}

.form__group .form__field:focus ~ .form__label{
  
  color: var(--pri-color);
}

.form__group .form__supporttext{
    font-size: 12px;
    padding: 4px 16px 0px 16px;
}


.form__group .form__supporttext.supporttext-alert {
    /*font-weight: 500;*/
    color: var(--neutralvarOnAlert-color);
    /*opacity: 0.53;*/
}

/*
    #################################################################################
    Loginseite
    #################################################################################
*/

#scop_loginrotor {
    margin-top: 8px;
    border-color: white;
    border-top-color: white;
    border-top-color: #FFF0;
}
/*
    #################################################################################
    Navigationsseite
    #################################################################################
*/

/* ------- Auswahlformular ---------------------------------------------- */
select.navField {
    opacity: 1;
    
}

/* wenn das aktuelle Listenelement als Placeholder angezeigt werden soll, 
   muss das Attribut navstate="default" gesetzt sein
   dann wird auch das Label ausgeblendet */
.input-field.navFieldWrapper[navState=default] input {
    color: var(--neutralvarOnInactive-color);
}
.input-field.navFieldWrapper[navState=default] label {
    opacity: 0;
}

.input-field.navFieldWrapper label {
    color: var(--neutralvarOn-color);
    /*position: absolute;
    top: 4px;
    left: 24px;
    transform: none;*/
}

/* ------- Kartenansicht ---------------------------------------------- */

.navTargetContainer[navtargetcontainerid="auswahlkarte"]{
    position: relative;
}
#mapid {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
}

/* die Tiles auf der map bei bestimmten Zoomstufen ausblenden -> siehe map_onZoomEnd() */
#mapid.grayout div.leaflet-pane.leaflet-tile-pane div.leaflet-layer div.leaflet-tile-container img.leaflet-tile.leaflet-tile-loaded {
    filter: contrast(15%) brightness(175%);/**/
    /*invert(80%)*/
    /*filter: brightness(50%) sepia(1) hue-rotate(290deg) saturate(140%);*/
    /* filter:  sepia(14%) saturate(696%) hue-rotate(303deg) brightness(98%) contrast(108%);*/
    /*filter:  sepia(14%) saturate(696%) hue-rotate(303deg) brightness(98%) contrast(108%) opacity(0.4);*/
}
#mapid div.leaflet-pane.leaflet-tile-pane div.leaflet-layer div.leaflet-tile-container img.leaflet-tile.leaflet-tile-loaded {
    /*filter: grayscale(1);*/
}
#mapid path.leaflet-interactive:focus {
    outline: -webkit-focus-ring-color auto 0px;
}



/* ------- Anlagennotizen ---------------------------------------------- */


#json_LSANoticesWrap {
    display: none;
}

#json_LSANoticesWrap.active {
    display: block;
}

#json_LSANoticesWrap .lsa_name{
    display: inline;
}

#json_LSANoticesWrap .lsa_nummer{
    display: inline;
    float: right;
    opacity: var(--dimmed-opacity);
}

#json_LSANoticesWrap .notice_title{
    display: block;
    font-family: "Roboto Mono";
    /*font-weight: bold;*/
    padding: 0.25rem 0.5rem;
    color: var(--neutralvarOnAlert-color);
    background-color: var(--neutralvar-color);
    border-radius: var(--border-radius);
}

.collapsible li {
   background-color: white;
}

.collapsible li .collapsible-body {
    color: var(--neutralvarOn-color);
    background-color: var(--neutralvar-color);
}


#json_LSANoticesWrap .notice_text{
    display: block;
    font-family: "Roboto Mono";
    /*font-size: 0.8em;
    white-space: pre-wrap;*/
}
#json_LSANoticesWrap .notice_button:not(:first-child) { /* wenn kein Notizentext vorhanden ist */
    padding-top: 1rem;
}


/* ------- Meldungen auf der Nav-seite ---------------------------------------------- */

#json_LSAMessagesWrap .contentWrap {
    width: 100%;
}

#json_LSAMessagesWrap .lsa_nummer {
    float: right;
    opacity: var(--dimmed-opacity);
}

#json_LSAMessagesWrap .msg_wrap.msgclass_0 {
    background-color: whitesmoke; /*#E0E0E0;*/
}
#json_LSAMessagesWrap .msg_wrap.msgclass_1 { /* categoriesFailPartial  - unkritische Fehler ohne Anlagenausfall (gelb in der Darstellung) */
    background-color: #ffc882; /*#ffed82;*/
}
#json_LSAMessagesWrap .msg_wrap.msgclass_2 { /* categoriesFailTotal - kritische Fehler mit Anlagenausfall */
    /*background-color: #ffc9c9;*/
    background-color: #ce0e0e;
    color: #E0E0E0;
    font-size: bold;
}

#json_LSAMessagesWrap .msg_text {
    font-family: "Roboto Mono";
    /*font-size: 0.8em;*/
}
#json_LSAMessagesWrap .msg_time {
    display: block;
    text-align: right;
    opacity: var(--dimmed-opacity);
    
}
.navmsg > .msg_lsaname { display: block; }
.navmsg > .msg_lsanr   { display: block; }
.navmsg > .msg_text    { display: block; }
.navmsg > .msg_time    { display: block; }

#json_LSAMessagesWrap .msg_wrap{
    margin: 0.25rem 0;
    padding: 0.25rem 0.5rem;
    font-size: 1em;
    border-radius: var(--border-radius);
}

#json_LSAMessagesWrap .msg_wrap:last-child {
    margin-bottom: 0;
}

#json_LSAMessagesWrap.navMessageWrap {
    display: none;
}
#json_LSAMessagesWrap.navMessageWrap.active {
    display: block;
}


/*
    #################################################################################
    LSA-Seite (Status, Meldungen)
    #################################################################################
*/

#lsaNotices .notice_public .headline,
#lsaNotices .notice_sdl .headline {
    opacity: var(--dimmed-opacity);
}

#lsaImages .collapsible-body {
    padding: 0;
}

#lsaImages .collapsible-body img {
    padding: 0.5rem;
}


#json_LSAMessagesWrap .switch {
    margin-top: 1rem;
    margin-left: 1rem;
    margin-right: 1rem;
    text-align: right;
}

#json_LSAMessagesWrap .switch label {
    font-size: 1rem;
}

#json_LSAMessagesWrap .lsaMessage .contentHead  {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    font-weight: normal;
}

#json_LSAMessagesWrap .lsaMessage .contentHead > *:not(:first-child) {
    padding-left: 0.5rem;
}


#json_LSAMessagesWrap .lsaMessage .contentBody .msg_text {
    display:inline-block;
}

#json_LSAMessagesWrap .lsaMessage .contentHead  .msg_wart {/* Wartungsaufschrift in Meldungsbereich */
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    border-radius: var(--border-radius);
    color: black;
    background-color: lightblue;
    border-radius: var(--border-radius);
}

#json_LSAMessagesWrap .lsaMessage .contentHead  .msg_unquitt { 
    flex-grow: 2;
    text-align: right;
}


#json_LSAMessagesWrap .lsaMessage .contentBody .msg_time {
    display:inline;
    float: right;
    padding-left: 0.5rem;
}

#json_LSAMessagesWrap .lsaMessage .collapsible-body > *:not(:first-child) {
    padding-top: 1rem;
}
#json_LSAMessagesWrap .lsaMessage .collapsible-body .infoGrid {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 0.5rem;
    justify-content: start;
    /*row-gap: 15px;*/
}
#json_LSAMessagesWrap .lsaMessage .collapsible-body .infoGrid .right {
    justify-self: right;
}



/* die Ansichtsbereiche schalten */
#json_LSAMessagesWrap .switch,
#json_LSAMessagesWrap .messages {
    display: none;
}

#json_LSAMessagesWrap .switch.active,
#json_LSAMessagesWrap .messages.active:not(:empty) {
    display: block;
}

/*
    #################################################################################
    Livedaten-Seite
    #################################################################################
*/
#json_LsaLive .switchDiv {
    /*margin-top: 1rem;
    margin-left: 1rem;
    margin-right: 1rem;*/
    margin: 1rem;
    
    text-align: right;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap-reverse;
}
#json_LsaLive .switch {
   white-space: nowrap;
}
#json_LsaLive .switch label {
    font-size: 1rem;
}


#spanLiveRotor,
#spanLiveError {
    white-space: nowrap;
    text-align: center;
    margin-bottom: 1rem;
    margin-left: 1rem;
    margin-right: 1rem;
}

#spanLiveInitRotor {
    margin: 0 1rem;
    text-align: center;
}

#programNameDiv {
    pointer-events: none;
    text-align: center;
    opacity: 1;
    display: none;
}

.scopeButtons {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    
    position: fixed; 
    bottom: 0; 
    right: 0; 
    
    background-color: var(--menu-color);
    color:  var(--menuOn-color);
    padding: 1rem 0;
}
.scopeButtons .container{
    /*min-width: 220px;*/
    max-width: 340px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.scopeButton {
    cursor: pointer;
    height: 24px;
    vertical-align: middle;
    /*padding:1rem;*/
    user-select: none;
    /*padding: 0 1rem;*/
}
.scopeContainerOuter {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
     
    /*border: 1px solid grey;
    padding: 0.3em;*/
    overflow: hidden;
    
    margin-bottom: calc(24px + 2rem + 4px); /* Schalterfläche */
   /* box-sizing: border-box;*/
}

/*
    #################################################################################
    Service-Seite
    #################################################################################
*/

div.collapsible-body > form + div,
div.collapsible-body > form > div:not(:first-child):not(:empty){
    padding-top: 1rem;
}


div.collapsible-body form div {
    text-align: center;
}

#programTarget_input {
    width: 3rem;
}



/* Animation für die Serverrequest-Mitteilungen auf der LSA-Service-Seite */
.dissolve5{
    animation: dissolveAnimation 2s ease-in 5s forwards;
    transition: height 2s, padding 2s !important;
}
@keyframes dissolveAnimation {
  to { opacity: 0; 
       /*width:0;*/
       height: 0;
       padding: 0; 
       overflow:hidden;
       
  }  
}



/* #########################################################
   Rotor / Spinner / Loader
   ######################################################### */
.iconwithtext,
.spinnerwithtext {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 1rem;
    height: 60%;
}
.iconwithtext,
.spinnerwithtext > * {
    margin: 0.5rem;
}

.spinnerwithtext:not(.active),
.iconwithtext:not(.active) {
    display: none;
}


/* Rotor - alt ---- */
.rotor_s,
.rotor_m,
.rotor_b
{
  
  border-color:  #555555;
  border-top-color: #FFFFFF00; /*#e4e4e4;*/
  border-style: solid;
  border-radius: 50%;
  
  display: inline-block;
  vertical-align: middle;
  
  -webkit-animation: spin 0.7s linear infinite; /* Safari */
  animation: spin 0.7s linear infinite;
}
.rotor_s { border-width: 2px;  width: 12px;  height: 12px; margin-bottom: 2px; margin-right: 0.2em; flex-shrink: 0;}
.rotor_m { border-width: 3px;  width: 16px;  height: 16px; margin-bottom: 3px; margin-right: 0.2em; flex-shrink: 0;}
.rotor_b { border-width: 4px;  width: 20px;  height: 20px; margin-bottom: 4px; margin-right: 0.2em; flex-shrink: 0;}  

/* rotor, der Icons in Materialize-Buttons ersetzt */
.rotor_btn {
    border-width: 1px;
    width: 1em;
    height: 1em;
    margin-top: 0.5em;
    border-color:  #FFF;
    border-top-color: #FFFFFF00;
    border-style: solid;
    border-radius: 100%;
    -webkit-animation: spin 0.7s linear infinite; /* Safari */
    animation: spin 0.7s linear infinite;
}
.disabled > .showRotor > .rotor_btn {  /* Rotor in ausgegrautem Schalter */
    border-color:  #00000044;
    border-top-color: #FFFFFF00;
}


.middleicon {
    display: inline-block;
    vertical-align: middle;
}

/* Safari */
@-webkit-keyframes spin {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); } }

@keyframes spin {
  0% { transform: rotate(0deg);}
  100% { transform: rotate(360deg);}
}


/* Einblenden des Auswahlfeld-Labels, wenn eine Auswahl getroffen wurde 
.input-field.navFieldWrapper .hide-select option[value="-1"]:checked ~ label {
   opacity: 0;
}
.input-field.navFieldWrapper .hide-select option[value="-1"]:checked ~ input {
   opacity: 0;
}*/

/*
    #################################################################################
    Watchdog
    #################################################################################
*/

.titleOffline,
.titleServfail {
    visibility: hidden;/**/
    position: absolute;

    margin: 0.1rem;
    padding: 0rem 0.25rem;
    border-radius: 3px;
    color:            var(--neutral-color);
    background-color: var(--neutralvarOnAlert-color);
    font-size: 0.7rem;
    font-weight: bold;
    vertical-align: baseline;
}
.titleOffline {
    right: 0;
}
.titleServfail {
    left: 0;
}
/* setzt Elemente bei Verbindungsausfall sichtbar */
.titleOffline.watchdog_enabled,
.titleServfail.watchdog_enabled {
    visibility: visible;
}

a.disabled,
.watchdog_disabled {
  /*color: inherit;
  pointer-events: none;*/
  cursor: not-allowed !important;
  opacity: 0.5;
  text-decoration: none;
}

.watchdog_disabled[onclick]{
    pointer-events: none;
}

/* WatchDogArea im Header der Seite */
#watchdogClockHead {
    position: absolute;
    left: 0;
    top: 0;
}

#watchdogAlertHead {
    position: absolute;
    right: 0;
    bottom: 0;
}

.watchdogAlertMessagesBadgeContainer {
    position: relative;
}

/* Warnmeldungs-Badges - werden vom watchdog (watchdog_toggleAlertingMessagesBadges) sichtbar gesetzt */
*[watchdogAlertMessagesBadge],
*.selected .navbaritemtext *[watchdogAlertMessagesBadge] {
    /*visibility: hidden;*/
    opacity: 0;
    transition: opacity 0.3s;
}

*[watchdogAlertMessagesBadge].watchdog_enabled {
    /*visibility: visible;*/
    opacity: 1;
}

.title *[watchdogAlertMessagesBadge]{
    position: absolute;
    right: 0.25rem;
    bottom: 0.25rem;
    text-align: center;
    width: 1.1em;
    height: 1.1em;
    vertical-align: baseline;
    border: 0px solid red;
    border-radius: 50%;

    background-color: red;
    color: white;
    font-family: 'Roboto', sans-serif;
    font-size: 1.2rem;
    /*font-weight: bold;*/
    padding-top: 0.1rem;
}

.navbaritemtext *[watchdogAlertMessagesBadge] {
    position: absolute;
    right: -1.2rem;
    bottom: -0.1rem;
    text-align: center;
    width: 1.1em;
    height: 1.1em;
    vertical-align: baseline;
    border: 0px solid red;
    border-radius: 50%;
    background-color: red;
    color: white;
    font-family: 'Roboto', sans-serif;
    font-size: 1.1rem;
    font-weight: bold;
    padding-right: 0.1rem;
}

/*####################################################
Systemauslastungsanzeige
####################################################*/

.liveSystemdataContainer {
    width: 100%;
    line-height: 2em;
}



.liveSystemdataGrid{
    /*display: none;*/ 
    padding-left: 35px;
    padding-right: 10px;
    
    display: grid;
    grid-template-rows: 1fr 1fr; 
    grid-template-columns: 1fr auto; 
    /* grid-auto-flow: column;  Elemente werden in ihrer Reihenfolge nach dem Schema Spalte->Zeilen angeordnet */
    /*padding: 0.5em;*/
    gap: 0.5em;
    
}
.liveSystemdataContainer .title {
    display: flex;
    /*justify-content: flex-start;*/
    align-items: center;
}

.liveSystemdataContainer .diags {
    border: 1px solid #ddd;
    width: 100%;
}
.liveSystemdataContainer .diags .diag{
    /*border: 1px solid green;*/
    background-color: #eee;
    display: flex;
    flex-direction: row;
    justify-content: right;
    align-items: center;
    position: relative;   /* damit das absolut positionierte Kindelement .diagLine hier seinen Parent hat */
}

.liveSystemdataContainer .diags .diag .diagVal,
.liveSystemdataContainer .diags .diag .diagTitle {
    z-index: 1;
    text-shadow: -1px 0 0.3px #eee, 0 1px 0.3px #eee, 1px 0 0.3px #eee, 0 -1px 0.3px #eee;
    min-width: 2.5em;
}

.liveSystemdataContainer .diags .diag .diagLine {
    position: absolute;
    top: 0;
    left: 0;
    background-color: lightgray;
    height: 100%;
    width: 0;
    transition: all 3s cubic-bezier(.45,.05,.55,.95);
}

.liveSystemdataContainer .diags .diag .CPUavgLine[state="ok"],
.liveSystemdataContainer .diags .diag .CPUcurrLine[state="ok"],
.liveSystemdataContainer .diags .diag .STORsysLine[state="ok"],
.liveSystemdataContainer .diags .diag .STORdataLine[state="ok"]{
    background-color: darkgreen;
}
.liveSystemdataContainer .diags .diag .CPUavgLine[state="warn"],
.liveSystemdataContainer .diags .diag .CPUcurrLine[state="warn"],
.liveSystemdataContainer .diags .diag .STORsysLine[state="warn"],
.liveSystemdataContainer .diags .diag .STORdataLine[state="warn"]{
    background-color: orange;
}
.liveSystemdataContainer .diags .diag .CPUavgLine[state="alert"],
.liveSystemdataContainer .diags .diag .CPUcurrLine[state="alert"],
.liveSystemdataContainer .diags .diag .STORsysLine[state="alert"],
.liveSystemdataContainer .diags .diag .STORdataLine[state="alert"]{
    background-color: red;
}
.liveSystemdataContainer .diags .diag .CPUavgLine[state="fail"],
.liveSystemdataContainer .diags .diag .CPUcurrLine[state="fail"],
.liveSystemdataContainer .diags .diag .STORsysLine[state="fail"],
.liveSystemdataContainer .diags .diag .STORdataLine[state="fail"]{
    background-color: lightgray;
}

/*
.liveSystemdataContainer .diags .diag .CPUavgLine{width: 0;}
.liveSystemdataContainer .diags .diag .CPUcurrLine{width: 0;}
.liveSystemdataContainer .diags .diag .STORsysLine{width: 0;}
.liveSystemdataContainer .diags .diag .STORdataLine{width: 0;}
*/

/*
    #################################################################################
    Materialize overdrives
    #################################################################################
*/

/* modale Overlays */
.modal.text {width: 90%; max-height: 80%; font-family: 'Roboto Condensed'}
.modal.text .modal-content {font-size: 1em;}
.modal.text .modal-content h2 {font-size: 1.2em; }
.modal.text .modal-content h3 {font-size: 1.1em;}
.modal.text .modal-content h4 {font-size: 1.0em; font-weight: bold;}
.modal.text .modal-content h5 {font-size: 1.0em;}


.select-wrapper input.select-dropdown {
    height: 64px;
    padding: 0 24px 0 16px;
    width: calc(100% - 40px);
    background-color: var(--neutralvar-color);
}

/* ------------ Collapsibles --------------- */
/*
    - leere Collapsibles ohne body mit .collapsible-header.nobody
    - Aufklappicon .collapsible-header.schalter-rechts und span.schalter unterhalb .collapsible-body 
    - Aufklappicon Position mittig via .collapsible-body > span.schalter.mitte
*/

ul.collapsible{
    margin: 1rem; /*0.5rem 0.5rem 0.5rem 0.5rem;*/
}

ul.collapsible > li:first-child,
ul.collapsible > li:first-child > .collapsible-header {
    border-top-left-radius: var(--border-radius);
    border-top-right-radius: var(--border-radius);
    
}
ul.collapsible > li:last-child,
ul.collapsible > li:last-child > .collapsible-body,
ul.collapsible > li:last-child:not(.active) > .collapsible-header {
    border-bottom-left-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
    
}

ul.collapsible li .collapsible-header i.material-icons{
    opacity: var(--icon-opacity);
    font-weight: 200;
}

ul.collapsible {
    border-radius: var(--border-radius);
}

ul.collapsible > li > .collapsible-header.schalter-rechts:not(.nobody) {
    justify-content: space-between;
}
ul.collapsible > li > .collapsible-header.schalter-rechts.nobody > span.schalter {
    display: none;
}
ul.collapsible > li > .collapsible-header.nobody ~ .collapsible-body {
    display: none !important; 
}

ul.collapsible > li > .collapsible-header .contentWrap {
    width: 100%;
}
ul.collapsible > li > .collapsible-header .content {
    flex-grow: 2;
}



/* -------------- Collection ---------- */

/* Aufklappzustands-Icon in Collapsible (siehe Notizen)*/
ul.collection > li > .collection-item.schalter-rechts > .schalter,
ul.collapsible > li > .collapsible-header.schalter-rechts > .schalter {
    margin-left: 1rem;
    align-self: flex-start;
    transition: transform 0.3s;
}

ul.collapsible > li > .collapsible-header.schalter-rechts > .schalter.unten { align-self: flex-end;}
ul.collapsible > li > .collapsible-header.schalter-rechts > .schalter.mitte { align-self: center;}

ul.collapsible > li.active > .collapsible-header.schalter-rechts > .schalter {
     transform: rotate(180deg);
}

ul.collapsible > li.active > .collapsible-header > .schalter {
    
}

/* Collections */
ul.collection{
    margin: 1em; /*0.5rem 0.5rem 0.5rem 0.5rem;*/
    border-radius: var(--border-radius);
}
ul.collection > li.collection-item:first-child {
    border-radius: var(--border-radius) var(--border-radius) 0 0;
}
ul.collection > li.collection-item:last-child {
    border-radius: 0 0 var(--border-radius) var(--border-radius);
}
ul.collection > li.collection-item{
    padding: 1rem;
}
ul.collection > li.collection-item > * {
    display: flex;
    justify-content: space-between;
}

ul.collection > li.collection-item .navmsg {
    flex-grow: 2;
    width: 100%;
}

ul.collection > li.collection-item .icon {
    align-self: flex-center;
    margin: auto;
    padding-left: 1rem;
}



