/*==========================================================================================================================================
																	A L L G E M E I N
===========================================================================================================================================*/
body {
	font-size:16px; /* um Bootstrap-Default von 14px zu overriden */
}
footer p {
	color:grey;
}
footer {
	margin-top:50px;
}

nav {
	margin-bottom:20px;
}

input[type="datetime-local"], input[type="text"], input[type="number"], select.bg, textarea.bg {
	background: linear-gradient(180deg, #FFAA00, #fff);
}
input[type="date"] {
	background: linear-gradient(180deg, #00ff00, #d6ffd8);
}
input[type="time"] {
	background: linear-gradient(180deg, #ff0000 0%, #fff299 56%, #ffffff 100%);
}
textarea {
    field-sizing: content; /* laut Google Gemini seit 2024/2025 supported: Chrome,Edge,Safari */
    min-height: 3em; /* Verhindert das Zusammenfallen auf 0 */
    resize: none;    /* Verhindert manuelles Ziehen durch den User */
}
/*
input[type="number"].bg-lightblue, input[type="text"].bg-lightblue {
	background-color:lightblue !important;
}
*/

/*==========================================================================================================================================
														 F U N K T I O N A L E S
													  (iVm shared_assets/js/core.js)
===========================================================================================================================================*/
.ajax-disabling { /* von Google Gemini, 2026.03.06 */
    pointer-events: none; /* Verhindert weitere Klicks */
    opacity: 0.6;
    transition: opacity 0.3s ease;
    cursor: not-allowed;
}
/* Das Element, das geTOGGLEd wird */
.fade-target {
    opacity: 0;
    display: none;
    transition: opacity 0.4s ease, display 0.4s allow-discrete;
}
.fade-target.is-visible {
    display: block;
    opacity: 1;
}
/* Der Startpunkt für das Einblenden */
@starting-style {
    .fade-target.is-visible {
        opacity: 0;
    }
}
/* __smooth TOGGLE__ */
/* Generische Klasse für alle Toggle-Container */
.ajax-collapsible {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    visibility: hidden;
    transition: grid-template-rows 0.4s ease, opacity 0.4s ease, visibility 0.4s;
    overflow: hidden;
}
/* Der sichtbare Zustand */
.ajax-collapsible.is-visible {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
}
/* WichtigST: Der Inhalt muss in einem inneren Div liegen [Google Gemini, 2026.03.12] */
.ajax-collapsible > div {
    min-height: 0;
}

/*==========================================================================================================================================
																K L A S S E N
																  allgemein
===========================================================================================================================================*/
.bg_blau {background-color:blue;}
.bg_boerseninvest_aktie {
	background:url(../img/icons/aktie.png); /* zieht IMG aus shared_assets */
    background-repeat: repeat-x;
    background-size: contain;
}
.bg_boerseninvest_etf {
	background:url(../img/icons/etf.png); /* zieht IMG aus shared_assets */
    background-repeat: repeat-x;
    background-size: contain;
}
.bg_braun {background-color:brown;}
.bg_diagonal_blau {
	/* formerly: .bg-gradient-blau-diagonal */
	background: linear-gradient(135deg, #EDEDED 0%, #093679 100%);
}
.bg_diagonal_dreifarbig_blau_rot_weiss {
	background: linear-gradient(180deg, #FF0000 0%, #00B8FE 60%, #FFFFFF 90%);	
}
.bg_diagonal_hellblau {
	/* formerly: .bg-gradient-hellblau-diagonal */
	background: linear-gradient(135deg, #b0eafc, #05abe0);
}
.bg_diagonal_zweifarbig_blaurot {
	/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#1e5799+0,ff1500+100 */
	background: linear-gradient(45deg, #1e5799, #ff1500);
}
.bg_diagonal_zweifarbig_hellorange {
	/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f7efde+0,f7dc96+50,f7ca59+51,f9e8bd+100 */
	background: linear-gradient(135deg, #f7efde 0%, #f7dc96 50%, #f7ca59 51%, #f9e8bd 100%);
}
.bg_diagonal_zweifarbig_hellgrau {
	/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f7f7f7+0,e2e2e2+50,dbdbdb+51,fefefe+100 */
	background: linear-gradient(135deg, #f7f7f7 0%, #e2e2e2 50%, #dbe9d9 51%, #fefefe 100%);
}
.bg_diagonal_zweifarbig_hellgrau_weiss { /* 13.6.2014 hier kreiiert: http://www.colorzilla.com/gradient-editor/ */
	background: linear-gradient(45deg, #ffffff 0%, #f1f1f1 50%, #e1e1e1 51%, #f6f6f6 100%);
}
.bg_gelb {background-color:yellow;}
.bg_gold {background-color:gold;}
.bg_gradient_schwarz_hellgrau_schwarz {
	/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#191308+0,ededed+31,ededed+71,191308+100 */
	background: linear-gradient(to right, #191308 0%, #ededed 31%, #ededed 71%, #191308 100%);
}
.bg_gradient_dreifarbig_braun_blau_weiss {
	background: linear-gradient(229deg, #6e340e 11%, #0a4bff 42%, #ffffff 69%);
}
.bg_gradient_zweifarbig_weiss_braun {
	background: linear-gradient(135deg, #ffffff 0%, #d6d6d6 11%, #a3633e 49%, #aa6958 61%, #bf6e4e 100%);
}
.bg_gradient_zweifarbig_weiss_rot {
	background: linear-gradient(135deg, #ffffff 0%, #fefcea 35%, #ffa5a5 47%, #ff0000 100%);
}
.bg_gruen {background-color:green;}
.bg_gruen_semitransparent {background-color:#ccff99;}
.bg_hellblau {background-color:lightblue;}
.bg_hellgrau {background-color:lightgrey;}
.bg_hellgruen {background-color:lime;}
.bg_img_suche {
    background:url(../img/suchen_lupe.png); /* zieht IMG aus shared_assets/img/ */
    background-repeat: repeat-x;
    background-size: contain;
}
.bg_orange {background-color:orange;}
.bg_pink {background-color:pink;}
.bg_rot {background-color:red;}
.bg_tomato {background-color:#FF6347;}
.bg_top-to-bottom_blau {
	background: linear-gradient(180deg, #6db3f2 0%, #54a3ee 50%, #3690f0 51%, #0058dd 100%);
}
.bg_top-to-bottom_gelb {
	background: linear-gradient(180deg, #fefcea 0%, #fffba0 50%, #fff572 53%, #ffe500 100%);
}
.bg_top-to-bottom_gruen {
	background: linear-gradient(180deg, #21ff00 0%, #e5fcbd 50%, #a5f41d 51%, #fcfcfc 100%);
}
.bg_top-to-bottom_limegreen {
	background: linear-gradient(180deg, #00ff0d 65%, #ffffff 100%);
}
.bg_top-to-bottom_orange {
	background: linear-gradient(180deg, #ffb76b 0%, #ffa73d 50%, #ff7c00 51%, #ff7f04 100%);
}
.bg_top-to-bottom_rot {
	background: linear-gradient(180deg, #fff4f4 0%, #ff9b9b 50%, #ff8787 51%, #ff0000 100%);
}
.bg_top-to-bottom_rot_to_weiss {
	background: linear-gradient(180deg, #ff0000 47%, #ffffff 100%);
}
.center {text-align:center;}
.bg_schwarz {background-color:black;}
.bg_weiss {background:white;}
.border_1_solid_bmbblau {border:1px solid #7197D8;}
.borderradius_10 {border-radius:10px;}
.color_blau {color:blue;}
.color_braun {color:brown;}
.color_darkgray {color:darkgray;}
.color_dunkelblau {color:darkblue;}
.color_firebrick {color:firebrick;}
.color_grau {color:grey;}
.color_gruen {color:green;}
.color_hellblau {color:lightblue;}
.color_hellgrau {color:lightgrey;}
.color_hellgruen {color:lightgreen;}
.color_rot {color:red;}
.color_rot_bg_gelb {color:red;background-color:yellow;}
.color_weiss {color:white;}
.dontdisplay, .dontshow {display:none;}
.durchstreichen {text-decoration:line-through;}
.eintragsuccess {background-color:#00FF00;color:#000;}
.eintragfailed {background-color:#FF0000;color:#404040;}
.em0_6 {font-size:0.6em;}
.em0_8 {font-size:0.8em;}
.em1_2 {font-size:1.2em;}
.em1_3 {font-size:1.3em;}
.em1_5 {font-size:1.5em;}
.em1_8 {font-size:1.8em;}
.em2_0 {font-size:2em;}
.em3_0 {font-size:3em;}
.fett {font-weight:bold;}
.float_links {float:left;}
.kursiv {font-style:italic;}
.margin10 {margin: 10px;}
.marginbottom10 {margin-bottom:10px;}
.marginbottom20 {margin-bottom:20px;}
.marginbottom25 {margin-bottom:25px;}
.marginbottom50 {margin-bottom:50px;}
.margintop10 {margin-top:10px;}
.margintop25 {margin-top:25px;}
.margintop50 {margin-top:50px;}
.pos-absolute {position:absolute;}
.pos-relative {position:relative;}
.regularienbutton_pos {top:15px;right:0px;}
.spieltippenlist:nth-child(even) {background: #EEE;}	/* s. _admin_tipp_eingabe.php bzw. zeigeSpiele("tippen") */
.spieltippenlist:nth-child(odd) {background: #FFF;} 	/* "" */
.thisresponsive {max-width:100%;height:auto;}
.unterstrich {text-decoration:underline;}
.width_fifty {width:50%;}
/* special Klassen (wenn eigentlich ID zweckmäßig wäre, es wie bei AJAX-Suchtreffer-Return bei \Allgemeines\zeigeSucheForm() aber net geht) */
.mediumsuchecheckedboxesmenge {margin-top:10px;margin-bottom:10px;padding:5px;background:#E9E9E9;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;}

/*==========================================================================================================================================
																 F I L E S
												(fileUploaderForm() etc. | shared_lib/Files.php)
===========================================================================================================================================*/
.audio-preview {
    display: block !important;    /* Verhindert das Kollabieren als Inline-Element */
    width: 100% !important;       /* Nutzt die volle Breite des Containers */
    min-height: 40px !important;  /* Erzwingt eine sichtbare Höhe für die Controls */
    margin-top: 10px;
    margin-bottom: 10px;
    background-color: #f1f3f4;    /* Leichter Hintergrund, falls der Player transparent ist */
    border-radius: 8px;           /* Schickere Ecken */
}
.individual-description {
	width: 100%;
	margin-top: 5px;
}
.no-preview {
    max-width: 150px;
    display: block;
    margin-bottom: 10px;
}
.preview-item {
	margin-bottom: 20px;
	padding: 10px;
	border: 1px solid #ccc;
}
.upload-preview {
	max-width: 150px;
	max-height: 150px;
	border-radius: 4px;
	border: 1px solid #ccc;
	background: #eee;
	/* nachfolgendes bis 2026.03.22, 17h21
	max-width: 100%;
	height: auto;
	*/
}

/*==========================================================================================================================================
																S U C H E
===========================================================================================================================================*/
mark.highlight {
    background-color: #ffeb3b; /* Klassisches Gelb */
    padding: 0.1em 0.2em;
    border-radius: 2px;
    font-weight: bold;
    color: #000;
}

/*==========================================================================================================================================
											P O P O V E R   /   P O P U P   /   M o d a l
===========================================================================================================================================*/
/* ::::: (1) mit TRIGGER zum öffnen ::::::: */
/* 1.1 Der Grundzustand des Popovers (wenn es offen ist) */
[popover]:popover-open {
    opacity: 1;
    transform: scale(1);
    transition: 
        opacity 0.3s ease-out,
        transform 0.3s ease-out,
        display 0.3s allow-discrete,
        overlay 0.3s allow-discrete;
}
/* 1.2 Der Startzustand DIREKT vor dem Öffnen (Animation-Start) */
@starting-style {
    [popover]:popover-open {
        opacity: 0;
        transform: scale(0.95);
    }
}
/* 1.3 Der Zustand wenn es geschlossen ist (für das Ausblenden) */
[popover] {
    opacity: 0;
    transform: scale(0.95);
    transition: 
        opacity 0.3s ease-in,
        transform 0.3s ease-in,
        display 0.3s allow-discrete,
        overlay 0.3s allow-discrete;
}
/* 1.4 Den Hintergrund (Backdrop) ebenfalls animieren */
[popover]::backdrop {
    background-color: rgba(0, 0, 0, 0);
    transition: 
        display 0.3s allow-discrete, 
        overlay 0.3s allow-discrete, 
        background-color 0.3s;
}
[popover]:popover-open::backdrop {
    background-color: rgba(0, 0, 0, 0.5);
}
/* 1.5 Styling für das Popup & X */
.modal_styling {
	margin: auto; /* Zentriert das Popover automatisch im Viewport */
	padding: 2rem;
	border: none;
	border-radius: 8px;
	box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}
.close_modal_btn {
	position: absolute;
	top: 10px;
	right: 15px;
	font-size: 28px;
	font-weight: bold;
	color: #aaa;
	cursor: pointer;
	line-height: 1;
	user-select: none;
	transition: color 0.2s ease;
}
.close_modal_btn:hover {
	color: #333;
}

/* ::::: (2) on Page load (Gemini, 2026.08.31) ::::::: */
/* 2.1 STEUERUNG (Unsichtbare Checkbox) */
.popup-checkbox {
	display: none;
}

/* 2.2 HINTERGRUND-OVERLAY (Dunkler Backdrop) */
.popup-backdrop {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.6); /* Dunkler, transparenter Hintergrund */
	z-index: 9999;
  
	/* Flexbox zentriert das Popup exakt in der Mitte des Bildschirms */
	display: flex;
	justify-content: center;
	align-items: center;
  
	/* Standardmäßig unsichtbar für den Einblend-Effekt */
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* 2.3 DIE POPUP-BOX (Das eigentliche Modal) */
.mein-modal-styling {
	position: relative; /* Wichtig für die absolute Positionierung des "X" */
	padding: 20px;
	background: white;
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
	transform: scale(0.3); /* initial: 0.8 */
	transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1); /* Ein leichter Bounce-Effekt, initial: 0.3s */

	/* Magische Maße für das Popup */
	width: max-content;   /* Passt sich dem Inhalt an, wenn dieser kleiner ist */
	max-width: 85vw;      /* Maximal 85% der Bildschirmbreite */
	max-height: 85vh;     /* Maximal 85% der Bildschirmhöhe */
  
	/* Falls Text dabei ist und es doch mal zu groß wird */
	overflow: hidden;     
	display: flex;
	flex-direction: column;
}
.mein-modal-styling img {
	max-width: 100%;      /* Dehnt sich nie weiter aus als das Popup erlaubt */
	max-height: 65vh;     /* Begrenzt die Höhe, damit noch Platz für Buttons/Text bleibt */
	object-fit: contain;  /* Skaliert das Bild sauber, ohne es zu verzerren */
	height: auto;         /* Behält das Seitenverhältnis bei */
	width: auto;          /* Behält das Seitenverhältnis bei */
	display: block;
	margin: 0 auto;       /* Zentriert das Bild im Popup */
}

/* 2.4 SCHLIESSEN-ELEMENTE (X und Buttons) */
/* Das "X" oben rechts */
.close-x {
	position: absolute;
	top: 10px;
	right: 15px;
	font-size: 28px;
	font-weight: bold;
	color: #aaa;
	cursor: pointer;
	line-height: 1;
	user-select: none;
	transition: color 0.2s ease;
}
.close-x:hover {
	color: #333;
}
/* Der Schließen-Button unten */
/*
.btn-secondary {
	display: inline-block;
	margin-top: 15px;
	padding: 8px 16px;
	background: #6c757d;
	color: white;
	border-radius: 4px;
	cursor: pointer;
	user-select: none;
	text-decoration: none;
	transition: background 0.2s ease;
}
.btn-secondary:hover {
	background: #5a6268;
}
*/

/* 2.5 AKTIVER ZUSTAND (Wenn Checkbox "checked" ist) */
/* Blendet das Hintergrund-Overlay sanft ein */
.popup-checkbox:checked ~ .popup-backdrop {
	opacity: 1;
	visibility: visible;
}
/* Animiert die Popup-Box auf Normalgröße */
.popup-checkbox:checked ~ .popup-backdrop .mein-modal-styling {
	transform: scale(1);
}

/*==========================================================================================================================================
													T A B E L L E N, L I S T E N  etc.
===========================================================================================================================================*/ 
ul.gelddev li:first-child { /* O4A: Finanzen-Query */
	background-color:#FF0000;
	font-size:3em;
	font-weight:bold;
	text-shadow: 3px 3px 5px #fff;
}
ul.gelddev li { /* O4A: Finanzen-Query */
	border:1px solid #999;
	border-radius:5px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
	background-color: white !important;
}

.table.table-unruled>tbody>tr>td, .table.table-unruled>tbody>tr>th {
	/* für RAHMEN-lose Tabellen, s. "Ergebnisse und Tipps beendeter Matches" & aktive Matches auf index.php ---- taken: [2019.09.05] https://stackoverflow.com/questions/18075794/bootstrap-table-without-stripe-borders */
	border-top: 0 none transparent;
	border-bottom: 0 none transparent;
}
 
/*==========================================================================================================================================
																I M A G E S
===========================================================================================================================================*/ 
/* POLAROID IMGs */
div.polaroid {
	width: 100%;
	background-color: white;
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
	margin-bottom: 25px;
}
div.imgcaption {
	text-align: center;
	padding: 10px 20px;
}

/* Flexbox für Bootstrape 3-Markup (s. BMB/sd_bilder.php, Stand 2026.07.14) */
.row-flex {
	/* Verhindert das Layout-Brechen bei ungleichen Bildhöhen ohne Clearfix */
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-flex-wrap: wrap;
		-ms-flex-wrap: wrap;
			flex-wrap: wrap;
}
/* Optional: Erzwingt, dass alle Boxen in einer Reihe exakt gleich hoch sind */
.row-flex > [class*='col-'] {
	display: flex;
	flex-direction: column;
}
/* Richtet den Inhalt der Thumbnail-Box vertikal aus */
.flex-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  margin-bottom: 20px; /* Gleichmäßiger Abstand nach unten */
}

/* Drückt den Textbereich nach unten, falls das Bild kleiner ist */
.flex-card .caption {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Formatierung für die Textreihen */
/*.text-title { margin-top: 5px; margin-bottom: 2px; font-weight: bold; }*/
/*.text-meta  { margin-bottom: 5px; color: #777; font-size: 85%; }*/
.text-desc  {
	margin-bottom: 0;
}

/*==========================================================================================================================================
													I M A G E   C A R O U S E L
															(Bootstrap)
===========================================================================================================================================*/ 
.carousel-inner > .item > img, .carousel-inner > .item > a > img {
	width: 100%; /* ist Bild-Breite - 100% == Controls (< >) hovern ÃœBER Bild */
	margin: auto;
}

.slider-size {
	height: 800px; /* This is your slider height */
}
.carousel {
	width:100%; 
	margin:0 auto; /* center your carousel if other than 100% */ 
}

/*==========================================================================================================================================
													S K E L E T O N    S C R E E N S
														(graue Boxen, Lade-Grafik)
										[2026.03.05 von Google Gemini / siehe \shared_assets\js\core_js.js]
===========================================================================================================================================*/ 
.skeleton {
    background: #eee;
    background: linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%);
    border-radius: 5px;
    background-size: 200% 100%;
    animation: 1.5s shine linear infinite;
}
@keyframes shine {
    to { background-position-x: -200%; }
}

/*==========================================================================================================================================
																<hr>
===========================================================================================================================================*/ 
hr.fadeout_both_sides {
    border: 0;
    height: 1px;
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
}

/*==========================================================================================================================================
													M E D I A   Q U E R I E S
===========================================================================================================================================*/ 
@media (min-width: 979px) { /*######### DESKTOP ###########*/
	ul.nav li.dropdown:hover > ul.dropdown-menu {
		/* blendet Dropdown-Menü ON HOVER ein, nicht erst ON CLICK */
		display: block;
	}
}
@media (max-width: 979px) { /*######### MOBIL ###########*/
	.slider-size {
		/* IMAGE CAROUSEL-Höhe net 800px belassen sondern nur Hälfte (siehe besetzung.php (QUERBEET-Slider)) */
		height: 400px;
	}
}

/*==========================================================================================================================================
															L A D E G R A F I K
											   [2018.01.19 von http://tobiasahlin.com/spinkit/ ]
===========================================================================================================================================*/ 
.spinner {
	/*margin: 100px auto;*/
	width: 50px;
	height: 20px;
	text-align: left;
	font-size: 10px;
}
.spinner > div {
	background-color: #333;
	height: 100%;
	width: 6px;
	margin:0.1em; /* ABSTAND zwischen einzelnen Balken */
	display: inline-block;
	-webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
	animation: sk-stretchdelay 1.2s infinite ease-in-out;
}
.spinner .rect2 {
	-webkit-animation-delay: -1.1s;
	animation-delay: -1.1s;
}
.spinner .rect3 {
	-webkit-animation-delay: -1.0s;
	animation-delay: -1.0s;
}
.spinner .rect4 {
	-webkit-animation-delay: -0.9s;
	animation-delay: -0.9s;
}
.spinner .rect5 {
	-webkit-animation-delay: -0.8s;
	animation-delay: -0.8s;
}
@-webkit-keyframes sk-stretchdelay {
  0%, 40%, 100% { -webkit-transform: scaleY(0.4) }  
  20% { -webkit-transform: scaleY(1.0) }
}
@keyframes sk-stretchdelay {
	0%, 40%, 100% { 
		transform: scaleY(0.4);
		-webkit-transform: scaleY(0.4);
	}
	20% { 
		transform: scaleY(1.0);
		-webkit-transform: scaleY(1.0);
	}
}

/*==========================================================================================================================================
															W A K E   L O C K - A P I
							   ("Bildschirm eingeschaltet lassen" / 2026.08: s. schmeckemusses.de/rezepte.php)
===========================================================================================================================================*/ 
.fixed-bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 9999; /* Bleibt immer im Vordergrund */
  
  /* Styling für die Bar */
  background-color: #222;
  color: white;
  padding: 12px;
  text-align: center;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.2);
  
  /* Flexbox für schönes Layout von Text und Button */
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  font-family: sans-serif;
}
.wake-lock-toggle {
  background-color: #e0e0e0;
  border: none;
  padding: 6px 12px;
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
  transition: background 0.3s;
}