/**
 * Structure générale.
 *
 */
@font-face
{
	font-family: "IcoMoon";
	src: url("icomoon.woff?v=98e") format("woff");
}
:root
{
	--color: #3b5eb5;
	--focus-visible-color: var(--color);
}
h1,h2,h3,h4,h5,h6,p,td,form,ul,img,dl,dt,dd,body,html
{
	border: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
html,table,input,textarea,select
{
	font-size: var(--text-size);
}
body
{
	color: black;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: .8em;
}
table
{
	border-collapse: separate;
	border-spacing: 0;
}
pre
{
	font-family: "Courier New", serif;
	white-space: pre-wrap;
}
img
{
	display: block;
}
img[src*="video-no-thumb.png"]
{
	object-fit: cover;
}
#content
{
	padding: 0 8px 1px;
}
main
{
	padding: 10px 0 20px;
}
main::before
{
	content: '';
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: 0;
	z-index: 10;
	transition: opacity .25s linear;
}
main.dark::before
{
	display: block;
	opacity: 0.5;
}

/* Sélection de texte */
::selection
{
	color: white;
	background: var(--color);
}

/* Liens */
a
{
	color: black;
	text-decoration: none;
	border-bottom: 1px solid gray;
	margin-bottom: 1px;
}
a.js
{
	border-bottom-style: dashed;
}
a:hover
{
	border-width: 2px;
	margin-bottom: 0;
}
a.js:hover
{
	border-bottom: 2px solid gray;
}
#gallery a:focus-visible,
input[type="range"]:focus-visible
{
	outline: 2px solid var(--focus-visible-color);
	outline-offset: 3px;
}
a.u
{
	border: none;
	margin: 0;
	text-decoration: underline;
	text-decoration-color: gray;
	text-underline-offset: 3px;
}
a.u:hover
{
	text-decoration-thickness: 2px;
}

/* Émojis. */
.emoji
{
	font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji",
		Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
}
span.emoji[title]
{
	cursor: help;
}

/* Espaces. */
span[class^="space_"]
{
	display: inline-block;
}
span.space_tab,
span.space_4
{
	width: 4ch;
}
span.space_3
{
	width: 3ch;
}
span.space_2
{
	width: 2ch;
}



/**
 * Header.
 *
 */
#header_top
{
	position: relative;
	z-index: 11;
	display: flex;
	height: 44px;
	padding: 0 9px 0 7px;
	align-items: center;
	margin-bottom: 5px;
	background: var(--color);
	box-shadow: 0 0 5px #555;
}
#user_style_large
{
	display: none;
}

/* Titre. */
#title
{
	display: flex;
	flex: 1;
	text-align: center;
	overflow: hidden;
	white-space: nowrap;
}
:is(header.banner, header.user) #title
{
	text-align: left;
}
header h1
{
	position: relative;
	z-index: 0;
	font-size: 150%;
	font-weight: normal;
	font-family: Georgia, serif;
	font-style: italic;
	display: inline-block;
}
header h1 a
{
	border: 0;
	margin: 0;
	color: #fafafa;
}
header h1 a .emoji
{
	font-style: normal;
}
#title h1:has(a:focus-visible)
{
	outline: 3px solid var(--focus-visible-color);
}
#title h1 a:focus-visible
{
	outline: none;
}

/* Menu utilisateur. */
#user_links
{
	display: flex;
	align-items: center;
	position: relative;
	padding-left: 10px;
}
#user_links img
{
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
}
#user_links > a
{
	border: 0;
	margin: 0;
}
#user_links ul
{
	display: none;
	position: absolute;
	top: 58px;
	right: -2px;
	border-top: 1px solid silver;
}
#user_links ul a
{
	display: block;
	padding: 15px;
	margin: 0;
	background: white;
	border: 1px solid silver;
	border-top: 0;
	white-space: nowrap;
	font-size: 120%;
}
#user_links li#user_login a
{
	font-weight: bold;
	color: var(--color);
}
#user_links li#user_avatar
{
	display: none;
}
#user_links > a img,
#user_links li#user_avatar img
{
	background: #eee;
}
#header_top #user_style_small a
{
	display: flex;
	align-items: center;
	font-family: "IcoMoon";
	font-size: 200%;
	color: #555;
}
#header_top > #user_style_small a
{
	border: 0;
	padding: 0;
	margin: 0 0 0 15px;
	color: white;
}

/* Menu utilisateur : flèche */
#user_links ul::after,
#user_links ul::before
{
	content: '';
	position: absolute;
	top: -17px;
	right: 10px;
	display: block;
	border: 10px solid transparent;
	border-width: 0 10px 16px;
	border-bottom-color: silver;
}
#user_links ul::after
{
	top: -15px;
	border-bottom-color: white;
}

/* Menu principal */
#menu_link
{
	display: none;
	border: 0;
	margin: 0 10px 0 0;
	font-family: "IcoMoon";
	font-size: 250%;
	color: #fafafa;
}
#menu_link.show
{
	display: block;
}
#menu
{
	display: none;
}
#menu.show
{
	display: block;
}
#menu nav
{
	display: none;
	position: absolute;
	top: 44px;
	width: 100%;
	background: #fff;
	z-index: 100;
}
#menu li a
{
	display: flex;
	padding: 0 10px 0 48px;
	height: 44px;
	font-size: 120%;
	border-bottom: 1px solid silver;
	margin: 0;
	align-items: center;
	text-transform: uppercase;
	position: relative;
}
#menu li:nth-last-child(-n+2) a
{
	border: none;
}
#menu li.icon
{
	display: none;
}

/* Icônes */
#menu a::before
{
	font-family: "IcoMoon";
	position: absolute;
	left: 10px;
	width: 30px;
	height: 100%;
	font-size: 160%;
	align-items: center;
	justify-content: center;
	display: flex;
	color: #555;
}
li[id^="menu_custom"] a::before
{
	content: '\e943';
}
#menu_cameras a::before
{
	content: '\e903';
}
#menu_comments a::before
{
	content: '\e932';
}
#menu_contact a::before
{
	content: '\e90f';
}
#menu_gallery a::before
{
	content: '\e95e';
}
#menu_history a::before
{
	content: '\e954';
}
#menu_members a::before
{
	content: '\e930';
	top: -1px;
}
#menu_tags a::before
{
	content: '\f02c';
}
#menu_search a::before
{
	content: '\e90a';
}
#menu_worldmap a::before
{
	content: '\e94b';
}
#browse,#search
{
	display: none;
}



/**
 * Contenu.
 *
 */
#theme_options
{
	display: none;
}
#gallery_closed
{
	font-size: 130%;
	margin: 50px auto;
	line-height: 1.5em;
}

/* Titres */
h3.icon
{
	font-size: 130%;
	font-weight: bold;
	color: #555;
	margin: 0 0 15px;
	display: flex;
	align-items: center;
}
h3.icon span:first-child
{
	font-family: "IcoMoon";
	font-size: 140%;
	display: block;
	margin-right: 8px;
	font-weight: normal;
	position: relative;
	top: -1px;
}

/* Erreurs */
.error,
.error_trace
{
	background: white;
	color: black;
	padding: 2px;
}
.error_trace
{
	padding: 5px;
}
.error_page
{
	position: relative;
	z-index: 0;
	margin: 80px auto 100px;
	max-width: 650px;
}
.error_page h2
{
	font-size: 250%;
	font-weight: normal;
	color: #555;
}
.error_page p
{
	font-size: 110%;
	line-height: 1.5em;
	margin: 40px 0;
}
.error_page::after
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	text-align: right;
	z-index: -1;
	font-size: 1200%;
	color: #f0f0f0;
}
#error_404::after
{
	top: -30px;
	content: '404';
}
#error_internal::after
{
	content: '\e999';
	font-family: "IcoMoon";
}

/* Description */
.object_desc
{
	margin: 20px auto 40px;
	max-width: 800px;
	font-size: 120%;
	line-height: 1.7em;
	word-break: break-word;
	overflow-wrap: break-word;
}
.object_desc strong
{
	color: #333;
}
.object_desc .emoji
{
	font-size: 130%;
}

/* Aide contextuelle. */
.infos_container
{
	display: none;
}



/**
 * Tableaux.
 *
 */
.table_default_container
{
	display: flex;
	justify-content: center;
	margin-bottom: 30px;
}
.table_default_container > table.default
{
	margin: 10px -8px 0;
}
table.default
{
	margin: 0 auto;
}
table.default th
{
	text-align: center;
	font-weight: bold;
	padding: 15px;
	border: 1px solid var(--color);
	border-right-color: #B0B0B0;
	background: var(--color);
	color: white;
	position: sticky;
	top: 0;
}
table.default th:first-child,
table.default td:first-child
{
	border-left-width: 1px;
}
table.default th:last-child
{
	border-right-color: var(--color);
}
table.default td
{
	border: 1px solid #B0B0B0;
	border-width: 0 1px 1px 0;
	background: white;
	padding: 14px 8px;
	vertical-align: top;
}
table.default tr:nth-child(odd) td
{
	background: #F8F8F8;
}
table.default .num
{
	text-align: right;
}
.js table.sorter th
{
	cursor: pointer;
}



/**
 * Formulaires.
 *
 */
