@charset "UTF-8";
/* -------------------------------------------------------------------------------------------------- */
/* -------------------------------                                        --------------------------- */
/* -------------------------------    Grundlegendste Definitionen und     --------------------------- */
/* -------------------------------     Overrides der Browserdefaults      --------------------------- */
/* -------------------------------    Design bitte in die default.css!    --------------------------- */
/* -------------------------------                                        --------------------------- */
/* -------------------------------------------------------------------------------------------------- */

/* === CUSTOM PROPERTIES (CSS-Variablen) jetzt anpassen, bevor sie ausgewertet werden === */

body {
  /*--color-input-label: currentColor; !* das label bleibt 'lesbar' *!*/
}

.d fp-field, fp-field[editable], .d output {
  --padding-format-horz: var(--padding-input-horz);
  --padding-format-vert: var(--padding-input-vert);
}

fp-field[readonly],
[class*="jml_input_readonly"]:not(.ro-transparent, .typeradiosender-edit, label) {
  --color-input-background: var(--color-input-background-readonly);
  --color-accent: var(--color-shade-4);
  --color-input-font: var(--color-shade-1-contrast);
  --color-input-border:  var(--color-shade-3);
  /*--color-input-label: currentColor; !* das label bleibt 'lesbar' *!*/
  cursor: default;
}

fp-field.important[empty]:not([required]) {
  border-color: var(--color-status-orange);
}

fp-field[required][empty] fp-format-select{
  --color-input-font: var(--color-input-label, var(--color-input-border));
  color: var(--color-input-label, var(--color-input-border));
  opacity: .75; /* Sowas wie "bitte wählen" soll wie ein placeholder aussehen */
}

fp-field[error],
fp-field[required][empty][visited] {
  --color-input-label: var(--color-input-mandatory);
  --color-input-border: var(--color-input-mandatory);
}

fp-option-controller {display: none;}

/* === ANIMATIONEN === */

@keyframes blinker {
  from {
    opacity: 1.0;
  }
  to {
    opacity: 0.5;
  }
}

@keyframes fadein {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* === Browseroverrides, TAG-Defaults === */
html, body{
  padding: 0;
  margin: 0;
}
@media screen {
  /* Wir wollen nicht Scrollen, wir sind eine App mit Toolbars */
  html {
    overflow: hidden;
    /*
     wir gehen erstmal auf nummer sicher und machen einen Innenabstand
     um nicht aus der Safe-Area des iPhone auszubrechen.
     Menües und Footer usw können dann für sich Regeln
     enthalten um doch dort reinzuragen
    */
    min-height: calc(100% + env(safe-area-inset-top, 0)); /* iOS white bottom bar bug workaround (1 von 2)*/
    padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
  }

  /* Popup Fenster müssen scrollen können */
  body.dialog {
    overflow: auto;
  }

  html, body {
    height: 100%;
    width: 100%;
    -webkit-overflow-scrolling: auto;
  }

  @supports (-webkit-overflow-scrolling: touch) {
    /* Außen kein gummibandeffekt*/
    /*html, body {*/
    /*  position: fixed !important;*/
    /*  overflow: hidden;*/
    /*}*/

    body.pwa {
      /* 2025.Sep.29: Macht die App zu hoch: height: 100vh; */
      /* iOS white bottom bar bug workaround 2 von 2:*/
      margin-top: calc(-1 * env(safe-area-inset-top, 0px));
      margin-bottom: calc(-1 * env(safe-area-inset-bottom, 0px));
      margin-left: calc(-1 * env(safe-area-inset-left, 0px));
      margin-right: calc(-1 * env(safe-area-inset-right, 0px));
    }

    body.pwa.pageReady {
      position:fixed;
    }

    /* alles darunter darf wieder Gummiband-effekt haben*/
    html > *, body > * {
      -webkit-overflow-scrolling: touch;
    }

    /* AAAAUUUUSSSER iOS hat mal wieder einen Bug */
    body > fp-popup{
      -webkit-overflow-scrolling: auto;
    }
  }

  body.standard,
  body.detailmanager {
    overflow: hidden; /* <- overflow hidden <- kein Bounce-Effekt beim Body erwünscht, und manche Popups erzeugen  auch scrollbars */
  }
}

.printonly {
  display: none;
}
body.popupPrint .printonly {display: initial;}

body.popupPrint .noprint,
body.popupPrint #tmplSidebar,
body.popupPrint #tmplMenu,
body.popupPrint .tmplFooter {
  display: none;
}



@media print {
  .noprint, #tmplSidebar, #tmplMenu, .tmplFooter {
    display: none;
  }
  .printonly {display: initial;}
}

body.standard,
body.detailmanager {
  /*display: flex;*/
}

/* Kein Outline. Nie. */

* {
  outline: none;
}

/* Alle Links sehen normal aus - nicht wie links  */

a {
  font-size: inherit;
  text-decoration: none;
  outline: none;
}


a,
a:visited,
a:link,
a:active {
  color: inherit;
}

/* Wir mögen unsere Tables ohne spacing*/

table {
  border-spacing: 0;
  empty-cells: show;
  border-collapse: collapse;
}

/* Paragraphs haben kein margin */

p {
  margin: 0;
}

/* Standard und detailmanager nutzen das neue Sidebarlayout */

iframe {
  background-color: #fff;
}

input {
  font: var(--font-normal);
  color: var(--color-main-font);
}

fp-format-filesize {
  width: 100%;
}
