.ne_terminblock .terminbearbeiten {
    margin-top:0.6rem;
}

.ne_terminblock .terminbearbeiten a {
    background-color: var(--nabu-blau);
    color: var(--nav-main-link-color);
    padding: 0.2rem 0.4rem;
    margin-right: 1rem;
}


.ne_terminblock .terminbearbeiten a + a {
	background-color:var(--body-background);
	color:var(--nabu-blau);
}

.save {
    display: block;
    padding: 0rem 1rem 0 4rem;
    border: 1px solid;
    margin-bottom: 2rem;
}

.save.success {
	border-color:#2FA900;
	color: #2FA900;
	background-color:#2FA90030;
}

.save.failure {
	border-color:#C92600;
	color: #C92600;
	background-color:#C9260030;
}


.terminwizard {
	display:flex;
	flex-direction:row;
	min-height:20rem;
	margin-bottom:1rem;
}

.terminwizard > ul {
    width: 3rem;
    flex-grow: 0;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    list-style: none;
    padding: 0;
    margin: 0;
    background: #dddddda0;
    border-right: 1px solid var(--nabu-blau);
}

.terminwizard_tab {
	width:3rem;
	height:3rem;
	background-size:2.5rem auto;
	background-position:center center;
	background-repeat:no-repeat;
	border-right:1px solid var(--nabu-blau);
	cursor:pointer;
}

.terminwizard_tab[disabled] {
	cursor: not-allowed;	
}


.terminwizard_tab.section_ok {
	content:url(../upload/zz_framework/termindb_icons/section_ok.png);	
}

.terminwizard_tab.section_error {
	content:url(../upload/zz_framework/termindb_icons/section_error.png);	
}

.terminwizard_tab[disabled] {
	filter: grayscale(100%);
	opacity:0.3;
}

.terminwizard_tab.aktiv {
	background-color:#fff;
	border-right-color:#fff;
}

.terminwizard_tab.veranstalter {
	background-image:url(../upload/zz_framework/termindb_icons/01_Leitung.png);
}

.terminwizard_tab.termin {
	background-image:url(../upload/zz_framework/termindb_icons/02_Termin.png);
}

.terminwizard_tab.titel {
	background-image:url(../upload/zz_framework/termindb_icons/03_Titel.png);
}

.terminwizard_tab.tagging {
	background-image:url(../upload/zz_framework/termindb_icons/04_Schlagworte.png);
}

.terminwizard_tab.fotos {
	background-image:url(../upload/zz_framework/termindb_icons/05_Bilder.png);
}

.terminwizard_tab.treffpunkt {
	background-image:url(../upload/zz_framework/termindb_icons/06_Treffpunkt.png);
}

.terminwizard_tab.karte {
	background-image:url(../upload/zz_framework/termindb_icons/07_Karte.png);
}

.terminwizard_tab.hinweis {
	background-image:url(../upload/zz_framework/termindb_icons/08_Hinweise.png);
}

.terminwizard_tab.buchung {
	background-image:url(../upload/zz_framework/termindb_icons/09_Buchung.png);
}

.terminwizard_tab.vorschau {
	background-image:url(../upload/zz_framework/termindb_icons/10_Vorschau.png);	
}

.terminwizard_tab div {
	width:3rem;
	height:3rem;
	padding:0;
	background-position:center center;
	background-repeat:no-repeat;
	background-size:3rem auto;
}


.terminwizard section {
	display:none;
	padding:0 0.5rem 0 1rem;
	flex-grow:1;
	flex-shrink:1;
	min-height:37rem;
}

.terminwizard section.aktiv {
	display:block;
}

.terminwizard section h3 {
	color:var(--text-headline-sub);
	margin-top:0;
}

.terminwizard section label {
    display: block;
    font-weight: bold;
}

.terminwizard section select, .terminwizard section > input, .terminwizard section textarea {
    display: block;
    width: 100%;
    margin: 0.5rem 0 1rem 0;
    height: 2rem;
    color: var(--nabu-blau);
	font-family:"Source Sans Pro", sans-serif;
	border:1px solid var(--nabu-blau);
}

.terminwizard section textarea {
	height:6rem;
}