fieldset
{
	margin: 0 0 20px;
	padding: 0;
	border: 0;
}
legend
{
	margin: 0;
	padding: 0;
	font-size: 100%;
	font-weight: bold;
	color: #333;
}
.field
{
	margin: 15px 0;
	line-height: 2em;
	position: relative;
}
.field.disabled
{
	color: gray;
}
.field.disabled input,
.field.disabled label,
.field.disabled select,
.field.disabled textarea
{
	cursor: not-allowed;
}
.field.disabled textarea
{
	border-color: #ddd;
	background: none;
}
.field:has(#f_email)
{
	display: none;
}
.field > br
{
	margin: 0 0 5px;
}

/* Boutons. */
.button
{
	border: 1px solid silver;
	margin: 10px 10px 10px 0;
	padding: 6px 10px;
	background: linear-gradient(0deg, #E5E5E5, #FFFFFF);
	white-space: nowrap;
	outline: none;
	cursor: pointer;
	font-size: 120%;
}
.button:active
{
	background: linear-gradient(0deg, #FFFFFF, #E5E5E5);
}
.button:focus
{
	border-color: gray;
}
.button:hover
{
	box-shadow: 0 0 6px silver;
}
.button[disabled],
.button[disabled]:active,
.button[disabled]:focus,
.button[disabled]:hover
{
	color: #aaa;
	border-color: #ddd;
	background: none;
	outline: none;
	box-shadow: none;
	cursor: default;
}

/* Boutons de formulaires : style 2 */
body.btn_2_clear .button,
body.btn_2_clear .button:active,
body.btn_2_clear .button:focus,
body.btn_2_clear .button:hover
{
	background: var(--color);
	border: 2px solid var(--color);
	padding: 6px 12px;
	color: white;
	box-shadow: none;
}
body.btn_2_clear .button:active,
body.btn_2_clear .button:focus,
body.btn_2_clear .button:hover
{
	color: var(--color);
	background: white;
}
body.btn_2_clear .button:active
{
	box-shadow: 0 0 8px gray;
}
body.btn_2_clear .button[disabled],
body.btn_2_clear .button[disabled]:active,
body.btn_2_clear .button[disabled]:focus,
body.btn_2_clear .button[disabled]:hover
{
	color: #aaa;
	border-color: #ddd;
	background: none;
	outline: none;
	box-shadow: none;
	cursor: default;
}

/* Bouton de sélection de fichier. */
.nojs .button_file
{
	display: block;
}
.js input[type="file"]
{
	opacity: 0;
	overflow: hidden;
	position: absolute;
	z-index: -1;
}
.js .button_file
{
	background: #ddd;
	display: inline-block;
	padding: 2px 8px;
	margin: 10px 0 0;
	max-width: 90%;
	overflow: hidden;
	cursor: pointer;
	word-break: break-word;
}
.js input[type="file"]:focus + label,
.js .button_file:hover
{
	background: #ccc;
}
.js .button_file:active
{
	outline: 1px solid #555;
}

/* Champs texte. */
input[type="email"],
input[type="number"],
input[type="password"],
input[type="text"],
input[type="url"]
{
	border: 1px solid silver;
	margin: 0;
	padding: 0 4px;
	background: #FAFAFA;
	height: 2.2em;
	outline: none;
}
input[type="email"].large,
input[type="number"].large,
input[type="password"].large,
input[type="text"].large,
input[type="url"].large
{
	display: block;
	margin-top: 4px;
	width: 95%;
	max-width: 30em;
}
textarea
{
	font-family: monospace, sans-serif;
	line-height: 1.3em;
	border: 1px solid silver;
	background: #FAFAFA;
	padding: 4px;
	display: block;
	margin-top: 5px;
	width: 95%;
	max-width: 40em;
	min-height: 2em;
	outline: none;
}

/* <input type="range"> */
input[type="range"]
{
	--range-thumb-color: #7E7E7E;
	--range-thumb-size: 22px;
	--range-track-color: #7E7E7E;
	--range-track-size: 4px;
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	cursor: pointer;
	width: 100%;
}
input[type="range"]:hover
{
	--range-thumb-color: #6E6E6E;
	--range-track-color: #6E6E6E;
}
input[type="range"]:focus-visible
{
	outline: 2px solid var(--color);
}
input[type="range"]::-ms-track
{
	background: var(--range-track-color);
	height: var(--range-track-size);
}
input[type="range"]::-moz-range-track
{
	background: var(--range-track-color);
	height: var(--range-track-size);
}
input[type="range"]::-webkit-slider-runnable-track
{
	background: var(--range-track-color);
	height: var(--range-track-size);
}
input[type="range"]::-ms-thumb
{
	background: var(--range-thumb-color);
	border: 0;
	width: var(--range-thumb-size);
	height: var(--range-thumb-size);
	border-radius: 50%;
}
input[type="range"]::-moz-range-thumb
{
	background: var(--range-thumb-color);
	border: 0;
	width: var(--range-thumb-size);
	height: var(--range-thumb-size);
	border-radius: 50%;
}
input[type="range"]::-webkit-slider-thumb
{
	-webkit-appearance: none;
	background: var(--range-thumb-color);
	border: 0;
	width: var(--range-thumb-size);
	height: var(--range-thumb-size);
	border-radius: 50%;
	margin-top: -10px;
}

/* Bouton de visualisation des mots de passe. */
form .field .password_container
{
	display: flex;
	width: calc(95% + 10px);
	margin-top: 4px;
}
form .field .password_container input[type]
{
	margin: 0;
	max-width: 27em;
	border-right: 0;
}
form .field .password_container input[type] + .password_view
{
	width: 3em;
	min-width: 3em;
	max-width: 3em;
}
form .field .password_container input[type] + .password_view a
{
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "IcoMoon";
	font-size: 140%;
	color: white;
	cursor: pointer;
	border: 0;
	margin: 0;
	padding: 0;
	height: 100%;
	width: 100%;
	background: var(--color);
}

/* Cases à cocher. */
input[type="checkbox"],
input[type="radio"]
{
	position: relative;
	top: 2px;
	margin: 0 3px 0 0;
	filter: grayscale(1);
}
@-moz-document url-prefix()
{
	input[type="checkbox"],
	input[type="radio"]
	{
		top: 1px;
		filter: grayscale(1) brightness(1.3);
	}
}
input[type="checkbox"]:disabled
{
	cursor: not-allowed;
}
input[type="checkbox"]:disabled + label
{
	color: silver;
	cursor: not-allowed;
}

/* Listes. */
select
{
	border: 1px solid silver;
	background: #FAFAFA;
	max-width: 15em;
	height: 2.2em;
	outline: none;
}
option[selected]
{
	background: #cecece;
}
option[disabled]
{
	color: #aaa;
}

/* Date et heure */
input[type="number"][class^="dt_"]
{
	width: 4.8em;
}
input[type="number"][class^="dt_"].dt_year
{
	width: 5.5em;
}
input[type="number"][class^="dt_"] + span
{
	display: inline-block;
	width: .5em;
	text-align: center;
}
input[type="number"][class^="dt_"] + a
{
	margin-left: 5px;
}
a.dt_now,
a.dt_now:hover,
a.dt_reset,
a.dt_reset:hover
{
	font-family: "IcoMoon";
	font-size: 170%;
	border: 0;
	padding: 2px;
	position: absolute;
	color: #333;
}

/* Éléments:focus */
input[type="email"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="text"]:focus,
input[type="url"]:focus,
select:focus, textarea:focus
{
	border-color: gray;
}

/* Champs erronés */
.field_error :is(input, input:focus, select, select:focus, textarea, textarea:focus)
{
	border: 1px solid var(--color);
	outline: 1px solid var(--color);
}



/**
 * Formulaire standard.
 *
 */
form.standard
{
	max-width: 28em;
	margin: 20px auto;
	padding: 0;
}
form.standard h2
{
	font-size: 180%;
	color: #555;
	font-weight: normal;
	margin-bottom: 30px;
}
form.standard *[class^="message_"]
{
	margin-bottom: 30px;
}
form.standard .required
{
	position: relative;
}
form.standard .required label
{
	padding-left: 1.5em;
}
form.standard .required::before
{
	content: '\2731';
	position: absolute;
	font-size: 120%;
	color: var(--color);
}

/* Formulaire d'inscription. */
#register_form #password_validation_text
{
	line-height: 2em;
	margin-top: 10px;
	display: block;
}
#register_form #password_validation_text span:last-child
{
	display: block;
	font-weight: bold;
	color: #333;
}

/* Mot de passe oublié. */
#forgot_password .text
{
	line-height: 1.7em;
}



/**
 * Pages personnalisées.
 *
 */
#page_custom
{
	margin: 20px 0 30px;
	font-size: 120%;
	line-height: 1.7em;
}
#page_custom .emoji
{
	font-size: 130%;
}
#page_custom :is(h1,h2,h3,h4,h5,h6)
{
	color: #444;
}
#page_custom h1
{
	font-size: 160%;
}
#page_custom h2
{
	font-size: 130%;
}



/**
 * Viewer.
 *
 */
#viewer
{
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	background: rgba(0,0,0,0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: zoom-out;
}
#viewer img
{
	max-width: 100%;
	max-height: 100%;
	background: white;
}
#viewer img:not([data-type="image/jpeg"])
{
	background: white;
}



/**
 * Page contact.
 *
 */
#contact_form
{
	max-width: 520px;
}
#contact_form :is(input[type="email"], input[type="text"], input[type="url"])
{
	max-width: 400px;
}
#contact_message
{
	max-width: 100%;
	margin-bottom: 30px;
}



/**
 * Messages de rapport.
 *
 */
#messages
{
	margin: 0 0 30px;
}
*[class^="message_"]
{
	margin: 15px 0;
	font-size: 120%;
	padding-left: 1.8em;
	position: relative;
	color: var(--color);
}
*[class^="message_"] :is(a, span)
{
	color: var(--color);
	border-color: var(--color);
}
*[class^="message_"]::before
{
	font-family: "IcoMoon";
	position: absolute;
	font-size: 140%;
	color: var(--color);
	margin-top: -2px;
	top: 0;
	left: 0;
	display: flex;
}
@-moz-document url-prefix()
{
	*[class^="message_"]::before { margin-top: -4px; }
}
*[class="message_error"]::before
{
	content: '\e904';
	top: .025em;
}
*[class="message_info"]::before
{
	content: '\f06a';
}
*[class="message_success"]::before
{
	top: -1px;
	content: '\e905';
}



/**
 * Page de déconnexion.
 *
 */
#logout
{
	margin: 30px 0 60px;
	text-align: center;
}



/**
 * Fil d'Ariane et outils.
 *
 */
#breadcrumb_tools
{
	margin-bottom: 5px;
}
#breadcrumb, .breadcrumb_filter, #tools
{
	min-height: 1.8em;
}
#breadcrumb_tools nav
{
	flex: 1;
	align-items: center;
}
#breadcrumb
{
	font-size: 110%;
}
#breadcrumb a
{
	line-height: 1.6em;
}
#breadcrumb .current
{
	font-weight: bold;
	border-width: 0;
	color: #333;
}
#breadcrumb .current:hover
{
	border-width: 2px;
}
.breadcrumb_filter
{
	font-size: 110%;
	line-height: 1.6em;
	margin-bottom: 4px;
}
.breadcrumb_filter :is(.filter_name, #cat_name)
{
	font-weight: bold;
	color: var(--color);
	border-color: var(--color);
}
#objects_count
{
	font-weight: normal;
}

/* Pages */
#page_breadcrumb
{
	font-size: 110%;
	line-height: 1.6em;
	margin-bottom: 30px;
}
#page_breadcrumb :is(span, a)
{
	font-weight: bold;
	color: var(--color);
	border-color: var(--color);
}
#page_breadcrumb + .message_info
{
	margin-top: 40px;
}

/* Outils */
#tools
{
	margin: 10px 0 30px;
	text-align: center;
	position: relative;
	height: 0;
}
#section_item #tools
{
	margin: 10px 0 20px;
}
#tools li
{
	display: inline-block;
	margin: 0 5px;
}
#tools a
{
	font-family: "IcoMoon";
	border: 0;
	padding: 0;
	margin: 0;
	font-size: 200%;
	color: #555;
	display: flex;
	height: 38px;
	width: 38px;
	align-items: center;
	justify-content: center;
}
#tools a:hover
{
	color: var(--color);
}
#link_prev
{
	position: absolute;
	left: -10px;
}
#link_next
{
	position: absolute;
	right: -10px;
}
#link_prev a,
#link_next a
{
	display: flex;
	justify-content: center;
	margin-top: 1px;
}

/* Icônes */
#link_logout
{
	position: relative;
	top: -1px;
}
#tools :is(#link_delete a, #link_edit a, #link_selection a)
{
	font-size: 170%;
	position: relative;
	top: -1px;
}
#tools :is(#link_admin, #link_cameras, #link_delete, #link_diaporama, #link_download,
#link_edit, #link_favorites, #link_history, #link_logout, #link_selection, #link_upload)
{
	display: none;
}
@media (min-width: 200px)
{
	#tools #link_diaporama
	{
		display: inline-block;
	}
}
@media (min-width: 250px)
{
	#tools #link_selection
	{
		display: inline-block;
	}
}
@media (min-width: 300px)
{
	#tools.cat #link_upload
	{
		display: inline-block;
	}
	#tools.item #link_download
	{
		display: inline-block;
	}
}
@media (min-width: 350px)
{
	#tools.cat #link_favorites
	{
		display: inline-block;
	}
	#tools.item #link_favorites
	{
		display: inline-block;
	}
}
@media (min-width: 400px)
{
	#tools.cat #link_logout
	{
		display: inline-block;
	}
	#tools.item #link_edit
	{
		display: inline-block;
	}
}
@media (min-width: 450px)
{
	#tools.cat #link_download
	{
		display: inline-block;
	}
	#tools.item #link_logout
	{
		display: inline-block;
	}
}
@media (min-width: 500px)
{
	#tools.cat #link_edit
	{
		display: inline-block;
	}
	#tools.item #link_admin
	{
		display: inline-block;
	}
}
@media (min-width: 550px)
{
	#tools.cat #link_delete
	{
		display: inline-block;
	}
}
@media (min-width: 600px)
{
	#tools.cat #link_admin
	{
		display: inline-block;
	}
}
@media (min-width: 650px)
{
	#tools.cat #link_history
	{
		display: inline-block;
	}
}
@media (min-width: 700px)
{
	#tools.cat #link_cameras
	{
		display: inline-block;
	}
}



/**
 * Boîtes flottantes.
 *
 */
.box_outer
{
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	background: hsla(0, 0%, 0%, 0.5);
	z-index: 999;
}
.box_inner
{
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}
.box
{
	width: 100%;
	max-width: 500px;
	margin: 0 auto;
	position: absolute;
}

/* Menu. */
.box_menu
{
	display: flex;
	overflow: auto;
	scrollbar-width: none;
}
.box_menu a
{
	cursor: pointer;
	padding: .6em 1em;
	background: white;
	display: flex;
	align-items: center;
	font-size: 120%;
	white-space: nowrap;
	color: #555;
	border: 0;
	border-left: 1px solid #ddd;
	margin: 0;
}
.box_menu li:first-child a
{
	border: 0;
}
.box_menu a:hover,
#gallery .box_menu a:focus-visible
{
	background: #f0f0f0;
	outline: none;
}
#gallery .box_menu li.current a:focus-visible
{
	background: #aaa;
	color: #333;
}
#gallery .box_menu li.current a
{
	color: white;
	background: var(--color);
}
.box_menu li.current a,
.box_menu li.current + li a
{
	border-color: transparent;
}
.box_menu span
{
	font-family: "IcoMoon";
	font-size: 120%;
	margin-right: 10px;
}
.box_menu span.emoji
{
	font-size: 110%;
}
.box_menu span.emoji[title]
{
	cursor: pointer;
}

/* Contenu. */
.box_page
{
	display: none;
}
.box_menu + .box_page
{
	display: block;
}
.box_content
{
	border-top: 3px solid var(--color);
	padding: 15px 20px 0;
	background: white;
	overflow: auto;
	scrollbar-width: thin;
}
.box_content::after
{
	content: '';
	display: block;
	height: 15px;
	width: 100%;
}
.box_content .field
{
	margin-top: 0;
}
.box_content :is(input[type="text"], input[type="password"], textarea)
{
	margin: 5px 0 0;
	display: block;
	width: calc(100% - 10px);
	min-width: calc(100% - 10px);
	max-width: calc(100% - 10px);
}
.box_content textarea
{
	max-height: 250px;
}
form .box_content .password_container
{
	width: 100%;
}
form .box_content .password_view
{
	margin-left: calc(1px - 3em);
}

/* Boutons. */
.box_buttons
{
	padding: 5px 20px;
	border-top: 1px solid #ddd;
	background: #fafafa;
	display: flex;
	align-items: center;
	position: relative;
}

/* Loading */
#box_loading
{
	margin: 0 0 0 10px;
	width: 24px;
	height: 24px;
}
#box_loading::after
{
	content: '';
	background: #aaa;
	position: absolute;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	transform: scale(0);
	opacity: 1;
	animation: box-loading 0.8s ease-out infinite;
}
@keyframes box-loading
{
	100%
	{
		transform: scale(1.0);
		opacity: 0;
	}
}

/* Rapport. */
#box_report
{
	position: absolute;
	top: 0;
	left: 0;
	width: calc(100% - 40px);
	height: 100%;
	display: flex;
	align-items: center;
	padding: 0 20px;
	background: #fafafa;
	overflow: auto;
	cursor: pointer;
}
#box_report > span[class^="message_"]::before
{
	top: 0;
}

/* Media queries */
@media (min-height: 0px)
{
	.box
	{
		top: 5vh;
	}
	.box_content
	{
		max-height: calc(85vh - 150px);
	}
}
@media (min-height: 600px)
{
	.box
	{
		top: 10vh;
	}
	.box_content
	{
		max-height: calc(85vh - 180px);
	}
}
@media (min-height: 800px)
{
	.box
	{
		top: 15vh;
	}
	.box_content
	{
		max-height: calc(85vh - 200px);
	}
}

/* Édition du fichier. */
#box_category .box,
#box_item .box
{
	max-width: 650px;
}
#box_comment_delete .box_content,
#box_item_delete .box_content
{
	padding: 25px 20px 30px;
}

/* Mode sélection. */
#box_selection .box_menu span
{
	margin-right: 0;
	font-size: 130%;
}
#box_selection #selection_tools a
{
	border-bottom: 1px dashed #aaa;
	padding: 0 0 1px 0;
}
#box_selection #selection_tools a:hover
{
	border-bottom: 2px solid #aaa;
}
#box_selection .selection_title
{
	font-size: 150%;
	font-weight: bold;
	margin-bottom: 25px;
	color: #555;
}
#box_selection .box_content .message_info
{
	margin-top: 30px;
}
#box_selection .selection_count
{
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
}
#box_selection .selection_count a,
#box_selection .selection_count span
{
	display: inline-block;
	padding: 0 15px;
	border: 0;
	margin: 0;
	color: white;
}
#box_selection .selection_count a
{
	background: var(--color);
}
#box_selection .selection_count a + a
{
	margin-left: 8px;
	font-family: "IcoMoon";
	font-size: 130%;
}
#box_selection .selection_count:has(span) a,
#box_selection .selection_count:has(span + span) span:first-child
{
	margin-right: 6px;
}
#box_selection .selection_count span
{
	background: #555;
	margin-left: 6px;
}
#box_selection .select_tool a
{
	border: 0;
	margin: 0;
}
#box_selection .select_tool span:first-child
{
	font-family: "IcoMoon";
	font-size: 130%;
	color: #555;
	top: 3px;
	position: relative;
	margin-right: 8px;
}
#box_selection .select_tool span:last-child
{
	padding-bottom: 1px;
	border-bottom: 1px dashed gray;
	margin-bottom: 1px;
}
#box_selection .select_tool a:hover span:last-child
{
	border-bottom: 2px solid gray;
	margin-bottom: 0;
}

/* Console de connexion. */
/* Mot de passe de catégorie. */
#box_login .box,
#box_password .box
{
	max-width: 380px;
}
.box_menu *[data-box-page-id="box_login_page"] span
{
	font-size: 130%;
}

/* Sélection. */
#box_selection_link_admin span
{
	transform: scale(1.2);
}



/**
 * Liens de navigation entre les pages.
 *
 */
:is(#section_category, #section_album, #section_item) #pages_top
{
	display: none;
}
.pages
{
	margin: 20px auto;
	position: relative;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
.pages form
{
	display: none;
}
#item_columns + #pages_bottom
{
	display: none;
}
#item_columns + #pages_bottom.show
{
	display: block;
}

/* Liens. */
.pages .link > *
{
	display: flex;
	height: 33px;
	width: 33px;
	margin: 0 8px;
	border: 1px solid silver;
	background: #FAFAFA;
	position: relative;
}
.pages a:hover::after
{
	background: #eee;
}
.pages .first > *,
.pages .last > *
{
	width: 32px;
}
.pages .link > * span
{
	display: none;
}

/* Icônes. */
.pages .link > *::after
{
	position: absolute;
	font-family: "IcoMoon";
	font-size: 150%;
	color: #333;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: white;
}
.pages .first > *::after
{
	content: '\f104\f104';
}
.pages .prev > *::after
{
	content: '\f104';
}
.pages .next > *::after
{
	content: '\f105';
}
.pages .last > *::after
{
	content: '\f105\f105';
}

/* Liens inactifs. */
.pages .link > span
{
	background: none;
	border-color: #E6E6E6;
}
.pages .link > span::after
{
	opacity: .25;
}



/**
 * Vignettes de catégories.
 *
 */
#thumbs_cat
{
	margin: 0 -8px;
	display: flex;
	flex-wrap: wrap;
}
#thumbs_cat dl
{
	margin: 10px auto;
	position: relative;
	width: calc(100% - 10px);
	max-width: 244px;
}

/* Taille : grande */
#thumbs_cat.large dl
{
	max-width: 331px;
}

/* Image */
#thumbs_cat dt
{
	position: relative;
	margin-bottom: 5px;
}
#thumbs_cat dt a
{
	display: flex;
	justify-content: center;
	border: 1px solid silver;
	background: white;
	margin: 0;
	padding: 5px;
}
#thumbs_cat dt a:hover,
#thumbs_cat dt a:focus-visible
{
	border-color: var(--color);
	outline: 1px solid var(--color);
	outline-offset: 0;
}
#thumbs_cat dt img
{
	width: 100%;
	height: 100%;
	min-height: 100px;
}

/* Fichiers récents */
#thumbs_cat .recent,
#thumbs_cat .recent:hover
{
	position: absolute;
	top: 4px;
	left: 9px;
	padding: 8px;
	font-size: 110%;
	font-weight: normal;
	margin: 0;
	border: 0;
	color: white;
	z-index: 0;
}
#thumbs_cat .recent::after
{
	z-index: -1;
	position: absolute;
	content: '';
	background: var(--color);
	width: calc(100% + 10px);
	height: 100%;
	top: 0;
	left: -5px;
	transform: rotate(-6deg);
}
#thumbs_cat .recent:focus-visible
{
	outline: none;
}

/* Fichiers récents : transition */
#thumbs_cat .recent::after
{
	transition: transform 0.1s ease;
}
#thumbs_cat .recent:hover::after,
#thumbs_cat .recent:focus-visible::after
{
	transform: scale(1.15) rotate(6deg);
	transition: transform 0.1s linear;
}

/* Titre */
#thumbs_cat dd
{
	margin: 0 5px;
}
#thumbs_cat .title
{
	display: block;
	padding: 2px 0;
	overflow: hidden;
	line-height: 1.45em;
	max-height: 5.8em;
}
#thumbs_cat .title a
{
	border: 0;
	font-size: 100%;
	font-weight: bold;
	color: #333;
	padding: 5px 0 0;
}
#thumbs_cat.large .title
{
	line-height: 1.7em;
	max-height: calc(6.8em + 3px);
}
#thumbs_cat.large .title a
{
	font-size: 120%;
}
#thumbs_cat .title a:hover
{
	border-bottom: 2px solid gray;
}
#thumbs_cat .title a:focus-visible
{
	outline: none;
}
#thumbs_cat .title:has(a:focus-visible)
{
	outline: 2px solid var(--focus-visible-color);
	outline-offset: 0;
}

/* Stats */
dl ul.stats li
{
	color: #555;
	white-space: nowrap;
	margin: 5px 0;
	overflow: hidden;
}
dl ul.stats li:has(a:focus-visible)
{
	overflow: visible;
}
dl ul.stats li:not(.rating) span:nth-child(2)
{
	margin-left: 8px;
	padding-left: 8px;
	border-left: 1px solid #929292;
	position: relative;
}
dl ul.stats li.rating span span
{
	font-family: "IcoMoon";
	font-size: 130%;
	color: var(--color);
}
#thumbs_cat dl ul.stats li.rating span span
{
	font-size: 120%;
}
.thumbs_items dl ul.stats li.filter
{
	font-size: 100%;
	color: var(--color);
}
dl ul.stats li a
{
	color: #555;
	display: inline-block;
	border-color: transparent;
}
dl ul.stats li a:hover
{
	border-color: gray;
}

/* Stats en icônes */
dl ul.stats_icon
{
	opacity: 0;
	position: absolute;
	top: 6px;
	right: 6px;
	height: calc(100% - 12px);
	width: 50%;
	max-width: 150px;
	background: linear-gradient(90deg, transparent, var(--color));
}
dl ul.stats_icon li
{
	display: flex;
	align-items: center;
	color: #fff;
	padding: 4px;
	margin-left: -50%;
	text-align: right;
	text-shadow: 1px 1px 1px #000;
}
dl ul.stats_icon li span:first-child
{
	flex: 1;
	white-space: nowrap;
}
dl ul.stats_icon li span + span
{
	font-family: "IcoMoon";
	font-size: 120%;
	position: relative;
	top: 0;
	width: 1.5em;
}
dl ul.stats_icon li.votes span + span
{
	top: -1px;
}

/* Protection par mot de passe */
#thumbs_cat dl.locked dt a span
{
	display: flex;
	position: relative;
	width: 100%;
	padding-top: 72%;
}
#thumbs_cat.portrait dl.locked dt a span
{
	padding-top: 150%;
}
#thumbs_cat.square dl.locked dt a span
{
	padding-top: 100%;
}
#thumbs_cat dl.locked dt a span::before
{
	content: '\e92e';
	font-family: "IcoMoon";
	font-size: 300%;
	color: #555;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
#thumbs_cat.large dl.locked dt a span::before
{
	font-size: 400%;
}
#thumbs_cat dl.locked dt a:hover span::before
{
	color: var(--color);
}
#thumbs_cat dl.unlocked dt a::before
{
	content: '\e94e';
	font-family: "IcoMoon";
	font-size: 150%;
	background: white;
	color: #333;
	position: absolute;
	bottom: 20px;
	left: 20px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	opacity: 0.8;
}



/**
 * Vignettes de fichiers.
 *
 */
.thumbs_items
{
	margin: 10px -8px 0;
	display: flex;
	flex-wrap: wrap;
}
.thumbs_items dl
{
	position: relative;
	margin: 10px auto;
	width: calc(100% - 10px);
	width: 100%;
}
.thumbs_items.standard dl
{
	max-width: 151px;
}
.thumbs_items:is(.landscape, .portrait, .square) dl
{
	max-width: 161px;
}

/* Image */
.thumbs_items dt
{
	position: relative;
}
.thumbs_items dt a
{
	display: flex;
	border: 0;
	margin: 0;
	align-items: center;
	justify-content: center;
	padding-top: 100%;
	width: 100%;
	background: white;
}
#gallery .thumbs_items dt a:focus-visible
{
	outline-offset: 0;
}
.thumbs_items.small.landscape dt a
{
	padding-top: 66.46%;
}
.thumbs_items.large.landscape dt a
{
	padding-top: 66.53%;
}
.thumbs_items.superlarge.landscape dt a
{
	padding-top: 66.66%;
}
.thumbs_items:is(.square, .standard) dt a
{
	padding-top: 100%;
}
.thumbs_items.small.portrait dt a
{
	padding-top: 149.69%;
}
.thumbs_items.large.portrait dt a
{
	padding-top: 149.59%;
}
.thumbs_items.superlarge.portrait dt a
{
	padding-top: 149.73%;
}
.thumbs_items dt a img
{
	position: absolute;
	top: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.thumbs_items.standard dt a img
{
	max-height: 151px;
	max-width: 151px;
}
.thumbs_items:is(.landscape, .portrait, .square) dt a img
{
	max-width: 161px;
}
.thumbs_items.standard dt a
{
	outline: 1px solid silver;
}
.thumbs_items.standard dt a:hover
{
	outline: 1px solid var(--color);
}

/* Taille : grande */
.thumbs_items.large.standard dl
{
	max-width: 238px;
}
.thumbs_items.large:is(.landscape, .portrait, .square) dl
{
	max-width: 248px;
}
.thumbs_items.large.standard dt a img
{
	max-height: 238px;
	max-width: 238px;
}
.thumbs_items.large:is(.landscape, .portrait, .square) dt a img
{
	max-width: 248px;
}

/* Taille : très grande */
.thumbs_items.superlarge.standard dl
{
	max-width: 325px;
}
.thumbs_items.superlarge:is(.landscape, .portrait, .square) dl
{
	max-width: 335px;
}
.thumbs_items.superlarge.standard dt a img
{
	max-height: 325px;
	max-width: 325px;
}
.thumbs_items.superlarge:is(.landscape, .portrait, .square) dt a img
{
	max-width: 335px;
}

/* Fichiers récents */
.thumbs_items dt span.new
{
	position: absolute;
	top: -2px;
	left: 2px;
	padding: 6px;
	font-weight: normal;
	margin: 0;
	border: 0;
	color: white;
	z-index: 1;
	font-size: 80%;
}
.thumbs_items dt span.new::after
{
	z-index: -1;
	position: absolute;
	content: '';
	background: var(--color);
	width: calc(100% + 10px);
	height: 100%;
	top: 0;
	left: -5px;
	transform: rotate(-6deg);
}

/* Sélection. */
#gallery .thumbs_items.selectable dl.selected dt a
{
	outline: 2px solid var(--color);
}
.thumbs_items dt .selection_icon
{
	font-family: "IcoMoon";
	position: absolute;
	font-size: 120%;
	width: 2.7em;
	height: 2.7em;
	display: none;
	padding: 2px 2px 0 0;
	align-items: center;
	justify-content: center;
	bottom: 0;
	left: 0;
	color: white;
	background: var(--color);
	border-radius: 0 50% 0 0;
	opacity: 0.5;
	cursor: pointer;
}
.thumbs_items.selection_max dl:not(.selected) .selection_icon
{
	cursor: not-allowed;
}
.thumbs_items.selectable :is(dt:hover, dl.selected) .selection_icon
{
	display: flex;
}
.thumbs_items.selectable dt .selection_icon:hover,
.thumbs_items.selectable dl.selected .selection_icon
{
	opacity: 1;
}

/* Titre */
.thumbs_items dd span.title
{
	display: block;
	margin: 5px 0 2px;
	padding: 2px;
	overflow: hidden;
	line-height: 1.45em;
	max-height: 5.8em;
	text-align: center;
}
.thumbs_items dd span.title a
{
	border: 0;
	padding: 5px 0 0;
	font-weight: bold;
	color: #333;
}
.thumbs_items[class*="large"] dd span.title
{
	line-height: 1.7em;
	max-height: calc(6.8em + 3px);
}
.thumbs_items[class*="large"] dd span.title a
{
	font-size: 110%;
}
.thumbs_items dd span.title a:hover
{
	border-bottom: 2px solid gray;
}
#gallery .thumbs_items .title a:focus-visible
{
	outline: none;
}
.thumbs_items .title:has(a:focus-visible)
{
	outline: 2px solid var(--focus-visible-color);
	outline-offset: 0;
}

/* Type de fichier : vidéo */
.thumbs_items dl.video dt a
{
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Durée */
.thumbs_items .duration
{
	position: absolute;
	z-index: 1;
	bottom: 10px;
	right: 8px;
	display: flex;
	align-items: center;
	padding: 3px 5px;
	background: #222;
	color: #fff;
	font-size: 100%;
}
.thumbs_items[class*="large"] .duration
{
	padding: 4px 6px;
	font-size: 105%;
}
.thumbs_items.superlarge .duration
{
	font-size: 110%;
}

/* Stats */
.thumbs_items ul.stats li
{
	text-align: center;
	font-weight: normal;
	color: #333;
	font-size: 85%;
	margin-bottom: 5px;
}
.thumbs_items:not(.small) ul.stats li
{
	font-size: 100%;
}

/* Stats en icônes */
.thumbs_items dl ul.stats_icon
{
	top: 0;
	right: 0;
	height: 100%;
}
.thumbs_items.small.landscape dl ul.stats_icon
{
	display: none;
}



/**
 * Page des images & vidéos.
 *
 */
#item
{
	margin: 0 0 0 -8px;
	width: calc(100% + 16px);
	background: #111;
	min-height: 100px;
	position: relative;
}
#item_container,
#item_link
{
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
#item img
{
	max-width: 100%;
	max-height: 700px;
}
#item img:not([data-type="image/jpeg"])
{
	background: white;
}
#item video
{
	width: 100%;
	max-height: 700px;
	background: black;
}
#item_link
{
	position: relative;
	overflow: hidden;
	border: 0;
	padding: 0;
	margin: 0;
}
#item_container.viewer,
#item_container.viewer #item_link
{
	cursor: zoom-in;
}
#item_container.large img
{
	max-height: none!important;
}
#item_container.viewer.large,
#item_container.viewer.large #item_link
{
	cursor: zoom-out;
}
#item_link::after
{
	position: absolute;
	content: '';
	background: #fff;
	opacity: 0;
	width: 200%;
	height: 200%;
	top: 0;
	left: 0;
}
#item_title
{
	display: none;
	font-size: 120%;
	font-weight: bold;
	color: #333;
	overflow: hidden;
	margin: 15px auto 20px;
	max-width: 650px;
	text-align: center;
}
#item_title.show
{
	display: block;
}
#item_description
{
	margin: 0 auto 40px;
}

/* Favori et sélection. */
#item.favorite::after,
#item.selection::before
{
	font-family: "IcoMoon";
	position: absolute;
	right: 12px;
	top: 12px;
	color: white;
	background: var(--color);
	z-index: 1;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0.9;
}
#item.favorite::after
{
	content: '\e910';
	font-size: 150%;
}
#item.selection::before
{
	content: '\ea52';
	font-size: 130%;
}
#item.favorite.selection::before
{
	top: 64px;
}

/* Listes */
#item_columns ul li
{
	margin: 5px 0;
}
#item_columns ul li span
{
	font-weight: bold;
	color: #333;
}

/* Colonnes */
#item_columns
{
	margin-top: 50px;
}
#item_columns > div > div > div
{
	margin-bottom: 40px;
}
#item_left > div:last-child
{
	margin-bottom: 0;
}
#item_left,
#item_right
{
	margin: 0 auto;
	max-width: 530px;
}
#item_exif,
#item_iptc,
#item_xmp
{
	word-break: break-word;
	overflow-wrap: break-word;
}
#item_xmp h3.icon span
{
	font-size: 150%;
}

/* Statistiques */
#item_stats
{
	display: none;
	justify-content: center;
	order: 1;
	margin: 0 -8px;
	padding: 6px 8px;
	background: #333;
}
#item_stats.show
{
	display: flex;
}
#item_stats li
{
	margin: 0 10px;
	font-size: 120%;
	color: white;
	display: flex;
	align-items: center;
}
#item_stats span:last-child
{
	font-family: "IcoMoon";
	margin-left: 8px;
}

/* Tags */
#item_tags ul li
{
	display: inline-block;
	margin: 7px 10px 7px 0;
}
#item_tags ul li a
{
	display: inline-block;
	padding: 6px 8px;
	border: 0;
	border-radius: 6px;
	font-size: 110%;
	border: 1px solid silver;
	margin: 0;
}
#item_tags ul li a:hover
{
	border-color: gray;
}

/* Description */
#item_columns .object_desc
{
	margin: 0;
}

/* Utilisateur et propriétés */
#item_user,
#item_properties
{
	display: none;
}
#item_user.show,
#item_properties.show
{
	display: block;
}
#item_user div
{
	display: flex;
	align-items: center;
}
#item_user_avatar
{
	margin-right: 10px;
}
#item_user_avatar > a
{
	border: 0;
	margin: 0;
	display: inline-block;
}
#item_user_avatar img
{
	object-fit: cover;
	margin: 0;
	border-radius: 50%;
	background: #eee;
	width: 50px;
	height: 50px;
}
#item_user div > p
{
	line-height: 1.8em;
}
#item_user_login,
#item_user_login a
{
	font-weight: bold;
	color: var(--color);
	text-decoration-color: var(--color);
}

/* Pagination */
#item_prev,
#item_next
{
	display: none;
}

/* Votes */
#item_rating h3:not(.icon)
{
	color: #555;
	margin-bottom: 10px;
}
#item_rating .message_info
{
	margin-top: 35px;
	padding-bottom: 10px;
}
#item_note
{
	margin-top: 5px;
	margin-bottom: 30px;
}
#item_note .rating
{
	position: relative;
	top: 2px;
	font-family: "IcoMoon";
	font-weight: bold;
	font-size: 160%;
	color: #555;
}
#item_user_note
{
	height: 48px;
	display: flex;
	align-items: center;
}
#item_user_note > span
{
	font-size: 220%;
	margin-left: -5px;
	font-family: "IcoMoon";
	cursor: pointer;
}
#item_user_note .rating
{
	margin: 0 5px;
	border: 0;
	padding: 0;
	color: var(--color);
	outline: none;
}
#item_user_note_delete
{
	position: relative;
	top: 2px;
	margin: 0 0 0 20px;
	border: 0;
	padding: 0;
	font-family: "IcoMoon";
	color: var(--color);
	font-size: 320%;
	outline-offset: 0;
}
#item_user_note_delete.hidden
{
	visibility: hidden;
}



/**
 * Page des images & vidéos : commentaires.
 *
 */
#item_no_comment
{
	margin-bottom: 50px;
}
#item_comments
{
	max-width: 500px;
}
#item_comments #rss
{
	margin: 0;
}
#item_comments .message_info
{
	margin-top: 60px;
}
#comment-form
{
	top: -10px;
	position: relative;
}

/* Formulaire. */
#item_comments_add
{
	margin-top: 60px;
}
#item_comments_add form
{
	max-width: 100%;
}
#item_comments_add input
{
	max-width: 300px;
}
#item_comments_add textarea
{
	max-width: 500px;
}
#item_comments_add h3
{
	color: #555;
	margin-bottom: 20px;
	padding-bottom: 3px;
	border-bottom: 1px solid silver;
}
#item_comments_add .message_info
{
	margin-top: 25px;
	margin-bottom: 20px;
}
#item_comments_add #submit
{
	display: flex;
	flex-direction: column;
}
#item_comments_add #submit p:first-child
{
	order: 2;
}
#item_comments_add #submit p:last-child
{
	order: 1;
}
#item_comment_remember
{
	margin-bottom: 20px;
}
#comment_preview
{
	background: var(--color);
	color: white;
	padding: 6px 10px;
	margin-top: 20px;
	position: relative;
}
#comment_preview::after
{
	content: '';
	position: absolute;
	bottom: -24px;
	left: calc(50% - 12px);
	display: block;
	border: 10px solid transparent;
	border-width: 12px 12px;
	border-top-color: var(--color);
}

/* Émojis. */
#item_comment_emoji_link
{
	float: right;
	display: inline-block;
	border: 0;
	padding: 0;
	margin: 0 15px 0 0;
}
#item_comment_emoji_link span
{
	font-size: 130%;
}
#box_emoji .box_content
{
	padding: 10px 10px 0;
}
#box_emoji .box_content .emoji
{
	border: 0;
	padding: 0;
	margin: 5px;
	font-size: 200%;
	display: inline-flex;
	justify-content: center;
	width: 1.2em;
	height: 1.2em;
}
#box_emoji .box_menu a
{
	height: auto;
	padding: 10px;
	font-size: 200%;
}
#box_emoji .box_menu span
{
	margin: 0;
	padding: 0;
}



/**
 * Commentaires.
 *
 */
.comment
{
	padding-top: 10px;
	margin: 20px 0 40px;
}

/* Image. */
.comment_avatar
{
	margin-right: 12px;
}
.comment_avatar a
{
	display: block;
	border: 0;
	margin: 0;
}
.comment_avatar img
{
	width: 50px;
	height: 50px;
	object-fit: cover;
	border-radius: 50%;
	background: #eee;
}

/* Partie supérieure. */
.comment_top
{
	padding-bottom: 5px;
	border-bottom: 1px solid silver;
	display: flex;
}
.comment_infos
{
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
}
.comment_infos > div
{
	display: flex;
}
.comment_infos > div > p:first-child
{
	flex: 1;
}

/* Auteur et date. */
.comment_author
{
	padding-bottom: 10px;
}
.comment_name
{
	font-weight: bold;
	font-size: 120%;
}
.comment_name,
.comment_name a
{
	color: var(--color);
	border-color: var(--color);
}
.comment_author,
.comment_date
{
	overflow: hidden;
	white-space: nowrap;
	width: 0;
}
.comment_author:has(a:focus-visible)
{
	overflow: visible;
}
.comment_date > span:first-child
{
	display: none;
}
.comment_edit,
.comment_num
{
	margin-left: 15px;
}
.comment_website
{
	display: none;
}

/* Icône d'édition. */
.comment_edit a
{
	font-family: "IcoMoon";
	font-size: 130%;
	color: #555;
	border: 0;
	margin: 0;
	padding: 0;
}
.comment_edit a:hover
{
	color: #000;
}

/* Message */
.comment_message
{
	margin-top: 10px;
	line-height: 1.6em;
	word-break: break-word;
	overflow-wrap: break-word;
}
.comment_message .emoji
{
	font-size: 130%;
}



/**
 * Page des commentaires.
 *
 */
#page_comments
{
	max-width: 700px;
	margin: 0 auto;
}
#page_comments .comment
{
	margin: 0 0 20px;
}
#page_comments .comment_thumb
{
	margin-right: 12px;
	margin-bottom: -1px;
}
#page_comments .comment_thumb a
{
	display: flex;
	justify-content: center;
	margin: 0;
	padding: 5px;
	width: 54px;
	height: 54px;
	border: 1px solid transparent;
	border-right: 1px solid silver;
	border-bottom: 1px solid silver;
	position: relative;
}
#page_comments .comment_thumb a:focus-visible
{
	outline-offset: -1px;
}
#page_comments .comment_thumb img
{
	width: 100%;
	object-fit: contain;
}
#page_comments .comment_thumb.video a::after
{
	content: '';
	width: 28px;
	height: 28px;
	position: absolute;
	top: 18px;
	left: 18px;
	background: white;
	border-radius: 50%;
	opacity: 0.7;
}
#page_comments .comment_thumb.video a::before
{
	content: '\ea1c';
	font-family: "IcoMoon";
	font-size: 110%;
	color: black;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	position: absolute;
	top: 18px;
	left: 19px;
	z-index: 1;
	opacity: 0.7;
}
#page_comments .comment_thumb.video a:hover::after,
#page_comments .comment_thumb.video a:hover::before
{
	opacity: 0;
}
#page_comments .comment_top
{
	padding: 0;
	border: 0;
}
#page_comments .comment_infos > div
{
	margin-right: 10px;
}
#page_comments .comment_author
{
	padding-bottom: 15px;
}
#page_comments .comment_message
{
	border-top: 1px solid silver;
	padding: 10px 10px 10px 5px;
	margin: 0;
}
#page_comments .comment_message .emoji
{
	font-size: 130%;
}
@media (min-width: 800px)
{
	#page_comments .comment_thumb a
	{
		width: 70px;
		height: 70px;
	}
	#page_comments .comment_thumb.video a::after
	{
		width: 30px;
		height: 30px;
		top: 25px;
		left: 25px;
	}
	#page_comments .comment_thumb.video a::before
	{
		width: 30px;
		height: 30px;
		top: 25px;
		left: 26px;
		font-size: 125%;
	}
	#page_comments .comment_author
	{
		padding-bottom: 20px;
	}
}



/**
 * Moteur de recherche.
 *
 */
#search_query
{
	width: 100%;
	max-width: calc(100% - 10px);
}
#search_date_start
{
	margin-bottom: 0;
}
#search_date_end
{
	margin-top: 0;
}
#search_query_container span
{
	display: flex;
	align-items: center;
}
#search_query_container label
{
	flex: 1;
}
#search_query_container a,
#search_query_container a:hover
{
	font-family: "IcoMoon";
	font-size: 130%;
	padding: 0;
	border: 0;
	margin: 0;
	color: #555;
}
#search_query_container a:hover
{
	color: #111;
}
#search_options
{
	margin: 30px 0 20px;
}
#search_options input:is([type="checkbox"], [type="radio"]) + label
{
	margin-right: 15px;
}
#search_options select:first-child
{
	margin-bottom: 15px;
}
#search_page input[type="text"]:not(.large)
{
	width: 4em;
}
#search_page input[type="number"]
{
	margin-bottom: 8px;
}
#search_page input[type="submit"]
{
	margin-top: 20px;
}
#search_options_link
{
	display: none;
	align-items: center;
	margin: 30px 0 20px;
}
#search_options_link a
{
	border: 0;
	margin: 0;
	font-size: 130%;
	color: #333;
	display: flex;
	align-items: center;
}
#search_options_link span
{
	font-family: "IcoMoon";
	font-size: 100%;
	margin: 1px 8px 0 0;
}
#search_options_link :is(a:hover, span)
{
	color: var(--color);
}
#search_infos span
{
	display: block;
	margin: 0 0 10px 1.3em;
	max-width: 42em;
	position: relative;
}
#search_infos span::before
{
	content: '\f105';
	font-family: "IcoMoon";
	font-size: 155%;
	top: -1px;
	left: -0.8em;
	color: #555;
	margin-right: 0.5em;
	position: absolute;
}



/**
 * Géolocalisation.
 *
 */
#worldmap
{
	z-index: 0;
}
#worldmap *:not(#popup_thumbs) a,
#worldmap *:not(#popup_thumbs) a:hover
{
	border: none;
	margin: 0;
}

/* Popup */
#worldmap .leaflet-popup-close-button
{
	display: none;
}
#worldmap .leaflet-popup-content-wrapper
{
	border-radius: 0;
}
#worldmap .leaflet-popup-content
{
	margin: 0;
}
#popup_thumbs :is(#thumbs_cat, .thumbs_items)
{
	margin: 5px 4px 5px 5px;
	font-size: 110%;
}
#popup_thumbs .thumbs_items dl,
#popup_thumbs #thumbs_cat dl
{
	margin: 0;
	display: none;
}
#popup_thumbs #thumbs_cat dl a
{
	border: 1px solid silver;
}
#popup_thumbs #thumbs_cat dl a:hover
{
	border: 1px solid var(--color);
}
#popup_thumbs .thumbs_items dd,
#popup_thumbs #thumbs_cat dd
{
	padding-top: 5px;
	overflow: hidden;
}
#popup_thumbs dl#popup_1
{
	display: block;
}
#popup_thumbs .thumbs_items dl,
#popup_thumbs .thumbs_items dd
{
	width: 110px;
}
#popup_thumbs #thumbs_cat dt img
{
	width: 100px;
	height: auto;
	min-height: auto;
}
#popup_thumbs #thumbs_cat dl,
#popup_thumbs #thumbs_cat dd
{
	width: 130px;
}
#popup_thumbs #thumbs_cat dt img
{
	width: 120px;
	height: auto;
	min-height: auto;
}
#popup_thumbs #thumbs_cat dd
{
	margin: 0 1px;
}

/* Popup : pagination */
#popup_thumbs #thumbs_pagination
{
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: .8em;
	position: relative;
	text-align: center;
	max-width: 150px;
	margin: 5px auto 10px;
	color: #333;
}
#popup_thumbs #thumbs_pagination span
{
	font-size: 130%;
}
#popup_thumbs #thumbs_pagination a
{
	font-family: "IcoMoon";
	font-size: 130%;
	cursor: pointer;
	color: #999;
	display: inline-block;
	padding: 0;
	border: 0;
}
#popup_thumbs #thumbs_pagination a:hover
{
	color: #777;
}
#popup_thumbs #thumbs_pagination_prev
{
	visibility: hidden;
	float: left;
	margin-left: 15px;
}
#popup_thumbs #thumbs_pagination_next
{
	float: right;
	margin-right: 15px;
}

/* Carte du monde */
#section_worldmap #worldmap
{
	height: 400px;
}

/* Page des photos */
.js #item_geolocation #worldmap
{
	text-align: left;
	height: 300px;
	margin-bottom: 15px;
}
.js #gallery[class*="large"] #item_geolocation #worldmap
{
	height: 350px;
}



/**
 * Pages des membres.
 *
 */
#member_page_content
{
	max-width: 600px;
	margin: 0 auto;
}
#member_page_edit
{
	width: 100%;
	min-width: 100%;
	max-width: 100%;
}

/* Menu : icônes */
#member_menu
{
	display: flex;
	margin: 0 auto;
	justify-content: center;
	flex-wrap: wrap;
}
#member_menu li
{
	margin: 10px 5px;
}
#member_menu a
{
	display: inline-block;
	border: 0;
	margin: 0;
	white-space: nowrap;
}
#member_menu span + span
{
	display: none;
}
.member_menu_icon
{
	font-family: "IcoMoon";
	font-size: 180%;
	color: #555;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
}
#member_menu li.current .member_menu_icon
{
	background: var(--color);
	border-radius: 50%;
	color: white;
}
#member_menu_admin .member_menu_icon,
#member_menu_avatar .member_menu_icon
{
	font-size: 200%;
}
#member_menu_upload .member_menu_icon
{
	padding-left: 2px;
	width: 42px;
	font-size: 190%;
}

/* Nom d'utilisateur et description */
#member_page h2
{
	margin: 5px 0 15px;
	padding: 0 0 5px;
	font-size: 100%;
	font-weight: normal;
	text-align: center;
}
#member_page h2 > a
{
	font-weight: bold;
	font-size: 180%;
	color: var(--color);
	border: 0;
}
#member_page h2 span:not(#member_page_admin)
{
	font-size: 125%;
	margin-top: 8px;
	display: block;
}
#member_page h2 span:not(#member_page_admin),
#member_page h2 span a
{
	color: #444;
}
#member_page_description
{
	margin: 15px auto;
	left: -15px;
	position: relative;
	width: calc(100% - 7px);
	padding: 15px;
	border: 1px solid silver;
	border-width: 1px 0;
}
#member_page_description > span
{
	display: block;
	max-width: 600px;
	font-size: 110%;
	line-height: 1.5em;
}
#member_page_description .emoji
{
	font-size: 130%;
}

/* Titres */
#member_page_content h3
{
	font-size: 140%;
	margin: 15px 0 30px;
	justify-content: center;
	text-align: center;
}

/* Listes */
#member_page_content li
{
	margin-bottom: 15px;
}
#member_page_content li span
{
	font-weight: bold;
	display: block;
	margin-bottom: 5px;
	color: #333;
}

/* Formulaires */
#member_page form.standard
{
	max-width: 400px;
}

/* Page de profil */
#member_page_profile
{
	margin-top: 20px;
}
#member_page_stats
{
	margin-top: 40px;
}
#member_page_avatar img
{
	margin: 0 auto 40px;
	max-width: 250px;
	background: #eee;
}
#member_page_stats .link_number > *
{
	display: inline-block;
	margin: 0;
	border: 0;
	font-size: 100%;
	padding: 10px 12px;
	color: white;
}
#member_page_stats .link_number a
{
	background: var(--color);
}
#member_page_stats .link_number span
{
	background: #555;
}

/* Édition de l'avatar */
#member_page_edit_avatar h4
{
	margin: 50px 0 15px;
	color: #333;
	font-weight: bold;
	font-size: 110%;
}
#member_page_edit_avatar img
{
	margin: 15px auto 0;
	max-width: 100%;
	background: #eee;
}



/**
 * Historique.
 *
 */
#history_type
{
	display: flex;
	justify-content: center;
	flex-direction: column;
	align-items: center;
	margin: 20px 0 30px;
}
#history_type a
{
	font-size: 120%;
	border: 1px solid silver;
	display: inline-block;
	margin: 10px;
	padding: 10px 15px;
	text-align: center;
}
#history_type a:hover
{
	border-color: #888;
}
#gallery #history_type a.current
{
	color: white;
	background: var(--color);
	border-color: var(--color);
}
#history_current
{
	text-align: center;
	font-size: 150%;
	margin: 0 0 40px;
	color: #555;
}
#history
{
	position: relative;
	margin: 0 auto 20px;
	padding: 0;
	width: 95%;
}
#history::before
{
	content: '';
	position: absolute;
	display: block;
	width: calc(50% - 1.5px);
	height: 100%;
	border-right: 3px solid #ddd;
}
#history > div
{
	position: relative;
	display: flex;
	flex-direction: column;
	width: 50%;
	padding-bottom: 40px;
}
#history .history_count
{
	line-height: 1.6em;
}
#history > div:nth-child(odd)
{
	left: -11.5px;
	margin-right: auto;
	padding-right: 10px;
	text-align: right;
}
#history > div:nth-child(odd) > *
{
	margin-left: auto;
}
#history > div:nth-child(even)
{
	left: 11.5px;
	margin-left: auto;
	padding-left: 10px;
}
#history > div:nth-child(even) > *
{
	margin-right: auto;
}
#history > div:first-child
{
	padding-top: 30px;
}
#history > div:last-child
{
	padding-bottom: 30px;
}
.history_date
{
	font-size: 140%;
}
.history_date,
.history_date a
{
	color: #555;
}
#history .history_thumb
{
	margin: 15px 0 8px;
	border: 0;
	background: #fafafa;
}
#history .history_thumb img
{
	max-width: 140px;
	max-height: 140px;
}
@media (min-width: 600px)
{
	#history_type
	{
		flex-direction: row;
	}
	#history_type p
	{
		width: 50%;
		display: flex;
	}
	#history > div:nth-child(odd)
	{
		left: -16.5px;
		padding-right: 15px;
	}
	#history > div:nth-child(even)
	{
		left: 16.5px;
		padding-left: 15px;
	}
	#history_type > p:first-child
	{
		justify-content: flex-end;
	}
	#history .history_thumb img
	{
		max-width: 200px;
		max-height: 200px;
	}
}



/**
 * Envoi de fichiers.
 *
 */
#upload
{
	margin-top: 20px;
	max-width: 575px;
}
.upload_limits
{
	margin: 10px 0;
	line-height: 1.5em;
}

/* Liste des fichiers */
#upload_list
{
	outline: 1px solid silver;
	overflow-y: scroll;
	height: 183px;
	background: white;
}
#upload_list.dragover
{
	outline: 3px dashed #69A644;
	border-color: transparent;
}
#upload_list.dragleave
{
	border-color: silver;
}
#upload_startmsg
{
	color: #bbb;
	font-size: 150%;
	margin: auto;
	text-align: center;
	position: relative;
	top: 50%;
	transform: translateY(-50%);
}

/* Fichier */
#upload_list .upload_file
{
	border-left: 4px solid #FCFCFC;
	border-bottom: 1px solid #ddd;
	background: #FCFCFC;
	height: 60px;
	overflow: hidden;
}
#upload_list .upload_file_infos
{
	display: flex;
	padding: 10px 15px 0 10px;
	height: 20px;
}
#upload_list .upload_file_progress
{
	display: flex;
	align-items: center;
	padding: 0 15px 5px 10px;
	height: 25px;
}
#upload_list .upload_file_name
{
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	flex: 1;
	width: 0;
}
#upload_list .upload_file_size
{
	overflow: hidden;
	white-space: nowrap;
	width: 7em;
	text-align: right;
}
#upload_list .upload_file_progress p
{
	position: relative;
	padding-left: 24px;
	font-weight: bold;
}
#upload_list .upload_file_progress p::before
{
	top: -4px;
	left: 0;
	position: absolute;
	font-family: "IcoMoon";
	font-size: 150%;
}
#upload_list .upload_file_progress > div
{
	border: 1px solid silver;
	flex: 1;
}
#upload_list .upload_file_progress div div
{
	height: 4px;
	background: #385074;
	width: 0%;
}
#upload_list .upload_file_delete
{
	float: right;
	margin: 7px 11px 0 0;
	height: 22px;
	width: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	padding: 0;
	position: relative;
}
#upload_list .upload_file_delete::before
{
	content: '\e916';
	position: absolute;
	font-family: "IcoMoon";
	font-size: 160%;
}

/* Fichier : non autorisé */
#upload_list .upload_file_warning
{
	background: #F0F0F0;
	border-left-color: #CB9225;
}
#upload_list .upload_file_warning .upload_file_progress p
{
	color: #BC8722;
}
#upload_list .upload_file_warning .upload_file_progress p::before
{
	content: '\f06a';
}
#upload_list .upload_file_warning .upload_file_thumb
{
	display: none;
}

/* Fichier : échec de l'envoi */
#upload_list .upload_file_error
{
	background: #F0F0F0;
	border-left-color: #D60E0E;
}
#upload_list .upload_file_error .upload_file_progress p
{
	color: #D60E0E;
}
#upload_list .upload_file_error .upload_file_progress p::before
{
	content: '\f06a';
}

/* Fichier : envoi réussi */
#upload_list .upload_file_success
{
	border-left-color: #739C2C;
}
#upload_list .upload_file_success .upload_file_progress p
{
	color: #648F27;
}
#upload_list .upload_file_success .upload_file_progress p::before
{
	content: '\e905';
}

/* Informations générales */
#upload_infos
{
	margin: 10px 0 15px;
}
#upload_infos_total
{
	margin-bottom: 5px;
}

/* Catégories */
#list_categories
{
	padding: 6px 0 10px;
}
#list_categories_msg
{
	line-height: 2em;
}
#select_path
{
	margin: 0 0 30px;
	line-height: 1.5em;
}
#select_path::before
{
	top: 1px;
}
@-moz-document url-prefix()
{
	#select_path::before
	{
		top: .2em;
	}
}
#list_categories select
{
	margin-bottom: 5px;
	min-width: 90%;
	max-width: 90%;
}
#list_categories option:first-child
{
	font-weight: bold;
}
#new_cat_form #list_categories
{
	padding: 6px 0 4px;
}
#new_cat_form #list_categories :is(select, textarea)
{
	margin: 0;
	width: calc(95% + 10px);
	min-width: auto;
	max-width: calc(30em + 10px);
}
#new_cat_form #list_categories textarea
{
	max-width: calc(38em + 10px);
}



/**
 * Page des membres.
 *
 */
#members_list table img
{
	width: 60px;
	height: 60px;
	border-radius: 50%;
	object-fit: cover;
}
#members_list :is(.date_created, .date_lastvisited)
{
	display: none;
}
#members_list .avatar a
{
	display: block;
	border: 0;
	margin: 0;
}



/**
 * Flux RSS.
 *
 */
#rss
{
	text-align: right;
	margin: 20px 10px 0;
}
#rss li
{
	display: inline-block;
	margin: 20px 0 0 15px;
}
#rss a
{
	border: 0;
	margin: 0;
}
#rss span:first-child
{
	font-family: "IcoMoon";
	font-size: 130%;
	color: var(--color);
	top: 3px;
	position: relative;
	margin-right: 2px;
}
#rss span:last-child
{
	border-bottom: 1px solid gray;
	margin-bottom: 1px;
}
#rss a:hover span:last-child
{
	border-width: 2px;
	margin-bottom: 0;
}

/* Page des fichiers */
#item_columns #rss
{
	margin-top: 50px;
}
#item_columns #rss a span
{
	font-weight: normal;
}



/**
 * Tags de catégories.
 *
 */
#bottom_tags > a
{
	margin-top: 25px;
	display: inline-block;
}
#cat_tags li
{
	display: inline-block;
	margin: 10px 10px 10px 0;
}
#cat_tags li a
{
	font-size: 120%;
	border-width: 0;
	color: var(--color);
}
#cat_tags li a:hover
{
	border-bottom: 2px solid var(--color);
}
#cat_tags .w1 { font-size: 100% }
#cat_tags .w2 { font-size: 110%; }
#cat_tags .w3 { font-size: 120%; }
#cat_tags .w4 { font-size: 130%; }
#cat_tags .w5 { font-size: 140%; }
#cat_tags .w6 { font-size: 150%; }
#cat_tags .w7 { font-size: 160%; }
#cat_tags .w8 { font-size: 170%; }
#cat_tags .w9 { font-size: 180%; }
#cat_tags .w10 { font-size: 190%; }

/* Page des tags. */
#section_tags #cat_tags li
{
	margin: 10px;
	line-height: 1.7em;
}



/**
 * Bas de page.
 *
 */
#bottom
{
	margin: 20px -8px 0;
	padding: 20px 8px 10px;
	display: flex;
	flex-direction: column;
	overflow-wrap: anywhere;
}
body.bg #bottom
{
	margin-top: 0;
	background: #fafafa;
	border-top: 2px solid #ddd;
}
#item_columns + #pages_bottom
{
	margin-top: 60px;
}
#bottom > div
{
	margin: 0 auto 40px;
	max-width: 520px;
	width: 100%;
}
#bottom > div:last-child
{
	margin-bottom: 10px;
}
#bottom h3
{
	color: #555;
	font-weight: bold;
	font-size: 135%;
	margin-bottom: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Statistiques des catégories */
#bottom_stats li
{
	display: inline-block;
	margin: 10px 5px;
	line-height: 1.5em;
}
#bottom_stats li.rating
{
	font-family: "IcoMoon";
	font-size: 130%;
	color: var(--color);
}
#bottom_stats li .icon
{
	font-family: "IcoMoon";
	font-size: 130%;
	border: 0;
	padding: 0;
	margin: 0 0 0 4px;
	position: relative;
	top: 3px;
	color: #555;
}
#bottom_stats li .icon:hover
{
	color: var(--color);
}

/* Liens externes et utilisateurs en ligne */
#bottom_links > div,
#bottom_online > div
{
	columns: auto 150px;
	margin: 20px 0 0 15px;
}
#bottom_links ul,
#bottom_online ul
{
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid-column;
    display: table;
}
#bottom_links li,
#bottom_online li
{
	list-style: square;
	color: var(--color);
	margin: 0 15px 15px 0;
	line-height: 1.5em;
}
#bottom_links a
{
	padding-top: 5px;
}
:is(#bottom_links, #bottom_online) a:focus-visible
{
	outline: none;
}
:is(#bottom_links, #bottom_online) li:has(a:focus-visible)
{
	outline: 2px solid var(--focus-visible-color);
}

/* Au hasard */
#bottom #bottom_random
{
	max-width: 100%;
}
#bottom_random h3 a
{
	color: #555;
	font-family: "IcoMoon";
	border: none;
	padding: 0;
	margin: 0 0 0 10px;
}
#bottom_random h3 a.load
{
	opacity: 0.25;
	cursor: default;
}
#bottom_random h3 a.finish
{
	opacity: 1;
	cursor: default;
	transition: opacity 0.25s linear;
}
#bottom_random .thumbs_items
{
	margin: 10px 0 0 0;
}
#bottom #bottom_random dl
{
	margin: 7px auto 0;
}
#bottom_random .thumbs_items dd span.title
{
	height: 1.45em;
	max-height: 1.45em;
}
#bottom_random .thumbs_items[class*="large"] dd span.title
{
	height: 1.7em;
	max-height: 1.7em;
}



/**
 * Debug.
 *
 */
#debug .log
{
	background: white;
	margin: 20px 0;
}



/**
 * Footer.
 *
 */
footer
{
	margin: 20px auto 10px;
	padding-top: 10px;
	border-top: 1px solid #ddd;
}
body.bg footer
{
	margin-top: 0;
}
footer p
{
	text-align: center;
	color: #333;
	font-size: 90%;
	margin-bottom: 8px;
}
footer a,
footer a:hover
{
	color: #333;
	border-color: #333;
	padding: 1px;
}
footer a:hover,
footer a:hover span
{
	color: #333;
	border-color: #333;
}
#footer_text
{
	margin: 0 0 10px;
}

/* Lien du menu des langues */
#footer_lang
{
	display: flex;
	justify-content: center;
}
#footer_lang a
{
	border: 0;
	display: flex;
	align-items: center;
	margin: 0 10px 0 0;
}
#footer_lang a:hover,
#footer_lang a:hover span
{
	color: black;
}
#footer_lang a span
{
	font-family: "IcoMoon";
	font-size: 170%;
	margin: -1px 5px 0 0;
}

/* Menu des langues */
#form_lang
{
	display: none;
}
#lang_switch
{
	position: fixed;
	z-index: 100;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	display: flex;
}
#lang_switch::before
{
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: 0.5;
	z-index: 100;
}
#lang_switch ul
{
	max-width: 800px;
	max-height: calc(100% - 30px);
	padding: 15px;
	background: white;
	z-index: 100;
	overflow: auto;
}
#lang_switch li
{
	margin: 10px;
}
#lang_switch li a
{
	padding: 10px;
	padding-right: 25px;
	border: 1px solid silver;
	margin: 0;
	display: flex;
	align-items: center;
	color: #000;
}
#lang_switch li a span
{
	font-family: "Courier New", serif;
	margin: 0 5px;
	top: 1px;
	position: relative;
}
#lang_switch li a:hover
{
	background: #eee;
}
#lang_switch li.current
{
	outline: 2px solid var(--color);
}
#lang_switch li.current a
{
	border-color: var(--color);
}



/**
 * Media queries : vignettes de catégories.
 *
 */
/* Taille : petite */
@media (min-width: 360px)
{
	#thumbs_cat.small
	{
		margin: 10px -5px 0;
		max-width: 1016px;
	}
	#thumbs_cat.small dl
	{
		width: calc(50% - 10px);
		margin: 10px 5px;
	}
}
@media (min-width: 515px)
{
	#thumbs_cat.small dl
	{
		width: calc(33.3333% - 10px);
	}
}
@media (min-width: 768px)
{
	#thumbs_cat.small dl
	{
		width: calc(25% - 10px);
	}
}
@media (min-width: 1020px)
{
	#thumbs_cat.small
	{
		margin: 10px auto 0;
	}
}

/* Taille : grande */
@media (min-width: 360px)
{
	#thumbs_cat.large
	{
		margin: 10px -5px 0;
		max-width: 1023px;
	}
	#thumbs_cat.large dl
	{
		width: calc(50% - 10px);
		margin: 10px 5px;
	}
}
@media (min-width: 700px)
{
	#thumbs_cat.large dl
	{
		width: calc(33.3333% - 10px);
	}
}
@media (min-width: 1020px)
{
	#thumbs_cat.large
	{
		margin: 10px auto 0;
	}
}



/**
 * Media queries : vignettes de fichiers.
 *
 */
/* Taille : petite */
@media (min-width: 250px)
{
	.thumbs_items.small
	{
		margin: 10px -5px 0;
		max-width: 1016px;
	}
	.thumbs_items.small dl
	{
		width: calc(50% - 10px);
		margin: 10px 5px;
	}
}
@media (min-width: 325px)
{
	.thumbs_items.small dl
	{
		width: calc(33.3333% - 10px);
	}
}
@media (min-width: 500px)
{
	.thumbs_items.small dl
	{
		width: calc(25% - 10px);
	}
}
@media (min-width: 650px)
{
	.thumbs_items.small.standard
	{
		margin: 10px auto 0;
		max-width: 680px;
	}
	.thumbs_items.small dl
	{
		width: calc(22%);
		margin: 10px 1.5%;
	}
}
@media (min-width: 750px)
{
	.thumbs_items.small.standard
	{
		margin: 10px -8px 0;
		max-width: 1016px;
	}
	.thumbs_items.small dl
	{
		width: calc(16.6667% - 10px);
		margin: 10px 5px;
	}
}
@media (min-width: 972px)
{
	.thumbs_items.small,
	.thumbs_items.small.standard
	{
		margin: 10px auto 0;
	}
	.thumbs_items.small.standard dl
	{
		max-width: 161px;
	}
	.thumbs_items.small.standard dt a img
	{
		padding: 5px;
		width: calc(100% - 10px);
		height: calc(100% - 10px);
	}
}
@media (min-width: 1180px)
{
	.thumbs_items.small,
	.thumbs_items.small.standard
	{
		margin: 10px -10px 20px;
		max-width: none;
		padding-left: 4px;
	}
	.thumbs_items.small dl
	{
		margin: 10px 7.5px;
	}
	.thumbs_items.small dt span.new
	{
		top: 0;
		padding: 8px;
		font-size: 90%;
	}
}

/* Taille : grande */
@media (min-width: 360px)
{
	.thumbs_items.large
	{
		margin: 10px -5px 0;
		max-width: 1016px;
	}
	.thumbs_items.large dl
	{
		width: calc(50% - 10px);
		margin: 10px 5px;
	}
}
@media (min-width: 502px)
{
	.thumbs_items.large dl
	{
		width: calc(33.3333% - 10px);
	}
}
@media (min-width: 744px)
{
	.thumbs_items.large
	{
		margin: 10px auto 0;
		max-width: 744px;
	}
}
@media (min-width: 850px)
{
	.thumbs_items.large
	{
		max-width: 998px;
	}
	.thumbs_items.large dl
	{
		width: calc(25% - 10px);
		margin: 10px 5px;
	}
}
@media (min-width: 972px)
{
	.thumbs_items.large,
	.thumbs_items.large.standard
	{
		margin: 10px auto 0;
	}
	.thumbs_items.large.standard dl
	{
		max-width: 248px;
	}
	.thumbs_items.large.standard dt a img
	{
		padding: 5px;
		width: calc(100% - 10px);
		height: calc(100% - 10px);
	}
}
@media (min-width: 1180px)
{
	.thumbs_items.large,
	.thumbs_items.large.standard
	{
		max-width: none;
		margin: 10px -17px 20px 0;
		padding-left: 1px;
	}
	.thumbs_items.large dl
	{
		margin: 10px 17px 10px 0;
	}
	.thumbs_items[class*="large"] dt span.new
	{
		top: 0;
		padding: 9px;
		font-size: 100%;
	}
	.thumbs_items.superlarge dt span.new
	{
		font-size: 110%;
	}
	.thumbs_items[class*="large"] dt .selection_icon
	{
		font-size: 130%;
		width: 3em;
		height: 3em;
	}
}

/* Taille : très grande */
@media (min-width: 360px)
{
	.thumbs_items.superlarge
	{
		margin: 10px -5px 0;
		max-width: 687px;
	}
	.thumbs_items.superlarge dl
	{
		width: calc(50% - 10px);
		margin: 10px 5px;
	}
}
@media (min-width: 680px)
{
	.thumbs_items.superlarge
	{
		margin: 10px auto 0;
		max-width: 1035px;
	}
	.thumbs_items.superlarge dl
	{
		width: calc(33.3333% - 10px);
	}
}
@media (min-width: 972px)
{
	.thumbs_items.superlarge,
	.thumbs_items.superlarge.standard
	{
		margin: 10px auto 0;
	}
	.thumbs_items.superlarge.standard dl
	{
		max-width: 335px;
	}
	.thumbs_items.superlarge.standard dt a img
	{
		padding: 5px;
		width: calc(100% - 10px);
		height: calc(100% - 10px);
	}
}
@media (min-width: 1180px)
{
	.thumbs_items.superlarge,
	.thumbs_items.superlarge.standard
	{
		max-width: none;
		margin: 10px -15px 0 3px;
	}
	.thumbs_items.superlarge dl
	{
		margin: 10px 17px 10px 0;
	}
}



/**
 * Media queries : écrans larges.
 *
 */
@media (min-width: 1180px)
{
	/**
	 * Structure générale.
	 *
	 */
	body
	{
		overflow-x: hidden;
	}
	#gallery
	{
		margin: 0 auto;
		max-width: 1045px;
	}
	#content
	{
		padding: 0;
	}
	main.dark::before
	{
		display: none;
	}
	a:focus
	{
		outline: 1px dotted #808080;
	}



	/**
	 * Header.
	 *
	 */
	#gallery header
	{
		margin-bottom: 5px;
	}
	#header_top
	{
		height: auto;
		margin: 0 0 30px;
		padding: 0;
		border: 0;
		align-items: flex-start;
		box-shadow: none;
		background: none;
	}

	/* Changement du style. */
	#user_style_large
	{
		position: absolute;
		top: 15px;
		right: 15px;
		z-index: 1;
	}
	header.user #user_style_large
	{
		right: -40px;
	}
	#user_style_large.active
	{
		display: block;
	}
	#user_style_large a
	{
		font-family: "IcoMoon";
		font-size: 175%;
		color: #555;
		padding: 0;
		border: 0;
		margin: 0;
		background: hsla(255, 100%, 100%, 0.75);
		outline: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
	}
	#user_style_large a:focus-visible
	{
		outline-offset: 0;
	}
	header.user #user_style_large a
	{
		background: white;
	}
	#user_style_large a:hover
	{
		color: #333;
	}
	header.none #user_style_large
	{
		right: -50px;
	}

	/* Titre. */
	header h1
	{
		font-size: 250%;
		margin: 15px auto;
	}
	header h1 a
	{
		color: #333;
	}
	header.user h1
	{
		margin: 15px 0;
	}
	header.color h1
	{
		margin: 10px 0;
	}

	/* Couleur. */
	header.color #header_top
	{
	   background: var(--color);
	   margin: 0 0 5px;
	}
	header.color #title a,
	header.color #user_menu
	{
		margin: 0 10px;
	}
	header.color #title a,
	header.color #user_links #user_menu a
	{
		color: white;
		border-color: white;
	}

	/* Bannière. */
	header.banner #title
	{
		overflow: visible;
		display: block;
		white-space: normal;
		margin-right: 200px;
	}
	header.banner h1
	{
		border-left: 5px solid var(--color);
		padding: 0 15px;
		margin-left: -5px;
	}
	header.banner #header_top
	{
		margin: 0;
		height: var(--header-height);
		background-size: var(--banner-size);
		background-position: var(--banner-position);
		background-repeat: var(--banner-repeat);
		background-image: var(--banner-image);
		background-color: var(--banner-color);
	}
	header.banner #header_top h1
	{
		padding: 5px 15px;
		background: hsla(255, 100%, 100%, 0.75);
	}

	/* Bannière : aucune texture ni fichier. */
	header:not(.banner) #user_links
	{
		margin: auto;
	}
	header:not(.banner):has(#user_style_large.active) #user_links
	{
		margin-right: calc(1.5em + 25px);
		padding-right: 15px;
	}
	header:not(.banner) #user_style_large.active
	{
		position: absolute;
		top: 0;
		right: 10px;
		height: 100%;
		margin: 0;
		padding: 0;
		display: flex;
		align-items: center;
		font-size: 110%;
	}
	header:not(.banner) #user_style_large a
	{
		background: none;
		color: white;
		border: 0;
	}

	/* Aucune bannière. */
	header.none #user_links
	{
		padding-right: 0;
	}
	header.none:has(#user_style_large.active) #user_links
	{
		margin-right: calc(1.5em + 8px);
	}
	header.none #user_style_large.active
	{
		right: -8px;
	}
	header.none #user_style_large a
	{
		color: #555;
	}

	/* Menu */
	#menu_link.show
	{
		display: none;
	}
	#menu nav
	{
		display: block !important;
		opacity: 1 !important;
		margin: 0 auto 20px;
		position: relative;
		top: 0;
		background: none;
		max-width: var(--menu-max-width);
	}
	#menu ul
	{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}
	#menu li,
	#menu li.icon
	{
		display: inline-block;
		margin: 0 8px 5px;
	}
	#menu li a
	{
		display: flex;
		border: 0;
		padding: 8px 8px 5px;
		font-size: 120%;
		text-transform: uppercase;
		color: #555;
		height: auto;
	}
	#menu li.current :is(a, a:hover)
	{
		margin-bottom: -2px;
		border-bottom: 2px solid var(--color);
		color: var(--color);
	}
	#menu li a:hover
	{
		color: #000;
		background: none;
	}
	#menu a::before
	{
		display: none;
	}

	/* Icônes. */
	#menu li.icon a
	{
		font-family: "IcoMoon";
		color: #555;
	}
	#menu li.icon
	{
		position: relative;
		display: flex;
		justify-content: center;
	}
	#menu li.icon::before
	{
		font-family: "IcoMoon";
		position: absolute;
		color: #555;
	}
	#menu li.icon:hover::before,
	#menu #menu_gallery.browse:hover::before
	{
		color: #000;
	}
	#menu li.icon.current::before,
	#menu li.icon.current:hover::before,
	#menu #menu_gallery.browse.current::before,
	#menu #menu_gallery.browse.current:hover::before
	{
		color: var(--color);
	}
	#menu li.icon a span
	{
		visibility: hidden;
		display: block;
	}

	/* Liste des catégories : icône */
	#menu #menu_gallery.browse
	{
		position: relative;
	}
	#menu #menu_gallery.browse a
	{
		padding-right: calc(1.25em + 8px);
	}
	#menu #menu_gallery.browse::before
	{
		content: '\f107';
		position: absolute;
		display: flex;
		align-items: center;
		justify-content: center;
		top: 0;
		right: 8px;
		height: 100%;
		width: 0.5em;
		font-family: "IcoMoon";
		font-size: 160%;
		color: #555;
		padding-top: 3px;
		box-sizing: border-box;
	}

	/* Home. */
	#menu li#menu_home_icon
	{
		display: none;
	}
	#menu li#menu_home_icon.show
	{
		display: flex;
	}
	#menu li#menu_home_icon::before
	{
		content: '\e906';
		font-size: 175%;
		bottom: 3px;
	}
	@-moz-document url-prefix()
	{
		#menu li#menu_home_icon::before
		{
			bottom: 1px;
		}
	}
	#menu li#menu_home_icon
	{
		top: -0.05em;
	}
	#menu li#menu_home_icon a span
	{
		margin: 0 2px;
	}

	/* Recherche. */
	#menu li#menu_search
	{
		display: none;
	}
	#menu li#menu_search_icon
	{
		top: -0.5px;
	}
	#menu li#menu_search_icon::before
	{
		content: '\e986';
		font-size: 120%;
		bottom: .4em;
	}
	@-moz-document url-prefix()
	{
		#menu li#menu_search_icon::before
		{
			bottom: .3em;
		}
	}

	/* Liens utilisateur. */
	#user_style_small
	{
		display: none;
	}
	#user_links
	{
		padding: 0 15px;
		margin-top: 15px;
	}
	#user_links img
	{
		width: 40px;
		height: 40px;
	}
	#user_links > a
	{
		display: none;
	}
	header.banner #user_links
	{
		background: hsla(255, 100%, 100%, 0.75);
	}
	#header_top #user_links ul
	{
		display: flex !important;
		align-items: center;
		position: relative;
		top: 0;
		right: 0;
		border: 0;
		margin: 0;
	}
	#user_links ul :is(a, a:hover)
	{
		display: inline;
		padding: 0;
		margin: 0;
		border: 0;
		background: none;
		border-bottom: 1px solid gray;
		margin-bottom: 1px;
		font-size: 100%;
	}
	#user_links ul a:hover
	{
		border-width: 2px;
		margin-bottom: 0;
	}
	#user_links ul::after,
	#user_links ul::before
	{
		display: none;
	}
	#user_links li#user_avatar
	{
		display: block;
		margin: 0 10px 0 0;
	}
	#user_links li#user_avatar a
	{
		display: block;
		margin: 0;
		border: 0;
	}
	#user_links li#user_avatar a:focus-visible
	{
		outline-offset: 0;
	}
	#user_links li:is(#user_login, #user_register)
	{
		margin-right: 10px;
	}
	#user_links li#user_login a
	{
		border-color: var(--color);
	}



	/**
	 * Contenu.
	 *
	 */
	#gallery_closed
	{
		max-width: 520px;
	}

	/* Description */
	.object_desc
	{
		margin: 20px 0 30px;
		max-width: var(--desc-max-width);
	}



	/**
	 * Tableaux.
	 *
	 */
	table.default td
	{
		padding: 10px;
	}
	



	/**
	 * Formulaires.
	 *
	 */
	.field_sublvl
	{
		margin-left: 20px;
		padding-left: 15px;
		border-left: 1px solid silver;
	}
	.js .button_file
	{
		max-width: 400px;
	}

	/* Bouton d'envoi. */
	input:is([type="reset"], [type="submit"])
	{
		min-height: 26px;
	}

	/* Formulaire standard. */
	form.standard
	{
		padding: 0;
		margin-top: 10px;
	}
	form.standard .required label
	{
		padding-left: 0;
	}
	form.standard .required::before
	{
		left: -1.2em;
	}



	/**
	 * Fil d'Ariane et outils.
	 *
	 */
	#breadcrumb_tools nav
	{
		margin-right: 30px;
	}



	/**
	 * Viewer.
	 *
	 */
	#viewer
	{
		padding: 15px;
	}
	#viewer img
	{
		border: 5px solid white;
	}



	/**
	 * Liens de navigation entre les pages.
	 *
	 */
	#gallery #pages_top
	{
		display: block;
	}
	.pages form
	{
		display: block;
		margin: 0 10px;
	}
	.pages form input
	{
		width: 2.5em;
		height: 2.2em;
	}

	/* Liens. */
	#gallery .pages .link > *
	{
		height: 2.2em;
		width: 2.2em;
		margin: 0 5px;
	}

	/* Icônes. */
	.pages .link > *::after
	{
		font-size: 120%;
		font-weight: bold;
	}

	/* Page des fichiers. */
	#item_columns + #pages_bottom
	{
		margin-top: 30px;
	}



	/**
	 * Fil d'Ariane et outils.
	 *
	 */
	#breadcrumb_tools
	{
		display: flex;
	}
	#gallery #breadcrumb_tools #tools
	{
		top: 3px;
		margin: 0;
		text-align: left;
		display: flex;
		align-items: flex-end;
	}
	#tools li
	{
		margin: 0 0 0 13px;
	}
	#tools a
	{
		font-size: 180%;
		display: inline;
		height: auto;
	}
	#tools :is(#link_prev, #link_next)
	{
		display: none;
	}
	#tools #link_edit a
	{
		font-size: 150%;
	}
	#tools #link_delete a
	{
		font-size: 160%;
	}
	#tools #link_selection a
	{
		font-size: 150%;
		position: relative;
		top: -1px;
	}



	/**
	 * Boîtes flottantes.
	 *
	 */
	.box
	{
		width: 600px;
		min-width: 600px;
		max-width: 600px;
	}
	.box_page
	{
		box-shadow: 0 0 10px #555;
	}

	/* Édition du fichier. */
	#box_category .box,
	#box_item .box
	{
		width: 650px;
		min-width: 650px;
		max-width: 650px;
	}
	
	/* Console de connexion. */
	/* Mot de passe de catégorie. */
	#box_login .box,
	#box_password .box
	{
		width: 380px;
		min-width: 380px;
		max-width: 380px;
	}

	/* Émojis. */
	#item_comment_emoji_link
	{
		margin: 0;
	}
	#box_emoji .box
	{
		width: 800px;
		min-width: 800px;
		max-width: 800px;
	}



	/**
	 * Boîtes flottantes avec flèche.
	 *
	 */
	#user_menu
	{
		opacity: 1 !important;
	}
	.box_arrow:not(#user_menu)
	{
		display: none;
		position: absolute;
		right: 0;
		top: 40px;
		background: #fff;
		border: 1px solid #aaa;
		z-index: 100;
	}

	/* Flèche */
	.arrow_top,
	.arrow_top_border
	{
		content: '';
		position: absolute;
		top: -17px;
		left: 20px;
		display: block;
		border: 10px solid transparent;
		border-width: 0 10px 16px;
		border-bottom-color: #aaa;
	}
	.arrow_top
	{
		top: -15px;
		border-width: 0 10px 16px;
		border-bottom-color: white;
	}



	/**
	 * Liste des catégories.
	 *
	 */
	#browse_inner
	{
		overflow-x: hidden;
	}
	#browse ul
	{
		overflow-x: hidden;
		overflow-y: auto;
		max-height: 600px;
	}
	#browse[data-subcats="1"] li
	{
		display: none;
	}
	#browse[data-subcats="1"] li:is([id*=":0{"], [id*=":1{"])
	{
		display: flex;
	}
	#browse a
	{
		display: flex;
		flex: 1;
		align-items: center;
		height: 1.9em;
		margin: 0;
		padding: 0 5px;
		border: 0;
		outline: none;
		min-width: 0;
	}
	#browse b
	{
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		font-weight: normal;
	}
	#browse i
	{
		font-style: normal;
	}

	/* Chemin complet. */
	#browse_path
	{
		display: none;
		padding: 8px 10px;
		border-top: 1px solid #aaa;
		line-height: 1.8em;
	}

	/* Largeur. */
	*[data-levels="1"] { width: 35em; max-width: 35em; }
	*[data-levels="2"] { width: 37em; max-width: 37em; }
	*[data-levels="3"] { width: 39em; max-width: 39em; }
	*[data-levels="4"] { width: 41em; max-width: 41em; }
	*[data-levels="5"] { width: 43em; max-width: 43em; }
	*[data-levels="6"] { width: 45em; max-width: 45em; }
	*[data-levels="7"] { width: 47em; max-width: 47em; }
	*[data-levels="8"] { width: 49em; max-width: 49em; }
	*[data-levels="9"] { width: 51em; max-width: 51em; }
	*[data-levels="10"] { width: 53em; max-width: 53em; }
	*[data-levels="11"] { width: 55em; max-width: 55em; }
	*[data-levels="12"] { width: 57em; max-width: 57em; }
	*[data-levels="13"] { width: 59em; max-width: 59em; }
	*[data-levels="14"] { width: 61em; max-width: 61em; }
	*[data-levels="15"] { width: 63em; max-width: 63em; }
	*[data-levels="16"] { width: 65em; max-width: 65em; }
	*[data-levels="17"] { width: 67em; max-width: 67em; }
	*[data-levels="18"] { width: 69em; max-width: 69em; }
	*[data-levels="19"] { width: 71em; max-width: 71em; }
	*[data-levels="20"] { width: 73em; max-width: 73em; }

	/* Indentation. */
	*[id*=":1{"] b { margin-left: 15px; }
	*[id*=":2{"] b { margin-left: 30px; }
	*[id*=":3{"] b { margin-left: 45px; }
	*[id*=":4{"] b { margin-left: 60px; }
	*[id*=":5{"] b { margin-left: 75px; }
	*[id*=":6{"] b { margin-left: 90px; }
	*[id*=":7{"] b { margin-left: 105px; }
	*[id*=":8{"] b { margin-left: 120px; }
	*[id*=":9{"] b { margin-left: 135px; }
	*[id*=":10{"] b { margin-left: 150px; }
	*[id*=":11{"] b { margin-left: 165px; }
	*[id*=":12{"] b { margin-left: 180px; }
	*[id*=":13{"] b { margin-left: 195px; }
	*[id*=":14{"] b { margin-left: 210px; }
	*[id*=":15{"] b { margin-left: 225px; }
	*[id*=":16{"] b { margin-left: 240px; }
	*[id*=":17{"] b { margin-left: 255px; }
	*[id*=":18{"] b { margin-left: 270px; }
	*[id*=":19{"] b { margin-left: 285px; }
	*[id*=":20{"] b { margin-left: 300px; }

	/* Boutons "+" et "-". */
	#browse li > i
	{
		display: flex;
		align-items: center;
		justify-content: center;
		font-family: "Courier New", serif;
		font-size: 150%;
		cursor: pointer;
		width: 1.3em;
		max-width: 1.3em;
		min-width: 1.3em;
	}
	#browse:is(.search, [data-subcats="0"]) li > i
	{
		display: none;
	}
	#gallery #browse li > i:hover
	{
		background: #aaa;
	}
	#gallery #browse li[id*="c"] > i:hover
	{
		background: #777;
	}

	/* Liens. */
	#browse li[id*="c"] *
	{
		background-color: var(--color);
		color: white;
	}
	#browse li:not([id*="c"]):hover *,
	#browse li:not([id*="c"]):has(a:focus-visible) *
	{
		background: #dedede;
	}
	#browse li[id*="c"]:has(a:focus-visible) *
	{
		background: #777;
	}
	#browse li a:focus-visible
	{
		outline: none;
	}
	#browse[data-subcats="1"]:not(.search) li:not(:has(> i)) > a
	{
		padding-left: calc(5px + 1.95em);
	}

	/* Icône de catégorie (dé)verrouillée. */
	#browse li:is([id*="l"], [id*="u"]) b
	{
		position: relative;
		padding-left: 1.5em;
	}
	#browse li:is([id*="l"], [id*="u"]) b::before
	{
		font-family: "IcoMoon";
		font-size: 120%;
		color: #555;
		position: absolute;
		top: -1px;
		left: 0;
		height: 100%;
		width: 19px;
		display: flex;
		align-items: center;
	}
	#browse li:is([id*="l"], [id*="u"])[id*="c"] b::before
	{
		color: white;
	}
	#browse li[id*="l"] b::before
	{
		content: '\e92e';
	}
	#browse li[id*="u"] b::before
	{
		content: '\e94e';
	}

	/* Nombre de fichiers. */
	#browse li a i
	{
		display: flex;
		align-items: center;
		justify-content: end;
		height: 1.9em;
		padding: 0 6px;
		margin: 0;
		border: 0;
		color: #555;
		outline: none;
	}
	#browse li a i::before
	{
		content: '[';
	}
	#browse li a i::after
	{
		content: ']';
	}
	#browse li[id*="c"] a i
	{
		color: white;
	}

	/* Recherche. */
	#browse_search
	{
		margin: 4px 5px;
	}
	#browse_search input
	{
		width: calc(100% - 10px);
		min-width: calc(100% - 10px);
		max-width: calc(100% - 10px);
	}



	/**
	 * Moteur de recherche.
	 *
	 */
	#search
	{
		width: 28em;
		max-width: 28em;
		min-width: 28em;
		padding: 5px;
	}
	#search form
	{
		display: flex;
		align-items: center;
	}
	#search a
	{
		margin-top: 5px;
		display: inline-block;
	}
	#search input[type="text"]
	{
		flex: 1;
	}
	#search input[type="submit"]
	{
		margin: 0 0 0 5px;
	}
	#search ul
	{
		border-top: 1px solid silver;
		margin-top: 8px;
		padding-top: 5px;
	}
	#search ul a
	{
		display: block;
		overflow: hidden;
		padding: 5px;
		margin: 0;
		border: none;
	}
	#search ul a:hover
	{
		background: #f0f0f0;
	}



	/**
	 * Vignettes de catégories.
	 *
	 */
	#thumbs_cat dd
	{
		width: calc(100% - 18px);
	}

	/* Taille : petite */
	#thumbs_cat.small
	{
		margin: 10px -15px 20px 0;
		max-width: none;
	}
	#thumbs_cat.small dl
	{
		margin: 10px 15px 10px 0;
		width: 250px;
		max-width: 250px;
	}
	#thumbs_cat.small dd
	{
		margin: 0 8px;
	}
	#thumbs_cat.small dt a
	{
		padding: 8px;
	}
	#section_category #thumbs_cat.small dt img
	{
		height: 167px;
	}
	#section_category #thumbs_cat.small.square dt img
	{
		height: 232px;
	}
	#section_category #thumbs_cat.small.portrait dt img
	{
		height: 348px;
	}

	/* Taille : grande */
	#thumbs_cat.large
	{
		margin: 10px -17px 20px 0;
		max-width: none;
	}
	#thumbs_cat.large dl
	{
		margin: 10px 17px 10px 0;
		width: 337px;
		max-width: 337px;
	}
	#thumbs_cat.large dd
	{
		margin: 0 8px;
	}
	#thumbs_cat.large dt a
	{
		padding: 8px;
	}
	#section_category #thumbs_cat.large dt img
	{
		height: 230px;
	}
	#section_category #thumbs_cat.large.square dt img
	{
		height: 319px;
	}
	#section_category #thumbs_cat.large.portrait dt img
	{
		height: 478px;
	}

	/* Stats */
	#thumbs_cat ul
	{
		margin-top: 2px;
	}
	:is(#thumbs_cat.large, .thumbs_items:not(.small)) dl ul.stats li
	{
		font-size: 100%;
	}

	/* Stats en icônes */
	dl ul.stats_icon
	{
		top: 7px;
		right: 9px;
		height: calc(100% - 18px);
		font-size: 120%;
		transition: opacity 0.4s linear;
	}
	dl dt:hover ul.stats_icon,
	dl:has(dt a:focus-visible) ul.stats_icon
	{
		opacity: 1;
	}
	dl ul.stats_icon li
	{
		padding: 2px 6px;
	}
	dl ul.stats_icon li:first-child
	{
		padding-top: 5px;
	}

	/* Stats en icônes (grande taille) */
	:is(#thumbs_cat.large, .thumbs_items:not(.small)) dl ul.stats_icon
	{
		font-size: 130%;
	}
	:is(#thumbs_cat.large, .thumbs_items:not(.small)) dl ul.stats li.rating span span
	{
		font-size: 140%;
	}
	:is(#thumbs_cat.large, .thumbs_items.large) dl ul.stats_icon li
	{
		padding: 5px 8px;
	}
	.thumbs_items.superlarge dl ul.stats_icon li:first-child
	{
		margin-top: 2px;
	}
	.thumbs_items.superlarge dl ul.stats_icon li
	{
		padding: 5px 10px;
	}

	/* Mot de passe */
	#thumbs_cat dl.locked dt a span::before
	{
		font-size: 400%;
	}
	#thumbs_cat.large dl.locked dt a span::before
	{
		font-size: 500%;
	}
	#thumbs_cat dl.unlocked dt a::before
	{
		font-size: 200%;
		width: 50px;
		height: 50px;
	}
	#thumbs_cat.large dl.unlocked dt a::before
	{
		font-size: 220%;
		width: 56px;
		height: 56px;
	}

	/* Fichiers récents */
	#thumbs_cat :is(.recent, .recent:hover)
	{
		top: 4px;
		font-size: 120%;
	}
	#thumbs_cat.large :is(.recent, .recent:hover)
	{
		padding: 10px;
		font-size: 125%;
	}



	/**
	 * Page des images & vidéos.
	 *
	 */
	#item
	{
		margin: 0 0 10px 0;
		width: 100%;
	}
	#item,
	#item_link,
	#item video
	{
		min-height: 350px;
	}
	#item_link
	{
		outline: none;
	}

	/* Hauteur du fichier */
	#item :is(video, img)
	{
		max-height: calc(100vh - 6.3em);
	}
	#gallery:has(.breadcrumb_filter) #item :is(video, img)
	{
		max-height: calc(100vh - 8.6em);
	}
	#pages_top.show + #item #item_container :is(video, img)
	{
		max-height: calc(100vh - 12.2em);
	}
	#gallery:has(.breadcrumb_filter) #pages_top.show + #item #item_container :is(video, img)
	{
		max-height: calc(100vh - 14.5em);
	}

	/* Pagination */
	#section_item #pages_top
	{
		display: none;
	}
	#section_item #pages_top.show
	{
		display: block;
	}
	#item_prev,
	#item_next
	{
		position: absolute;
		align-items: center;
		top: 0;
		width: 0;
		height: 100%;
	}
	#item_prev.show,
	#item_next.show
	{
		display: flex;
	}
	#item_prev
	{
		left: 0;
		justify-content: flex-end;
	}
	#item_next
	{
		right: 0;
		justify-content: flex-start;
	}
	#item_prev a,
	#item_next a
	{
		font-family: "IcoMoon";
		font-size: 250%;
		color: #777;
		margin: 0;
		border: 0;
		padding: 10px;
	}
	#item_next a:hover,
	#item_prev a:hover
	{
		color: #555;
	}

	/* Favori et sélection. */
	#item.favorite::after,
	#item.selection::before
	{
		right: 15px;
		top: 15px;
		width: 54px;
		height: 54px;
	}
	#item.favorite::after
	{
		font-size: 200%;
	}
	#item.selection::before
	{
		font-size: 160%;
	}
	#item.favorite.selection::before
	{
		top: 84px;
	}

	/* Favori et sélection (galerie large). */
	#gallery[class*="large"] #item.favorite::after,
	#gallery[class*="large"] #item.selection::before
	{
		right: 20px;
		top: 20px;
		width: 70px;
		height: 70px;
	}
	#gallery[class*="large"] #item.favorite::after
	{
		font-size: 250%;
	}
	#gallery[class*="large"] #item.selection::before
	{
		font-size: 210%;
	}
	#gallery[class*="large"] #item.favorite.selection::before
	{
		top: 108px;
	}

	/* Titre et description. */
	#item_title
	{
		font-size: 130%;
		margin: 0 30px 20px 0;
		max-width: 100%;
		text-align: left;
	}
	#item_stats
	{
		float: right;
		background: none;
		margin: 0;
		padding: 0;
	}
	#item_stats li
	{
		font-size: 140%;
		margin: 0 0 0 20px;
		color: #555;
	}
	#item_description
	{
		margin: 0 0 40px;
	}

	/* Colonnes */
	#item_columns
	{
		display: flex;
		width: 100%;
	}
	#item_columns > div > div
	{
		margin: 0 20px;
		max-width: 580px;
	}
	#item_right
	{
		margin: 0;
		width: 50%;
		order: 1;
		max-width: none;
	}
	#item_left
	{
		margin: 0 0 0 20px;
		width: calc(50% - 20px);
		order: 2;
		max-width: none;
	}
	#item_columns #item_right > div
	{
		margin-left: 40px;
	}
	#item_columns textarea
	{
		width: 95%;
		min-width: 95%;
		max-width: 95%;
	}

	/* Colonnes (sans les commentaires) */
	#item_columns:not(.item_columns_comment) #item_left
	{
		max-width: 100%;
		width: 100%;
		margin: 0;
	}
	#gallery #item_columns:not(.item_columns_comment) #item_left_inner
	{
		column-count: 2;
		column-gap: 20px;
		max-width: 100%;
		margin-bottom: 20px;
		padding: 0 50px;
	}
	#item_columns:not(.item_columns_comment) #item_left_inner > div
	{
		padding: 20px;
		box-sizing: border-box;
		break-inside: avoid;
		margin-bottom: 20px;
	}
	#item_columns:not(.item_columns_comment) #item_left_inner > div:last-child
	{
		margin-bottom: 0;
	}

	/* Utilisateur */
	#item_user p
	{
		margin-top: -.2em;
	}
	#item_user br
	{
		margin-bottom: 2px;
	}
	#item_user_avatar img
	{
		width: 60px;
		height: 60px;
	}

	/* Votes */
	#item_user_note > span
	{
		font-size: 200%;
		margin-left: -2px;
	}
	#item_user_note .rating
	{
		margin: 0 2px;
	}
	#item_user_note .rating:nth-child(1)
	{
		margin-left: 0;
	}
	#item_user_note .rating:nth-child(5)
	{
		margin-right: 0;
	}
	#item_user_note #item_user_note_delete
	{
		font-size: 250%;
	}



	/**
	 * Page des images & vidéos : commentaires.
	 *
	 */
	#item_comments
	{
		max-width: 100%;
	}
	#item_comments_container
	{
		max-height: 80vh;
		overflow: auto;
		scrollbar-width: thin;
		padding-right: 15px;
		margin-right: -15px;
	}
	#item_comments_container .comment:first-child
	{
		margin-top: 5px;
	}
	#item_comments_container .comment:last-child
	{
		margin-bottom: 0;
	}

	/* Formulaire */
	#item_comments_add textarea
	{
		width: calc(100% - 10px);
		max-width: calc(100% - 10px);
		min-width: calc(100% - 10px);
	}
	#item_comments_add #submit
	{
		display: block;
	}
	#item_comments_add #submit p
	{
		display: inline-block;
	}
	#item_comment_remember
	{
		margin: 0 0 0 10px;
	}
	#box_emoji .box_content .emoji
	{
		margin: 5px 3px;
		font-size: 190%;
	}
	#box_emoji .box_menu a
	{
		font-size: 190%;
	}

	/* Commentaires */
	.comment_avatar
	{
		padding-left: 5px;
	}
	.comment_avatar img
	{
		width: 60px;
		height: 60px;
	}
	.comment_author
	{
		padding-bottom: 15px;
	}
	.comment_website
	{
		margin-left: 5px;
		display: inline;
	}
	.comment_date > span:first-child
	{
		display: inline;
		font-style: italic;
	}
	.comment_date > span:last-child
	{
		display: none;
	}



	/**
	 * Pages des commentaires.
	 *
	 */
	#page_comments .comment
	{
		margin: 20px 0 40px;
	}
	#page_comments .comment_message
	{
		border-left: 1px solid silver;
		margin-left: 105px;
		padding: 12px;
		position: relative;
	}
	#page_comments .comment_message::before
	{
		content: '';
		position: absolute;
		top: -4px;
		left: -4px;
		width: 7px;
		height: 7px;
		background: var(--color);
		transform: rotate(45deg);
	}
	#page_comments .comment_thumb a
	{
		width: 94px;
		height: 94px;
	}
	#page_comments .comment_author
	{
		padding-bottom: 28px;
	}
	#page_comments .comment:hover .comment_thumb a
	{
		border-right-color: var(--color);
		border-bottom-color: var(--color);
	}
	#page_comments .comment:hover .comment_message,
	#page_comments .comment_thumb a:hover
	{
		border-color: var(--color);
	}
	#page_comments .comment_thumb.video a::after
	{
		width: 35px;
		height: 35px;
		top: 35px;
		left: 35px;
	}
	#page_comments .comment_thumb.video a::before
	{
		top: 35px;
		left: 37px;
		width: 35px;
		height: 35px;
		font-size: 150%;
	}



	/**
	 * Géolocalisation.
	 *
	 */
	/* Carte du monde */
	#section_worldmap #worldmap
	{
		height: 90vh;
	}
	#worldmap .leaflet-popup-content
	{
		margin: 0;
	}
	#popup_thumbs .thumbs_items
	{
		margin: 11px 10px 8px 7px;
	}
	#popup_thumbs #thumbs_cat
	{
		margin: 10px 9px 10px 10px;
	}
	#popup_thumbs .thumbs_items :is(dl, dd)
	{
		width: 150px;
	}
	#popup_thumbs #thumbs_cat dt img
	{
		width: 130px;
	}
	#popup_thumbs #thumbs_cat :is(dl, dd)
	{
		width: 180px;
	}
	#popup_thumbs #thumbs_cat dt img
	{
		width: 162px;
	}



	/**
	 * Pages des membres.
	 *
	 */
	#member_page
	{
		margin: 10px auto 20px;
		width: 85%;
		max-width: 950px;
	}
	#member_page > div
	{
		display: flex;
	}
	#member_page_content
	{
		padding: 0 30px 0 0;
		flex: 1;
		margin: 0;
		max-width: 100%;
	}
	#member_page_content h3
	{
		display: none;
	}
	#member_page_profile h3,
	#member_page_stats h3
	{
		display: flex;
		font-size: 130%;
		margin: 0 0 15px;
		justify-content: flex-start;
		text-align: left;
	}
	#member_page_stats .link_number > *
	{
		padding: 8px 10px;
	}

	/* Nom d'utilisateur et description */
	#member_page h2
	{
		text-align: left;
		margin: 0 0 20px;
	}
	#member_page_description
	{
		margin: 0 0 20px;
		width: 100%;
	}

	/* Menu */
	#member_menu
	{
		display: block;
		margin: -20px -20px 0 30px;
		order: 2;
	}
	#member_menu li
	{
		margin: 10px 0 0;
		position: relative;
	}
	#member_menu li#member_menu_upload,
	#member_menu li#member_menu_admin
	{
		margin-top: 40px;
	}
	#member_menu a
	{
		border: 1px solid silver;
		position: relative;
		display: flex;
		margin: 0;
		font-size: 110%;
		background: white;
	}
	#member_menu a > span
	{
		position: relative;
		display: flex;
		align-items: center;
		padding: 0 10px;
		height: 38px;
		width: 100%;
	}
	#member_menu span + span
	{
		display: inline-block;
	}
	.member_menu_icon
	{
		font-size: 140%;
		margin-right: 8px;
	}
	#member_menu_options .member_menu_icon
	{
		font-size: 150%;
	}
	:is(#member_menu_admin, #member_menu_avatar) .member_menu_icon
	{
		font-size: 180%;
	}
	#member_menu_upload .member_menu_icon
	{
		font-size: 170%;
	}

	/* Menu : contour */
	#member_menu span + span
	{
		position: relative;
		display: inline-block;
		height: 100%;
		width: 100%;
		display: flex;
		align-items: center;
		margin-right: 20px;
	}
	#member_menu a::before,
	#member_menu a::after,
	#member_menu span + span::before,
	#member_menu span + span::after
	{
		content: '';
		position: absolute;
		top: 0;
		display: block;
		border: 10px solid transparent;
		border-width: 0 0 39px 20px;
		border-bottom-color: silver;
	}
	#member_menu a::before
	{
		left: -21px;
	}
	#member_menu a::after
	{
		left: -20px;
		border-bottom-color: #fff;
	}
	#member_menu span + span::before
	{
		right: -30px;
	}
	#member_menu span + span::after
	{
		right: -31px;
		border-bottom-color: #fff;
	}
	#member_menu a > span::before
	{
		content: '';
		position: absolute;
		z-index: 1;
		bottom: -1px;
		left: -20px;
		height: 1px;
		width: 100%;
		display: block;
		background: silver;
	}

	/* Menu : hover */
	#member_menu a:hover
	{
		border-color: #888;
	}
	#member_menu a:hover::before,
	#member_menu a:hover span + span::before
	{
		border-bottom-color: #888;
	}
	#member_menu a:hover > span::before
	{
		background: #888;
	}

	/* Menu : Current */
	#member_menu li.current a
	{
		border-color: var(--color);
	}
	#member_menu li.current a::before,
	#member_menu li.current span + span::before
	{
		border-bottom-color: var(--color);
	}
	#member_menu li.current a > span::before
	{
		background: var(--color);
	}
	#member_menu li.current :is(a, .member_menu_icon)
	{
		color: white;
		background: var(--color);
		border-radius: 0;
	}
	#member_menu li.current .member_menu_icon
	{
		background: none !important;
	}
	#member_menu li.current a::after
	{
		border-bottom-color: var(--color);
	}

	/* Menu : focus */
	#member_menu a:focus
	{
		outline: none;
	}
	#member_menu li:has(a:focus-visible)::before
	{
		content: '';
		z-index: 1;
		position: absolute;
		top: calc(50% - 5px);
		left: 0px;
		width: 10px;
		height: 10px;
		border-radius: 50%;
		background: #555;
	}
	#member_menu li.current:has(a:focus-visible)::before
	{
		background: white;
	}

	/* Formulaires */
	#member_page form.standard
	{
		margin: 0;
	}

	/* Informations */
	#member_page_infos
	{
		display: flex;
	}
	#member_page_infos > div
	{
		width: 50%;
	}
	#member_page_infos #member_page_avatar
	{
		margin: 0 50px 0 0;
	}
	#member_page_avatar img
	{
		margin: 0 0 40px;
		max-width: 100%;
	}
	#member_page_profile
	{
		margin: 0 50px 0 0;
	}
	#member_page_stats
	{
		margin: 0 50px 0 0;
	}
	#member_page_avatar + div + div
	{
		margin-right: 0;
	}

	/* Édition de l'avatar */
	#member_page_edit_avatar img
	{
		margin: 0;
	}



	/**
	 * Envoi de fichiers.
	 *
	 */
	#upload_list
	{
		height: 244px;
	}
	#upload_startmsg
	{
		font-size: 225%;
	}
	#upload_infos_total
	{
		display: inline-block;
		float: left;
		width: 70%;
	}
	#upload_infos_total + p
	{
		display: inline-block;
		text-align: right;
		width: 30%;
	}
	#list_categories select
	{
		width: 400px;
		min-width: 400px;
		max-width: 400px;
	}



	/**
	 * Page des membres.
	 *
	 */
	#members_list table img
	{
		width: 70px;
		height: 70px;
	}
	#members_list :is(.date_created, .date_lastvisited)
	{
		display: table-cell;
	}



	/**
	 * Moteur de recherche.
	 *
	 */
	#search_page
	{
		max-width: 32em;
	}
	#search_page.adv
	{
		max-width: 90%;
	}
	#gallery[class*="large"] #search_page.adv
	{
		max-width: 70%;
	}
	#search_page.adv #search_query_container
	{
		max-width: 32em;
	}
	#search_options
	{
		display: flex;
		max-width: 100%;
		margin-right: -160px;
	}
	#search_options > div:nth-child(1)
	{
		margin-right: 50px;
		padding-right: 50px;
	}
	#search_options > div:nth-child(2) fieldset:last-child
	{
		margin-bottom: 0;
	}



	/**
	 * Tags de catégories.
	 *
	 */
	#section_tags #cat_tags
	{
		padding: 5px 20px 20px;
	}
	#section_tags #cat_tags li
	{
		margin: 8px;
	}



	/**
	 * Bas de page.
	 *
	 */
	#bottom
	{
		padding: 20px 0;
		margin: 20px -10px 0;
		background: none;
		border: 0;
		flex-direction: row;
	}
	#bottom > div,
	#bottom > div#bottom_random
	{
		margin: 0;
		min-width: 15%;
		max-width: 50%;
		padding: 0 20px;
		width: auto;
	}
	#bottom > div:last-child
	{
		border: 0;
		margin-bottom: 0;
	}

	/* Titre */
	#bottom h3
	{
		margin: -10px 0 0px;
		padding: 10px 0;
	}

	/* Statistiques */
	#bottom_stats ul
	{
		margin-top: 7px;
	}
	#bottom_stats li
	{
		display: block;
		text-align: center;
		margin: 5px;
	}

	/* Liens externes et utilisateurs en ligne */
	#bottom_links > div,
	#bottom_online > div
	{
		margin-top: 7px;
	}
	#bottom_links li,
	#bottom_online li
	{
		margin-bottom: 8px;
	}

	/* Au hasard */
	#bottom_random dl
	{
		width: 100%;
	}
	#bottom_random .thumbs_items dl
	{
		min-width: 161px;
	}
	#bottom_random .thumbs_items.landscape dl img
	{
		width: 161px;
		height: 107px;
	}
	#bottom_random .thumbs_items.portrait dl img
	{
		width: 161px;
		height: 241px;
	}
	#bottom_random .thumbs_items.square dl img
	{
		width: 161px;
		height: 161px;
	}
	#bottom_random .thumbs_items.standard dl img
	{
		width: 151px;
		height: 151px;
	}

	/* Au hasard : grande taille */
	#bottom #bottom_random:has(.thumbs_items.large)
	{
		min-width: 248px;
	}
	#bottom_random .thumbs_items.large dl
	{
		min-width: 248px;
	}
	#bottom_random .thumbs_items.large.landscape dl img
	{
		width: 248px;
		height: 165px;
	}
	#bottom_random .thumbs_items.large.portrait dl img
	{
		width: 248px;
		height: 371px;
	}
	#bottom_random .thumbs_items.large.square dl img
	{
		width: 248px;
		height: 248px;
	}
	#bottom_random .thumbs_items.large.standard dl img
	{
		width: 238px;
		height: 238px;
	}

	/* Au hasard : très grande taille */
	#bottom #bottom_random:has(.thumbs_items.superlarge)
	{
		min-width: 335px;
	}
	#bottom_random .thumbs_items.superlarge dl
	{
		min-width: 335px;
	}
	#bottom_random .thumbs_items.superlarge.landscape dl img
	{
		width: 335px;
		height: 223px;
	}
	#bottom_random .thumbs_items.superlarge.portrait dl img
	{
		width: 335px;
		height: 502px;
	}
	#bottom_random .thumbs_items.superlarge.square dl img
	{
		width: 335px;
		height: 335px;
	}
	#bottom_random .thumbs_items.superlarge.standard dl img
	{
		width: 325px;
		height: 325px;
	}



	/**
	 * Footer.
	 *
	 */
	footer
	{
		width: 50%;
		padding-top: 8px;
	}
	footer p
	{
		font-size: 100%;
		margin-bottom: 5px;
	}
	#footer_text
	{
		margin-left: -50%;
		margin-right: -50%;
	}



	/**
	 * Options de thème.
	 *
	 */
	#theme_options
	{
		display: flex;
		position: fixed;
		top: 11%;
		left: -360px;
		z-index: 101;
		max-height: 100%;
		transition: left 0.25s ease-in-out;
	}
	#theme_options.open
	{
		left: 0;
	}
	#theme_options_inner
	{
		width: 360px;
	}
	#theme_options.open #theme_options_inner
	{
		box-shadow: 0 0 10px #555;
	}
	#theme_options h1
	{
		width: 100%;
		font-size: 120%;
		font-style: normal;
		font-weight: normal;
		font-family: Verdana, Arial, Helvetica, sans-serif;
		color: white;
		background: var(--color);
		padding: 6px 10px 6px 12px;
		margin: 0;
		box-sizing: border-box;
	}
	#theme_options_content
	{
		padding: 10px 10px 0 12px;
		overflow-y: auto;
		scrollbar-width: thin;
		max-height: 60vh;
		background: white;
	}
	@media (min-height: 900px)
	{
		#theme_options
		{
			top: 9%;
		}
		#theme_options_content
		{
			padding: 15px 10px 15px 12px;
		}
	}

	/* Icône. */
	#theme_options_icon
	{
		margin-top: 55px;
		position: absolute;
		top: 0;
		right: -2.8em;
	}
	#theme_options_icon a
	{
		font-family: "IcoMoon";
		font-size: 180%;
		padding: .4em .4em .4em 2em;
		border-radius: 0 8px 8px 0;
		border: 0;
		margin: 0;
		color: white;
		background: var(--color);
	}

	/* Menu. */
	#theme_options_menu
	{
		border-bottom: 1px solid #ddd;
		background: #FAFAFA;
	}
	#theme_options_menu ul
	{
		display: flex;
		flex-wrap: wrap;
	}
	#theme_options_menu li
	{
		white-space: nowrap;
	}
	#theme_options_menu a
	{
		border: 0;
		padding: 10px 12px;
		margin: 0;
		display: block;
	}
	#theme_options_menu a:hover
	{
		background: #eee;
	}
	#theme_options_menu a.current
	{
		background: #ddd;
	}
	#theme_options_menu a:focus-visible,
	#theme_options_menu a.current:focus-visible
	{
		background: #ccc;
		outline: none;
	}

	/* Contenu. */
	#theme_options fieldset
	{
		display: none;
	}
	#theme_options fieldset#theme_options_style
	{
		display: block;
	}
	#theme_options h2
	{
		color: #333;
		font-weight: bold;
		font-size: 100%;
		margin-top: 15px;
	}
	#theme_options p + h2
	{
		margin-top: 30px;
	}
	#theme_options .button
	{
		margin-bottom: 0;
	}
	#theme_options form
	{
		z-index: 1;
		position: relative;
		display: none;
	}
	#theme_options .radio
	{
		display: flex;
		flex-wrap: wrap;
		gap: 10px 15px;
		padding-right: 10px;
	}
	#theme_options .radio label
	{
		white-space: nowrap;
	}
	#theme_options label input
	{
		margin-right: .7em;
	}
	#theme_banner_file select,
	#theme_background_file select
	{
		display: block;
		margin-top: 8px;
		width: 100%;
		max-width: 100%;
	}
	#theme_options span.sep
	{
		display: block;
		margin-top: 10px;
	}
	#theme_options #theme_banner_texture + p,
	#theme_options #theme_background_texture + p
	{
		margin-top: 25px;
	}

	/* Couleurs. */
	#theme_palette
	{
		margin-bottom: 15px;
	}
	#theme_color_picker > div
	{
		margin: 0 auto;
	}
	#theme_palette
	{
		font-size: 0;
		padding: 4px;
		background: #fff;
		width: 310px;
	}
	#theme_palette a[data-code],
	#theme_palette a[data-code]:hover
	{
		display: inline-block;
		width: 36px;
		height: 36px;
		margin: 4px;
		border: none;
		cursor: pointer;
		position: relative;
	}
	#theme_palette a[data-code]::before
	{
		content: '';
		position: absolute;
		display: block;
		width: 28px;
		height: 28px;
		border: 5px solid #fff;
		top: -1px;
		left: -1px;
	}
	#theme_palette a[data-code].current::before
	{
		width: 26px;
		height: 26px;
		border-width: 3px;
		top: 2px;
		left: 2px;
	}

	/* Aide. */
	#theme_options h2 > span
	{
		display: flex;
		align-items: center;
	}
	#theme_options .infos_icon
	{
		font-family: "IcoMoon";
		font-size: 150%;	
		cursor: pointer;
		border: none;
		padding: 0;
		margin: 0;
		margin-left: 10px;
		font-weight: normal;
		color: #555;
	}
	.theme_file_icons + .infos_container
	{
		margin: 10px 0;
		line-height: 1.5em;
	}

	/* Icône de rechargement de liste. */
	.theme_file_icons
	{
		display: flex;
		align-items: center;
	}
	.theme_file_icons label
	{
		flex: 1;
	}
	.theme_file_icons a[data-dir]
	{
		font-family: "IcoMoon";
		font-size: 130%;
		cursor: pointer;
		border: none;
		padding: 0;
		margin: 0;
		margin-left: 10px;
		color: #555;
	}
	.theme_file_icons a[data-dir].load
	{
		color: #ddd;
		cursor: default;
	}
	.theme_file_icons a[data-dir].rotate
	{
		transform: rotate(360deg);
		transition: transform 0.4s linear;
	}

	/* Textures */
	.theme_textures
	{
		display: flex;
		border: 1px solid silver;
	}
	.theme_textures_prev,
	.theme_textures_next
	{
		width: 12%;
		font-family: "IcoMoon";
		font-size: 250%;
		display: flex;
		align-items: center;
		justify-content: center;
		border-right: 1px solid silver;
		cursor: pointer;
		position: relative;
	}
	.theme_textures_next
	{
		border: 0;
		border-left: 1px solid silver;
	}
	.theme_textures_prev span,
	.theme_textures_next span
	{
		position: relative;
		top: -3px;
		transform: scaleY(1.75);
		color: gray;
	}
	.theme_textures_prev::after,
	.theme_textures_next::after
	{
		content: '';
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		position: absolute;
	}
	.theme_textures_prev:hover span,
	.theme_textures_next:hover span
	{
		color: #555;
	}
	.theme_textures_prev.disabled,
	.theme_textures_next.disabled,
	.theme_textures_prev.disabled span,
	.theme_textures_next.disabled span
	{
		color: #ddd;
		cursor: default;
	}
	.theme_textures_images
	{
		flex: 1;
		display: flex;
	}
	.theme_textures_images > div
	{
		height: 85px;
		width: 33.33%;
		border-right: 1px solid silver;
		cursor: pointer;
		position: relative;
	}
	.theme_textures_images > div:nth-child(3)
	{
		border: 0;
	}
	.theme_textures_images > div.selected::after
	{
		content: '\e905';
		font-family: "IcoMoon";
		font-size: 100%;
		position: absolute;
		top: 8px;
		right: 8px;
		background: #333;
		padding: 5px;
		border-radius: 50%;
		color: white;
		opacity: 0.75;
		line-height: 1em;
	}

	/* Code CSS */
	#theme_css_infos pre
	{
		overflow: auto;
		white-space: pre;
		max-width: 320px;
	}
	#theme_css_code
	{
		height: 240px;
		width: 310px;
		min-width: 310px;
		max-width: 310px;
	}

	/* Boutons. */
	#theme_options_buttons
	{
		background: #fafafa;
		padding: 0 10px 10px;
		display: flex;
		align-items: center;
		position: relative;
		min-height: 48px;
		border-top: 1px solid #ddd;
	}
	#theme_loading
	{
		margin: 10px 0 0 10px;
		width: 24px;
		height: 24px;
		position: relative;
	}
	#theme_loading::after
	{
		content: '';
		background: #aaa;
		position: absolute;
		width: 26px;
		height: 26px;
		border-radius: 50%;
		transform: scale(0);
		opacity: 1;
		animation: theme-loading 0.8s ease-out infinite;
	}
	@keyframes theme-loading
	{
		100%
		{
			transform: scale(1.0);
			opacity: 0;
		}
	}
	div[id^="theme_report"]
	{
		position: absolute;
		top: 0;
		left: 0;
		height: 100%;
		width: 100%;
		padding: 0 10px;
		align-items: center;
		background: white;
		display: none;
		box-sizing: border-box;
		cursor: pointer;
	}

	/* Élements de formulaires. */
	#theme_options .range
	{
		display: flex;
		margin-top: 5px;
	}
	#theme_options .range span
	{
		width: 6em;
		margin: 0 5px 0 0;
		white-space: nowrap;
		text-align: right;
	}
	#theme_options label[for="theme_menu_width"] + .range
	{
		width: 60%;
	}



	/**
	 * Fond.
	 *
	 */
	body.bg
	{
		background-color: var(--background-color);
		background-image: var(--background-image);
		background-attachment: var(--background-attachment);
	}
	body.bg #gallery
	{
		max-width: 1065px;
	}
	body.bg #gallery_inner
	{
		background: white;
		padding: 0 10px;
		box-shadow: 0 0 15px silver;
	}
	body.bg main
	{
		padding-bottom: 20px;
	}
	body.bg #item
	{
		margin-left: -10px;
		margin-right: -10px;
		width: calc(100% + 20px);
	}
	body.bg header:is(.banner, .color)
	{
		margin: 0 -10px;
	}
	body.bg #bottom
	{
		margin: 0 -10px;
		padding: 20px 0;
		background: #fafafa;
		border-top: 2px solid #ddd;
	}



	/**
	 * Aucun fond.
	 *
	 */
	body:not(.bg) #gallery[class*="large"] header:not(.none) #gallery
	{
		padding-top: 8em;
	}
	body:not(.bg) #gallery[class*="large"] header:not(.none) #header_top
	{
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
	}
	body:not(.bg) #gallery[class*="large"] header:is(.banner, .user) #title
	{
		margin-left: 15px;
	}
	body:not(.bg) #gallery[class*="large"] #user_links
	{
		margin-right: 15px;
	}
	body:not(.bg) #gallery[class*="large"] header:not(.none) #user_style_large
	{
		position: static;
		margin: 15px 15px 0 0;
	}
	body:not(.bg) #rss
	{
		margin-right: 0;
	}
	body:not(.bg) #gallery[class*="large"] #bottom
	{
		margin: 20px -100% 0;
		padding: 20px calc(100% - 20px);
		box-sizing: border-box;
	}

	/* Texture pour le bas de page. */
	body:not(.bg).bottom_bg #gallery[class*="large"] #bottom
	{
	   margin-top: 10px;
	   border: 3px solid #ddd;
	   border-width: 1px 0;
	   background: #fff url(./../../../images/textures/low-contrast-linen.png);
	}
	body:not(.bg).bottom_bg #gallery[class*="large"] footer
	{
	   margin-top: 0;
	   border: 0;
	}

	/* Bannière : texture ou fichier. */
	body:not(.bg) #gallery[class*="large"]:has(header.banner)
	{
		padding-top: var(--header-height);
	}
	body:not(.bg) #gallery[class*="large"] header.banner #user_style_large
	{
		margin-left: -15px;
	}
	body:not(.bg) #gallery[class*="large"] header.banner #user_style_large a
	{
		background: hsla(255, 100%, 100%, 0.75);
		color: #555;
		border-left: 1px solid #555;
	}

	/* Bannière : couleur. */
	body:not(.bg) #gallery[class*="large"] header.color #header_top
	{
		display: flex;
		align-items: center;
	}
	body:not(.bg) #gallery[class*="large"]:has(header.color)
	{
		padding-top: 4.8em;
	}
	body:not(.bg) #gallery[class*="large"]:has(header.color):has(#title .emoji)
	{
		padding-top: 5.4em;
	}
	body:not(.bg) #gallery[class*="large"] header.user.color #title
	{
		margin-left: 0;
	}
	body:not(.bg) #gallery[class*="large"] header.color #user_links
	{
		margin-right: 0;
	}
	body:not(.bg) #gallery[class*="large"] header.color:has(#user_style_large.active) #user_links
	{
		margin-right: -1px;
	}
	body:not(.bg) #gallery[class*="large"] header.color #user_style_large.active
	{
		margin: 0 10px 0 0;
	}

	/* Aucune bannière. */
	body:not(.bg) #gallery[class*="large"] header.none #header_top #title
	{
		margin-left: 0;
	}
	body:not(.bg) header.none #header_top #user_links
	{
		padding-right: 0;
		margin-right: 0;
	}
	body:not(.bg) header.none:has(#user_style_large.active) #header_top #user_links
	{
		margin-right: calc(1.5em + 23px);
	}
}



/**
 * Galerie large et écran large.
 *
 */
@media (min-width: 1520px)
{
	#gallery[class*="large"]
	{
		max-width: 1400px;
		padding-left: 1px;
	}
	body.bg #gallery[class*="large"]
	{
		max-width: 1419px;
	}
	#gallery[class*="large"] #page_thumbs.thumbs_items.superlarge
	{
		margin-left: 4px;
	}
	#gallery[class*="large"] #item_columns.item_columns_comment #item_right_inner
	{
		margin-left: auto;
	}
	#gallery[class*="large"] #item_columns:not(.item_columns_comment) #item_left_inner
	{
		column-count: 3;
		margin-left: 0;
		margin-right: 0;
	}
}
@media (min-width: 1520px) and (max-width: 1719px)
{
	/* Vignettes de catégories : petite */
	#gallery[class*="large"] #thumbs_cat.small dl
	{
		width: calc(16.6667% - 15px);
	}
	#gallery[class*="large"] #thumbs_cat.small dt img
	{
		width: 203px;
		height: 146px;
	}
	#gallery[class*="large"] #thumbs_cat.small.square dt img
	{
		width: 203px;
		height: 203px;
	}
	#gallery[class*="large"] #thumbs_cat.small.portrait dt img
	{
		width: 203px;
		height: 304px;
	}

	/* Vignettes de fichiers : petite */
	#gallery[class*="large"] #page_thumbs.thumbs_items.small
	{
		padding-left: 0;
	}
	body.bg #gallery[class*="large"] #page_thumbs.thumbs_items.small
	{
		padding-left: 6px;
	}

	/* Vignettes de fichiers : grande */
	body.bg #gallery[class*="large"] #page_thumbs.thumbs_items.large
	{
		padding-left: 0;
	}
	#gallery[class*="large"] .thumbs_items.large dl
	{
		margin-right: 18px;
		width: calc(16.6667% - 10px);
		max-width: 218px;
	}
	#gallery[class*="large"] .thumbs_items.large.standard dt a img
	{
		max-height: 208px;
		max-width: 208px;
	}
	#gallery[class*="large"] .thumbs_items.large:is(.landscape, .portrait, .square) dt a img
	{
		max-width: 218px;
	}

	/* Au hasard : grande taille */
	#gallery[class*="large"] #bottom #bottom_random:has(.thumbs_items.large)
	{
		min-width: 248px;
	}
	#gallery[class*="large"] #bottom_random .thumbs_items.large dl
	{
		min-width: 218px;
	}
	#gallery[class*="large"] #bottom_random .thumbs_items.large.landscape dl img
	{
		width: 218px;
		height: 145px;
	}
	#gallery[class*="large"] #bottom_random .thumbs_items.large.portrait dl img
	{
		width: 218px;
		height: 326px;
	}
	#gallery[class*="large"] #bottom_random .thumbs_items.large.square dl img
	{
		width: 218px;
		height: 218px;
	}
	#gallery[class*="large"] #bottom_random .thumbs_items.large.standard dl img
	{
		width: 208px;
		height: 208px;
	}
}
@media (min-width: 1720px)
{
	#gallery.superlarge
	{
		max-width: 1574px;
	}
	body.bg #gallery.superlarge
	{
		max-width: 1594px;
	}
	#gallery.superlarge #menu
	{
		font-size: 105%;
	}
	#gallery.superlarge #thumbs_cat.large
	{
		margin-left: auto;
		margin-right: auto;
		padding-left: 17px;
		max-width: 1416px;
	}
	#gallery.superlarge #thumbs_cat.small
	{
		margin-left: 0;
		margin-right: -16px;
		padding: 0;
	}
	#gallery.superlarge #page_thumbs.thumbs_items.small
	{
		margin-left: -8px;
	}
	#gallery.superlarge .pages form input
	{
		width: 2.8em;
		height: 2.4em;
	}
	#gallery.superlarge .pages .link > *
	{
		height: 2.4em;
		width: 2.4em;
		margin: 0 6px;
	}

	/* Colonnes de la page des fichiers. */
	#gallery.superlarge #item_columns:not(.item_columns_comment) #item_left_inner
	{
		column-count: 3;
		column-gap: 30px;
		padding: 0 20px;
	}
	#gallery.superlarge #item_columns:not(.item_columns_comment) #item_left_inner > div
	{
		margin-bottom: 30px;
	}
	#gallery.superlarge #item_columns:not(.item_columns_comment) #item_left_inner > div:last-child
	{
		margin-bottom: 0;
	}

	/* Vignettes de catégories : petite */
	#gallery.large #thumbs_cat.small dl
	{
		width: calc(16.6667% - 15px);
	}
	#gallery.large #thumbs_cat.small dt img
	{
		width: 203px;
		height: 146px;
	}
	#gallery.large #thumbs_cat.small.square dt img
	{
		width: 203px;
		height: 203px;
	}
	#gallery.large #thumbs_cat.small.portrait dt img
	{
		width: 203px;
		height: 304px;
	}

	/* Vignettes de catégories : grande */
	#gallery.superlarge #thumbs_cat.large
	{
		padding: 0;
		margin-right: -17px;
		margin-left: -1px;
		max-width: none;
	}
	#gallery.superlarge #thumbs_cat.large dl
	{
		width: 381px;
		max-width: 381px;
	}
	#gallery.superlarge #thumbs_cat.large dt img
	{
		width: 363px;
		height: 262px;
	}
	#gallery.superlarge #thumbs_cat.large.square dt img
	{
		width: 363px;
		height: 363px;
	}
	#gallery.superlarge #thumbs_cat.large.portrait dt img
	{
		width: 363px;
		height: 544px;
	}

	/* Vignettes de fichiers : grande */
	body.bg #gallery.large #page_thumbs.thumbs_items.large
	{
		padding-left: 0;
	}
	#gallery.large .thumbs_items.large dl
	{
		margin-right: 18px;
		width: calc(16.6667% - 10px);
	}
	#gallery.large .thumbs_items.large dl
	{
		max-width: 218px;
	}
	#gallery.large .thumbs_items.large.standard dt a img
	{
		max-height: 208px;
		max-width: 208px;
	}
	#gallery.large .thumbs_items.large:is(.landscape, .portrait, .square) dt a img
	{
		max-width: 218px;
	}

	/* Au hasard : grande taille */
	#gallery.large #bottom #bottom_random:has(.thumbs_items.large)
	{
		min-width: 248px;
	}
	#gallery.large #bottom_random .thumbs_items.large dl
	{
		min-width: 218px;
	}
	#gallery.large #bottom_random .thumbs_items.large.landscape dl img
	{
		width: 218px;
		height: 145px;
	}
	#gallery.large #bottom_random .thumbs_items.large.portrait dl img
	{
		width: 218px;
		height: 326px;
	}
	#gallery.large #bottom_random .thumbs_items.large.square dl img
	{
		width: 218px;
		height: 218px;
	}
	#gallery.large #bottom_random .thumbs_items.large.standard dl img
	{
		width: 208px;
		height: 208px;
	}

	/* Vignettes de fichiers : très grande */
	#gallery.superlarge .thumbs_items.superlarge dl
	{
		margin-right: 18px;
	}
	#gallery.superlarge .thumbs_items.superlarge dl
	{
		max-width: 378px;
	}
	#gallery.superlarge .thumbs_items.superlarge.standard dt a img
	{
		max-height: 368px;
		max-width: 368px;
	}
	#gallery.superlarge .thumbs_items.superlarge:is(.landscape, .portrait, .square) dt a img
	{
		max-width: 378px;
	}

	/* Au hasard : très grande taille */
	#gallery.superlarge #bottom #bottom_random:has(.thumbs_items.superlarge)
	{
		min-width: 378px;
	}
	#gallery.superlarge #bottom_random .thumbs_items.superlarge dl
	{
		min-width: 378px;
	}
	#gallery.superlarge #bottom_random .thumbs_items.superlarge.landscape dl img
	{
		width: 378px;
		height: 252px;
	}
	#gallery.superlarge #bottom_random .thumbs_items.superlarge.portrait dl img
	{
		width: 378px;
		height: 566px;
	}
	#gallery.superlarge #bottom_random .thumbs_items.superlarge.square dl img
	{
		width: 378px;
		height: 378px;
	}
	#gallery.superlarge #bottom_random .thumbs_items.superlarge.standard dl img
	{
		width: 368px;
		height: 368px;
	}
}