@import url("https://fonts.googleapis.com/css2?family=EB+Garamond:wght@700&family=Lato:ital,wght@0,400;0,700;1,400&display=swap");
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: "Lato", sans-serif;
  background-color: #d42b5e;
  width: 100%;
  background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0, rgba(255, 255, 255, 0.1) 4px, transparent 4px, transparent 20px), repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.1) 0, rgba(0, 0, 0, 0.1) 4px, transparent 4px, transparent 20px);
}

body > section {
  display: flex;
  max-width: 1600px;
  justify-content: center;
  margin: 0 auto;
  min-height: 100vh;
  align-items: center;
  flex-wrap: wrap;
}

a {
  color: #ce641e;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

p {
  margin: 0;
}

.main {
  background-color: #f9e5d8;
  max-width: 1200px;
  width: 100vw;
  border-radius: 1em;
  padding: 1em;
  border-bottom: 3px solid #7f1a38;
}
.main .meta {
  background-color: #f08fac;
  margin: 0 -1rem;
  padding: 1rem;
  margin-bottom: 1em;
  line-height: 2;
}
.main .meta > * {
  display: flex;
  align-items: center;
}
.main .meta > *::before {
  content: "";
  display: inline-block;
  margin-right: 0.5em;
  width: 1.5em;
  height: 1.5em;
  background: url("https://api.iconify.design/mdi/calendar.svg") no-repeat center center/contain;
}
.main .meta .date {
  font-size: 1.1em;
  font-weight: bold;
}
.main .meta .date::before {
  background-image: url("https://api.iconify.design/mdi/calendar.svg");
}
.main .meta .location::before {
  background-image: url("https://api.iconify.design/mdi/map-marker.svg");
}
.main .meta .organizer::before {
  background-image: url("https://api.iconify.design/mdi/account.svg");
}

.event-description {
  background-color: #fdf4ee;
  border-radius: 0.5em;
  padding: 0 0.5em;
  border-bottom: 1px solid rgb(233, 156, 105);
  margin: 0.5em 0;
  overflow: hidden;
}
.event-description p {
  margin: 0.5em 0;
}

.event-image {
  max-width: 100%;
}
.event-image img {
  width: 100%;
  height: auto;
  display: block;
}

.event-response {
  max-width: 600px;
}

h1, h2 {
  font-family: "EB Garamond", serif;
  font-weight: normal;
}

h1 {
  font-size: 2.5em;
  margin: -1.1rem;
  padding: 1.1rem;
  background-color: rgb(233, 156, 105);
  margin-bottom: 0;
  border-bottom: 3px solid #ce641e;
}

textarea {
  height: 200px;
  resize: vertical;
}

input[type=text], input[type=password],
input[type=email], input[type=number], textarea, select {
  font-family: "Lato", sans-serif;
  font-weight: normal;
  border: none;
  border-bottom: 1px solid rgb(231, 75, 122);
  background-color: #f6bccd;
  width: 100%;
  max-width: 100%;
  padding: 0.6em 1em;
  transition: border 1s ease-out, background 1s ease-out;
  border-radius: 0.5em;
}
input[type=text]:focus-visible, input[type=password]:focus-visible,
input[type=email]:focus-visible, input[type=number]:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid rgb(231, 75, 122);
}

select {
  -moz-appearance: none;
  appearance: none;
  width: auto;
  margin-right: 0.8em;
  cursor: pointer;
  padding-right: 2.5em;
  background-position: right center;
  background-color: #f6bccd;
  background-size: contain;
}
select option {
  padding: 3px;
  white-space: pre-wrap;
  background-color: #f6bccd;
}
select optgroup option {
  padding-left: 10px;
}
select optgroup:before {
  font-weight: bold;
}

input[type=submit], .btn, a.btn {
  border-radius: 0.5em;
  white-space: normal;
  text-align: center;
  text-decoration: none;
  font-family: "Lato", sans-serif;
  font-weight: bold;
  background-color: rgb(231, 75, 122);
  border: none;
  border-bottom: 2px solid #b41847;
  padding: 12px 17px;
  display: inline-block;
  color: #fff;
}
input[type=submit].annule, input[type=submit].valide, .btn.annule, .btn.valide, a.btn.annule, a.btn.valide {
  color: #fff;
  padding: 0 5px;
}
input[type=submit].annule, .btn.annule, a.btn.annule {
  background: #c81307;
  border-color: #650a04;
}
input[type=submit].valide, .btn.valide, a.btn.valide {
  background: #89d813;
  border-color: #4e7a0b;
}

