/* Quill content - rendu front coherent avec l'editeur Snow */

:root {
	--ql-primary-color: var(--ol-primary, var(--bs-primary, #33A2DE));
}

/* Structure de base */
.ql-editor,
.ql-content,
.quill-content {
	--ql-primary-color: var(--ol-primary, var(--bs-primary, #33A2DE));
	box-sizing: border-box;
	line-height: 1.6;
	overflow-wrap: anywhere;
}

.ql-editor *,
.ql-content *,
.quill-content * {
	box-sizing: border-box;
}

.ql-editor img,
.ql-content img,
.quill-content img {
	max-width: 100%;
	height: auto;
}

/* Alignement */
.ql-align-center { text-align: center; }
.ql-align-right { text-align: right; }
.ql-align-justify { text-align: justify; }

/* Direction RTL */
.ql-direction-rtl {
	direction: rtl;
	text-align: inherit;
}

/* Indentation Quill */
.ql-indent-1:not(.ql-direction-rtl) { padding-left: 3em; }
.ql-indent-2:not(.ql-direction-rtl) { padding-left: 6em; }
.ql-indent-3:not(.ql-direction-rtl) { padding-left: 9em; }
.ql-indent-4:not(.ql-direction-rtl) { padding-left: 12em; }
.ql-indent-5:not(.ql-direction-rtl) { padding-left: 15em; }
.ql-indent-6:not(.ql-direction-rtl) { padding-left: 18em; }
.ql-indent-7:not(.ql-direction-rtl) { padding-left: 21em; }
.ql-indent-8:not(.ql-direction-rtl) { padding-left: 24em; }

.ql-indent-1.ql-direction-rtl.ql-align-right { padding-right: 3em; }
.ql-indent-2.ql-direction-rtl.ql-align-right { padding-right: 6em; }
.ql-indent-3.ql-direction-rtl.ql-align-right { padding-right: 9em; }
.ql-indent-4.ql-direction-rtl.ql-align-right { padding-right: 12em; }
.ql-indent-5.ql-direction-rtl.ql-align-right { padding-right: 15em; }
.ql-indent-6.ql-direction-rtl.ql-align-right { padding-right: 18em; }
.ql-indent-7.ql-direction-rtl.ql-align-right { padding-right: 21em; }
.ql-indent-8.ql-direction-rtl.ql-align-right { padding-right: 24em; }

li.ql-indent-1:not(.ql-direction-rtl) { padding-left: 4.5em; }
li.ql-indent-2:not(.ql-direction-rtl) { padding-left: 7.5em; }
li.ql-indent-3:not(.ql-direction-rtl) { padding-left: 10.5em; }
li.ql-indent-4:not(.ql-direction-rtl) { padding-left: 13.5em; }
li.ql-indent-5:not(.ql-direction-rtl) { padding-left: 16.5em; }
li.ql-indent-6:not(.ql-direction-rtl) { padding-left: 19.5em; }
li.ql-indent-7:not(.ql-direction-rtl) { padding-left: 22.5em; }
li.ql-indent-8:not(.ql-direction-rtl) { padding-left: 25.5em; }

li.ql-direction-rtl {
	padding-left: 0;
	padding-right: 1.5em;
}

li.ql-indent-1.ql-direction-rtl.ql-align-right { padding-right: 4.5em; }
li.ql-indent-2.ql-direction-rtl.ql-align-right { padding-right: 7.5em; }
li.ql-indent-3.ql-direction-rtl.ql-align-right { padding-right: 10.5em; }
li.ql-indent-4.ql-direction-rtl.ql-align-right { padding-right: 13.5em; }
li.ql-indent-5.ql-direction-rtl.ql-align-right { padding-right: 16.5em; }
li.ql-indent-6.ql-direction-rtl.ql-align-right { padding-right: 19.5em; }
li.ql-indent-7.ql-direction-rtl.ql-align-right { padding-right: 22.5em; }
li.ql-indent-8.ql-direction-rtl.ql-align-right { padding-right: 25.5em; }

/* Tailles */
.ql-size-small { font-size: .75em; }
.ql-size-large { font-size: 1.5em; }
.ql-size-huge { font-size: 2.5em; }

/* Polices */
.ql-font-serif { font-family: Georgia, "Times New Roman", serif; }
.ql-font-monospace { font-family: Monaco, "Courier New", monospace; }

/* Couleurs de texte */
.ql-color-white { color: #fff; }
.ql-color-red { color: #e60000; }
.ql-color-orange { color: #f90; }
.ql-color-yellow { color: #ff0; }
.ql-color-green { color: #008a00; }
.ql-color-blue { color: #06c; }
.ql-color-purple { color: #93f; }

/* Couleurs de fond */
.ql-bg-black { background-color: #000; }
.ql-bg-red { background-color: #e60000; }
.ql-bg-orange { background-color: #f90; }
.ql-bg-yellow { background-color: #ff0; }
.ql-bg-green { background-color: #008a00; }
.ql-bg-blue { background-color: #06c; }
.ql-bg-purple { background-color: #93f; }

/* Listes Quill */
ol:has(> li[data-list]) {
	--ql-primary-color: var(--ol-primary, var(--bs-primary, #33A2DE));
	padding-left: 0;
	margin-top: 0;
	margin-bottom: 1rem;
	counter-reset: list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8;
}

ol:has(> li[data-list]) li[data-list] {
	list-style: none;
	position: relative;
	margin-bottom: .45rem;
	padding-left: 1.9em;
}

ol:has(> li[data-list]) li[data-list="bullet"],
ol:has(> li[data-list]) li[data-list="bullet-no"] {
	padding-left: 1.45em;
}

ol:has(> li[data-list]) li[data-list] > .ql-ui {
	display: none;
}

ol:has(> li[data-list]) li[data-list]::marker {
	content: none;
}

ol:has(> li[data-list]) li[data-list]::before {
	position: absolute;
	left: 0;
	top: .05em;
	width: 1.35em;
	color: var(--ql-primary-color);
	text-align: right;
	white-space: nowrap;
}

ol:has(> li[data-list]) li.ql-direction-rtl::before {
	left: auto;
	right: 0;
	text-align: left;
}

ol:has(> li[data-list]) li[data-list="ordered"] {
	counter-increment: list-0;
}

ol:has(> li[data-list]) li[data-list="ordered"]::before {
	content: counter(list-0, decimal) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-1 {
	counter-increment: list-1;
	counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-1::before {
	content: counter(list-1, lower-alpha) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-2 {
	counter-increment: list-2;
	counter-reset: list-3 list-4 list-5 list-6 list-7 list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-2::before {
	content: counter(list-2, lower-roman) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-3 {
	counter-increment: list-3;
	counter-reset: list-4 list-5 list-6 list-7 list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-3::before {
	content: counter(list-3, decimal) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-4 {
	counter-increment: list-4;
	counter-reset: list-5 list-6 list-7 list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-4::before {
	content: counter(list-4, lower-alpha) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-5 {
	counter-increment: list-5;
	counter-reset: list-6 list-7 list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-5::before {
	content: counter(list-5, lower-roman) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-6 {
	counter-increment: list-6;
	counter-reset: list-7 list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-6::before {
	content: counter(list-6, decimal) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-7 {
	counter-increment: list-7;
	counter-reset: list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-7::before {
	content: counter(list-7, lower-alpha) ".";
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-8 {
	counter-increment: list-8;
}

ol:has(> li[data-list]) li[data-list="ordered"].ql-indent-8::before {
	content: counter(list-8, lower-roman) ".";
}

ol:has(> li[data-list]) li[data-list="bullet"]::before,
ol:has(> li[data-list]) li[data-list="bullet-no"]::before {
	content: "";
	top: .28em;
	width: .9em;
	height: .9em;
	background-color: var(--ql-primary-color);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
}

ol:has(> li[data-list]) li[data-list="bullet"]::before {
	mask-image: url("/media/icon-check-ok.svg");
	-webkit-mask-image: url("/media/icon-check-ok.svg");
}

ol:has(> li[data-list]) li[data-list="bullet-no"]::before {
	mask-image: url("/media/icon-check-no.svg");
	-webkit-mask-image: url("/media/icon-check-no.svg");
}

ol:has(> li[data-list]) li[data-list="checked"]::before {
	content: "\2611";
}

ol:has(> li[data-list]) li[data-list="unchecked"]::before {
	content: "\2610";
}

/* Blocs Quill */
.ql-editor blockquote,
.ql-content blockquote,
.quill-content blockquote {
	border-left: 4px solid #ccc;
	margin: .5rem 0;
	padding-left: 1rem;
}

.ql-editor code,
.ql-content code,
.quill-content code,
.ql-code-block-container {
	background-color: #f0f0f0;
	border-radius: 3px;
	font-size: 85%;
	padding: 2px 4px;
}

.ql-code-block-container {
	margin: .5rem 0;
	padding: .5rem .75rem;
}

/* Tables Quill */
.ql-editor table,
.ql-content table,
.quill-content table {
	border-collapse: collapse;
}

.ql-editor table:has(td),
.ql-content table:has(td),
.quill-content table:has(td) {
	width: 100%;
	table-layout: fixed;
}

.ql-editor td,
.ql-content td,
.quill-content td {
	border: 1px solid #000;
	padding: 2px 5px;
	vertical-align: top;
}

/* Video */
.ql-video {
	display: block;
	max-width: 100%;
}

.ql-video.ql-align-center { margin: 0 auto; }
.ql-video.ql-align-right { margin: 0 0 0 auto; }
