/*
 * ❤ PROJECT NIRAK ❤ MMXXVI.I
 *
 * Copyright (c) 2026
 * Made with heart ❤ and much coffee ☕ by Project Nirak
 *
 * @version   Nirak 2026.1 - 2.0.1
 * @author    Project Nirak - Nikolaus Flamann <development@nirak.at>
 * @license   Nirak Custom License (NCL) v1.1 - https://nirak.at/license/ncl
 * @copyright Modification Copyright (c) OpenDXP (https://www.opendxp.ch)
 * @license   https://www.gnu.org/licenses/gpl-3.0.html  GNU General Public License version 3 (GPLv3)
 */

/*
 * Tarte au Citron CSS Dark Theme by Project Nirak
 */

:root {
	--tac-bg: #181a1f;
	--tac-bg-elev1: #202228;
	--tac-bg-elev2: #272a31;
	--tac-border: #343845;
	--tac-divider: #2a2d35;

	--tac-text: #e6e6ec;
	--tac-text-muted: #aaadb8;
	--tac-heading: #ffffff;

	--tac-allow: #2ecc71;
	--tac-deny: #e74c3c;
	--tac-accent: #4fa3ff;
}

#tarteaucitronRoot,
#tarteaucitronRoot * {
	box-sizing: border-box;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	text-shadow: none;
}

#tarteaucitronRoot ul,
#tarteaucitronRoot ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

#tarteaucitronRoot li::marker,
#tarteaucitronRoot li::before {
	content: none !important;
}

/* ------------------------------
   OVERLAY & ROOT
---------------------------------*/
#tarteaucitronRoot {
	position: fixed;
	inset: 0;
	z-index: 696969; /* for my Ex Lady */
	pointer-events: none; /* only dialogue clickable */
}

#tarteaucitronBack {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .75);
	border: none;
	padding: 0;
	margin: 0;
	cursor: default;
	pointer-events: auto;
	display: none;
}

/* ------------------------------
   MAIN DIALOGUE
---------------------------------*/
#tarteaucitron {
	position: relative;
	max-width: 960px;
	margin: 15px auto 0;
	background: var(--tac-bg);
	border-radius: 12px;
	border: 1px solid var(--tac-border);
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.65);
	overflow: hidden;
	pointer-events: auto;
	padding-bottom: 18px;
	display: none;
	z-index: 696970;
}

/* Close top left (close button) */
#tarteaucitronClosePanel {
	position: absolute;
	top: 12px;
	left: 16px;
	background: var(--tac-bg-elev2);
	border-radius: 999px;
	border: 1px solid var(--tac-border);
	color: var(--tac-text-muted);
	font-size: 13px;
	padding: 5px 16px;
	cursor: pointer;
}

#tarteaucitronClosePanel:hover {
	color: var(--tac-heading);
	border-color: var(--tac-accent);
}

/* ------------------------------
   HEADER AREA (MainLine)
---------------------------------*/
#tarteaucitronServices {
	margin: 0;
	padding: 0 24px 8px;
}

#tarteaucitronServices .tarteaucitronHidden {
	display: none;
	position: relative
}

#tarteaucitronMainLineOffset {
	background: var(--tac-bg-elev1);
	border-radius: 8px;
	margin-top: 24px;
	padding: 20px 20px 18px;
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	grid-template-rows: auto auto;
	grid-column-gap: 32px;
	grid-row-gap: 12px;
}

#tarteaucitronMainLineOffset .tarteaucitronH1 {
	grid-column: 1 / 2;
	grid-row: 1 / 2;
	font-size: 22px;
	font-weight: 600;
	color: var(--tac-heading);
}

#tarteaucitronInfo {
	grid-column: 1 / 2;
	grid-row: 2 / 3;
	font-size: 14px;
	color: var(--tac-text-muted);
	line-height: 1.5;
}

#tarteaucitronInfo p {
	margin: 0;
}

#tarteaucitronPrivacyUrlDialog {
	margin-top: 18px;
	background: transparent;
	border-radius: 999px;
	border: 1px solid var(--tac-border);
	color: var(--tac-text-muted);
	font-size: 13px;
	padding: 6px 18px;
	cursor: pointer;
}

#tarteaucitronPrivacyUrlDialog:hover {
	border-color: var(--tac-accent);
	color: var(--tac-heading);
}

/* Heading "Settings for all services" */
#tarteaucitronMainLineOffset .tarteaucitronName {
	grid-column: 2 / 3;
	grid-row: 1 / 2;
	align-self: end;
	text-align: right;
}

