:root {
    --background-header: #fefeff;
    --background-footer: #192434;
    --background-body1: #e0e0ff;
    --background-body2: white;
    --color-footer: #a1a1b6;

    --background-login1: #ff8281;
    --background-login2: #fb9a52;
    --background-hlogin1: #fb9a52;
    --background-hlogin2: #f6b231;

    --background-other1: #a1b2ff;
    --background-other2: #92caff;
    --background-hother1: #92caff;
    --background-hother2: #a1d2f6;

    --background-interface1: #1ab2aa;
    --background-interface2: #1ac8aa;
    --background-hinterface1: #1ac8aa;
    --background-hinterface2: #1ae2aa;
    --background-dinterface1: #c5c8cc;
    --background-dinterface2: #e5e8ec;


    --background-box1:   #e0fff0;
    --background-box2:   white;

    --background-menuh: #ececff;
    --background-menu1: #fafaff;
    --background-menu2: #fefeff;

    --color-two:   #D0D0E8;
    --color-three: #A8A8C0;
    --color-four:  #303050;

    --pirogue-equipe-size: 300px;
}

/* GENERAL */
* {
  font-size: min(100%,2.5vw);
}
img[onclick] {
    cursor: pointer;
}

/* HEADER */
header {
    background-color: var(--background-header);
    padding: min(0.4vw,4px);
    margin: 0;
    text-align: center;
    transform-style: inherit;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    min-height: min(58px,calc(8vw + 8px));
    position: fixed;
    top:0px;
    width: 100%;
    z-index: 10000;
    box-sizing:border-box;
}
header > h1 {
    position: absolute;
    left: min(0.4vw,4px);
    top: min(0.4vw,4px);
    padding: 0;
    margin: 0;
    z-index:-1;
}
header > h1 > img {
    height: min(50px,8vw);
    padding: 0;
    margin: 0;
}
header h2 {
    margin: 0.3em auto 0.3em auto;
    font-size: min(1.8em,3vw);
    max-width: 60%;
}
header h2.main {
    font-size: min(2.5em,4vw);
    font-weight: bolder;
    margin-bottom: 0;
}
header p.structure-equipe {
    font-size: min(1em,2vw);
}
header > div {
    display: inline-block;
    vertical-align: top;
}
header > h3 {
    margin: 0.2em auto 0.4em auto;
    font-size: min(1.5em,2vw);
    max-width: 60%;
}
header img {
    vertical-align: middle;
}
header img.logo-equipe {
    width: min(80px,12vw);
}
img.pirogue-equipe {
    position:absolute;
    height: var(--pirogue-equipe-size);
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
}
header div.points {
    border-radius: 5px;
    background: radial-gradient(circle,
				var(--background-body2),
				var(--background-body1));
    width: fit-content;
    margin: auto;
    padding: 2px 10px 2px 10px;
}

/* FOOTER */
footer {
    background-color: var(--background-footer);
    display: flex;
    flex-direction: row;
    color: var(--color-footer);
    justify-content: space-between;
    padding-left: 5px;
    padding-right: 5px;
    font-size: min(1em,2.25vw);
    overflow: hidden;
    width: 100%;
    margin: 0;
    box-sizing:border-box;
}
footer h1 {
    font-size: min(150%,10vw);
    color: white;
    margin: 0.2em 0.2em 0.2em 0;
    padding: 0;
}
footer a {
    color: var(--color-footer);
    text-decoration: none;
}
footer a:hover {
    color: white;
}
footer div.footer-content {
    display: flex;
    flex-direction: column;
    padding:0.2em;
    margin:0;
    max-width: 25vw;
}
footer img {
    vertical-align: middle;
    height: min(40px,5vw);
}
footer p {
    margin: 0;
    padding: 0;
}

/* BODY */
body {
    font-family: Arial, sans-serif !important;
    font-size: min(4vw,120%) !important;
    margin: 0;
    padding: 0;
    background: radial-gradient(circle,
				var(--background-body2),
				var(--background-body1));
    min-height: 100vh;
    display:flex;
    flex-direction: column;
}
body div.contents {
    padding-left: 15px;
    padding-right: 15px;
}
body.no-scroll {
  overflow: hidden;
}
main {
    flex: 1;
}
main > h2 {
    margin: 10px 0 0px 30px;
    padding: 0;
}

/* LOGIN */