.terminwizard section textarea.tinycme {
	height:20rem;
}

.terminwizard section select:invalid, .terminwizard section input:invalid, .terminwizard section textarea:invalid {
	border:1px solid #C92600;
}

.terminwizard section select option {
    color: var(--nabu-blau);
}
.terminwizard section select optgroup {
    color: var(--text-headline-sub);
    margin-bottom: 0.3rem;
}


.terminwizard section button:not(.map_button) {
    position: relative;
    color: var(--nabu-blau);
    height: 2rem;
    background: transparent;
    border: 0;
    font-weight: bold;
    text-align: right;
}

.eingabeblock.multiselect {
    display: flex;
}

.multiselect .buttons {
    width: 2rem;
    flex-shrink: 0;
    flex-grow: 0;
    margin: 0 0.5rem;
	display:flex;
	flex-direction:column;
	margin-top:1.5rem;
}


.terminwizard section select.multiline {
	height:12rem;
}

.terminwizard section .multiselect select {
    height: 12rem;
    padding: 0.2rem 0.5rem;
}

.terminwizard section .multiselect .buttons button {
    width: 2rem;
    height: 2rem;
    background-color: var(--nabu-blau);
  	margin-bottom:0.2rem;
    background-size:2rem auto;
    background-position:center center;
    background-repeat:no-repeat;
}

.terminwizard section .multiselect .buttons button.down {
    margin-bottom: 1.5rem;
}

.terminwizard section .multiselect .buttons button.up {
  background-image:url(../upload/zz_framework/termindb_icons/arr_up.png);
}

.terminwizard section .multiselect .buttons button.down {
  background-image:url(../upload/zz_framework/termindb_icons/arr_down.png);
}

.terminwizard section .multiselect .buttons button.add {
  background-image:url(../upload/zz_framework/termindb_icons/arr_left.png);
}

.terminwizard section .multiselect .buttons button.remove {
  background-image:url(../upload/zz_framework/termindb_icons/arr_right.png);
}

.terminwizard section .adresssuche {
    display: flex;
    flex-direction: row;
}

.terminwizard section .adresssuche button {
    background: var(--nabu-blau);
    width: 2rem;
    height: 2rem;
    margin: 0.5rem 0 1rem 0;
}



.terminwizard section ul {
	list-style:none;
}

.terminwizard section ul li.erfolg {
	color:#2FA900;
}

.terminwizard section ul li.fehler ul {
	color:#C92600;
}


