/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */
/* app/assets/stylesheets/application.css */

body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
}

nav {
  margin: 0 auto;
  padding: 1rem 2rem;
}
.contenu-nav {
  display: flex;
  flex-wrap: wrap;
  margin: auto;
  max-width: 1024px;
}

h1 {
  margin: 0;
  flex: auto;
  display: inline-block;
}
h2 {
  margin: 0;
  flex: auto;
}
.error, .alert, .notice {
  margin: 0;
}

.liens {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin: auto;
  flex: auto;
}
.btn-lien {
  width: fit-content;
  cursor: pointer;
  padding: 0.4rem;
  display: block;
}
.flex-spacer {
  flex: 1;
}

main {
  max-width: 1024px;
  margin: 0 auto;
  padding: 1rem 2rem 2rem 2rem;
  height: 100%;
}

.form, .form form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.form label, .form input, .form textarea, .form select {
  box-sizing: border-box;
  width: 100%;
}
form input, form trix-editor, form textarea, form select {
  padding: 0.6rem 1rem;
}
form label {
  margin: 0 0 0.2rem 0;
}

.form-connexion {
  margin: auto;
  max-width: 500px;
}
.form-connexion form {
  margin: auto;
  max-width: 300px;
  display: grid;
  gap: 0.4rem;
}
.form-connexion div {
  margin-bottom: 1rem;
}
.form-connexion form * {
  padding: 0.6rem 1rem;
  border-radius: 10px;
}

div.valider, div.annuler {
  display: block;
  width: 30%;
  min-width: 200px;
  height: 2rem;
  margin: auto;
  padding: 0;
}
div.valider *, div.annuler * {
  display: block;
  width: 100%;
  padding: 0;
  cursor: pointer;
}

.header {
  display: flex;
  flex-wrap: wrap;
  margin: auto;
  margin-bottom: 1rem;
  min-height: 3.2rem;
}

section {
  display: flex;
  gap: 1rem;
  flex-direction: column;
  padding: 1.8rem;
  margin: auto;
}
section * {
  margin: 0;
}
section details summary {
  cursor: pointer;
}
section details, section details > div {
  display: flex;
  gap: 1rem;
  flex-direction: column;
  padding: 1rem;
  margin: auto;
  box-sizing: border-box;
  width: 100%;
}
section details > div {
  padding: 1rem 1rem 0.5rem 1rem;
}

img {
  max-width: 100%;
  max-height: 500px;
  margin: 0 auto;
}

#index {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 2rem;
}
.index {
  padding: 1.2rem;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.index > *:not(img) {
  width: 100%;
  margin: 0;
}
.index .lien-element {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 10;
}
.flex-expand, .trix-content {
  flex: 1;
}

.placeholder {
  box-sizing: border-box;
  max-width: 100%;
  height: 10rem;
}
.placeholder p {
  margin: 0;
}

@media (max-width: 640px) {
  h1 {
    margin-bottom: 1rem;
  }

  .contenu-nav, .header {
    flex-direction: column;
  }

  .liens {
    flex-direction: column;
  }
  .btn-lien {
    margin: auto;
  }
  .flex-spacer {
    display: none;
  }
}

@media (min-width: 640px) {
}