#tarteaucitronMainLineOffset .tarteaucitronH2 {
	font-size: 15px;
	font-weight: 500;
	color: var(--tac-text);
}

/* Global Allow/Deny Buttons */
#tarteaucitronMainLineOffset .tarteaucitronAsk {
	grid-column: 2 / 3;
	grid-row: 2 / 3;
	text-align: right;
}

#tarteaucitronAllAllowed,
#tarteaucitronAllDenied {
	display: inline-block;
	min-width: 170px;
	padding: 9px 18px;
	border-radius: 9px;
	border: none;
	font-weight: 600;
	font-size: 14px;
	color: #fff;
	cursor: pointer;
	margin-left: 8px;
}

#tarteaucitronAllAllowed {
	/*background: var(--tac-allow);*/
}

#tarteaucitronAllDenied {
	/*background: var(--tac-deny);*/
}

#tarteaucitronAllAllowed:hover,
#tarteaucitronAllDenied:hover {
	filter: brightness(1.1);
}

/* ------------------------------
   SERVICE-LISTE (Border + ULs)
---------------------------------*/
.tarteaucitronBorder {
	margin-top: 20px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--tac-bg-elev1);
	border: 1px solid var(--tac-border);
}

/* Category title (APIs, visitor counting services, etc.) */
.tarteaucitronTitle {
	background: var(--tac-bg-elev2);
	border-bottom: 1px solid var(--tac-divider);
	padding: 10px 20px;
}

.tarteaucitronTitle button {
	background: none;
	border: none;
	padding: 0;
	font-size: 14px;
	font-weight: 500;
	color: var(--tac-text);
	cursor: pointer;
}

/* "+" Icon */
.tarteaucitronPlus::before {
	content: "+";
	margin-right: 8px;
}

/* Category info text (details) */
.tarteaucitronDetails {
	padding: 10px 20px 12px;
	font-size: 13px;
	color: var(--tac-text-muted);
	background: var(--tac-bg-elev1);
	border-bottom: 1px solid var(--tac-divider);
}

/* Summary line per category (with group switch) */
.tarteaucitronBorder > ul > li > ul > li.tarteaucitronLine:first-child {
	border-top: 1px solid var(--tac-divider);
}

/* ------------------------------
   Individual lines (services/groups)
---------------------------------*/
.tarteaucitronLine {
	padding: 12px 20px;
	border-bottom: 1px solid var(--tac-divider);
	background: var(--tac-bg-elev1);
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

/* left section (name, description, links) */
.tarteaucitronName {
	flex: 1 1 auto;
}

.tarteaucitronH3 {
	font-size: 15px;
	font-weight: 500;
	color: var(--tac-heading);
	display: block;
	margin-bottom: 4px;
}

.tarteaucitronName > span:not(.tarteaucitronH3):not(.tarteaucitronListCookies) {
	font-size: 13px;
	color: var(--tac-text-muted);
}

/* Small Status Info + Links */
.tarteaucitronStatusInfo {
	font-size: 12px;
	color: var(--tac-text-muted);
	margin: 4px 0 2px;
}

.tarteaucitronReadmoreSeparator {
	color: var(--tac-text-muted);
}

.tarteaucitronReadmoreInfo,
.tarteaucitronReadmoreOfficial {
	font-size: 12px;
	color: var(--tac-accent);
	text-decoration: none;
}

.tarteaucitronReadmoreInfo:hover,
.tarteaucitronReadmoreOfficial:hover {
	text-decoration: underline;
}

/* right-hand side (buttons) */
.tarteaucitronAsk {
	flex: 0 0 auto;
	text-align: right;
	white-space: nowrap;
}

.tarteaucitronAsk button {
	float: right;
	margin-bottom: 8px;
}

/* Buttons – Variation A, without emojis (you must adjust the text in JS) */
.tarteaucitronAllow,
.tarteaucitronDeny {
	display: inline-block;
	padding: 7px 16px;
	border-radius: 999px;
	border: none;
	font-size: 13px;
	font-weight: 600;
	color: #ffffff;
	cursor: pointer;
	margin-left: 6px;
}

/** Madatory Fields are allways checked ! */

#tarteaucitronServices_mandatory {
	/*pointer-events: none;	*/
}

#tarteaucitronServices_mandatory .tarteaucitronLine .tarteaucitronName {
	padding:0;
}