#map {
            cursor:crosshair;
            width: 100%;
            height:30rem;
        }

        .marker {
            width:27px;
            height:40px;
            background-size: cover;
            background-image:url(/cms/upload/zz_framework/mapmarker/blanko.png);
        }

        .marker.map_treffpunkt {
            background-image:url(/cms/upload/zz_framework/mapmarker/treffpunkt.png);
        }
        .marker.map_parkplatz {
            background-image:url(/cms/upload/zz_framework/mapmarker/parkplatz.png);
        }
        .marker.map_pause {
            background-image:url(/cms/upload/zz_framework/mapmarker/pause.png);
        }
        .marker.map_haltestelle {
            background-image:url(/cms/upload/zz_framework/mapmarker/haltestelle.png);
        }
        .marker.map_foto {
            background-image:url(/cms/upload/zz_framework/mapmarker/foto.png);
        }
        .marker.map_aussicht {
            background-image:url(/cms/upload/zz_framework/mapmarker/aussicht.png);
        }


        .map_search {
            position: absolute;
            left: 1rem;
            top: 1rem;
            width: 20rem;
            height: 2rem;
            display:flex;
            flex-direction:row;
        }

        .map_search input {
            border:1px solid var(--nabu-blau);
            flex-shrink:1;
            flex-grow:1;
        }

        .map_search button {
            background-color:var(--nabu-blau);
            flex-grow:0;
            flex-shrink:0;
            width:2rem;
            border:0;
        }

        .map_button {
            width:2rem;
            height:2rem;
            position:absolute;
            right:1rem;
            top:1rem;
            border:1px solid var(--nabu-blau);
            background-size: 1rem auto;
            background-image: url(/cms/upload/zz_framework/mapmarker/blanko.png);
            background-position: center center;
            background-repeat: no-repeat;
        }

        .map_button.aktiv {
            border-width:5px;
        }

        .map_helper {
            position:absolute;
            left:0;
            right:0;
            bottom:2rem;
            height:2rem;
            line-height:2rem;
            background-color:#ffffffaa;
            color:var(--nabu-blau);
            text-align: center;
            display:none;
            font-weight:bold;
        }

        .map_modal {
            position:absolute;
            left:0;
            right:0;
            top:0;
            bottom:0;
            background-color:#000000AA;
            display:none;
	z-index:100;
        }

        .map_modal > div {
    background-color: var(--main-background);
    position: absolute;
    width: 30rem;
    height: 24.5rem;
    top: 4rem;
    left: calc(50% - 15rem);
}

        .map_modal > div > h4 {
            background-color: var(--nabu-blau);
            color: var(--nav-main-link-color);
            text-align: center;
            margin-top: 0;
            font-size: 1rem;
            line-height: 2.5rem;
        }

        .map_modal > div > div {
            padding: 0 1rem 1rem 1rem;
        }

        .map_modal label, .map_modal input, .map_modal textarea, .map_modal select {
            display:block;
            width:100%;
            box-sizing: border-box ;
        }

        .map_modal label {
            font-weight:bold;
        }

        .map_modal input, .map_modal textarea, .map_modal select {
            margin-bottom:1rem;
            border:1px solid var(--nabu-blau);
            color:var(--nabu-blau);
        }

        .map_modal_buttons {
            display: flex;
            justify-content: space-between;
        }

        button.map_btn_del {
            background: none;
            border: 1px solid red;
            color: red;
            padding: 0.5rem;
        }

        button.map_btn_save {
            color: #fff;
            background-color: var(--nabu-blau);
            border: 0;
            font-weight: bold;
            padding: 0.5rem;
        }





	section.ne_terminblock {
      display: flex;
      flex-direction: column;
      margin-bottom: 3rem;
    }

    .ne_terminkopf {
      background-color: var(--body-background);
      padding: 0.5rem !important;
      display: flex;
      align-items: center;
    }

    span.ne_datum {
      flex-grow: 1;
      flex-shrink: 1;
	  font-weight:bold;
    }

    picture.ne_auszeichnung {
      width: 2.5rem;
      height: 2.5rem;
      border: 0.2rem solid var(--text-highlight);
      margin-left: 0.5rem;
      box-sizing: border-box;
      border-radius: 0.5rem;
      background-color: var(--main-background);
	  color:var(--text-highlight);
    }

	img.ne_auszeichnung {
    	width: 100%;
	}

    .ne_terminblock>div {
      padding: 0.2rem 0.5rem;
    }

    .ne_termintitel {
      font-weight: bold;
      padding-top: 0.5rem !important;
      padding-bottom: 0 !important;
    }

    .ne_infotext {
      padding-top: 0 !important;
    }

    .ne_treffpunkt {
      display: flex;
      align-items: flex-start;
    }

    .ne_terminblock label {
      width: 7rem;
      text-decoration: underline;
	  flex-grow:0;
	  flex-shrink:0;
    }

    .ne_treffpunkt>div,
    .ne_leitung>div {
      display: flex;
      flex-direction: column;
    }

    span.ne_treffpunkt_hinweis {
      font-style: italic;
    }

    .ne_leitung {
      display: flex;
      align-items: flex-start;
    }

    span.ne_hinweis {
      font-style: italic;
    }

	span.ne_koordinaten {
    	font-style: italic;
    	background-color: var(--body-background);
    	margin: 0.3rem 0;
    }

/* --- Bilder-Upload (sec_fotos) --- */

.terminwizard section .checkbox_label,
.terminwizard section .foto_loeschen_label {
	display: block;
	font-weight: normal;
	margin: 0.5rem 0 1rem 0;
}

.terminwizard section .checkbox_label input[type="checkbox"],
.terminwizard section .foto_loeschen_label input[type="checkbox"] {
	width: auto;
	display: inline-block;
	margin-right: 0.4rem;
	vertical-align: middle;
}

.foto_hinweis {
	color: var(--nabu-blau);
	font-style: italic;
}