form {
  padding-bottom: 5px;
}
form.transparent {
  background: transparent;
}
form .field {
  box-shadow: 0 0 0.1em rgba(212, 43, 94, 0.4);
  border-radius: 0.5em;
  margin: 5px 0;
  display: flex;
  padding: 10px;
  flex-wrap: wrap;
}
form .field > div {
  min-width: 150px;
  width: 250px;
  flex: 1;
}
form .field > div input, form .field > div textarea, form .field > div select {
  width: 100%;
}
form .field > label, form .field > .label {
  flex: unset;
  display: inline-block;
  width: 150px;
  text-align: right;
  margin-right: 12px;
  padding-top: 5px;
  flex-shrink: 0;
}
form .field > label.required:before, form .field > .label.required:before {
  margin-right: 5px;
  content: "*";
  color: #f00;
}
form .field ul li {
  margin: 5px 0;
}
form .field.field-CheckboxSelectMultiple .input input, form .field.field-RadioSelect .input input {
  position: relative;
  z-index: 2;
}
form .field.field-CheckboxSelectMultiple .input li, form .field.field-RadioSelect .input li {
  margin-top: 0.3em;
  display: flex;
  gap: 0.4em;
  align-items: center;
}
form .field.field-CheckboxSelectMultiple .input label, form .field.field-RadioSelect .input label {
  color: #d42b5e;
  border-radius: 2em;
  padding: 0.35em 0.8em;
  margin-left: -2.2em;
  padding-left: 2.2em;
}
form .field.field-CheckboxSelectMultiple .input :checked + label, form .field.field-RadioSelect .input :checked + label {
  background-color: #d42b5e;
  color: #fff;
}
form .field label {
  font-family: "EB Garamond", serif;
  font-weight: bold;
}
form .field .help_text, form .field.field-PasswordInput ul li {
  font-style: italic;
  font-size: 0.9em;
  color: #d35f82;
}
form .field .input {
  display: inline-block;
  flex-grow: 1;
  margin-right: 10px;
}
form .field .input input {
  width: 100%;
}

#invitations .stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 1em 0;
  gap: 1em;
  padding: 0.5em;
  background-color: #f3c8ac;
  border-radius: 0.5em;
}
#invitations .stats .stat {
  width: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-right: 20px;
}
#invitations .stats .stat .stat-value {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 5px;
}
#invitations .stats .stat .stat-label {
  font-size: 0.9rem;
  text-transform: uppercase;
  color: #d42b5e;
}
#invitations > ul {
  display: flex;
  width: 100%;
  align-items: stretch;
  padding-left: 0;
  gap: 1em;
  flex-wrap: wrap;
}
#invitations > ul li.invitation {
  border-bottom: 1px solid rgb(231, 75, 122);
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 0.5em;
  padding: 0.5em;
  width: 300px;
  min-width: 300px;
  max-width: 450px;
  flex: 1;
  list-style-type: none;
}
#invitations > ul li.invitation .infos {
  position: relative;
}
#invitations > ul li.invitation .infos > * {
  display: block;
  font-size: 0.8em;
}
#invitations > ul li.invitation .infos .date {
  position: absolute;
  top: -1.1em;
  right: -1em;
  background-color: #f6bccd;
  color: #b41847;
  padding: 0.2em 0.5em;
  border-radius: 0 0 0 0.5em;
}
#invitations > ul li.invitation .infos .email {
  color: #d42b5e;
}
#invitations > ul li.invitation .infos .name {
  font-weight: bold;
  font-size: 1.2em;
}
#invitations > ul li.invitation .responses {
  padding: 0;
  margin-top: 1em;
}
#invitations > ul li.invitation .responses li.response {
  border-left: 10px solid #eee;
  padding: 0.5em;
  margin: 0.5em -0.5em;
  background-color: #fff;
  list-style: none;
}
#invitations > ul li.invitation .responses li.response.response-yes {
  border-color: #89d813;
}
#invitations > ul li.invitation .responses li.response.response-no {
  border-color: #c81307;
}
#invitations > ul li.invitation .responses li.response.response-maybe {
  border-color: #f5a623;
}
#invitations > ul .date {
  font-size: 0.8em;
  color: #d42b5e;
}
#invitations > ul .message {
  background-color: #fce9ee;
  padding: 0.5em;
  white-space: pre-wrap;
}

.actions {
  display: flex;
  justify-content: right;
  align-items: center;
  margin-top: 1em;
  gap: 1em;
}
.actions .btn {
  margin: 0;
}

.filler {
  visibility: hidden;
}

ul.messages {
  padding: 0;
}
ul.messages li {
  padding: 0.5em 1.2em;
  font-size: 1.2em;
  font-weight: bold;
  margin: 0.5em -1.2em;
  list-style: none;
  color: #fff;
  background-color: #12a378;
}

.updating {
  position: relative;
}
.updating::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.5);
  top: 0;
  left: 0;
  z-index: 3;
}