#tarteaucitronServices_mandatory .tarteaucitronLine .tarteaucitronName br,
#tarteaucitronServices_mandatory .tarteaucitronLine .tarteaucitronListCookies,
#tarteaucitronServices_mandatory .tarteaucitronLine .tarteaucitronAsk
{
	display: none;
}

#tarteaucitronServices_mandatory .tarteaucitronAllow {
	background: var(--tac-text-muted);
}
#tarteaucitronServices_mandatory .tarteaucitronAllow:before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	border-radius: 3px;
	background: transparent;
	border: 2px solid currentColor;
	position: absolute;
	left: 10px;
	top: 50%;
	transform: translateY(-50%);
}

.tarteaucitronDeny {
	/*background: var(--tac-deny);*/
}

/* kleine Icons im Button */
.tarteaucitronCheck::before,
.tarteaucitronCross::before {
	display: inline-block;
	font-size: 13px;
	margin-right: 6px;
}

.tarteaucitronCheck::before {
	/*content: "✔";*/
}

.tarteaucitronCross::before {
	/*content: "✖";*/
}

.tarteaucitronAllow:hover,
.tarteaucitronDeny:hover {
	filter: brightness(1.12);
}

/* Visual indicator for isAllowed / isDenied */
.tarteaucitronIsAllowed .tarteaucitronAllow {
	box-shadow: 0 0 0 1px var(--tac-allow);
}

.tarteaucitronIsDenied .tarteaucitronDeny {
	box-shadow: 0 0 0 1px var(--tac-deny);
}

/* =====================================================
   THREE-STATE BUTTON DESIGN (Neutral / Allowed / Denied)
   ===================================================== */

/* ---------- Base Button ---------- */
#tarteaucitronRoot .tarteaucitronAllow,
#tarteaucitronRoot .tarteaucitronDeny {
	position: relative;
	padding: 6px 18px 6px 34px !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	border: 1px solid transparent !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
}

/* ---------- Checkbox Icon ---------- */
#tarteaucitronRoot .tarteaucitronAllow::before,
#tarteaucitronRoot .tarteaucitronDeny::before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	border-radius: 3px;
	background: transparent;
	border: 2px solid currentColor;
	position: absolute;
	left: 10px;
	top: 50%;
	transform: translateY(-50%);
}

/* Checkmark (only visible if pressed) */
#tarteaucitronRoot .tarteaucitronAllow::after,
#tarteaucitronRoot .tarteaucitronDeny::after {
	content: "✔";
	position: absolute;
	left: 12px;
	top: 47%;
	transform: translateY(-50%);
	font-size: 12px;
	font-weight: 700;
	opacity: 0;
}

/* ---------- 1) Neutral (no selection) ---------- */
/*#tarteaucitronRoot .tarteaucitronAsk button:not([aria-pressed]),*/
/*#tarteaucitronRoot .tarteaucitronAsk button[aria-pressed=""] {*/
/*	background: #3d3f45 !important;*/
/*	color: #b8bac2 !important;*/
/*	border-color: #50525a !important;*/
/*	cursor: pointer !important;*/
/*}*/

/* no checkmark in neutral */
#tarteaucitronRoot .tarteaucitronAsk button:not([aria-pressed])::after {
	opacity: 0 !important;
}

/* hover (neutral) */
#tarteaucitronRoot .tarteaucitronAsk button:not([aria-pressed]):hover {
	background: #46484f !important;
}

/* ---------- 2) Allowed ---------- */
#tarteaucitronRoot .tarteaucitronAllow[aria-pressed="true"] {
	background: var(--tac-allow) !important;
	color: #ffffff !important;
	border-color: var(--tac-allow) !important;
}

#tarteaucitronRoot .tarteaucitronAllow[aria-pressed="true"]::after {
	opacity: 1 !important;
}

/* ---------- 3) Denied ---------- */
#tarteaucitronRoot .tarteaucitronDeny[aria-pressed="true"] {
	background: #c92a2a !important;
	color: #ffffff !important;
	border-color: var(--tac-deny) !important;
}

#tarteaucitronRoot .tarteaucitronDeny[aria-pressed="true"]::after {
	opacity: 1 !important;
}

/* ------------------------------
   Toggle buttons "Privacy settings (x)"
---------------------------------*/
.tarteaucitron-toggle-group {
	display: inline-block;
	margin-top: 6px;
	background: var(--tac-bg-elev2);
	border-radius: 999px;
	border: 1px solid var(--tac-border);
	color: var(--tac-text-muted);
	font-size: 12px;
	padding: 4px 10px;
	cursor: pointer;
}