#fotos_bestand {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1rem;
}

.foto_eintrag {
	display: flex;
	flex-direction: row;
	gap: 0.75rem;
	border: 1px solid var(--nabu-blau);
	padding: 0.5rem;
	width: 100%;
	max-width: 26rem;
}

.foto_eintrag .foto_vorschau {
	width: 6rem;
	height: 6rem;
	object-fit: cover;
	flex-shrink: 0;
	border: 1px solid var(--nabu-blau);
}

.foto_eintrag_felder {
	flex-grow: 1;
	min-width: 0;
}

.foto_eintrag_felder label {
	font-weight: bold;
}

.foto_eintrag_felder input[type="text"] {
	display: block;
	width: 100%;
	height: 2rem;
	margin: 0.2rem 0 0.5rem 0;
	color: var(--nabu-blau);
	border: 1px solid var(--nabu-blau);
	font-family: "Source Sans Pro", sans-serif;
}

.foto_upload_zeile {
	border: 1px dashed var(--nabu-blau);
	padding: 0.5rem;
	margin-bottom: 0.75rem;
}

.foto_upload_zeile input[type="file"] {
	display: block;
	width: 100%;
	margin: 0.3rem 0 0.5rem 0;
}

.foto_upload_zeile input[type="text"] {
	display: block;
	width: 100%;
	height: 2rem;
	margin: 0.2rem 0 0.5rem 0;
	color: var(--nabu-blau);
	border: 1px solid var(--nabu-blau);
	font-family: "Source Sans Pro", sans-serif;
}

#foto_hinzufuegen {
	text-align: left;
	margin-bottom: 1rem;
}

/* --- Buchungssteuerung (sec_buchung) --- */

.buchungsliste {
	width: 100%;
	border-collapse: collapse;
	margin: 0.5rem 0 1rem 0;
}

.buchungsliste th,
.buchungsliste td {
	border: 1px solid var(--nabu-blau);
	padding: 0.3rem 0.5rem;
	text-align: left;
	font-size: 0.9rem;
}

.buchungsliste th {
	background-color: #dddddda0;
}

.buchung_aktionen a {
	display: inline-block;
	margin-right: 0.5rem;
	color: var(--nabu-blau);
}

.buchung_aktionen a.buchung_stornieren {
	color: #C92600;
}

/* --- Buchungsaktionen als Formulare (statt reiner Links, CSRF-fähig) --- */

.buchung_inline_form {
	display: inline-block;
	margin: 0 0.5rem 0 0;
}

.buchung_inline_form button {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--nabu-blau, #1a5632);
	text-decoration: underline;
	cursor: pointer;
}

.buchung_inline_form button.buchung_stornieren {
	color: #C92600;
}

/* --- Navigation (eigenständige Anwendung, ersetzt Contenido-Seitenrahmen) --- */

.ne_nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--nabu-blau, #1a5632);
	color: #fff;
	padding: 0.6rem 1rem;
	margin-bottom: 1rem;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ne_nav_titel {
	font-weight: bold;
	margin-right: 1.5rem;
}

.ne_nav_links a {
	color: #fff;
	margin-right: 1rem;
	text-decoration: none;
}

.ne_nav_links a:hover {
	text-decoration: underline;
}

.ne_nav_nutzer {
	font-size: 0.9rem;
}

.ne_nav_nutzer a {
	color: #fff;
	margin-left: 0.75rem;
}

/* --- Badges (Terminliste, Nutzerliste) --- */

.ne_badge {
	display: inline-block;
	font-size: 0.75rem;
	padding: 0.1rem 0.5rem;
	border-radius: 0.2rem;
	background: var(--nabu-blau, #1a5632);
	color: #fff;
	margin-left: 0.5rem;
	vertical-align: middle;
}

.ne_badge_warnung {
	background: #C92600;
}

.ne_hinweis_klein {
	font-weight: normal;
	font-size: 0.85rem;
	font-style: italic;
}

/* --- Nutzerverwaltung: Veranstalter-Zuordnungszeilen --- */

.zuordnung_zeile {
	display: flex;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}

.zuordnung_zeile select {
	flex: 1;
}