.login-div {
    position: absolute;
    right: 0.5vw;
    padding: 0;
    margin: 0;
    font-size:min(1em,2vw);
    text-align: right;
}
.login-div p {
    text-align:right !important;
    max-width: 20vw;
    line-height: 3px;
    margin-bottom: 3px;
    margin-top: 3px;
}
.login-div p a {
    white-space: wrap;
}
.interface-button, .login-button, .head-interface-button, .admin-button,
.modif-button, .link-button {
    border-radius: 8px;
    margin: 0.25em 0 0 0;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 3px;
    padding-bottom: 3px;
}
div.admin-buttons {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 5px;
}
.admin-button, .link-button {
    flex: 1;
}
.interface-button, .admin-button, .link-button {
    width: 100%;
}
.interface-button, .head-interface-button {
    background: linear-gradient(to right,
				var(--background-interface1),
				var(--background-interface2) 50%,
				var(--background-interface1));
}
.interface-button[disabled], .head-interface-button[disabled] {
    background: linear-gradient(to right,
				var(--background-dinterface1),
				var(--background-dinterface2) 50%,
				var(--background-dinterface1));
}
.interface-button:hover,
.head-interface-button:hover,
.interface-button:focus,
.head-interface-button:focus
{
    background: linear-gradient(to right,
				var(--background-hinterface1),
				var(--background-hinterface2) 50%,
				var(--background-hinterface1));
}
.login-button {
    margin: 0 !important;
}
.modif-button {
    margin-left: 10px !important;
}
.login-button, .admin-button {
    background: linear-gradient(to right,
				var(--background-login1),
				var(--background-login2) 50%,
				var(--background-login1));
}
.login-button:hover, .admin-button:hover {
    background: linear-gradient(to right,
				var(--background-hlogin1),
				var(--background-hlogin2) 50%,
				var(--background-hlogin1));
}
.modif-button, .link-button {
    background: linear-gradient(to right,
				var(--background-other1),
				var(--background-other2) 50%,
				var(--background-other1));
}
.modif-button:hover, .link-button:hover {
    background: linear-gradient(to right,
				var(--background-hother1),
				var(--background-hother2) 50%,
				var(--background-hother1));
}

.user-avatar {
    border-radius: 16.5px;
    margin-right: 0.3em;
    width: min(33px,5vw);
}