.tarteaucitron-toggle-group:hover {
	border-color: var(--tac-accent);
	color: var(--tac-heading);
}

/* ------------------------------
   Cookie list (2 cookies, details)
---------------------------------*/
#tarteaucitronCookiesList {
	padding: 10px 20px 16px;
	background: var(--tac-bg-elev1);
}

#tarteaucitronCookiesNumberBis {
	font-size: 13px;
	color: var(--tac-text);
}

.cookie-list {
	margin-top: 8px;
	background: var(--tac-bg-elev2);
	border-radius: 6px;
	padding: 8px 10px;
}

.cookie-list li {
	display: flex;
	justify-content: space-between;
	padding: 5px 4px;
	font-size: 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.cookie-list li:last-child {
	border-bottom: none;
}

.cookie-list strong {
	color: var(--tac-heading);
}

.purgeBtn {
	background: none;
	border: none;
	color: var(--tac-deny);
	cursor: pointer;
	margin-right: 4px;
}

/* ------------------------------
   FOOTER "Save"
---------------------------------*/
#tarteaucitronSave {
	margin: 10px 24px 0;
	padding-top: 10px;
	border-top: 1px solid var(--tac-divider);
	text-align: right;
}

#tarteaucitronSaveButton {
	background: var(--tac-accent);
	border-radius: 999px;
	border: none;
	padding: 9px 22px;
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
}

#tarteaucitronSaveButton:hover {
	filter: brightness(1.1);
}

/* ------------------------------
   LARGE BAR (AlertBig)
---------------------------------*/
#tarteaucitronAlertBig {
	pointer-events: all;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--tac-bg-elev1);
	color: var(--tac-text);
	padding: 10px 16px;
	border-top: 1px solid var(--tac-border);
	text-align: center;
	display: none;
	z-index: 696969; /* for my Ex Lady */
}

#tarteaucitronDisclaimerAlert {
	display: inline-block;
	margin-right: 10px;
	font-size: 13px;
}

.tarteaucitronCTAButton {
	display: inline-block;
	padding: 7px 16px;
	border-radius: 999px;
	border: none;
	font-size: 13px;
	font-weight: 600;
	margin: 4px 4px 0;
	cursor: pointer;
	color: #fff;
}

#tarteaucitronPersonalize2 {
	background: var(--tac-allow);
}

#tarteaucitronAllDenied2 {
	background: var(--tac-deny);
}

#tarteaucitronCloseAlert {
	background: var(--tac-bg-elev2);
	color: var(--tac-text-muted);
}

#tarteaucitronPrivacyUrl {
	background: transparent;
	border-radius: 999px;
	border: 1px solid var(--tac-border);
	color: var(--tac-text-muted);
	padding: 6px 14px;
	margin-left: 6px;
	cursor: pointer;
}

#tarteaucitronPrivacyUrl:hover {
	border-color: var(--tac-accent);
	color: var(--tac-heading);
}

/* ------------------------------
   SMALL ICON (AlertSmall/Manager)
   – optional, minimally dark
---------------------------------*/
#tarteaucitronAlertSmall {
	position: fixed;
	right: 16px;
	bottom: 16px;
	background: var(--tac-bg-elev2);
	border-radius: 999px;
	border: 1px solid var(--tac-border);
	padding: 4px 10px;
	color: var(--tac-text-muted);
	font-size: 11px;
	z-index: 696970;
}

#tarteaucitronAlertSmall:hover {
	border-color: var(--tac-accent);
}

/* ------------------------------
   RESPONSIVE
---------------------------------*/
@media (max-width: 900px) {
	#tarteaucitron {
		margin: 20px auto;
		width: calc(100% - 32px);
	}

	#tarteaucitronMainLineOffset {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto auto;
		text-align: left;
	}

	#tarteaucitronMainLineOffset .tarteaucitronName,
	#tarteaucitronMainLineOffset .tarteaucitronAsk {
		grid-column: 1 / 2;
		text-align: left;
	}

	#tarteaucitronMainLineOffset .tarteaucitronAsk {
		margin-top: 8px;
	}
	


	#tarteaucitronAllAllowed,
	#tarteaucitronAllDenied {
		width: 48%;
		margin-left: 0;
		margin-right: 2%;
	}

	.tarteaucitronLine {
		flex-direction: column;
		align-items: flex-start;
	}

	.tarteaucitronAsk {
		width: 100%;
		text-align: left;
		margin-top: 6px;
	}
}