/* CONCOURS */
.single-column {
    display: flex;
    flex-direction: column;
    max-width: 1024px;
}
.remove.pure-button {
  background-color: #ffa6a6;
}
.pure-u-1 {
    max-width: 1024px;
}
.pure-g {
    justify-content: space-around;
}
label.pure-control-group {
    display: block;
}
.safeDb-cell label.pure-control-group {
    text-align: center;
}
.carte > .pure-img {
    width: 100%;
}
.pure-control-group div.file-load > div.file-description {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    background: white;
    margin: 5px;
}
.pure-control-group div.file-load > img {
    height: 5rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    vertical-align: middle;
}
.safeDb-row .pure-control-group div.file-load > img {
    height: 3rem;
}
.safeDb-cell input,
.safeDb-cell textarea,
.safeDb-cell select,
.safeDb-cell button,
.safeDb-cell div img {
  height: 35px;
}
.map-avatar {
    overflow: visible;
}
.map-avatar-images {
    position: relative;
}
.map-avatar-images img {
    width: 100%;
    height: 100%;
    z-index: 1;
    position: absolute;
}
div.accessoires-badges {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
}
div.accessoires-badges > div {
    min-width: 0;
    flex-shrink: 1;
}
.map-avatar-images img.accessoire {
    z-index: 100;
    pointer-events: none;
}
div.map-avatar-info {
    visibility: hidden;
    position: absolute;
    background-color: black;
    color: white;
    font-size: 15px;
    padding: 5px;
    border-radius: 10px;
    width: fit-content;
    white-space: nowrap;
    z-index: 2;
    overflow:visible;
}
.container {
    margin: auto;
    width: 100%;
}
.concours h2 {
    color: var(--color-four);
    margin-top: 0;
    font-size: clamp(0.6rem, 5vw, 1.2rem);
}
.concours,
.creation,
.gestion {
    margin:0;
    padding:0;
    display: flex;
    justify-content: center;
}
.inner-concours {
    min-width: 85%;
}
.concours > .inner-concours,
.creation > .inner-concours,
.gestion > .inner-concours {
    margin: 1em;
    border-radius: 10px;
    position: relative;
    overflow: auto;
    padding: 1em;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    background: linear-gradient(to bottom right,
				var(--background-box1),
				var(--background-box2));
    height: auto;
    display: flex;
    flex-direction: column;
    max-height: 200vh;
}
.concours > .inner-concours {
    justify-content: space-between;
}
.creation > .inner-concours,
.gestion > .inner-concours {
    width: fit-content;
}
.block-header {
    text-align: center;
    width: 100%;
}
.head-concours {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
.head-concours.pirogue {
    display: block;
}
.pirogue-stack {
    position: relative;
    height: var(--pirogue-equipe-size);
}
.head-concours-corner > button {
    margin-top: 5px;
}
.content-concours {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.pure-menu-link {
    padding: .25em 1em;
    color: #555 !important;
}
.pure-menu-disabled {
    opacity: 1 !important;
}
.pure-menu-disabled a {
    color: #aaa;
}
.pure-menu-item.menu-head {
  border-top: 1px solid black;
}
.pure-menu-link:hover {
    background-color: var(--background-menuh);
}
.pure-menu-children {
    left: unset;
    right: 0%;
    top: 100%;
    background: linear-gradient(to bottom, var(--background-menu1), var(--background-menu2));
}
.pure-menu-has-children > .pure-menu-chidren {
    display: none;
}
.pure-menu-has-children.pure-menu-active > .pure-menu-chidren {
    display: block;
}
.head-concours .menu-concours {
    align-self: flex-start;
}
.head-concours-logo {
    margin-right: 10px;
}
.head-concours-text {
    text-align: center !important;
    font-size: min(1.2em,2.5vw);
    flex-grow: 5;
}
.head-concours-status {
    font-size: min(1.2em,2.5vw);
    white-space: nowrap;
}
.head-concours-text  h2 {
    font-size: min(1.4em,2.8vw);
    margin: 0.4em auto 0.4em auto;
}
.head-concours-text p {
    text-align: center;
    margin: 0.2em auto 0.2em auto;
}

.carte {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
}
.logo {
  height: min(50px,7vw);
  width: auto;
  object-fit: contain;
}
button.zoom {
    background-color:rgba(0,0,0,0.35);
    border: 0;
    color: white;
    position:absolute;
    bottom:0;
    right: 0;
    border-radius:8px;
    font-size: 150%;
}
    @media (max-width: 800px) {
    span.display-name {
	display: none;
    }
}

.overlay {
  position: fixed;
  top: 0px;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.6); /* obscurcissement */
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10000; /* au-dessus de tout */
  box-sizing: border-box;
  margin:0;
}
.overlay-content {
  background: white;
  border-radius: 10px;
  max-width: 96vw;
  max-height: 80vh;
  overflow: scroll;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  position: relative;
  padding:2vw;
  box-sizing: border-box;
}

.overlay-cancel.map-zoom {
    position: fixed;
}
.overlay-cancel {
    position: absolute;
    top: 0px;
    right: 0px;
    height: 2rem;
    width: 2rem;
    padding: 2px;
    margin: 0;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    border-radius: 10px;
}
.overlay-button {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.overlay-inner-img {
    position: relative;
    margin: auto;
}

.overlay-inner-img.wide-ratio {
    width: 75vw;
    height: calc(75vw / var(--img-ratio));
}
.overlay-inner-img.narrow-ratio {
    height: 75vh;
    width: calc(75vh * var(--img-ratio));
}
.overlay-inner-img > img,
.overlay-inner-img > svg
{
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
}
.overlay-inner-img.wide-ratio > img,
.overlay-inner-img.wide-ratio > svg
{
    width: 100%;
    height: auto;
}
.overlay-inner-img.narrow-ratio > img,
.overlay-inner-img.narrow-ratio > svg
{
    height: 100%;
    width: auto;
}

.overlay button[disabled] {
    opacity: 50%;
}
.overlay-inner {
    width: fit-content;
    max-width: min(1024px,85vw);
}
.overlay-inner main.mentions-legales {
    max-width: 800px;
}
main.mentions-legales p {
  padding: 0;
  margin: 0 0 0.2em 0;
}
.pure-controls > div {
    display: inline-block;
}
.loading {
    position: relative;
    opacity: 50%;
}
.loading::after {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.5) 50%, rgba(255,255,255,0) 100%);
    background-size: 300% 100%;
    animation: wave-slide 1.5s infinite linear;
    pointer-events: none;
    z-index: 10;
}
@keyframes wave-slide {
    0%   { background-position: -100% 0; }
    100% { background-position: 100% 0; }
}
form fieldset {
    border-color: var(--color-four);
}
form[data-changed="true"] fieldset {
    border-color: red;
}
.sun-editor-editable {
    font-family: Arial, sans-serif !important;
    font-size: 100% !important;
    line-height: 1.15 !important;
}
.sun-editor-editable p {
    margin: 0 0 .35em 0 !important;
    font-size: 100% !important;
}
.sun-editor-editable li {
    margin-bottom: .35em !important;
}
.sun-editor-editable h1 {
    margin-block-start: 0 !important;
    margin-block-end: 1em !important;
    font-size: 180% !important;
}
.sun-editor-editable h2 {
    margin-block-start: 0 !important;
    margin-block-end: .85em !important;
    font-size: 160% !important;
}
.sun-editor-editable h3 {
    margin-block-start: 0 !important;
    margin-block-end: .70em !important;
    font-size: 145% !important;
}
.sun-editor-editable h4 {
    margin-block-start: 0 !important;
    margin-block-end: .60em !important;
    font-size: 130% !important;
}
.sun-editor-editable h5 {
    margin-block-start: 0 !important;
    margin-block-end: .50em !important;
    font-size: 120% !important;
}
.sun-editor-editable h6 {
    margin-block-start: 0 !important;
    margin-block-end: .40em !important;
    font-size: 110% !important;
}
.sun-editor .se-btn {
    width: min(34px,4vw) !important;
    height: min(34px,4vw) !important;
}
.safeDb-input {
    max-width: 95%;
}
div.safeDb-table {
    display: table;
}
div.safeDb-table.gestion-equipe.pure-g {
    display: flex;
    width: auto;
}
div.safeDb-content {
    display: contents;
}
div.gestion .safeDb-headers,
div.gestion .safeDb-row,
div.gestion-equipe .safeDb-headers,
div.gestion-equipe .safeDb-row
{
    display: table-row;
}
div.gestion .safeDb-head,
div.gestion .safeDb-cell,
div.gestion-equipe .safeDb-head,
div.gestion-equipe .safeDb-cell
{
    display: table-cell;
}
.safeDb-head-label {
    display: inline;
    margin: 2px;
}
.safeDb-headers {
    background-color: var(--background-menu2);
    text-align: center;
}
div.gestion form,
div.gestion fieldset,
div.gestion-equipe form,
div.gestion-equipe fieldset
{
    display: contents;
}
.safeDb-head-buttons, .safeDb-head-button {
  display: inline-block;
  margin-left: 2px;
}
.pure-form select[disabled],
.pure-form input[disabled],
.pure-form textarea[disabled],
div.autocomplete input.search[disabled] {
  appearance: none;
  background-color: var(--color-one) !important;
  color: black !important;
  opacity: unset;
  cursor: default;
}
.pure-form-aligned .pure-control-group label {
    width: 15em;
}

div.autocomplete {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width:min(300px,30vw);
}


div.autocomplete input[type='text'] {
    width: 100%;
    display: block;
}
div.autocomplete select {
    width: calc(100% - 15px);
    display: none;
}
div.autocomplete:focus-within select.suggestions,
div.autocomplete:focus-within select.suggestions.hidden {
    display: block;
}
select.suggestions > option {
  text-wrap: nowrap;
  line-height: 1.25;
}

div.gestion-equipe input[type="number"] {
  width: 80px;

}

.pre-menu-list {
    margin: 0;
}
div.progression-total {
    width: 100%;
    background-color: #e5e8ec;
    margin-top: 0.25em;
    position: relative;
    height:1.4em;
    border-radius:0.7em;
    overflow: hidden;
}
div.progression {
    background: linear-gradient(to right,
				var(--background-interface1),
				var(--background-interface2) 50%,
				var(--background-interface1));
    z-index: 1;
    position: absolute;
    left: 0;
    top: 0;
    height:1.4em;
}
div.progression-text {
    color: black;
    z-index: 2;
    background-color: transparent;
    position: absolute;
    left: 2px;
    top: 2px;
    padding-left: 8px;
}
div.progression-text2 {
    color: black;
    z-index: 2;
    background-color: transparent;
    position: absolute;
    right: 0;
    top: 0;
    padding-right: 8px;
}
div.file-load {
    position: relative;
    width: fit-content;
    display: inline-block;
    text-align: center;
    width: fit-content;
}
div.file-load-wrapper {
    width: 100%;
    display:flex;
    justify-content: space-around;
}
div.file-load div.set-null {
    position: absolute;
    z-index: 1;
    right: 0;
    top: 0;
    background-color: rgba(255,0,0,0.35);
    padding: 3px;
    border-radius: 6px;
}
img[src="NoImage.png"] ~ div.set-null {
  display: none;
}
div.progress-bar {
    display: none;
    background: linear-gradient(to right,
				var(--background-interface1),
				var(--background-interface2) 50%,
				var(--background-interface1));
    z-index: 2;
    position: absolute;
    left:0;
    bottom:0;
    width:100%;
    height:6px;
}
.invalid {
  background-color: rgba(255,0,0,0.5);
}
.apropos img {
    float: right;
    width: min(600px,50%);
    padding-left:10px;
    padding-bottom:2px;
    padding-top:20px;
}
.apropos .stats {
    display: flex;
    justify-content: space-between;
    width: 100%;
}
@media (min-width: 1550px) {
    .apropos .stats {
	width: calc(100% - min(600px,50%) - 15px) !important;
    }
}
.apropos .stats-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}
.apropos {
    margin: 15px;
}
.apropos .stats .data {
    font-size: 150%;
}
.admin-menu {
    padding: 3px;
    z-index: 10;
    font-size: larger;
    display:inline-block;
}
div.equipe-membre {
    display: flex;
    justify-content: space-around;
    align-items: center;
    text-align: center;
    gap:min(10px,2vw);
    flex-wrap: wrap;
}
div.equipe-membre .user-avatar {
    border-radius: 25px;
    width: 50px;
    height: 50px;
}
div.attribution-point
{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
div.attribution-badge {
    display:none;
    text-align: center;
    margin:auto;
    width: min(80%,500px);
    box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px;
    border-radius: 8px;
    position: relative;
}
div.attribution-badge p {
    text-align: justify;
    padding: 5px;
}
div.attribution-badge img {
    margin-top: 10px;
    width: min(300px, 40vw);
}
div.attribution-image {
    position: relative
}
div.attribution-mult {
    background-color: #f88;
    opacity: 65%;
    margin:2px;
    padding:4px;
    border-radius:12px;
    position:absolute;
    top:0;
    right:0;
    font-weight: bolder;
}
div.attribution-badge-nom {
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(to right,
				var(--background-interface1),
				var(--background-interface2) 50%,
				var(--background-interface1));
    padding: 4px;
    border-radius: 8px;
}
div.attribution-badge-activite {
    position: absolute;
    top: 0;
    right: 0;
    padding: 4px;
    border-radius: 8px;
}
div.attribution-badge-activite.actif {
    background: linear-gradient(to right,
				var(--background-interface1),
				var(--background-interface2) 50%,
				var(--background-interface1));
}
div.attribution-badge-activite.inactif {
    background: linear-gradient(to right,
				var(--background-hinterface1),
				var(--background-hinterface2) 50%,
				var(--background-hinterface1));
}
div.attribution-badge-info
{
    display:flex;
    justify-content: space-between;
    padding: 4px;
    border-radius: 8px;
    background: linear-gradient(to right,
				var(--background-hinterface1),
				var(--background-hinterface2) 50%,
				var(--background-hinterface1));
}
div.accessoires-badges img {
    height: min(55px,8vw);
}
div#journal p img {
  height: 30px;
}
div.journal-entry {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  padding: 5px;
}
div.other img {
    opacity: 50%;
    filter: grayscale(100%);
}
.badge-equipe, .accessoire-equipe {
    width: min(500px,90%);
    margin: auto;
    text-align: center;
}
.justificatif-point p {
  margin: 0px 10px 0px 10px;
  background-color: var(--background-body1);
  padding: 2px;
  max-height: 50px;
  overflow: auto;
}
.justificatif-point {
  margin: 0px;
  padding: 0px;
}
p {
    text-align: justify;
    hyphens: auto;
}
.columns {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
  }
.columns section {
    flex: 1 1 300px;
}
table.rejoindre {
    border-spacing: 1vw 1vh;
}
table.rejoindre img {
    width: 40px;
}
table.rejoindre td {
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 250px;
}
table.rejoindre td > * {
    vertical-align: middle;
}
div.block-header p.aide-inscription {
    max-width: 600px;
    margin: auto;
}
div.input-box {
    width: fit-content;
    position:relative;
}
.info-bulle.required {
    background-color: #fcc;
}
.info-bulle.order {
    background-color: #ccf;
}
.info-bulle {
    display: inline;
    background-color: #cfc;
    border-radius: 6px;
    padding: 2px;
    font-size: 75%;
    vertical-align: super;
    margin-left: 2px;
    position: relative;
}
.info-bulle:hover {
    cursor: default;
}
.info-bulle.order:hover {
    cursor: pointer;
}
.info-bulle > div {
    display: none;
    position: absolute;
    bottom: -5px;
    left: -100%;
    padding: 3px;
    width: max-content;
    bottom: 2ex;
    font-size: initial;
    background-color: white;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    max-width:min(300px,30vw);
}
.info-bulle:hover > div
{
    display: inline-block;
}
div.save-all
{
    position: fixed;
    top: 0;
    left: min(60px,10vw);
    z-index: 10000000;
}
