@charset "UTF-8";

:root {
  --bleu-nuit: #102543;
  --bleu-arcavium: #2457a4;
  --bleu-clair: #98b5dc;
  --papier: #f7f4ee;
  --encre: #14233c;
  --vert: #248850;
  --noir: #1a1a1a;
  --bordure: rgba(16, 37, 67, 0.15);
  --sans: Arial, Helvetica, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--bleu-nuit); }

body {
  margin: 0;
  min-width: 320px;
  background: var(--papier);
  color: var(--encre);
  font-family: var(--serif);
}

button, input, select, textarea { font: inherit; }

.site-header {
  min-height: 5.3rem;
  padding: .9rem clamp(1.25rem, 4vw, 4rem);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  background: var(--bleu-nuit);
  color: #fff;
}

.brand {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .7rem;
}

.brand-symbol {
  width: 2.8rem;
  height: 2.8rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.38);
  font-size: 2.35rem;
  line-height: 1;
}

.brand-eyebrow,
.brand-name { display: block; font-family: var(--sans); }

.brand-eyebrow {
  margin-bottom: .15rem;
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .58rem;
  font-weight: 700;
  color: var(--bleu-clair);
}

.brand-name { letter-spacing: .08em; font-size: 1.15rem; font-weight: 300; }

.header-section {
  margin: 0;
  text-align: right;
  text-transform: uppercase;
  letter-spacing: .13em;
  font-family: var(--sans);
  font-size: .66rem;
  line-height: 1.5;
}
.header-section span { color: var(--bleu-clair); }

.intro {
  padding: clamp(3rem, 8vw, 7.5rem) clamp(1.25rem, 8vw, 10rem);
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(16rem, .7fr);
  align-items: end;
  gap: 2rem;
  background:
    radial-gradient(circle at 93% 4%, rgba(152,181,220,.23), transparent 23rem),
    linear-gradient(135deg, #16396f, var(--bleu-arcavium));
  color: white;
}

.eyebrow {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .15em;
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 700;
}

.intro .eyebrow { color: var(--bleu-clair); }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 400; }

h1 {
  max-width: 12ch;
  margin-bottom: 0;
  font-size: clamp(2.9rem, 6vw, 6.5rem);
  line-height: .93;
  letter-spacing: -.045em;
}

.intro-text {
  max-width: 30rem;
  margin: 0;
  font-size: clamp(1.05rem, 1.8vw, 1.32rem);
  line-height: 1.55;
  color: rgba(255,255,255,.91);
}

.map-section { padding: clamp(1.25rem, 4vw, 4rem); background: var(--papier); }

.map-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}

.map-toolbar .eyebrow,
.architecture-note .eyebrow { color: var(--bleu-arcavium); }

h2 {
  margin: .45rem 0 0;
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 1;
  letter-spacing: -.03em;
}

.search-wrap { position: relative; width: min(100%, 24rem); font-family: var(--sans); }

.search-wrap input {
  width: 100%;
  border: 1px solid var(--bordure);
  border-radius: 0;
  padding: .9rem 1rem;
  background: white;
  color: var(--encre);
  outline: none;
}

.search-wrap input:focus { border-color: var(--bleu-arcavium); }

.search-results {
  position: absolute;
  z-index: 1001;
  top: calc(100% + .25rem);
  width: 100%;
  max-height: 16rem;
  overflow: auto;
  border: 1px solid var(--bordure);
  background: white;
  box-shadow: 0 12px 30px rgba(16,37,67,.18);
}

.search-result {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #ece7de;
  padding: .78rem 1rem;
  text-align: left;
  background: white;
  color: var(--encre);
  font-family: var(--sans);
  font-size: .92rem;
  cursor: pointer;
}

.search-result:hover,
.search-result:focus-visible { background: #edf3fb; }

.map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
  min-height: min(70vh, 48rem);
  border: 1px solid var(--bordure);
  background: #dbe7ef;
}

.map-frame { position: relative; min-height: 32rem; }

#carte {
  width: 100%;
  height: 100%;
  min-height: 32rem;
  font-family: var(--sans);
  background: #dbe7ef;
}

.map-status {
  position: absolute;
  z-index: 600;
  left: 1rem;
  bottom: 1rem;
  max-width: calc(100% - 2rem);
  padding: .7rem .85rem;
  background: rgba(16,37,67,.90);
  color: white;
  font-family: var(--sans);
  font-size: .82rem;
  line-height: 1.4;
}

.commune-panel {
  padding: 1.55rem;
  display: flex;
  min-height: 32rem;
  flex-direction: column;
  background: white;
  border-left: 1px solid var(--bordure);
}

.panel-top { display: flex; justify-content: space-between; align-items: center; gap: .6rem; }
.panel-top .eyebrow { color: var(--bleu-arcavium); }

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .35rem .55rem;
  border: 1px solid var(--bordure);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-family: var(--sans);
  font-size: .6rem;
  font-weight: 700;
}

.status-pill.green { border-color: rgba(36,136,80,.45); color: var(--vert); }
.status-pill.black { border-color: rgba(0,0,0,.35); color: var(--noir); }

.commune-panel h3 {
  margin: 1.5rem 0 .8rem;
  font-size: clamp(2rem, 3.2vw, 3.4rem);
  line-height: .98;
  letter-spacing: -.04em;
}

.panel-description {
  margin: 0;
  font-family: var(--sans);
  font-size: .97rem;
  line-height: 1.58;
  color: #46546a;
}


.panel-description p { margin: 0 0 .85rem; }
.panel-description p:last-child { margin-bottom: 0; }

.reserve-public-details {
  display: grid;
  gap: .7rem;
  margin: 1rem 0 0;
  padding-top: .85rem;
  border-top: 1px solid var(--bordure);
}
.reserve-public-details div { display: grid; gap: .2rem; }
.reserve-public-details dt {
  color: #69758a;
  font-family: var(--sans);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.reserve-public-details dd {
  margin: 0;
  color: var(--encre);
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 1.45;
}

.stats { margin: 1.7rem 0 0; display: grid; gap: .75rem; font-family: var(--sans); }
.stats div { padding: .85rem 0; border-top: 1px solid var(--bordure); }
.stats .rate { border-bottom: 1px solid var(--bordure); }
.stats dt { color: #69758a; font-size: .68rem; text-transform: uppercase; letter-spacing: .09em; font-weight: 700; }
.stats dd { margin: .28rem 0 0; color: var(--encre); font-family: var(--serif); font-size: 1.65rem; }

.panel-actions { display: grid; gap: .7rem; margin-top: 1.4rem; }

.panel-actions a,
.panel-actions button {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bleu-arcavium);
  padding: .78rem .8rem;
  background: var(--bleu-arcavium);
  color: white;
  font-family: var(--sans);
  font-size: .86rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  opacity: 1;
}

.panel-actions button:disabled {
  cursor: not-allowed;
  opacity: .58;
}

.panel-actions .secondary { background: white; color: var(--bleu-arcavium); }

.panel-note {
  margin: auto 0 0;
  padding-top: 1.25rem;
  color: #657286;
  font-family: var(--sans);
  font-size: .77rem;
  line-height: 1.5;
}

.map-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.15rem;
  margin-top: 1rem;
  font-family: var(--sans);
  font-size: .79rem;
  color: #516077;
}

.map-legend span { display: inline-flex; align-items: center; gap: .45rem; }

.point {
  position: relative;
  display: inline-block;
  width: 15px;
  height: 15px;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
}
.point:not(.flower):not(.cluster)::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 1px;
  width: 9px;
  height: 7px;
  border: 1px solid rgba(255,255,255,.95);
  border-radius: 1px 3px 3px 1px;
  background: var(--flag-color, #1a1a1a);
  box-shadow: 0 1px 3px rgba(16,37,67,.3);
}
.point:not(.flower):not(.cluster)::after {
  content: "";
  position: absolute;
  left: 2px;
  top: 1px;
  width: 1.5px;
  height: 13px;
  border-radius: 2px;
  background: #34445b;
}
.point.green { --flag-color: var(--vert); }
.point.black { --flag-color: var(--noir); }
.point.orange { --flag-color: #e4572e; }
.point.violet { --flag-color: #7b3fb2; }
.point.flower {
  position: relative;
  width: 18px;
  height: 15px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.point.flower::before,
.point.flower::after {
  content: "";
  position: absolute;
  top: 1px;
  width: 9px;
  height: 12px;
  border: 1px solid rgba(255,255,255,.96);
  border-radius: 70% 70% 55% 55%;
  box-shadow: 0 1px 3px rgba(16,37,67,.3);
}
.point.flower::before {
  left: 1px;
  background: #e4572e;
  transform: rotate(-31deg);
}
.point.flower::after {
  right: 1px;
  background: #7b3fb2;
  transform: rotate(31deg);
}

.point.cluster {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 2px solid white;
  border-radius: 50%;
  background: #17304f !important;
  color: white;
  box-shadow: 0 1px 4px rgba(16,37,67,.32);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
}

.arcavium-flag-marker,
.arcavium-cluster-marker,
.arcavium-flower-marker {
  border: 0 !important;
  background: transparent !important;
}

.arcavium-map-flag {
  --flag-color: #1a1a1a;
  position: relative;
  display: block;
  width: 20px;
  height: 24px;
  filter: drop-shadow(0 2px 2px rgba(16,37,67,.3));
}
.arcavium-map-flag::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 13px;
  height: 10px;
  border: 1.5px solid rgba(255,255,255,.98);
  border-radius: 1px 4px 4px 1px;
  background: var(--flag-color);
  box-shadow: inset 0 0 0 1px rgba(16,37,67,.07);
}
.arcavium-map-flag::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 2px;
  width: 2px;
  height: 20px;
  border-radius: 3px;
  background: #2d4058;
}
.arcavium-map-flag--green { --flag-color: #248850; }
.arcavium-map-flag--black { --flag-color: #1a1a1a; }
.arcavium-map-flag--orange { --flag-color: #e4572e; }
.arcavium-map-flag--violet { --flag-color: #7b3fb2; }

.arcavium-cluster-count {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border: 2px solid rgba(255,255,255,.98);
  border-radius: 50%;
  background: #17304f;
  color: white;
  box-shadow: 0 2px 5px rgba(16,37,67,.34);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 900;
}

.arcavium-spider-leg {
  stroke: rgba(23,48,79,.6);
  stroke-width: 1.5;
  stroke-dasharray: 2 3;
}

/* Marqueur double : pétale orange = Réserve, pétale violet = Partenaire. */
.arcavium-map-flower {
  position: relative;
  display: block;
  width: 27px;
  height: 25px;
  filter: drop-shadow(0 2px 3px rgba(16,37,67,.32));
}
.arcavium-map-flower__petal {
  --petal-rotation: 0deg;
  position: absolute;
  top: 2px;
  z-index: 1;
  width: 15px;
  height: 20px;
  margin: 0;
  padding: 0;
  appearance: none;
  border: 1.5px solid rgba(255,255,255,.98);
  border-radius: 74% 74% 58% 58%;
  box-shadow: inset 0 0 0 1px rgba(16,37,67,.08);
  cursor: pointer;
  transform: rotate(var(--petal-rotation));
  transform-origin: 50% 75%;
  transition: transform .14s ease, filter .14s ease;
}
.arcavium-map-flower__petal:hover,
.arcavium-map-flower__petal:focus-visible {
  z-index: 3;
  outline: none;
  filter: brightness(1.08);
  transform: rotate(var(--petal-rotation)) scale(1.14);
}
.arcavium-map-flower__petal--reserve {
  --petal-rotation: -31deg;
  left: 1px;
  background: #e4572e;
}
.arcavium-map-flower__petal--partner {
  --petal-rotation: 31deg;
  right: 1px;
  background: #7b3fb2;
}
.arcavium-map-flower__center {
  position: absolute;
  left: 10px;
  bottom: 1px;
  z-index: 4;
  width: 7px;
  height: 7px;
  border: 1.5px solid rgba(255,255,255,.98);
  border-radius: 50%;
  background: #102543;
  pointer-events: none;
}

.leaflet-container { background: #dbe7ef; }
.leaflet-control-attribution { font-size: 9px !important; }

.architecture-note {
  padding: clamp(3rem, 8vw, 7.5rem) clamp(1.25rem, 8vw, 10rem);
  background: var(--bleu-nuit);
  color: white;
}

.architecture-note .eyebrow { color: var(--bleu-clair); }
.architecture-note h2 { max-width: 18ch; margin-top: .7rem; font-size: clamp(2.2rem, 5vw, 5rem); }
.architecture-note p:last-child {
  max-width: 50rem;
  margin: 1.5rem 0 0;
  color: rgba(255,255,255,.85);
  font-family: var(--sans);
  font-size: 1.04rem;
  line-height: 1.65;
}

footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem clamp(1.25rem, 4vw, 4rem);
  background: #09172d;
  color: rgba(255,255,255,.74);
  font-family: var(--sans);
  font-size: .72rem;
  letter-spacing: .03em;
}
footer p { margin: 0; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (max-width: 900px) {
  .intro { grid-template-columns: 1fr; }
  .map-layout { grid-template-columns: 1fr; }
  .commune-panel { min-height: 0; border-left: 0; border-top: 1px solid var(--bordure); }
  .map-frame, #carte { min-height: 28rem; }
  .map-toolbar { align-items: stretch; flex-direction: column; }
  .search-wrap { width: 100%; }
}

@media (max-width: 560px) {
  .site-header { align-items: flex-start; flex-direction: column; }
  .header-section { text-align: left; }
  .intro { padding-top: 3.4rem; padding-bottom: 3.4rem; }
  .map-section { padding: 1rem; }
  .map-frame, #carte { min-height: 24rem; }
  footer { flex-direction: column; }
}


.header-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .55rem .85rem;
  border: 1px solid rgba(255,255,255,.5);
  color: white;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-family: var(--sans);
  font-size: .64rem;
  font-weight: 700;
}

.header-cta:hover,
.header-cta:focus-visible {
  background: white;
  color: var(--bleu-nuit);
}

.form-page {
  min-height: calc(100vh - 5.3rem);
  background: var(--papier);
}

.form-hero {
  padding: clamp(2.6rem, 7vw, 6rem) clamp(1.25rem, 8vw, 10rem);
  background:
    radial-gradient(circle at 90% 2%, rgba(152,181,220,.24), transparent 23rem),
    linear-gradient(135deg, #16396f, var(--bleu-arcavium));
  color: white;
}

.form-hero .eyebrow { color: var(--bleu-clair); }

.form-hero h1 {
  max-width: 12ch;
  margin: .7rem 0 0;
}

.form-hero p:last-child {
  max-width: 52rem;
  margin: 1.3rem 0 0;
  color: rgba(255,255,255,.88);
  font-family: var(--sans);
  line-height: 1.65;
  font-size: 1.03rem;
}

.form-layout {
  padding: clamp(1.25rem, 4vw, 4rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 27rem);
  gap: 1.5rem;
}

.mairie-form,
.result-card {
  background: white;
  border: 1px solid var(--bordure);
  padding: clamp(1.25rem, 3vw, 2rem);
}

.form-grid {
  display: grid;
  gap: 1rem;
}

.form-field {
  display: grid;
  gap: .38rem;
  font-family: var(--sans);
}

.form-field label,
.checkbox-label {
  font-family: var(--sans);
  color: #34445e;
  font-weight: 700;
  font-size: .84rem;
}

.form-field input,
.form-field select {
  width: 100%;
  border: 1px solid var(--bordure);
  padding: .86rem .9rem;
  background: #fff;
  color: var(--encre);
  border-radius: 0;
  outline: none;
}

.form-field input:focus,
.form-field select:focus {
  border-color: var(--bleu-arcavium);
}

.checkbox-field {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .7rem;
  align-items: start;
  margin-top: .25rem;
}

.checkbox-field input { margin-top: .18rem; }

.checkbox-label {
  line-height: 1.5;
  font-weight: 400;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.3rem;
}

.form-actions button,
.result-card button {
  border: 1px solid var(--bleu-arcavium);
  padding: .86rem 1rem;
  background: var(--bleu-arcavium);
  color: white;
  font-family: var(--sans);
  font-weight: 700;
  cursor: pointer;
}

.form-actions button.secondary {
  background: white;
  color: var(--bleu-arcavium);
}

.form-actions button:disabled,
.result-card button:disabled {
  opacity: .55;
  cursor: wait;
}

.result-card {
  align-self: start;
  position: sticky;
  top: 1rem;
}

.result-card h2 {
  margin-top: .4rem;
  font-size: clamp(2rem, 3vw, 3.2rem);
}

.result-message {
  margin: 1rem 0 0;
  color: #46546a;
  font-family: var(--sans);
  line-height: 1.6;
}

.result-message.success { color: #1b6a3d; }
.result-message.error { color: #a12922; }

.code-box {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(36, 87, 164, .25);
  background: #f3f7fd;
  font-family: var(--sans);
}

.code-box p {
  margin: .2rem 0;
}

.code-box strong {
  display: block;
  margin-top: .25rem;
  color: var(--bleu-nuit);
  font-family: var(--serif);
  font-size: 1.75rem;
  letter-spacing: .04em;
}

.small-note {
  margin: 1rem 0 0;
  color: #657286;
  font-family: var(--sans);
  font-size: .78rem;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .header-right {
    width: 100%;
    align-items: flex-start;
    flex-direction: column;
  }

  .form-layout {
    grid-template-columns: 1fr;
  }

  .result-card {
    position: static;
  }
}


.admin-hero {
  background:
    radial-gradient(circle at 90% 2%, rgba(152,181,220,.20), transparent 23rem),
    linear-gradient(135deg, #132d54, #1e4a88);
}

#bloc-code-activation button {
  margin-top: 1rem;
}


.form-field textarea {
  width: 100%;
  border: 1px solid var(--bordure);
  padding: .86rem .9rem;
  background: #fff;
  color: var(--encre);
  border-radius: 0;
  outline: none;
  resize: vertical;
  min-height: 8rem;
}

.form-field textarea:focus {
  border-color: var(--bleu-arcavium);
}

.citizen-fields {
  display: grid;
  gap: 1rem;
  margin-top: .5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bordure);
}

.article-fields {
  display: grid;
  gap: 1rem;
}

.compact-actions {
  margin-top: 0;
}

.form-field.full {
  grid-column: 1 / -1;
}

#id-depot {
  font-size: 1.05rem;
  word-break: break-all;
}

@media (min-width: 760px) {
  .citizen-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citizen-fields .full,
  .citizen-fields .article-fields,
  .citizen-fields .checkbox-field {
    grid-column: 1 / -1;
  }
}


/* Reprise citoyen V1 */
.reprise-detail {
  padding-top: 0;
}

.contribution-preview h2 {
  margin-top: .55rem;
}

.texte-contribution {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--bordure);
  white-space: pre-wrap;
  font-family: var(--sans);
  line-height: 1.7;
  color: #34445e;
}

.publication-toggle {
  margin-top: 1.25rem;
}

.lien-journal-reprise {
  background: var(--bleu-nuit);
  border-color: var(--bleu-nuit);
}


/* Dépôt école V1 */
.school-lines {
  display: grid;
  gap: 1rem;
  padding-top: .5rem;
}

.school-lines-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}

.school-lines-head h2 {
  margin-top: .35rem;
  font-size: clamp(1.5rem, 2.4vw, 2.2rem);
}

.school-lines-head button,
.school-line-title button {
  border: 1px solid var(--bleu-arcavium);
  padding: .7rem .85rem;
  background: white;
  color: var(--bleu-arcavium);
  font-family: var(--sans);
  font-weight: 700;
  cursor: pointer;
}

.school-lines-list {
  display: grid;
  gap: 1rem;
}

.school-line {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding: 1rem;
  border: 1px solid var(--bordure);
  background: #fbfaf7;
}

.school-line-title {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.school-line-title h3 {
  margin: 0;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
}

.school-line .full {
  grid-column: 1 / -1;
}

@media (max-width: 760px) {
  .school-line {
    grid-template-columns: 1fr;
  }
}

/* Dépôt école V7 */
.important-code strong {
  letter-spacing: .12em;
}


/* Upload fichiers école — V8 */
.file-upload-box {
  border: 1px solid rgba(20, 20, 20, 0.18);
  border-radius: 18px;
  padding: 1rem;
  margin-top: 1rem;
  background: rgba(255, 255, 255, 0.54);
}
.file-upload-box h4 {
  margin: 0 0 0.45rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.82rem;
}
.file-upload-box input[type="file"] {
  width: 100%;
  margin: 0.5rem 0;
}
.file-list {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
}
.file-list li {
  margin: 0.25rem 0;
}
.upload-status {
  margin-top: 0.45rem;
  font-size: 0.9rem;
}


.file-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  margin: .35rem 0;
}
.bouton-supprimer-fichier {
  padding: .35rem .55rem;
  font-size: .78rem;
}


.panel-image {
  margin: 1rem 0;
  border: 1px solid rgba(36, 87, 164, .18);
  background: #f3f7fd;
  overflow: hidden;
}

.panel-image img,
.image-preview img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 22rem;
  object-fit: cover;
}

.image-preview {
  margin: .6rem 0 .8rem;
  border: 1px solid var(--bordure);
  background: #f8fafc;
  overflow: hidden;
}

.form-field input[type="file"] {
  padding: .75rem;
  background: #fff;
}


/* Journal en panneau modal latéral — V8.16 */
.journal-modal {
  position: fixed;
  inset: 0;
  display: none;
  justify-content: flex-end;
  background: rgba(5, 10, 22, .52);
  z-index: 5000;
}

.journal-modal.ouvert {
  display: flex;
}

.journal-panel {
  position: relative;
  width: min(50vw, 840px);
  min-width: 540px;
  height: 100vh;
  background: #f7f2e8;
  box-shadow: -18px 0 50px rgba(0,0,0,.24);
  border-radius: 24px 0 0 24px;
  overflow: hidden;
  animation: journalPanneauDroite .18s ease-out;
}

@keyframes journalPanneauDroite {
  from { transform: translateX(32px); opacity: .94; }
  to { transform: translateX(0); opacity: 1; }
}

.journal-close {
  position: absolute;
  z-index: 2;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(13,29,58,.18);
  border-radius: 999px;
  background: #fffaf0;
  color: #0d1d3a;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(0,0,0,.12);
}

#journal-frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #f7f2e8;
}

@media (max-width: 900px) {
  .journal-panel {
    width: 100vw;
    min-width: 0;
    border-radius: 0;
  }
}


/* =============================================================
   V8.17 — Accueil général + Réserve des Arts et des Sciences Humaines
   ============================================================= */

.header-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
  flex-wrap: wrap;
}

.header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.15rem;
  padding: .45rem .8rem;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  color: #fff;
  text-decoration: none;
  font: 700 .72rem/1 var(--sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.header-cta:hover { background: rgba(255,255,255,.1); }

.home-hero {
  min-height: calc(100vh - 11rem);
  padding: clamp(3.5rem, 9vw, 8rem) clamp(1.25rem, 8vw, 10rem);
  background:
    radial-gradient(circle at 92% 2%, rgba(228,87,46,.24), transparent 20rem),
    radial-gradient(circle at 2% 86%, rgba(152,181,220,.22), transparent 22rem),
    linear-gradient(135deg, #0c1830, #102543 52%, #16396f);
  color: white;
}
.home-hero .eyebrow { color: var(--bleu-clair); }
.home-hero h1 {
  max-width: 13ch;
  margin: .9rem 0 1.4rem;
  font-size: clamp(3rem, 7vw, 7rem);
}
.home-lead {
  max-width: 48rem;
  margin-bottom: 2.4rem;
  color: rgba(255,255,255,.84);
  font-size: clamp(1.05rem, 1.7vw, 1.35rem);
  line-height: 1.6;
}
.home-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  max-width: 72rem;
}
.home-card {
  min-height: 18rem;
  padding: clamp(1.4rem, 3vw, 2.4rem);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 1.4rem;
  color: white;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: .75rem;
  box-shadow: 0 20px 70px rgba(0,0,0,.2);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.home-card:hover { transform: translateY(-3px); border-color: rgba(255,255,255,.42); }
.home-card.primary { background: linear-gradient(135deg, rgba(36,87,164,.72), rgba(16,37,67,.76)); }
.home-card.reserve { background: linear-gradient(135deg, rgba(228,87,46,.8), rgba(16,37,67,.84)); }
.home-card-kicker {
  font: 800 .72rem/1 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
}
.home-card strong {
  display: block;
  max-width: 12ch;
  font-size: clamp(2rem, 3.6vw, 4rem);
  line-height: .95;
  font-weight: 400;
}
.home-card span:last-child { max-width: 30rem; color: rgba(255,255,255,.82); line-height: 1.55; }
.home-note {
  padding: clamp(2.4rem, 6vw, 5rem) clamp(1.25rem, 8vw, 10rem);
  background: var(--papier);
  border-top: 1px solid var(--bordure);
}
.home-note h2 { max-width: 14ch; font-size: clamp(2.2rem, 4vw, 4.2rem); line-height: .98; }
.home-note p:last-child { max-width: 55rem; line-height: 1.65; }
.home-note code { background: rgba(16,37,67,.08); padding: .08rem .32rem; border-radius: .35rem; }

.reserve-page { background: #f4efe5; }
.reserve-hero {
  padding: clamp(3rem, 7vw, 7rem) clamp(1.25rem, 8vw, 10rem);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .55fr);
  gap: 2rem;
  align-items: end;
  background:
    radial-gradient(circle at 88% 2%, rgba(228,87,46,.3), transparent 21rem),
    linear-gradient(135deg, #0c1830, #102543);
  color: white;
}
.reserve-hero .eyebrow { color: #f3b29b; }
.reserve-hero h1 {
  max-width: 11ch;
  margin: .7rem 0 1rem;
  font-size: clamp(3rem, 6vw, 6.6rem);
}
.reserve-lead { max-width: 44rem; color: rgba(255,255,255,.82); font-size: 1.18rem; line-height: 1.65; }
.reserve-status-card {
  padding: 1.3rem;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 1.2rem;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
}
.reserve-status-card strong { display: block; margin: .35rem 0; font-size: 1.8rem; font-weight: 400; }
.reserve-status-card span { color: rgba(255,255,255,.78); line-height: 1.45; }
.reserve-grid,
.reserve-account {
  padding: clamp(2rem, 5vw, 5rem) clamp(1.25rem, 8vw, 10rem);
}
.reserve-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}
.reserve-panel {
  padding: clamp(1.35rem, 3vw, 2.1rem);
  border: 1px solid rgba(16,37,67,.14);
  border-radius: 1.25rem;
  background: rgba(255,255,255,.72);
  box-shadow: 0 18px 55px rgba(16,37,67,.08);
}
.reserve-panel h2,
.reserve-panel h3 { margin-bottom: .8rem; font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1; }
.reserve-panel p { line-height: 1.6; }
.reserve-small,
.reserve-muted { color: rgba(20,35,60,.72); font-family: var(--sans); font-size: .94rem; }
.reserve-form { margin-top: 1.25rem; display: grid; gap: .7rem; font-family: var(--sans); }
.reserve-form.compact { margin-top: 1rem; }
.reserve-form label { font-weight: 800; font-size: .86rem; }
.reserve-form input {
  width: 100%;
  border: 1px solid rgba(16,37,67,.22);
  border-radius: .85rem;
  background: white;
  color: var(--encre);
  padding: .9rem 1rem;
  font: 1rem/1.2 var(--sans);
}
.reserve-form button,
.reserve-account button,
.placeholder-actions button {
  border: 0;
  border-radius: 999px;
  padding: .88rem 1.2rem;
  background: #e4572e;
  color: white;
  font: 800 .92rem/1 var(--sans);
  cursor: pointer;
}
.reserve-form button:disabled,
.reserve-account button:disabled,
.placeholder-actions button:disabled { opacity: .55; cursor: not-allowed; }
.secondary-button,
.reserve-form .secondary-button {
  background: transparent !important;
  color: var(--encre) !important;
  border: 1px solid rgba(16,37,67,.22) !important;
}
.form-message {
  margin: .35rem 0 0;
  padding: .8rem .9rem;
  border-radius: .75rem;
  background: rgba(36,87,164,.1);
  color: var(--encre);
}
.form-message.error { background: rgba(165,24,24,.1); color: #951414; }
.form-message.success { background: rgba(36,136,80,.12); color: #17613b; }
.lost-code { margin-top: 1.1rem; font-family: var(--sans); }
.lost-code summary { cursor: pointer; font-weight: 800; }
.account-topline {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
  margin-bottom: 1rem;
}
.account-topline h2 { margin-bottom: .3rem; font-size: clamp(2.2rem, 4vw, 4.4rem); line-height: .98; }
.account-grid {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1fr);
  gap: 1rem;
  margin-bottom: 1rem;
}
.quota-numbers { display: flex; align-items: baseline; gap: .65rem; flex-wrap: wrap; margin: 1rem 0; }
.quota-numbers strong { font-size: clamp(2rem, 4vw, 4rem); line-height: 1; font-weight: 400; }
.quota-numbers span { font-family: var(--sans); color: rgba(20,35,60,.68); }
.quota-bar { width: 100%; height: .85rem; background: rgba(16,37,67,.1); border-radius: 999px; overflow: hidden; margin-bottom: .8rem; }
.quota-bar span { display: block; height: 100%; width: 0; background: #e4572e; border-radius: inherit; transition: width .25s ease; }
.account-dl { margin: 0; display: grid; gap: .65rem; font-family: var(--sans); }
.account-dl div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .65rem; border-bottom: 1px solid rgba(16,37,67,.11); }
.account-dl dt { font-weight: 800; }
.account-dl dd { margin: 0; text-align: right; }
.reserve-next { margin-top: 1rem; }
.placeholder-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; }

@media (max-width: 920px) {
  .home-actions,
  .reserve-grid,
  .reserve-hero,
  .account-grid { grid-template-columns: 1fr; }
  .home-card { min-height: 14rem; }
  .account-topline { flex-direction: column; }
  .header-section { display: none; }
}

@media (max-width: 640px) {
  .site-header { align-items: flex-start; }
  .header-right { justify-content: flex-start; }
  .home-hero h1,
  .reserve-hero h1 { max-width: 100%; }
}


.documents-list { display: grid; gap: .75rem; margin-top: 1rem; }
.document-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(16,37,67,.12);
  border-radius: .9rem;
  background: rgba(255,255,255,.68);
  font-family: var(--sans);
}
.document-item strong { display: block; margin-bottom: .2rem; }
.document-item span { display: block; color: rgba(20,35,60,.68); font-size: .9rem; }
@media (max-width: 640px) {
  .document-item { align-items: stretch; flex-direction: column; }
  .document-item button { width: 100%; }
}

/* V8.19 — Réserve : fiche publique de base */
.fiche-publique-panel { margin-bottom: 1rem; }
.section-heading-inline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 15rem);
  gap: 1rem;
  align-items: start;
}
.fiche-image-zone {
  display: grid;
  gap: .85rem;
  align-content: start;
}
.fiche-image-preview {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 1rem;
  border: 1px solid rgba(16,37,67,.14);
  background: rgba(16,37,67,.06);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: rgba(20,35,60,.58);
  font: 800 .82rem/1.2 var(--sans);
  text-align: center;
}
.fiche-image-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.form-row-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.reserve-form textarea {
  width: 100%;
  border: 1px solid rgba(16,37,67,.22);
  border-radius: .85rem;
  background: white;
  color: var(--encre);
  padding: .9rem 1rem;
  font: 1rem/1.45 var(--sans);
  resize: vertical;
  min-height: 8rem;
}
.checkbox-line {
  display: flex !important;
  align-items: flex-start;
  gap: .7rem;
  padding: .85rem .95rem;
  border: 1px solid rgba(16,37,67,.12);
  border-radius: .9rem;
  background: rgba(255,255,255,.62);
  font-weight: 700 !important;
  line-height: 1.35;
}
.checkbox-line input { width: auto; margin-top: .12rem; flex: 0 0 auto; }
.image-form { margin-top: 0; padding: .85rem; border: 1px solid rgba(16,37,67,.12); border-radius: .9rem; background: rgba(255,255,255,.58); }
.image-form .reserve-small { margin-top: .45rem; }
@media (max-width: 760px) {
  .section-heading-inline,
  .form-row-two { grid-template-columns: 1fr; }
  .fiche-image-zone {
  display: grid;
  gap: .85rem;
  align-content: start;
}
.fiche-image-preview { width: 100%; max-width: 12rem; }
}

/* V8.24 — Réserve : lignes de dépôt sans fichiers */
.reserve-depots { margin-bottom: 1rem; }
.depots-heading { grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); }
.reserve-mini-note {
  padding: 1rem;
  border: 1px solid rgba(16,37,67,.12);
  border-radius: 1rem;
  background: rgba(255,255,255,.58);
  font-family: var(--sans);
  color: rgba(20,35,60,.75);
}
.reserve-mini-note strong { display: block; margin-bottom: .35rem; color: var(--encre); }
.reserve-mini-note span { display: block; line-height: 1.45; font-size: .92rem; }
.reserve-mini-note code { background: rgba(16,37,67,.08); padding: .08rem .3rem; border-radius: .35rem; }
.depot-form { margin-top: 1.5rem; }
.depot-form-actions,
.depots-list-header {
  display: flex;
  gap: .7rem;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.depots-list-header { margin: 1.5rem 0 .8rem; }
.depots-list-header h4 { margin: 0; font-size: 1.35rem; }
.depots-list { display: grid; gap: .85rem; }
.depot-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid rgba(16,37,67,.12);
  border-radius: 1rem;
  background: rgba(255,255,255,.68);
  font-family: var(--sans);
}
.depot-item-titleline {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .8rem;
  flex-wrap: wrap;
  margin-bottom: .45rem;
}
.depot-item-titleline strong { font-size: 1.05rem; }
.depot-item-titleline span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .25rem .55rem;
  background: rgba(228,87,46,.1);
  color: #9d351c;
  font-size: .78rem;
  font-weight: 800;
}
.depot-item-main p { margin: .35rem 0 .5rem; color: rgba(20,35,60,.78); }
.depot-item-meta { margin-top: .25rem; color: rgba(20,35,60,.62); font-size: .9rem; line-height: 1.4; }
.depot-item-actions { display: flex; align-items: start; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }
.secondary-button.danger { color: #951414 !important; border-color: rgba(149,20,20,.24) !important; }
@media (max-width: 760px) {
  .depots-heading,
  .depot-item { grid-template-columns: 1fr; }
  .depot-item-actions { justify-content: stretch; }
  .depot-item-actions button { width: 100%; }
}


/* V8.25 — Réserve : ajout de lignes + fichiers */
.depot-add-row { margin: 1rem 0; display: flex; justify-content: flex-start; }
.depot-form-wrap {
  padding: 1rem;
  border: 1px solid rgba(16,37,67,.12);
  border-radius: 1rem;
  background: rgba(255,255,255,.42);
}
.depot-item-with-files { grid-template-columns: minmax(0, 1fr) auto; }
.depot-item-r2 {
  margin-top: .55rem;
  overflow: auto;
  padding: .45rem .55rem;
  border-radius: .65rem;
  background: rgba(16,37,67,.06);
  color: rgba(20,35,60,.7);
  font-size: .78rem;
}
.depot-files-box {
  grid-column: 1 / -1;
  margin-top: .25rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(16,37,67,.1);
}
.depot-files-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: .65rem;
}
.file-button { position: relative; overflow: hidden; cursor: pointer; }
.file-button input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
.depot-files-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .55rem;
}
.depot-files-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem .75rem;
  border-radius: .8rem;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(16,37,67,.1);
}
.depot-files-list small { display: block; margin-top: .15rem; color: rgba(20,35,60,.58); font-weight: 700; }
.file-actions { display: flex; gap: .45rem; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) {
  .depot-item-with-files { grid-template-columns: 1fr; }
  .depot-files-list li { align-items: stretch; flex-direction: column; }
  .file-actions { justify-content: stretch; }
  .file-actions button { flex: 1 1 auto; }
}

/* Réserve V8.31 — factures du compte */
.facture-item {
  gap: 1rem;
}
.facture-item > div:first-child {
  display: grid;
  gap: .2rem;
}
.facture-etat {
  color: var(--muted, #667085);
  font-size: .82rem;
}
.facture-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
  flex-wrap: wrap;
}
.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
@media (max-width: 720px) {
  .facture-item {
    align-items: flex-start;
    flex-direction: column;
  }
  .facture-actions {
    justify-content: flex-start;
  }
}


/* Réserve V8.32 — achat de stockage supplémentaire */
.stockage-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin: 1.2rem 0;
}
.stockage-metrics > div {
  display: grid;
  gap: .25rem;
  padding: .9rem;
  border-radius: .9rem;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(16,37,67,.1);
}
.stockage-metrics span,
.stockage-prix-unitaire span,
.stockage-total-box span {
  font-family: var(--sans);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: rgba(20,35,60,.62);
}
.stockage-metrics strong { font-size: clamp(1.3rem, 2.6vw, 2.15rem); font-weight: 500; line-height: 1; }
.stockage-achat-panel { margin-bottom: 1rem; }
.stockage-heading { align-items: stretch; }
.stockage-prix-unitaire {
  min-width: 13rem;
  display: grid;
  align-content: center;
  justify-items: end;
  gap: .15rem;
  padding: 1rem 1.15rem;
  border-radius: 1rem;
  background: var(--encre, #102543);
  color: #fff;
}
.stockage-prix-unitaire span,
.stockage-prix-unitaire small { color: rgba(255,255,255,.72); }
.stockage-prix-unitaire strong { font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 500; line-height: 1; }
.stockage-prix-unitaire small {
  display: block;
  font-family: var(--sans);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.35;
}
.stockage-form { margin-top: 1.25rem; }
.stockage-achat-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, .55fr);
  gap: 1rem;
  align-items: end;
}
.stockage-total-box {
  display: grid;
  gap: .15rem;
  padding: .9rem 1rem;
  border-radius: .9rem;
  background: rgba(228,87,46,.09);
  border: 1px solid rgba(228,87,46,.22);
}
.stockage-total-box strong { font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 500; line-height: 1; }
.stockage-total-box small {
  display: block;
  font-family: var(--sans);
  color: rgba(20,35,60,.68);
  font-weight: 700;
  line-height: 1.35;
}
.stockage-form > button[type="submit"] { margin-top: 1rem; }
.facture-stockage { color: #a84224; font-size: .88rem; font-weight: 800; }

@media (max-width: 760px) {
  .stockage-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stockage-achat-grid { grid-template-columns: 1fr; }
  .stockage-prix-unitaire { min-width: 0; justify-items: start; }
}
@media (max-width: 480px) {
  .stockage-metrics { grid-template-columns: 1fr; }
}

/* V8.32.4 — Réserve : coordonnées privées du déposant */
.contacts-prives-panel { margin-bottom: 1rem; }
.contacts-prives-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}
.contacts-prives-heading > div:first-child { max-width: 58rem; }
.contacts-prives-badge {
  flex: 0 0 auto;
  padding: .45rem .72rem;
  border: 1px solid rgba(31,122,73,.28);
  border-radius: 999px;
  background: rgba(31,122,73,.09);
  color: #17613b;
  font: 800 .76rem/1 var(--sans);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.contacts-email-attente {
  margin: .35rem 0 0;
  padding: .85rem .95rem;
  border: 1px solid rgba(190,77,45,.25);
  border-radius: .85rem;
  background: #fff7ed;
  color: #7a3a13;
  font: 700 .88rem/1.5 var(--sans);
}
.contacts-prives-meta { margin: .15rem 0 0; }
@media (max-width: 640px) {
  .contacts-prives-heading { flex-direction: column; }
}


/* V8.32.5 — Réserve : mosaïque du compte, fiche publique alignée et dépôts repliables */
.account-mosaic {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(22rem, .88fr);
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 1rem;
}
.account-mosaic-main {
  height: 100%;
  margin: 0;
}
.account-mosaic-side {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 1rem;
  min-width: 0;
  height: 100%;
}
.account-mosaic-side > .reserve-panel {
  margin: 0;
  min-width: 0;
}
.account-mosaic .contacts-prives-panel {
  display: flex;
  flex-direction: column;
}
.account-mosaic .contacts-prives-form {
  flex: 1 1 auto;
  align-content: start;
}
.quota-storage-panel {
  display: flex;
  flex-direction: column;
}
.quota-storage-panel > h3,
.status-panel-compact h3 {
  font-size: clamp(1.55rem, 2.4vw, 2.25rem);
}
.quota-storage-panel .stockage-metrics {
  gap: .5rem;
  margin: .85rem 0;
}
.quota-storage-panel .stockage-metrics > div {
  padding: .65rem;
  border-radius: .75rem;
}
.quota-storage-panel .stockage-metrics span {
  font-size: .66rem;
}
.quota-storage-panel .stockage-metrics strong {
  font-size: clamp(1.05rem, 2vw, 1.55rem);
}
.quota-storage-panel .quota-bar {
  height: .65rem;
  margin-bottom: .55rem;
}
.quota-storage-panel #quota-detail {
  margin: 0;
  font-size: .82rem;
}
.stockage-achat-compact {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(16,37,67,.12);
}
.stockage-compact-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: start;
}
.stockage-compact-heading h4 {
  margin: .2rem 0 .35rem;
  font-size: 1.2rem;
  line-height: 1.12;
}
.stockage-compact-heading p:not(.eyebrow) {
  margin: 0;
  font-family: var(--sans);
  color: rgba(20,35,60,.7);
  font-size: .8rem;
  line-height: 1.45;
}
.stockage-prix-unitaire-compact {
  min-width: 9.5rem;
  padding: .65rem .75rem;
  border-radius: .75rem;
}
.stockage-prix-unitaire-compact span {
  font-size: .62rem;
}
.stockage-prix-unitaire-compact strong {
  font-size: 1.45rem;
}
.stockage-prix-unitaire-compact small {
  font-size: .7rem;
}
.stockage-form-compact {
  gap: .5rem;
  margin-top: .75rem;
}
.stockage-achat-grid-compact {
  grid-template-columns: minmax(0, 1fr) minmax(10rem, .62fr);
  gap: .65rem;
}
.stockage-form-compact label {
  font-size: .76rem;
}
.stockage-form-compact input {
  padding: .7rem .8rem;
  border-radius: .7rem;
  font-size: .9rem;
}
.stockage-total-box-compact {
  padding: .65rem .75rem;
  border-radius: .75rem;
}
.stockage-total-box-compact span {
  font-size: .62rem;
}
.stockage-total-box-compact strong {
  font-size: 1.45rem;
}
.stockage-total-box-compact small {
  font-size: .7rem;
}
.stockage-form-compact > button[type="submit"] {
  justify-self: start;
  margin-top: .15rem;
  padding: .72rem 1rem;
  font-size: .82rem;
}
.stockage-form-compact > .reserve-small {
  margin: 0;
  font-size: .72rem;
  line-height: 1.42;
}
.status-panel-compact {
  padding-top: 1.15rem;
  padding-bottom: 1.15rem;
}
.status-panel-compact .eyebrow {
  margin-bottom: .15rem;
}
.status-panel-compact h3 {
  margin-bottom: .65rem;
}
.account-dl-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem .8rem;
}
.account-dl-compact div {
  display: grid;
  gap: .18rem;
  padding: .55rem .6rem;
  border: 1px solid rgba(16,37,67,.09);
  border-radius: .7rem;
  background: rgba(255,255,255,.58);
}
.account-dl-compact dt {
  color: rgba(20,35,60,.62);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.account-dl-compact dd {
  text-align: left;
  font-size: .85rem;
  overflow-wrap: anywhere;
}

.fiche-publique-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(13rem, 15rem);
  gap: 1.25rem;
  align-items: start;
}
.fiche-publique-main {
  min-width: 0;
}
.fiche-publique-heading h3 {
  margin-bottom: .65rem;
}
.fiche-publique-heading p:last-child {
  margin-bottom: 0;
}
.fiche-publique-main .fiche-form {
  margin-top: 1.15rem;
}
.fiche-publique-layout .fiche-image-zone {
  width: 100%;
  min-width: 0;
}
.fiche-publique-layout .fiche-image-preview {
  width: 100%;
  max-width: none;
}

.reserve-resources-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}
.reserve-resources-grid > .reserve-panel {
  min-width: 0;
  height: 100%;
  margin: 0;
}
.resources-heading-inline {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
}
.resources-heading-inline > div {
  min-width: 0;
}
.resources-heading-inline button {
  flex: 0 0 auto;
  padding: .65rem .9rem;
}
.reserve-resources-grid .documents-list {
  align-content: start;
}

.depots-list {
  gap: .7rem;
}
.depot-card {
  overflow: hidden;
  border: 1px solid rgba(16,37,67,.13);
  border-radius: 1rem;
  background: rgba(255,255,255,.7);
  font-family: var(--sans);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.depot-card[open] {
  border-color: rgba(36,87,164,.35);
  background: rgba(255,255,255,.9);
  box-shadow: 0 .8rem 2rem rgba(16,37,67,.08);
}
.depot-card-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.05rem;
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.depot-card-summary::-webkit-details-marker { display: none; }
.depot-card-summary::marker { content: ""; }
.depot-card-summary:hover {
  background: rgba(36,87,164,.035);
}
.depot-card-summary-main {
  min-width: 0;
}
.depot-card-titleline {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
}
.depot-card-titleline strong {
  color: var(--encre);
  font-size: 1.08rem;
  line-height: 1.25;
}
.depot-publication-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .22rem .5rem;
  background: rgba(228,87,46,.09);
  color: #9d351c;
  font-size: .68rem;
  font-weight: 800;
}
.depot-card-summary-description {
  margin: .35rem 0 0;
  color: rgba(20,35,60,.7);
  font-size: .86rem;
  line-height: 1.42;
}
.depot-card-summary-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .7rem;
  margin-top: .5rem;
  color: rgba(20,35,60,.58);
  font-size: .76rem;
  font-weight: 700;
}
.depot-card-summary-meta span:not(:last-child)::after {
  content: "·";
  margin-left: .7rem;
  color: rgba(20,35,60,.28);
}
.depot-card-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.6rem;
  padding: .55rem .75rem;
  border: 1px solid rgba(16,37,67,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: var(--encre);
  font-size: .78rem;
  font-weight: 800;
}
.depot-card[open] .depot-card-toggle {
  border-color: rgba(36,87,164,.3);
  background: rgba(36,87,164,.08);
  color: #2457a4;
}
.depot-card-body {
  display: grid;
  gap: .85rem;
  padding: 0 1.05rem 1.05rem;
  border-top: 1px solid rgba(16,37,67,.09);
}
.depot-card-section {
  padding-top: .9rem;
}
.depot-card-section + .depot-card-section {
  border-top: 1px solid rgba(16,37,67,.08);
}
.depot-card-section h5 {
  margin: 0 0 .65rem;
  color: var(--encre);
  font-size: 1rem;
}
.depot-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
  margin: 0;
}
.depot-info-grid > div {
  display: grid;
  gap: .18rem;
  padding: .65rem .7rem;
  border: 1px solid rgba(16,37,67,.08);
  border-radius: .75rem;
  background: rgba(255,255,255,.58);
}
.depot-info-grid dt {
  color: rgba(20,35,60,.58);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.depot-info-grid dd {
  margin: 0;
  color: var(--encre);
  font-size: .87rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.depot-description-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}
.depot-description-grid > .depot-text-block:first-child {
  grid-column: 1 / -1;
}
.depot-text-block {
  padding: .75rem .8rem;
  border: 1px solid rgba(16,37,67,.08);
  border-radius: .8rem;
  background: rgba(255,255,255,.55);
}
.depot-text-block h6 {
  margin: 0 0 .35rem;
  color: rgba(20,35,60,.62);
  font-size: .7rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.depot-text-block p {
  margin: 0;
  color: var(--encre);
  font-size: .88rem;
  line-height: 1.5;
}
.depot-text-empty p {
  color: rgba(20,35,60,.5);
  font-style: italic;
}
.depot-files-section .depot-files-head {
  margin-bottom: .65rem;
}
.depot-files-section .depot-files-head h5 {
  margin-bottom: .18rem;
}
.depot-files-section .depot-files-head p {
  margin: 0;
  color: rgba(20,35,60,.58);
  font-size: .78rem;
}
.depot-technical-line {
  display: grid;
  gap: .3rem;
  padding: .65rem .75rem;
  border-radius: .75rem;
  background: rgba(16,37,67,.05);
}
.depot-technical-line span {
  color: rgba(20,35,60,.55);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.depot-technical-line code {
  overflow-wrap: anywhere;
  font-size: .72rem;
}
.depot-card-actions {
  display: flex;
  justify-content: flex-end;
  gap: .55rem;
  flex-wrap: wrap;
  padding-top: .15rem;
}
.depot-card-actions button {
  padding: .7rem .95rem;
  font-size: .8rem;
}

@media (max-width: 1080px) {
  .account-mosaic {
    grid-template-columns: 1fr;
  }
  .account-mosaic-side {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, .62fr);
    grid-template-rows: auto;
  }
}

@media (max-width: 820px) {
  .account-mosaic-side,
  .reserve-resources-grid,
  .fiche-publique-layout {
    grid-template-columns: 1fr;
  }
  .fiche-publique-layout .fiche-image-zone {
    max-width: 15rem;
  }
  .stockage-compact-heading,
  .stockage-achat-grid-compact {
    grid-template-columns: 1fr;
  }
  .stockage-prix-unitaire-compact {
    min-width: 0;
    justify-items: start;
  }
}

@media (max-width: 640px) {
  .account-dl-compact,
  .depot-info-grid,
  .depot-description-grid {
    grid-template-columns: 1fr;
  }
  .depot-description-grid > .depot-text-block:first-child {
    grid-column: auto;
  }
  .depot-card-summary {
    grid-template-columns: 1fr;
    gap: .7rem;
  }
  .depot-card-toggle {
    justify-self: start;
  }
  .depot-card-summary-meta span:not(:last-child)::after {
    display: none;
  }
  .depot-card-summary-meta {
    display: grid;
    gap: .2rem;
  }
  .depot-card-actions {
    justify-content: stretch;
  }
  .depot-card-actions button {
    width: 100%;
  }
  .resources-heading-inline {
    flex-direction: column;
  }
}


/* v8.32.6 — édition directe des dépôts et nom de photo sous le bouton */
.profile-image-file-picker {
  display: grid;
  justify-items: start;
  gap: .55rem;
}
.profile-image-file-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  cursor: pointer;
}
.profile-image-file-name {
  display: block;
  width: 100%;
  color: rgba(20,35,60,.72);
  font-family: var(--sans);
  font-size: .78rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.depot-inline-form {
  min-width: 0;
}
.depot-inline-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .8rem;
}
.depot-inline-section-heading h5 {
  margin-bottom: .2rem;
}
.depot-inline-section-heading p {
  margin: 0;
  color: rgba(20,35,60,.6);
  font-size: .8rem;
  line-height: 1.45;
}
.depot-inline-status-badge {
  flex: 0 0 auto;
  padding: .34rem .58rem;
  border-radius: 999px;
  background: rgba(36,87,164,.08);
  color: #2457a4;
  font-size: .7rem;
  font-weight: 800;
  white-space: nowrap;
}
.depot-inline-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.depot-inline-field {
  display: grid;
  gap: .32rem;
  min-width: 0;
}
.depot-inline-field-wide {
  grid-column: 1 / -1;
}
.depot-inline-field label {
  color: rgba(20,35,60,.72);
  font-size: .76rem;
  font-weight: 800;
}
.depot-inline-field input,
.depot-inline-field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(16,37,67,.16);
  border-radius: .75rem;
  padding: .72rem .78rem;
  background: rgba(255,255,255,.88);
  color: var(--encre);
  font: inherit;
}
.depot-inline-field textarea {
  resize: vertical;
  line-height: 1.5;
}
.depot-inline-field input:focus,
.depot-inline-field textarea:focus {
  border-color: rgba(36,87,164,.65);
  outline: 2px solid rgba(36,87,164,.1);
}
.depot-inline-publication {
  margin-top: .75rem;
}
.depot-inline-readonly-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5rem;
  margin: .75rem 0 0;
}
.depot-inline-readonly-grid > div {
  display: grid;
  gap: .18rem;
  padding: .58rem .65rem;
  border-radius: .7rem;
  background: rgba(16,37,67,.045);
}
.depot-inline-readonly-grid dt {
  color: rgba(20,35,60,.55);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.depot-inline-readonly-grid dd {
  margin: 0;
  font-size: .8rem;
  overflow-wrap: anywhere;
}
.depot-card[open] .depot-card-body {
  padding-bottom: 6.7rem;
}
.depot-inline-savebar {
  position: fixed;
  left: 50%;
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  width: min(44rem, calc(100vw - 2rem));
  padding: .65rem;
  border: 1px solid rgba(16,37,67,.2);
  border-radius: 1rem;
  background: rgba(247,244,238,.96);
  box-shadow: 0 1rem 2.8rem rgba(16,37,67,.22);
  transform: translateX(-50%);
  backdrop-filter: blur(12px);
}
.depot-inline-savebar button {
  flex: 0 0 auto;
  min-width: 15rem;
  margin: 0;
  padding: .82rem 1.1rem;
  font-weight: 800;
}
.depot-inline-save-status {
  flex: 1 1 auto;
  margin: 0;
  padding: .6rem .75rem;
  text-align: center;
}
.depot-inline-save-status[hidden] {
  display: none;
}

@media (max-width: 720px) {
  .depot-inline-fields-grid,
  .depot-inline-readonly-grid {
    grid-template-columns: 1fr;
  }
  .depot-inline-field-wide {
    grid-column: auto;
  }
  .depot-inline-section-heading {
    flex-direction: column;
  }
  .depot-inline-savebar {
    align-items: stretch;
    flex-direction: column;
    width: calc(100vw - 1rem);
    bottom: max(.5rem, env(safe-area-inset-bottom));
    padding: .5rem;
  }
  .depot-inline-savebar button {
    width: 100%;
    min-width: 0;
  }
  .depot-inline-save-status {
    order: -1;
  }
}

/* =============================================================
   V8.32.7 — Le Livre public des déposants
   Inspiration éditoriale : Programme national Arcavium
   ============================================================= */

.deposants-page {
  --livre-bleu: #3152ad;
  --livre-bleu-profond: #172440;
  --livre-bleu-clair: #dceaf5;
  --livre-orange: #e4572e;
  background: var(--livre-bleu-profond);
}

.deposants-header {
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.deposants-hero {
  position: relative;
  min-height: min(78rem, calc(100vh - 5.3rem));
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(20rem, .72fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: center;
  padding: clamp(3rem, 8vw, 8rem) clamp(1.25rem, 7vw, 8rem);
  overflow: hidden;
  color: white;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 4rem 4rem,
    linear-gradient(0deg, rgba(255,255,255,.025) 1px, transparent 1px) 0 0 / 4rem 4rem,
    var(--livre-bleu);
}

.deposants-hero::after {
  content: "";
  position: absolute;
  width: 36rem;
  height: 36rem;
  right: -18rem;
  top: -18rem;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 50%;
  box-shadow: 0 0 0 7rem rgba(255,255,255,.025), 0 0 0 14rem rgba(255,255,255,.018);
}

.deposants-hero-copy {
  position: relative;
  z-index: 1;
  max-width: 55rem;
}

.deposants-hero .eyebrow {
  color: #cbdafa;
}

.deposants-hero h1 {
  max-width: 9ch;
  margin: 1.2rem 0 1.8rem;
  font-size: clamp(4rem, 9vw, 9.5rem);
  line-height: .82;
  letter-spacing: -.06em;
}

.deposants-hero h1 span {
  color: var(--livre-bleu-clair);
  font-size: .78em;
}

.deposants-hero-copy > p:not(.eyebrow) {
  max-width: 44rem;
  margin-bottom: 0;
  color: rgba(255,255,255,.88);
  font-size: clamp(1.02rem, 1.5vw, 1.24rem);
  line-height: 1.75;
}

.deposants-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 2rem;
}

.deposants-primary-link,
.deposants-secondary-link {
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .82rem 1.15rem;
  border: 1px solid rgba(255,255,255,.6);
  color: white;
  background: transparent;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .11em;
  font: 800 .72rem/1 var(--sans);
  cursor: pointer;
}

.deposants-primary-link {
  background: white;
  color: var(--livre-bleu-profond);
}

.deposants-secondary-link:hover,
.deposants-secondary-link:focus-visible {
  background: rgba(255,255,255,.1);
}

.deposants-cover {
  position: relative;
  z-index: 1;
  width: min(100%, 29rem);
  min-height: 42rem;
  justify-self: end;
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  padding: 2.1rem 2rem;
  border: 1px solid rgba(255,255,255,.35);
  background:
    linear-gradient(135deg, rgba(255,255,255,.07), transparent 45%),
    var(--livre-bleu-profond);
  box-shadow: 0 2.2rem 5rem rgba(8,18,36,.32);
}

.deposants-cover::before {
  content: "";
  position: absolute;
  inset: 1rem;
  border: 1px solid rgba(255,255,255,.12);
  pointer-events: none;
}

.deposants-cover-kicker,
.deposants-cover-number {
  position: relative;
  z-index: 1;
  text-transform: uppercase;
  letter-spacing: .16em;
  font: 700 .6rem/1.4 var(--sans);
  color: rgba(255,255,255,.7);
}

.deposants-cover-title {
  align-self: center;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: clamp(4.6rem, 7vw, 7.2rem);
  line-height: .8;
  letter-spacing: .1em;
  justify-self: end;
}

.deposants-cover-subtitle {
  position: absolute;
  left: 2.1rem;
  top: 8rem;
  color: var(--livre-bleu-clair);
  text-transform: uppercase;
  letter-spacing: .13em;
  font: 700 .78rem/1.7 var(--sans);
}

.deposants-cover-symbol {
  position: relative;
  z-index: 1;
  font-size: 5rem;
  line-height: .7;
  color: #86a7e0;
}

.deposants-cover-number {
  align-self: end;
  text-align: right;
}

.deposants-reader {
  padding: clamp(3rem, 7vw, 7rem) clamp(1rem, 5vw, 5rem);
  color: white;
  background:
    radial-gradient(circle at 8% 12%, rgba(49,82,173,.4), transparent 26rem),
    var(--livre-bleu-profond);
}

.deposants-reader-head {
  max-width: 92rem;
  margin: 0 auto 1.4rem;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
}

.deposants-reader-head .eyebrow {
  color: #86a7e0;
}

.deposants-reader-head h2 {
  margin-top: .55rem;
  font-size: clamp(2.4rem, 5vw, 5rem);
}

.deposants-reader-tools {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .55rem;
}

.deposants-reader-tools button,
.deposants-reader-tools a {
  min-height: 2.7rem;
  padding: .7rem .9rem;
  border: 1px solid rgba(255,255,255,.3);
  color: white;
  background: transparent;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .08em;
  font: 800 .68rem/1 var(--sans);
  cursor: pointer;
}

.deposants-reader-tools button:hover,
.deposants-reader-tools a:hover {
  background: rgba(255,255,255,.08);
}

.deposants-loading {
  max-width: 92rem;
  margin: 2rem auto 0;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.8);
  font-family: var(--sans);
}

.deposants-loading.error {
  border-color: rgba(228,87,46,.65);
}

.book-stage {
  max-width: 92rem;
  margin: 0 auto;
}

.book-spread {
  position: relative;
  min-height: 42rem;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  background: white;
  box-shadow: 0 2.2rem 6rem rgba(0,0,0,.38);
  isolation: isolate;
}

.book-spread::after {
  content: "";
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1.3rem;
  transform: translateX(-50%);
  background: linear-gradient(90deg, rgba(9,18,37,.16), transparent 42%, rgba(9,18,37,.1));
  pointer-events: none;
}

.book-page {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.book-page-portrait {
  display: grid;
  grid-template-columns: 3.3rem 1fr;
  grid-template-rows: 1fr auto;
  background: var(--livre-bleu);
}

.book-vertical-label {
  grid-row: 1 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  color: rgba(255,255,255,.74);
  background: #223c82;
  text-transform: uppercase;
  letter-spacing: .15em;
  font: 700 .58rem/1 var(--sans);
}

.book-portrait-frame {
  position: relative;
  min-height: 35rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 75% 18%, rgba(255,255,255,.18), transparent 18rem),
    linear-gradient(145deg, #6683ce, #2c4ca7 65%);
}

.book-portrait-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255,255,255,.16);
  pointer-events: none;
}

.book-portrait-frame img {
  width: 100%;
  height: 100%;
  min-height: 35rem;
  display: block;
  object-fit: cover;
  object-position: center;
  filter: saturate(.86) contrast(1.02);
}

.book-portrait-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.82);
  font-size: clamp(11rem, 24vw, 23rem);
  line-height: 1;
}

.book-page-caption {
  grid-column: 2;
  min-height: 4.6rem;
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: 1rem 1.4rem;
  color: white;
  background: #223c82;
  text-transform: uppercase;
  letter-spacing: .11em;
  font: 700 .62rem/1.3 var(--sans);
}

.book-orange-point {
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: var(--livre-orange);
  box-shadow: 0 0 0 .22rem rgba(228,87,46,.16);
}

.book-page-text {
  display: flex;
  flex-direction: column;
  padding: clamp(2.2rem, 5vw, 5.2rem);
  color: var(--livre-bleu-profond);
  background:
    linear-gradient(90deg, transparent 97%, rgba(23,36,64,.035) 97%),
    #fbfcfe;
}

.book-page-rule {
  width: 4.5rem;
  height: .35rem;
  margin-bottom: 2.2rem;
  background: var(--livre-bleu);
}

.book-page-kicker {
  margin-bottom: 1rem;
  color: #52647f;
  text-transform: uppercase;
  letter-spacing: .15em;
  font: 800 .63rem/1.4 var(--sans);
}

.book-page-text h3 {
  max-width: 12ch;
  margin-bottom: 1rem;
  color: var(--livre-bleu);
  font-size: clamp(3rem, 6vw, 6.3rem);
  line-height: .9;
  letter-spacing: -.055em;
}

.book-location {
  margin: 0 0 1.5rem;
  padding-left: 1.1rem;
  border-left: .35rem solid var(--livre-orange);
  color: #52647f;
  font: 700 .83rem/1.55 var(--sans);
}

.book-presentation {
  max-width: 42rem;
  margin-bottom: 2rem;
  font-size: clamp(1.05rem, 1.45vw, 1.28rem);
  line-height: 1.78;
}

.book-presentation::first-letter {
  float: left;
  margin: .02em .08em 0 0;
  color: var(--livre-bleu);
  font-size: 4.5em;
  line-height: .73;
  font-weight: 700;
}

.book-public-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  margin: auto 0 0;
  font-family: var(--sans);
}

.book-public-details div {
  padding: .85rem 0;
  border-top: 1px solid rgba(23,36,64,.14);
}

.book-public-details dt {
  margin-bottom: .32rem;
  color: #6c7990;
  text-transform: uppercase;
  letter-spacing: .09em;
  font-size: .62rem;
  font-weight: 800;
}

.book-public-details dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: .88rem;
  line-height: 1.45;
}

.book-public-details a {
  color: var(--livre-bleu);
  font-weight: 800;
}

.book-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1rem;
}

.book-profile-actions a,
.book-profile-actions button:not(.arcavium-share-trigger) {
  min-height: 2.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .68rem .8rem;
  border: 1px solid rgba(23,36,64,.2);
  color: var(--livre-bleu-profond);
  background: transparent;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .07em;
  font: 800 .65rem/1 var(--sans);
  cursor: pointer;
}

.book-profile-actions a {
  color: white;
  border-color: var(--livre-bleu);
  background: var(--livre-bleu);
}

.book-page-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: .9rem;
  border-top: 1px solid rgba(23,36,64,.18);
  color: #78859a;
  text-transform: uppercase;
  letter-spacing: .16em;
  font: 800 .58rem/1 var(--sans);
}

.book-controls {
  display: grid;
  grid-template-columns: auto minmax(8rem, 1fr) auto;
  align-items: center;
  gap: 1rem;
  margin-top: 1.2rem;
}

.book-controls button {
  min-height: 2.8rem;
  padding: .7rem .9rem;
  border: 1px solid rgba(255,255,255,.28);
  color: white;
  background: transparent;
  text-transform: uppercase;
  letter-spacing: .08em;
  font: 800 .68rem/1 var(--sans);
  cursor: pointer;
}

.book-controls button:hover {
  background: rgba(255,255,255,.08);
}

.book-progress {
  height: .22rem;
  overflow: hidden;
  background: rgba(255,255,255,.16);
}

.book-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--livre-orange);
  transition: width .3s ease;
}

.deposants-manifesto {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(18rem, .72fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
  padding: clamp(3rem, 7vw, 7rem) clamp(1.25rem, 8vw, 9rem);
  color: var(--livre-bleu-profond);
  background: var(--livre-bleu-clair);
}

.deposants-manifesto-number {
  color: var(--livre-bleu);
  font: 300 clamp(4rem, 9vw, 9rem)/.8 var(--sans);
}

.deposants-manifesto .eyebrow {
  color: var(--livre-bleu);
}

.deposants-manifesto h2 {
  max-width: 12ch;
  margin-top: .7rem;
}

.deposants-manifesto > p {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.75;
}

.deposants-dialog {
  width: min(72rem, calc(100vw - 2rem));
  max-height: min(88vh, 58rem);
  padding: 0;
  border: 0;
  color: var(--livre-bleu-profond);
  background: #fbfcfe;
  box-shadow: 0 2rem 7rem rgba(0,0,0,.5);
}

.deposants-dialog::backdrop {
  background: rgba(10,20,39,.82);
  backdrop-filter: blur(5px);
}

.deposants-dialog-inner {
  padding: clamp(1.4rem, 4vw, 3.5rem);
}

.deposants-dialog-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.deposants-dialog-head .eyebrow {
  color: var(--livre-bleu);
}

.deposants-dialog-head h2 {
  margin-top: .55rem;
}

.deposants-dialog-close {
  width: 3rem;
  height: 3rem;
  flex: 0 0 auto;
  border: 1px solid rgba(23,36,64,.18);
  color: var(--livre-bleu-profond);
  background: transparent;
  font-size: 1.8rem;
  cursor: pointer;
}

.deposants-search-label {
  display: block;
  margin-top: 1.5rem;
  color: #52647f;
  text-transform: uppercase;
  letter-spacing: .08em;
  font: 800 .68rem/1.4 var(--sans);
}

.deposants-search {
  width: 100%;
  margin-top: .45rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(23,36,64,.2);
  color: var(--livre-bleu-profond);
  background: white;
  font: 1rem/1.3 var(--sans);
  outline: 0;
}

.deposants-search:focus {
  border-color: var(--livre-bleu);
}

.deposants-index {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem;
  margin-top: 1.25rem;
}

.deposants-index-button {
  min-width: 0;
  display: grid;
  grid-template-columns: 2.7rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem;
  padding: .85rem;
  border: 1px solid rgba(23,36,64,.12);
  color: var(--livre-bleu-profond);
  background: white;
  text-align: left;
  cursor: pointer;
}

.deposants-index-button:hover,
.deposants-index-button[aria-current="true"] {
  border-color: var(--livre-bleu);
  background: #eef3ff;
}

.deposants-index-number {
  color: var(--livre-bleu);
  font: 300 1.55rem/1 var(--sans);
}

.deposants-index-copy {
  min-width: 0;
  display: grid;
  gap: .25rem;
  font-family: var(--sans);
}

.deposants-index-copy strong,
.deposants-index-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.deposants-index-copy strong {
  font-size: .9rem;
}

.deposants-index-copy small {
  color: #6c7990;
  font-size: .72rem;
}

.deposants-index-arrow {
  color: var(--livre-orange);
  font-size: 1.2rem;
}

.deposants-index-empty {
  padding: 1rem;
  border: 1px solid rgba(23,36,64,.12);
  font-family: var(--sans);
}

.deposants-footer {
  background: #0d172b;
}

@media (max-width: 1050px) {
  .deposants-hero {
    grid-template-columns: minmax(0, 1fr) minmax(17rem, .55fr);
  }
  .deposants-cover { min-height: 36rem; }
  .book-spread { min-height: 38rem; }
  .book-page-text { padding: 2.6rem; }
  .book-page-text h3 { font-size: clamp(2.8rem, 6vw, 5rem); }
}

@media (max-width: 820px) {
  .deposants-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .deposants-cover {
    width: min(100%, 30rem);
    justify-self: start;
  }
  .deposants-reader-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .deposants-reader-tools { justify-content: flex-start; }
  .book-spread {
    grid-template-columns: 1fr;
  }
  .book-spread::after { display: none; }
  .book-page-portrait { min-height: 32rem; }
  .book-portrait-frame,
  .book-portrait-frame img { min-height: 28rem; }
  .deposants-manifesto {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .deposants-manifesto > p {
    grid-column: 2;
  }
}

@media (max-width: 620px) {
  .deposants-hero { padding-top: 3rem; }
  .deposants-hero h1 { font-size: clamp(3.6rem, 19vw, 6rem); }
  .deposants-cover { min-height: 31rem; }
  .deposants-cover-title { font-size: 4.2rem; }
  .deposants-reader { padding-left: .75rem; padding-right: .75rem; }
  .book-page-portrait { grid-template-columns: 2.6rem 1fr; }
  .book-page-text { padding: 2rem 1.4rem; }
  .book-public-details { grid-template-columns: 1fr; }
  .book-controls { grid-template-columns: 1fr 1fr; }
  .book-progress { grid-column: 1 / -1; grid-row: 1; }
  .book-controls button { grid-row: 2; }
  .book-controls button span { display: none; }
  .deposants-manifesto {
    grid-template-columns: 1fr;
  }
  .deposants-manifesto > p { grid-column: auto; }
  .deposants-index { grid-template-columns: 1fr; }
  .deposants-dialog { width: calc(100vw - 1rem); }
}

@media (prefers-reduced-motion: reduce) {
  .book-progress span { transition: none; }
  html { scroll-behavior: auto; }
}


/* ==========================================================================
   V8.32.8 — LIVRE DES DÉPOSANTS : ARCHIVES PUBLIQUES
   ========================================================================== */

.deposants-cover-archives {
  bottom: 1.8rem;
  top: auto;
  opacity: .78;
}

.book-page-text {
  overflow: visible;
}

.book-chapter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0 0 1.5rem;
  padding-bottom: .8rem;
  border-bottom: 1px solid rgba(23,36,64,.14);
}

.book-chapter-tabs button {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.35rem;
  padding: .56rem .72rem;
  border: 1px solid rgba(23,36,64,.16);
  color: #52647f;
  background: transparent;
  text-transform: uppercase;
  letter-spacing: .08em;
  font: 800 .62rem/1 var(--sans);
  cursor: pointer;
}

.book-chapter-tabs button:hover,
.book-chapter-tabs button.active {
  color: white;
  border-color: var(--livre-bleu);
  background: var(--livre-bleu);
}

.book-chapter-tabs button span {
  min-width: 1.3rem;
  min-height: 1.3rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(23,36,64,.1);
  font-size: .58rem;
}

.book-chapter-tabs button.active span {
  background: rgba(255,255,255,.2);
}

.book-view[hidden] {
  display: none !important;
}

.book-archives-call {
  color: white !important;
  border-color: var(--livre-orange) !important;
  background: var(--livre-orange) !important;
}

.book-archives-view {
  display: grid;
  gap: 1.1rem;
  min-height: 27rem;
}

.archive-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.archive-number {
  margin: 0 0 .45rem;
  color: var(--livre-orange);
  text-transform: uppercase;
  letter-spacing: .14em;
  font: 800 .64rem/1.2 var(--sans);
}

.archive-heading h4 {
  max-width: 16ch;
  margin: 0;
  color: var(--livre-bleu);
  font-size: clamp(2rem, 3.7vw, 4.1rem);
  line-height: .96;
  letter-spacing: -.045em;
}

.archive-counter {
  flex: 0 0 auto;
  padding: .48rem .58rem;
  border: 1px solid rgba(23,36,64,.18);
  color: #6c7990;
  font: 800 .62rem/1 var(--sans);
}

.archive-metadata {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5rem;
}

.archive-metadata > div {
  min-width: 0;
  padding: .68rem .72rem;
  border: 1px solid rgba(23,36,64,.12);
  background: #f2f5fb;
  font-family: var(--sans);
}

.archive-metadata span,
.archive-metadata strong {
  display: block;
}

.archive-metadata span {
  margin-bottom: .22rem;
  color: #78859a;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-size: .55rem;
  font-weight: 800;
}

.archive-metadata strong {
  color: var(--livre-bleu-profond);
  overflow-wrap: anywhere;
  font-size: .75rem;
  line-height: 1.35;
}

.archive-context {
  margin: 0;
  padding-left: 1rem;
  border-left: .3rem solid var(--livre-orange);
  font-size: 1rem;
  line-height: 1.68;
}

.archive-notes {
  margin: 0;
  padding: .75rem .85rem;
  color: #596780;
  background: #f7f8fb;
  font: .82rem/1.55 var(--sans);
}

.archive-media-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(12rem, .65fr);
  gap: .8rem;
  align-items: stretch;
}

.archive-media-stage {
  min-width: 0;
  min-height: 20rem;
  border: 1px solid rgba(23,36,64,.14);
  background: #111d35;
}

.archive-feature {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #111d35;
}

.archive-feature-image,
.archive-video-player {
  width: 100%;
  min-height: 16rem;
  max-height: 28rem;
  display: block;
  object-fit: contain;
  background: #0b1427;
}

.archive-audio-player {
  width: calc(100% - 2rem);
  margin: auto;
}

.archive-feature-audio {
  min-height: 20rem;
  justify-content: flex-end;
  background:
    radial-gradient(circle at 75% 18%, rgba(255,255,255,.12), transparent 12rem),
    linear-gradient(145deg, #3152ad, #172440);
}

.archive-feature-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  margin-top: auto;
  padding: .8rem .9rem;
  color: white;
  background: #172440;
  font-family: var(--sans);
}

.archive-feature-caption > div:first-child {
  min-width: 0;
  display: grid;
  gap: .2rem;
}

.archive-feature-caption strong,
.archive-feature-caption small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.archive-feature-caption strong {
  font-size: .78rem;
}

.archive-feature-caption small {
  color: rgba(255,255,255,.62);
  font-size: .62rem;
}

.archive-feature-actions {
  display: flex;
  gap: .35rem;
  flex: 0 0 auto;
}

.archive-feature-actions button,
.archive-feature-actions a {
  min-height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .48rem .58rem;
  border: 1px solid rgba(255,255,255,.25);
  color: white;
  background: transparent;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .06em;
  font: 800 .56rem/1 var(--sans);
  cursor: pointer;
}

.archive-feature-actions button {
  border-color: var(--livre-orange);
  background: var(--livre-orange);
}

.archive-document-cover {
  min-height: 16rem;
  flex: 1;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: .7rem;
  padding: clamp(1.4rem, 4vw, 3rem);
  color: white;
  background:
    linear-gradient(135deg, transparent 0 70%, rgba(255,255,255,.06) 70%),
    linear-gradient(145deg, #3152ad, #172440);
}

.archive-document-cover strong {
  max-width: 22ch;
  font-size: clamp(1.4rem, 2.5vw, 2.4rem);
  line-height: 1.05;
}

.archive-document-cover small {
  color: rgba(255,255,255,.7);
  font: .72rem/1.45 var(--sans);
}

.archive-document-sigle {
  display: inline-flex;
  padding: .42rem .55rem;
  color: var(--livre-bleu-profond);
  background: white;
  text-transform: uppercase;
  letter-spacing: .12em;
  font: 900 .66rem/1 var(--sans);
}

.archive-media-empty {
  min-height: 20rem;
  display: grid;
  place-items: center;
  align-content: center;
  gap: .65rem;
  padding: 2rem;
  color: white;
  text-align: center;
  background: linear-gradient(145deg, #3152ad, #172440);
}

.archive-media-empty span {
  font-size: 4rem;
}

.archive-media-empty p {
  max-width: 28rem;
  margin: 0;
  color: rgba(255,255,255,.7);
  font: .82rem/1.55 var(--sans);
}

.archive-files-title {
  margin: 0 0 .45rem;
  color: #6c7990;
  text-transform: uppercase;
  letter-spacing: .1em;
  font: 800 .58rem/1 var(--sans);
}

.archive-files-list {
  display: grid;
  gap: .38rem;
  max-height: 21.8rem;
  overflow: auto;
}

.archive-file-button {
  min-width: 0;
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  padding: .58rem;
  border: 1px solid rgba(23,36,64,.12);
  color: var(--livre-bleu-profond);
  background: white;
  text-align: left;
  cursor: pointer;
}

.archive-file-button:hover,
.archive-file-button[aria-current="true"] {
  border-color: var(--livre-bleu);
  background: #eef3ff;
}

.archive-file-type {
  min-height: 2.25rem;
  display: grid;
  place-items: center;
  padding: .3rem;
  color: white;
  background: var(--livre-bleu);
  text-transform: uppercase;
  letter-spacing: .05em;
  font: 800 .5rem/1 var(--sans);
}

.archive-file-copy {
  min-width: 0;
  display: grid;
  gap: .18rem;
  font-family: var(--sans);
}

.archive-file-copy strong,
.archive-file-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.archive-file-copy strong {
  font-size: .72rem;
}

.archive-file-copy small {
  color: #78859a;
  font-size: .61rem;
}

.archive-files-empty {
  margin: 0;
  padding: .8rem;
  border: 1px solid rgba(23,36,64,.12);
  color: #78859a;
  font: .72rem/1.45 var(--sans);
}

.archive-controls {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: .45rem;
  align-items: center;
}

.archive-controls button {
  min-height: 2.45rem;
  padding: .55rem .65rem;
  border: 1px solid rgba(23,36,64,.18);
  color: var(--livre-bleu-profond);
  background: transparent;
  text-transform: uppercase;
  letter-spacing: .06em;
  font: 800 .56rem/1 var(--sans);
  cursor: pointer;
}

.archive-controls button:last-child {
  justify-self: stretch;
}

.archive-controls button:disabled {
  opacity: .35;
  cursor: default;
}

.deposants-archive-filter {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-top: .8rem;
  color: #52647f;
  font: 700 .75rem/1.4 var(--sans);
}

.deposants-archive-filter input {
  width: 1rem;
  height: 1rem;
  margin: 0;
  accent-color: var(--livre-bleu);
}

.media-dialog {
  width: min(94rem, calc(100vw - 1.5rem));
  max-width: none;
  height: min(92vh, 64rem);
  max-height: none;
  padding: 0;
  border: 0;
  color: white;
  background: #0d172b;
  box-shadow: 0 2rem 7rem rgba(0,0,0,.6);
}

.media-dialog::backdrop {
  background: rgba(5,10,20,.88);
  backdrop-filter: blur(6px);
}

.media-dialog-inner {
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.media-dialog-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.media-dialog-head .eyebrow {
  color: #9bb4ff;
}

.media-dialog-head h2 {
  margin: .35rem 0 0;
  color: white;
  font-size: clamp(1.4rem, 3vw, 2.8rem);
}

.media-dialog-head button {
  width: 3rem;
  height: 3rem;
  flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.22);
  color: white;
  background: transparent;
  font-size: 1.8rem;
  cursor: pointer;
}

.media-dialog-content {
  min-height: 0;
  display: grid;
  place-items: center;
  overflow: auto;
  background: #08101f;
}

.media-dialog-pdf,
.media-dialog-video,
.media-dialog-image {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  object-fit: contain;
}

.media-dialog-content audio {
  width: min(50rem, calc(100% - 2rem));
}

.media-dialog-footer {
  display: flex;
  justify-content: flex-end;
  padding: .75rem 1.2rem;
  border-top: 1px solid rgba(255,255,255,.14);
}

.media-dialog-footer a {
  display: inline-flex;
  padding: .7rem .85rem;
  color: white;
  border: 1px solid var(--livre-orange);
  background: var(--livre-orange);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .07em;
  font: 800 .62rem/1 var(--sans);
}

@media (max-width: 1150px) {
  .archive-metadata {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .archive-media-layout {
    grid-template-columns: 1fr;
  }

  .archive-files-list {
    max-height: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .book-page-text {
    min-height: 41rem;
  }

  .archive-media-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 620px) {
  .archive-heading {
    display: grid;
  }

  .archive-counter {
    justify-self: start;
  }

  .archive-metadata,
  .archive-files-list {
    grid-template-columns: 1fr;
  }

  .archive-feature-caption {
    align-items: stretch;
    flex-direction: column;
  }

  .archive-feature-actions {
    width: 100%;
  }

  .archive-feature-actions button,
  .archive-feature-actions a {
    flex: 1;
  }

  .archive-controls {
    grid-template-columns: 1fr 1fr;
  }

  .archive-controls #retour-portrait {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .archive-controls #archive-precedente,
  .archive-controls #archive-suivante {
    grid-row: 2;
  }

  .media-dialog {
    width: calc(100vw - .5rem);
    height: calc(100vh - .5rem);
  }
}


/* =============================================================
   V8.32.9 — Bibliothèque applicative du Livre des déposants
   Composition inspirée d'une bibliothèque mobile, dans les tons
   éditoriaux du Programme national Arcavium.
   ============================================================= */

.bibliotheque-page {
  --library-ink: #101d36;
  --library-blue: #2457a4;
  --library-paper: #f6f2ea;
  --library-pale: #edf3fb;
  --library-orange: #e4572e;
  padding-bottom: 6rem;
  background: var(--library-paper);
}

.bibliotheque-header {
  position: relative;
  z-index: 30;
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.library-app {
  min-height: 100vh;
  background:
    radial-gradient(circle at 92% 0, rgba(152,181,220,.24), transparent 24rem),
    var(--library-paper);
}

.library-app-top {
  padding: clamp(2.4rem, 6vw, 5.5rem) clamp(1.1rem, 6vw, 6rem) 2rem;
  color: var(--library-ink);
  background: linear-gradient(180deg, #fff 0, #fff 76%, rgba(255,255,255,0) 100%);
}

.library-title-row {
  max-width: 92rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.library-title-row .eyebrow {
  color: var(--library-blue);
}

.library-title-row h1 {
  max-width: none;
  margin: .45rem 0 0;
  color: #101010;
  font-size: clamp(3.3rem, 8vw, 7.8rem);
  line-height: .86;
  letter-spacing: -.065em;
}

.library-count-medallion {
  width: 6.8rem;
  height: 6.8rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  align-content: center;
  border: .42rem solid #dceaf5;
  border-radius: 50%;
  color: var(--library-blue);
  background: white;
  box-shadow: 0 .8rem 2.2rem rgba(16,37,67,.12);
  font-family: var(--sans);
}

.library-count-medallion strong,
.library-count-medallion span {
  display: block;
  text-align: center;
}

.library-count-medallion strong {
  font-size: 1.65rem;
  line-height: 1;
}

.library-count-medallion span {
  margin-top: .15rem;
  color: #66748b;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .48rem;
  font-weight: 800;
}

.library-intro {
  max-width: 58rem;
  margin: 1.5rem auto 0;
  color: #536178;
  font-size: clamp(1rem, 1.6vw, 1.22rem);
  line-height: 1.7;
}

.library-search-panel {
  max-width: 92rem;
  margin: 1.7rem auto 0;
  display: grid;
  gap: .65rem;
}

.library-search-panel > label {
  color: #4d5b72;
  text-transform: uppercase;
  letter-spacing: .1em;
  font: 800 .62rem/1 var(--sans);
}

.library-search-line {
  min-height: 3.5rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .7rem;
  padding: 0 1rem;
  border: 1px solid rgba(16,37,67,.15);
  border-radius: 1rem;
  background: white;
  box-shadow: 0 .6rem 1.8rem rgba(16,37,67,.07);
}

.library-search-line > span {
  color: var(--library-blue);
  font: 700 1.35rem/1 var(--sans);
}

.library-search-line input {
  width: 100%;
  min-width: 0;
  border: 0;
  padding: .85rem 0;
  outline: 0;
  color: var(--library-ink);
  background: transparent;
  font: 1rem/1.2 var(--sans);
}

.library-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.library-filter-chips button {
  min-height: 2.25rem;
  padding: .58rem .8rem;
  border: 1px solid rgba(16,37,67,.16);
  border-radius: 999px;
  color: #536178;
  background: white;
  font: 800 .68rem/1 var(--sans);
  cursor: pointer;
}

.library-filter-chips button.active {
  border-color: var(--library-blue);
  color: white;
  background: var(--library-blue);
}

.library-loading {
  max-width: 92rem;
  margin: 1.5rem auto;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(16,37,67,.14);
  background: white;
  color: #536178;
  font-family: var(--sans);
}

.library-loading.error {
  border-color: rgba(228,87,46,.45);
  color: #8b311b;
}

.library-shelf-section {
  padding: clamp(2rem, 5vw, 4.5rem) clamp(1.1rem, 6vw, 6rem);
  background: white;
  overflow: hidden;
}

.library-shelf-pale {
  background: var(--library-pale);
}

.library-all-section {
  background: var(--library-paper);
}

.library-shelf-heading {
  max-width: 92rem;
  margin: 0 auto 1.35rem;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}

.library-shelf-heading .eyebrow {
  color: var(--library-blue);
}

.library-shelf-heading h2 {
  margin-top: .45rem;
  color: #111;
  font-size: clamp(2rem, 4.5vw, 4rem);
  line-height: .95;
}

.library-shelf-heading > a,
.library-section-count {
  color: #657286;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .07em;
  white-space: nowrap;
  font: 800 .63rem/1.3 var(--sans);
}

.library-shelf-heading > a span {
  color: #a4aab4;
  font-size: 1.7rem;
  vertical-align: -.12em;
}

.library-horizontal-shelf {
  width: calc(100% + clamp(1.1rem, 6vw, 6rem));
  max-width: calc(92rem + clamp(1.1rem, 6vw, 6rem));
  margin: 0 auto;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(10.5rem, 17vw, 15.2rem);
  gap: clamp(.85rem, 2vw, 1.45rem);
  padding: .3rem clamp(1.1rem, 6vw, 6rem) 1.7rem 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-width: thin;
  scrollbar-color: rgba(36,87,164,.35) transparent;
}

.library-horizontal-shelf::after {
  content: "";
  width: .1rem;
}

.library-book-grid {
  max-width: 92rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
  gap: clamp(1.2rem, 3vw, 2.2rem) clamp(.85rem, 2vw, 1.5rem);
}

.library-book {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: start;
  gap: .72rem;
  color: inherit;
  text-decoration: none;
  scroll-snap-align: start;
}

.library-cover-card {
  position: relative;
  aspect-ratio: .67;
  min-height: 15rem;
  overflow: hidden;
  isolation: isolate;
  border-radius: .18rem .55rem .55rem .18rem;
  color: white;
  background:
    linear-gradient(135deg, transparent 0 68%, rgba(255,255,255,.1) 68% 69%, transparent 69%),
    linear-gradient(155deg, var(--cover-b), var(--cover-a));
  box-shadow:
    -.3rem .25rem 0 rgba(10,20,40,.14),
    0 1.1rem 1.9rem rgba(16,37,67,.2);
  transition: transform .22s ease, box-shadow .22s ease;
}

.library-cover-card::before {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0 auto 0 0;
  width: .62rem;
  background: linear-gradient(90deg, rgba(0,0,0,.32), rgba(255,255,255,.12), rgba(0,0,0,.2));
  box-shadow: .22rem 0 .45rem rgba(0,0,0,.2);
}

.library-cover-card::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(8,18,36,.04) 0 36%, rgba(8,18,36,.84) 100%),
    linear-gradient(90deg, rgba(8,18,36,.35), transparent 42%);
  pointer-events: none;
}

.library-book:hover .library-cover-card,
.library-book:focus-visible .library-cover-card {
  transform: translateY(-.42rem) rotate(-.35deg);
  box-shadow:
    -.35rem .3rem 0 rgba(10,20,40,.14),
    0 1.5rem 2.6rem rgba(16,37,67,.28);
}

.library-cover-card img {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.78) contrast(1.04);
}

.library-cover-initial {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.2);
  font-size: clamp(8rem, 17vw, 15rem);
  line-height: 1;
}

.library-cover-number,
.library-cover-mark,
.library-cover-copy,
.library-cover-badge {
  position: absolute;
  z-index: 5;
}

.library-cover-number {
  top: .85rem;
  left: 1.2rem;
  padding: .32rem .42rem;
  border: 1px solid rgba(255,255,255,.45);
  color: rgba(255,255,255,.88);
  font: 800 .54rem/1 var(--sans);
}

.library-cover-mark {
  top: .95rem;
  right: .78rem;
  writing-mode: vertical-rl;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: rgba(255,255,255,.82);
  font: 800 .48rem/1 var(--sans);
}

.library-cover-copy {
  left: 1.25rem;
  right: .9rem;
  bottom: 1.05rem;
  display: grid;
  gap: .35rem;
}

.library-cover-copy::before {
  content: "";
  width: 2.8rem;
  height: .28rem;
  margin-bottom: .2rem;
  background: var(--cover-accent);
}

.library-cover-copy strong {
  max-width: 11ch;
  font-size: clamp(1.45rem, 2.7vw, 2.25rem);
  line-height: .9;
  letter-spacing: -.04em;
  overflow-wrap: anywhere;
}

.library-cover-copy small {
  max-width: 19ch;
  color: rgba(255,255,255,.78);
  font: 700 .58rem/1.35 var(--sans);
}

.library-cover-badge {
  top: 2.8rem;
  left: 1.2rem;
  max-width: calc(100% - 2.2rem);
  padding: .36rem .48rem;
  color: #172440;
  background: var(--cover-accent);
  text-transform: uppercase;
  letter-spacing: .05em;
  font: 900 .48rem/1 var(--sans);
}

.library-book-caption {
  min-width: 0;
  display: grid;
  gap: .2rem;
  padding: 0 .15rem;
  font-family: var(--sans);
}

.library-book-caption strong,
.library-book-caption small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.library-book-caption strong {
  color: #18243b;
  font-size: .83rem;
}

.library-book-caption small {
  color: #778397;
  font-size: .67rem;
}

.library-empty {
  max-width: 92rem;
  margin: 0 auto;
  padding: 1.2rem;
  border: 1px solid rgba(16,37,67,.14);
  background: white;
  color: #657286;
  font-family: var(--sans);
}

.library-bottom-nav {
  position: fixed;
  z-index: 80;
  left: 50%;
  bottom: 1rem;
  transform: translateX(-50%);
  width: min(35rem, calc(100vw - 1rem));
  min-height: 4.5rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  gap: .1rem;
  padding: .35rem;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 1.5rem;
  background: rgba(244,247,251,.9);
  box-shadow: 0 1rem 2.5rem rgba(16,37,67,.25);
  backdrop-filter: blur(16px);
}

.library-bottom-nav a {
  min-width: 0;
  min-height: 3.65rem;
  display: grid;
  place-items: center;
  align-content: center;
  gap: .22rem;
  border-radius: 1.15rem;
  color: #2d3b52;
  text-decoration: none;
  font-family: var(--sans);
}

.library-bottom-nav a > span {
  font-size: 1.35rem;
  line-height: 1;
}

.library-bottom-nav a > small {
  font-size: .57rem;
  font-weight: 800;
}

.library-bottom-nav a.active {
  color: white;
  background: var(--library-blue);
}

.library-footer {
  padding: 3rem 1.2rem 7rem;
  color: rgba(255,255,255,.72);
  background: var(--bleu-nuit);
  text-align: center;
  font: .67rem/1.6 var(--sans);
}

.library-footer p {
  margin: .2rem 0;
}

@media (max-width: 760px) {
  .bibliotheque-page {
    padding-bottom: 5.7rem;
  }

  .bibliotheque-header .header-right {
    display: none;
  }

  .library-app-top {
    padding-top: 2.2rem;
  }

  .library-title-row {
    align-items: start;
  }

  .library-title-row h1 {
    font-size: clamp(3.2rem, 18vw, 5.3rem);
  }

  .library-count-medallion {
    width: 4.9rem;
    height: 4.9rem;
    border-width: .3rem;
  }

  .library-count-medallion strong {
    font-size: 1.15rem;
  }

  .library-intro {
    margin-top: 1.1rem;
    font-size: .96rem;
  }

  .library-shelf-section {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .library-shelf-heading {
    align-items: center;
  }

  .library-shelf-heading h2 {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .library-shelf-heading > a {
    font-size: .55rem;
  }

  .library-horizontal-shelf {
    width: calc(100% + 1rem);
    grid-auto-columns: minmax(9.4rem, 43vw);
    padding-right: 1rem;
  }

  .library-book-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.45rem .85rem;
  }

  .library-cover-card {
    min-height: 13.2rem;
  }

  .library-cover-copy strong {
    font-size: clamp(1.18rem, 6vw, 1.7rem);
  }

  .library-cover-copy small {
    font-size: .52rem;
  }

  .library-bottom-nav {
    bottom: .5rem;
    width: calc(100vw - 1rem);
    min-height: 4.15rem;
  }
}

@media (max-width: 390px) {
  .library-book-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .library-cover-card {
    min-height: 12rem;
  }

  .library-cover-number,
  .library-cover-badge {
    left: .95rem;
  }

  .library-cover-copy {
    left: 1rem;
  }
}


/* ========================================================================== 
   ESPACE PARTENAIRE — v8.34.2
   ========================================================================== */
.home-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-card.partner { background: linear-gradient(135deg, rgba(102, 61, 145, .88), rgba(16,37,67,.88)); }
.partner-link { border-color: rgba(194, 163, 230, .55); }
.partenaire-page { background: #f3eff7; }
.partner-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .65fr);
  gap: 1.3rem;
  padding: clamp(2rem, 6vw, 5.5rem) clamp(1.2rem, 7vw, 8rem) 2rem;
  background: linear-gradient(135deg, #261b38, #583878 58%, #102543);
  color: white;
}
.partner-hero .eyebrow { color: #dac2ef; }
.partner-hero h1 { max-width: 12ch; margin: .55rem 0 1rem; font-size: clamp(3rem, 7vw, 6.5rem); line-height: .92; font-weight: 400; letter-spacing: -.05em; }
.partner-lead { max-width: 55rem; color: rgba(255,255,255,.82); font-size: clamp(1rem, 1.6vw, 1.2rem); }
.partner-status-card { align-self: stretch; padding: 1.4rem; border: 1px solid rgba(255,255,255,.26); background: rgba(255,255,255,.08); display: flex; flex-direction: column; justify-content: flex-end; }
.partner-status-card strong { display: block; margin: .45rem 0; font-family: Arial, Helvetica, sans-serif; font-size: 1.35rem; }
.partner-status-card span { color: rgba(255,255,255,.72); font-family: Arial, Helvetica, sans-serif; font-size: .88rem; line-height: 1.5; }
.partner-public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; padding: 2rem clamp(1.2rem, 7vw, 8rem) clamp(3rem, 7vw, 6rem); }
.partner-panel { background: white; border: 1px solid rgba(65, 35, 93, .16); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: 0 .8rem 2.4rem rgba(38,27,56,.05); }
.partner-panel h2, .partner-panel h3 { color: #30203f; }
.partner-panel .eyebrow { color: #69408c; }
.partner-account { padding: 2rem clamp(1.2rem, 7vw, 8rem) clamp(3rem, 7vw, 6rem); }
.partner-account-topline { margin-bottom: 1.25rem; }
.partner-account-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.reserve-account-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.partner-space-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.partner-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.partner-summary-card { min-width: 0; }
.partner-summary-card .account-dl { margin-bottom: 0; }
.partner-public-link { display: inline-flex; margin-top: 1rem; padding: .72rem .85rem; border: 1px solid #69408c; color: #69408c; font-family: Arial, Helvetica, sans-serif; font-weight: 800; text-decoration: none; }
.partner-public-link:hover { background: #69408c; color: white; }
.partner-quota-bar span { background: linear-gradient(90deg, #69408c, #a978cf); }
.partner-access-warning { margin: 0 0 1rem; padding: 1rem 1.1rem; border: 1px solid rgba(105,64,140,.28); background: #f7f0fc; color: #4e3268; font-family: Arial, Helvetica, sans-serif; line-height: 1.55; }
.partner-profile-panel { margin-bottom: 1rem; }
.partner-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.partner-profile-grid > div { padding: .9rem; background: #f8f5fb; border: 1px solid rgba(65,35,93,.12); }
.partner-profile-grid span { display: block; color: #776684; font-family: Arial, Helvetica, sans-serif; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.partner-profile-grid strong, .partner-profile-grid p { display: block; margin: .38rem 0 0; color: #30203f; }
.partner-profile-wide { grid-column: 1 / -1; }
.partner-public-placeholder { max-width: 58rem; margin: clamp(3rem, 8vw, 8rem) auto; }
.partner-public-placeholder h1 { max-width: 14ch; }
@media (max-width: 1050px) {
  .home-actions, .partner-summary-grid { grid-template-columns: 1fr; }
  .partner-public-grid, .partner-hero { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .partner-profile-grid { grid-template-columns: 1fr; }
  .partner-profile-wide { grid-column: auto; }
  .partner-account-actions,
  .reserve-account-actions { width: 100%; }
  .partner-account-actions > *,
  .reserve-account-actions > * { flex: 1 1 auto; }
}

/* ========================================================================== 
   Espace partenaire — profil public, prévisualisation et publication v8.34.2
   ========================================================================== */
.partner-editor-panel { margin-bottom: 1rem; }
.partner-editor-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.partner-version-badge { flex: 0 0 auto; padding: .6rem .75rem; border: 1px solid rgba(105,64,140,.25); background: #f8f3fc; color: #5d377e; font-family: Arial, Helvetica, sans-serif; font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.partner-public-form textarea { min-height: 8rem; resize: vertical; }
.partner-fieldset { margin: 0; padding: 1rem; border: 1px solid rgba(65,35,93,.16); background: #fbf9fd; }
.partner-fieldset legend { padding: 0 .45rem; color: #50316a; font-family: Arial, Helvetica, sans-serif; font-weight: 800; }
.field-label { display: block; margin-bottom: .45rem; color: #34445e; font-family: Arial, Helvetica, sans-serif; font-size: .84rem; font-weight: 700; }
.partner-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.partner-category-option { display: flex; align-items: center; gap: .45rem; padding: .55rem .6rem; border: 1px solid rgba(65,35,93,.12); background: white; cursor: pointer; }
.partner-category-option input { width: auto; margin: 0; }
.partner-category-option span { color: #443451; font-size: .82rem; }
.partner-location-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; align-items: end; }
.partner-location-search button { min-height: 3rem; }
.partner-location-results { display: grid; gap: .5rem; margin-top: .8rem; }
.partner-location-choice { display: grid; gap: .25rem; width: 100%; padding: .75rem .85rem; border: 1px solid rgba(105,64,140,.2); background: white; color: #30203f; text-align: left; cursor: pointer; }
.partner-location-choice:hover { border-color: #69408c; background: #f8f3fc; }
.partner-location-choice strong { font-family: Arial, Helvetica, sans-serif; }
.partner-location-choice span { color: #70617c; font-size: .8rem; line-height: 1.4; }
.partner-location-selected { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .75rem; align-items: center; margin-top: .8rem; padding: .8rem .9rem; border: 1px solid rgba(105,64,140,.2); background: #f7f0fc; font-family: Arial, Helvetica, sans-serif; }
.partner-location-selected strong { color: #4e3268; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; }
.partner-location-selected span { color: #443451; font-size: .84rem; line-height: 1.45; }
.text-button { border: 0; padding: .3rem; background: transparent; color: #69408c; font-family: Arial, Helvetica, sans-serif; font-weight: 800; cursor: pointer; }
.partner-editor-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.partner-editor-actions > * { min-height: 3rem; }
.partner-publish-button { border-color: #69408c !important; background: #69408c !important; }
.partner-preview-modal { position: fixed; inset: 0; z-index: 1500; pointer-events: none; opacity: 0; transition: opacity .2s ease; }
.partner-preview-modal.open { pointer-events: auto; opacity: 1; }
.partner-preview-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(12,18,32,.55); cursor: pointer; }
.partner-preview-drawer { position: absolute; top: 0; right: 0; width: min(50vw, 56rem); height: 100%; overflow-y: auto; padding: clamp(1.25rem, 3vw, 2.5rem); background: #f3eff7; box-shadow: -1rem 0 3rem rgba(0,0,0,.2); transform: translateX(100%); transition: transform .25s ease; }
.partner-preview-modal.open .partner-preview-drawer { transform: translateX(0); }
.partner-preview-header { position: sticky; top: -2.5rem; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: -2.5rem -2.5rem 1rem; padding: 1.25rem 2.5rem; background: rgba(243,239,247,.96); border-bottom: 1px solid rgba(65,35,93,.15); backdrop-filter: blur(8px); }
.partner-preview-header h2 { margin: .25rem 0 0; }
.partner-preview-content { display: grid; gap: 1rem; }
body.modal-open { overflow: hidden; }
.partner-public-main { padding: clamp(2rem, 6vw, 5rem) clamp(1.2rem, 7vw, 8rem); }
.partner-public-page { display: grid; gap: 1rem; max-width: 75rem; margin: 0 auto; }
.partner-public-hero-card { padding: clamp(1.5rem, 5vw, 4.5rem); background: linear-gradient(135deg, #51326d, #1a2944); color: white; border: 1px solid rgba(255,255,255,.12); }
.partner-public-hero-card .eyebrow { color: #dfc7f2; }
.partner-public-hero-card h1 { max-width: 15ch; margin: .55rem 0 1rem; font-size: clamp(3rem, 7vw, 6.5rem); line-height: .92; font-weight: 400; letter-spacing: -.05em; }
.partner-public-lead { max-width: 55rem; margin: 0; color: rgba(255,255,255,.84); font-size: clamp(1.05rem, 1.7vw, 1.3rem); line-height: 1.65; }
.partner-public-details-card, .partner-public-content { padding: clamp(1.25rem, 3vw, 2rem); background: white; border: 1px solid rgba(65,35,93,.16); }
.partner-public-badges { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.1rem; }
.partner-public-badges span { padding: .42rem .6rem; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.1); color: white; font-family: Arial, Helvetica, sans-serif; font-size: .74rem; font-weight: 800; }
.partner-public-details-card .partner-public-badges span, .partner-preview-content .partner-public-details-card .partner-public-badges span { border-color: rgba(105,64,140,.22); background: #f4ecfa; color: #5c377b; }
.partner-public-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.partner-public-dl > div { padding: .8rem; border: 1px solid rgba(65,35,93,.12); background: #faf8fc; }
.partner-public-dl dt { color: #776684; font-family: Arial, Helvetica, sans-serif; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.partner-public-dl dd { margin: .35rem 0 0; color: #30203f; }
.partner-public-links { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.partner-public-links a { display: inline-flex; padding: .65rem .75rem; border: 1px solid #69408c; color: #69408c; font-family: Arial, Helvetica, sans-serif; font-weight: 800; text-decoration: none; }
.partner-public-links a:hover { background: #69408c; color: white; }
.partner-public-band { margin-top: .75rem; padding: 1rem; border: 1px solid rgba(65,35,93,.14); background: #faf8fc; }
.status-pill.partner { background: #6f3a9d; color: white; }

@media (max-width: 900px) {
  .partner-editor-heading { flex-direction: column; }
  .partner-category-grid, .partner-public-dl { grid-template-columns: 1fr; }
  .partner-location-search { grid-template-columns: 1fr; }
  .partner-location-selected { grid-template-columns: 1fr; }
  .partner-preview-drawer { width: 100%; }
  .partner-preview-header { top: -1.25rem; margin: -1.25rem -1.25rem 1rem; padding: 1rem 1.25rem; }
}


/* =============================================================
   V8.34.3 — Navigation simplifiée Manuscrit / Réserve / Partenaire
   ============================================================= */

.header-menu {
  position: relative;
  margin: 0;
  font-family: var(--sans);
}

.header-menu > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.header-menu > summary::-webkit-details-marker {
  display: none;
}

.header-menu > summary::after {
  content: "⌄";
  margin-left: .45rem;
  font-size: .8em;
  line-height: 1;
  transition: transform .18s ease;
}

.header-menu[open] > summary::after {
  transform: rotate(180deg);
}

.header-menu[open] > summary {
  background: rgba(255,255,255,.12);
}

.header-submenu {
  position: absolute;
  z-index: 2500;
  top: calc(100% + .45rem);
  right: 0;
  min-width: 15rem;
  padding: .4rem;
  border: 1px solid rgba(16,37,67,.16);
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 16px 38px rgba(5,17,34,.24);
}

.header-submenu a {
  display: block;
  padding: .75rem .85rem;
  border-radius: .5rem;
  color: var(--bleu-nuit);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.3;
  white-space: nowrap;
}

.header-submenu a:hover,
.header-submenu a:focus-visible {
  background: #edf3fb;
  color: var(--bleu-arcavium);
  outline: none;
}

.form-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.35rem;
}

.form-hero-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: .72rem 1rem;
  border: 1px solid rgba(255,255,255,.66);
  border-radius: 999px;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .06em;
  font: 800 .76rem/1 var(--sans);
}

.form-hero-link:hover,
.form-hero-link:focus-visible {
  background: #fff;
  color: var(--bleu-nuit);
}

@media (max-width: 640px) {
  .header-menu {
    width: 100%;
  }

  .header-menu > summary {
    width: 100%;
  }

  .header-submenu {
    position: static;
    width: 100%;
    min-width: 0;
    margin-top: .35rem;
    box-shadow: none;
  }

  .header-submenu a {
    white-space: normal;
  }
}

/* ================================================================
   Arcavium v8.35.0 — éditeur avancé partenaire JSON v2
   ================================================================ */
.partner-media-fieldset,
.partner-builder-fieldset { display: grid; gap: 1rem; }
.partner-media-upload-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: end; }
.partner-media-upload-row button { min-height: 3rem; }
.partner-media-sections { display: grid; gap: 1rem; }
.partner-subheading { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: .65rem; }
.partner-subheading h4 { margin: 0; color: #30203f; }
.partner-subheading span,
.partner-trash-panel summary span { display: inline-flex; min-width: 1.8rem; height: 1.8rem; align-items: center; justify-content: center; border-radius: 999px; background: #68408c; color: white; font-family: Arial, Helvetica, sans-serif; font-size: .72rem; font-weight: 800; }
.partner-media-library { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: .75rem; }
.partner-media-card { display: grid; grid-template-rows: 9rem auto auto; gap: .6rem; padding: .65rem; border: 1px solid rgba(65,35,93,.15); background: white; }
.partner-media-card img { width: 100%; height: 9rem; object-fit: cover; background: #eee9f2; }
.partner-media-card div { min-width: 0; }
.partner-media-card strong,
.partner-media-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Arial, Helvetica, sans-serif; }
.partner-media-card strong { color: #30203f; font-size: .82rem; }
.partner-media-card span { margin-top: .2rem; color: #786a82; font-size: .72rem; }
.partner-trash-panel { border: 1px solid rgba(65,35,93,.14); background: #f9f6fb; }
.partner-trash-panel summary { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .8rem .9rem; cursor: pointer; color: #50316a; font-family: Arial, Helvetica, sans-serif; font-weight: 800; }
.partner-media-trash { display: grid; gap: .5rem; padding: .8rem; border-top: 1px solid rgba(65,35,93,.12); }
.partner-trash-row { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .7rem; border: 1px solid rgba(65,35,93,.12); background: white; }
.partner-trash-row strong,
.partner-trash-row span { display: block; font-family: Arial, Helvetica, sans-serif; }
.partner-trash-row strong { color: #30203f; }
.partner-trash-row span { margin-top: .2rem; color: #786a82; font-size: .74rem; }

.partner-builder-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.partner-builder-heading h4 { margin: 0 0 .3rem; color: #30203f; }
.partner-builder-empty { padding: 1.2rem; border: 1px dashed rgba(105,64,140,.35); background: white; color: #6f607a; text-align: center; font-family: Arial, Helvetica, sans-serif; }
.partner-builder { display: grid; gap: 1rem; }
.partner-builder-band { border: 1px solid rgba(65,35,93,.22); background: #f5f0f8; }
.partner-builder-band-header { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .8rem .9rem; background: #49315f; color: white; }
.partner-builder-band-header > div:first-child { display: flex; align-items: center; gap: .65rem; }
.partner-builder-band-header strong { font-family: Arial, Helvetica, sans-serif; }
.partner-builder-band-header span { padding: .3rem .45rem; border: 1px solid rgba(255,255,255,.25); font-family: Arial, Helvetica, sans-serif; font-size: .7rem; }
.partner-mini-actions { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.partner-mini-actions .text-button { min-height: 2rem; padding: .3rem .48rem; border-color: currentColor; }
.partner-builder-band-header .text-button { color: white; }
.text-button.danger { color: #a72f2f; }
.partner-builder-band-header .text-button.danger { color: #ffd0d0; }
.partner-builder-band-settings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; padding: .8rem; border-bottom: 1px solid rgba(65,35,93,.16); }
.partner-builder-field { display: grid; gap: .35rem; min-width: 0; color: #554360; font-family: Arial, Helvetica, sans-serif; font-size: .78rem; font-weight: 800; }
.partner-builder-field input,
.partner-builder-field textarea,
.partner-builder-field select { width: 100%; min-width: 0; font-weight: 400; }
.partner-builder-columns { display: grid; gap: .75rem; padding: .8rem; align-items: start; }
.partner-builder-column { min-width: 0; padding: .65rem; border: 1px solid rgba(65,35,93,.16); background: white; }
.partner-builder-column-title { margin-bottom: .6rem; color: #6b4c7e; font-family: Arial, Helvetica, sans-serif; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.partner-builder-elements { display: grid; gap: .65rem; }
.partner-builder-element { border: 1px solid rgba(65,35,93,.16); background: #fbf9fd; }
.partner-builder-element-header { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .55rem .65rem; border-bottom: 1px solid rgba(65,35,93,.12); background: #efe6f5; }
.partner-builder-element-header strong { color: #4e3268; font-family: Arial, Helvetica, sans-serif; font-size: .78rem; }
.partner-builder-element-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; padding: .65rem; }
.partner-builder-element-body > .partner-builder-field:first-child { grid-column: 1 / -1; }
.partner-builder-element-body textarea { min-height: 7rem; resize: vertical; }
.partner-builder-checks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; }
.partner-builder-check { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .55rem; border: 1px solid rgba(65,35,93,.12); background: white; color: #554360; font-family: Arial, Helvetica, sans-serif; font-size: .76rem; cursor: pointer; }
.partner-builder-check input { width: auto; margin: 0; }
.partner-builder-add-element { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .45rem; margin-top: .65rem; padding-top: .65rem; border-top: 1px dashed rgba(65,35,93,.2); }
.partner-builder-add-element button { min-height: 2.8rem; }

.partner-layout-band { overflow: hidden; border: 1px solid rgba(65,35,93,.14); }
.partner-layout-columns { display: grid; gap: clamp(.8rem, 2vw, 1.5rem); }
.partner-layout-column { min-width: 0; display: grid; align-content: start; gap: 1rem; }
.partner-spacing-compact { padding: .8rem; }
.partner-spacing-normal { padding: clamp(1.1rem, 3vw, 2rem); }
.partner-spacing-large { padding: clamp(1.6rem, 5vw, 4rem); }
.partner-band-papier { background: #f7f3ec; }
.partner-band-blanc { background: white; }
.partner-band-violet { background: #56366f; color: white; }
.partner-band-sombre { background: #162237; color: white; }
.partner-layout-element { min-width: 0; }
.partner-layout-element h2,
.partner-layout-element h3,
.partner-layout-element p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.partner-layout-element h2 { font-size: clamp(1.8rem, 4vw, 3.4rem); line-height: 1.02; font-weight: 400; letter-spacing: -.035em; }
.partner-layout-element h3 { font-size: clamp(1.2rem, 2.6vw, 2rem); line-height: 1.15; }
.partner-layout-element p { font-family: Arial, Helvetica, sans-serif; line-height: 1.7; }
.partner-align-gauche { text-align: left; }
.partner-align-centre { text-align: center; }
.partner-align-droite { text-align: right; }
.partner-color-violet { color: #6b3f8d; }
.partner-color-orange { color: #dd4d1d; }
.partner-color-sombre { color: #17243a; }
.partner-color-clair { color: #fff; }
.partner-band-violet .partner-color-defaut,
.partner-band-sombre .partner-color-defaut { color: white; }
.partner-size-petit { font-size: .86rem; }
.partner-size-normal { font-size: 1rem; }
.partner-size-grand { font-size: 1.24rem; }
.partner-text-bold { font-weight: 800; }
.partner-text-italic { font-style: italic; }
.partner-text-underline { text-decoration: underline; }
.partner-layout-image figure,
.partner-carousel figure { margin: 0; }
.partner-layout-image img,
.partner-carousel img { display: block; width: 100%; max-width: 100%; background: #e9e4ec; }
.partner-ratio-carre { aspect-ratio: 1 / 1; object-fit: cover; }
.partner-ratio-paysage { aspect-ratio: 16 / 9; object-fit: cover; }
.partner-ratio-portrait { aspect-ratio: 4 / 5; object-fit: cover; }
.partner-layout-image figcaption,
.partner-carousel figcaption { margin-top: .45rem; color: inherit; opacity: .72; font-family: Arial, Helvetica, sans-serif; font-size: .76rem; line-height: 1.45; }
.partner-media-placeholder { display: grid; min-height: 8rem; place-items: center; border: 1px dashed rgba(65,35,93,.3); color: #74647f; font-family: Arial, Helvetica, sans-serif; }
.partner-carousel { display: grid; gap: .55rem; }
.partner-carousel-stage { min-height: 8rem; }
.partner-carousel-stage img { aspect-ratio: 16 / 9; object-fit: cover; }
.partner-carousel-controls { display: flex; justify-content: center; align-items: center; gap: .7rem; }
.partner-carousel-controls span { min-width: 4rem; text-align: center; font-family: Arial, Helvetica, sans-serif; font-size: .8rem; }
.partner-carousel-controls button { min-height: 2.3rem; padding: .35rem .65rem; }
.partner-video-shell { display: grid; min-height: 12rem; place-items: center; gap: .7rem; padding: 1rem; border: 1px solid rgba(65,35,93,.2); background: rgba(255,255,255,.45); text-align: center; }
.partner-video-shell iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.partner-layout-button { display: inline-flex; min-height: 2.8rem; align-items: center; justify-content: center; padding: .7rem 1rem; font-family: Arial, Helvetica, sans-serif; font-weight: 800; text-decoration: none; }
.partner-button-plein { background: #68408c; color: white; }
.partner-button-contour { border: 1px solid currentColor; color: #68408c; }
.partner-button-texte { color: #68408c; text-decoration: underline; }
.partner-layout-separateur hr { margin: .5rem 0; border: 0; border-top: 1px solid currentColor; opacity: .35; }
.partner-layout-separateur .partner-separator-large { border-top-width: 4px; }
.partner-layout-separateur .partner-separator-pointille { border-top-style: dashed; }
.partner-public-content { display: grid; gap: 1rem; padding: 0; border: 0; background: transparent; }
.partner-preview-content .partner-layout-band { margin-top: 0; }

@media (max-width: 900px) {
  .partner-media-upload-row,
  .partner-builder-heading,
  .partner-builder-band-settings,
  .partner-builder-element-body { grid-template-columns: 1fr; }
  .partner-builder-heading { display: grid; }
  .partner-builder-columns { grid-template-columns: 1fr !important; }
  .partner-builder-element-body > .partner-builder-field:first-child { grid-column: auto; }
}

@media (max-width: 620px) {
  .partner-media-library { grid-template-columns: 1fr; }
  .partner-trash-row,
  .partner-builder-band-header { align-items: flex-start; flex-direction: column; }
  .partner-builder-add-element { grid-template-columns: 1fr; }
}
.partner-carousel-item-editors { grid-column: 1 / -1; display: grid; gap: .4rem; }
.partner-carousel-item-editors details { border: 1px solid rgba(65,35,93,.12); background: white; }
.partner-carousel-item-editors summary { padding: .55rem .65rem; cursor: pointer; color: #50316a; font-family: Arial, Helvetica, sans-serif; font-size: .76rem; font-weight: 800; }
.partner-carousel-item-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: .6rem; border-top: 1px solid rgba(65,35,93,.1); }
@media (max-width: 700px) { .partner-carousel-item-fields { grid-template-columns: 1fr; } }


/* =============================================================
   Arcavium v8.35.2 — partenaires en modale depuis la carte
   ============================================================= */
body.partenaire-modal-ouverte .map-layout {
  grid-template-columns: minmax(0, 1fr);
}

body.partenaire-modal-ouverte .commune-panel {
  display: none;
}

.journal-modal.partenaire-modal {
  background: rgba(5, 10, 22, .42);
}

.journal-modal.partenaire-modal .journal-panel {
  width: 50vw;
  max-width: none;
  min-width: 540px;
  background: #f3eff7;
}

.partner-public-embedded .site-header,
.partner-public-embedded > footer {
  display: none;
}

.partner-public-embedded .partner-public-main {
  min-height: 100vh;
  padding-top: 1rem;
}

.partner-public-embedded .partner-public-page {
  margin-top: 0;
}

@media (max-width: 700px) {
  .journal-modal.partenaire-modal .journal-panel {
    width: 100vw;
    min-width: 0;
  }
}

/* =============================================================
   Arcavium v8.35.4 — état regroupé, ouverture cartographique et aide aux brouillons
   ============================================================= */
.partner-coordinates-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 1.5rem;
}

.partner-coordinate-card {
  display: flex;
  min-width: 0;
  height: 100%;
  margin: 0;
  flex-direction: column;
}

.partner-coordinate-card .reserve-form {
  flex: 1 1 auto;
  align-content: start;
}

.partner-coordinate-card.contacts-prives-panel {
  margin-bottom: 0;
  border-top: .32rem solid #238553;
}

.partner-public-coordinates-card {
  border-top: .32rem solid #69408c;
}

.partner-public-coordinates-heading,
.partner-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.partner-public-coordinates-heading {
  margin-bottom: 1rem;
}

.partner-public-coordinates-heading > div:first-child,
.partner-section-heading > div:first-child {
  max-width: 58rem;
}

.partner-public-badge {
  flex: 0 0 auto;
  padding: .45rem .72rem;
  border: 1px solid rgba(105,64,140,.28);
  border-radius: 999px;
  background: rgba(105,64,140,.09);
  color: #5d377e;
  font: 800 .76rem/1 var(--sans);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.partner-public-save-note {
  margin: .25rem 0 0;
  padding: .85rem .95rem;
  border-left: .24rem solid #69408c;
  background: #f7f0fc;
  color: #554360;
  font: 700 .84rem/1.5 var(--sans);
}

.partner-account-overview {
  margin-bottom: 1.5rem;
}

.partner-account-overview .partner-section-heading {
  margin-bottom: .75rem;
  padding: 0 .1rem;
}

.partner-account-overview .partner-section-heading h3 {
  margin: .2rem 0 0;
  color: #30203f;
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
}

.partner-account-overview .partner-summary-grid {
  margin-bottom: 0;
}

.partner-editor-panel {
  display: grid;
  gap: 1.2rem;
}

.partner-editor-panel .partner-editor-heading {
  margin-bottom: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(65,35,93,.14);
}

.partner-builder-guide {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
}

.partner-builder-guide article {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .65rem;
  align-items: start;
  padding: .85rem;
  border: 1px solid rgba(105,64,140,.15);
  background: #f8f3fc;
}

.partner-builder-guide article > span {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 999px;
  background: #69408c;
  color: white;
  font: 900 .82rem/1 var(--sans);
}

.partner-builder-guide strong {
  display: block;
  margin-bottom: .22rem;
  color: #3b284d;
  font-family: var(--sans);
  font-size: .86rem;
}

.partner-builder-guide p {
  margin: 0;
  color: #6e6078;
  font: 400 .76rem/1.45 var(--sans);
}

.partner-explanation-box {
  padding: .9rem 1rem;
  border: 1px solid rgba(105,64,140,.2);
  border-left: .3rem solid #69408c;
  background: white;
}

.partner-explanation-box strong {
  display: block;
  margin-bottom: .32rem;
  color: #4e3268;
  font-family: var(--sans);
}

.partner-explanation-box p {
  margin: 0;
  color: #63556d;
  font: 400 .84rem/1.55 var(--sans);
}

.partner-subheading > div {
  min-width: 0;
}

.partner-subheading h4 {
  margin: 0;
}

.partner-subheading p {
  margin: .2rem 0 0;
  color: #786a82;
  font: 400 .76rem/1.45 var(--sans);
}

.partner-builder-help {
  grid-column: 1 / -1;
  margin: 0;
  padding: .65rem .75rem;
  border: 1px solid rgba(105,64,140,.15);
  background: #fff;
  color: #65566f;
  font: 700 .76rem/1.5 var(--sans);
}

@media (max-width: 1200px) {
  .partner-builder-guide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1050px) {
  .partner-coordinates-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .partner-public-coordinates-heading,
  .partner-section-heading {
    flex-direction: column;
  }

  .partner-builder-guide {
    grid-template-columns: 1fr;
  }
}


/* =============================================================
   Arcavium v8.35.4 — synthèse dans la colonne privée et aides
   ============================================================= */
.partner-column-overview {
  margin: 0 0 1.25rem;
  padding: 0 0 1.25rem;
  border-bottom: 1px solid rgba(35,133,83,.18);
}

.partner-column-overview-heading {
  margin-bottom: .75rem;
}

.partner-column-overview-heading h3 {
  margin: .2rem 0 0;
  color: #263d31;
  font-size: clamp(1.35rem, 2vw, 1.85rem);
}

.partner-summary-stack {
  display: grid;
  gap: .7rem;
}

.partner-summary-card-compact {
  min-width: 0;
  padding: .9rem 1rem;
  border: 1px solid rgba(35,133,83,.16);
  background: #fbfdfb;
}

.partner-summary-card-compact h4 {
  margin: .18rem 0 .62rem;
  color: #23362b;
  font-size: 1rem;
}

.partner-summary-card-compact .eyebrow {
  margin-bottom: .1rem;
  font-size: .67rem;
}

.partner-summary-card-compact .account-dl {
  margin: 0;
}

.partner-summary-card-compact .account-dl > div {
  padding: .28rem 0;
}

.partner-summary-card-compact .partner-public-link {
  display: inline-flex;
  margin-top: .7rem;
}

.partner-editor-meta {
  display: grid;
  justify-items: end;
  gap: .55rem;
  min-width: 13rem;
}

.partner-draft-status {
  padding: .55rem .72rem;
  border: 1px solid rgba(105,64,140,.18);
  background: #fff;
  color: #67566f;
  font: 600 .72rem/1.4 var(--sans);
  text-align: right;
}

.partner-draft-explanation,
.partner-layout-explanation {
  margin: .7rem 0 0;
  padding: .75rem .85rem;
  border-left: .25rem solid #69408c;
  background: #f8f3fc;
  color: #5f5069;
  font: 400 .8rem/1.55 var(--sans);
}

.partner-layout-explanation {
  border-left-color: #238553;
  background: #f2f8f4;
  color: #465a4d;
}

@media (max-width: 640px) {
  .partner-editor-meta {
    justify-items: start;
    min-width: 0;
  }

  .partner-draft-status {
    text-align: left;
  }
}


/* ================================================================
   Arcavium v8.35.5 — suivi sous les coordonnées privées,
   ajout automatique des images et mise en forme locale du texte
   ================================================================ */
.partner-account-followup {
  margin-top: 2rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(22, 49, 88, 0.16);
}
.partner-column-overview-heading p:last-child {
  max-width: 62ch;
  margin-top: 0.45rem;
  color: var(--muted, #5d6470);
}
.partner-status-dashboard {
  display: grid;
  gap: 0.9rem;
  margin-top: 1rem;
}
.partner-status-panel {
  padding: 1rem 1.05rem;
  border: 1px solid rgba(22, 49, 88, 0.14);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.7);
  box-shadow: 0 8px 24px rgba(22, 49, 88, 0.045);
}
.partner-status-panel-heading {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.65rem;
}
.partner-status-panel-heading h4,
.partner-status-panel-heading p { margin: 0; }
.partner-status-number {
  display: inline-grid;
  place-items: center;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #2c166f;
  color: #fff;
  font-weight: 800;
  font-size: 0.83rem;
}
.partner-status-list { display: grid; gap: 0; }
.partner-status-list > div {
  display: grid;
  grid-template-columns: minmax(92px, 0.8fr) minmax(0, 1.4fr);
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.48rem 0;
  border-top: 1px solid rgba(22, 49, 88, 0.08);
}
.partner-status-list dt { color: #646b77; font-size: 0.82rem; }
.partner-status-list dd {
  margin: 0;
  text-align: right;
  overflow-wrap: anywhere;
  font-weight: 650;
}
.partner-date-separator { color: #8a8f98; }
.partner-status-link { display: inline-flex; margin-top: 0.8rem; font-weight: 700; }
.partner-media-upload-automatic { align-items: stretch; }
.partner-media-upload-automatic > div:first-child { flex: 1 1 520px; }
.partner-auto-upload-note {
  margin: 0.7rem 0 0;
  padding: 0.75rem 0.85rem;
  border-left: 4px solid #2c166f;
  background: rgba(44, 22, 111, 0.07);
  border-radius: 0 10px 10px 0;
  color: #30323a;
  line-height: 1.45;
}
.partner-media-upload-indicator {
  display: grid;
  place-items: center;
  min-width: 190px;
  padding: 0.8rem 1rem;
  border: 1px dashed rgba(44, 22, 111, 0.28);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.58);
  color: #64606f;
  text-align: center;
  font-size: 0.86rem;
}
.partner-media-upload-indicator.is-uploading {
  border-style: solid;
  color: #2c166f;
  font-weight: 700;
}
.partner-rich-editor {
  overflow: hidden;
  border: 1px solid rgba(22, 49, 88, 0.2);
  border-radius: 13px;
  background: #fff;
}
.partner-rich-toolbar {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid rgba(22, 49, 88, 0.12);
  background: #f4f1f9;
}
.partner-rich-tool {
  display: inline-grid;
  place-items: center;
  width: 2.25rem;
  min-width: 2.25rem;
  height: 2.1rem;
  padding: 0;
  border: 1px solid rgba(44, 22, 111, 0.23);
  border-radius: 8px;
  background: #fff;
  color: #25115f;
  font-family: inherit;
  font-size: 0.93rem;
  font-weight: 800;
  cursor: pointer;
}
.partner-rich-tool-italic { font-style: italic; }
.partner-rich-tool-underline { text-decoration: underline; }
.partner-rich-tool:hover,
.partner-rich-tool:focus-visible { background: #e8e1f5; outline: none; }
.partner-rich-toolbar-hint {
  margin-left: 0.35rem;
  color: #67626f;
  font-size: 0.78rem;
  line-height: 1.3;
}
.partner-rich-editor-surface {
  min-height: 170px;
  max-height: 420px;
  overflow: auto;
  padding: 0.9rem 1rem;
  white-space: pre-wrap;
  line-height: 1.6;
  color: #20242b;
  outline: none;
}
.partner-rich-editor-surface:focus { box-shadow: inset 0 0 0 2px rgba(44, 22, 111, 0.2); }
.partner-rich-editor-surface:empty::before {
  content: attr(data-placeholder);
  color: #96919b;
  pointer-events: none;
}
.partner-rich-output { white-space: pre-wrap; }
@media (max-width: 760px) {
  .partner-status-list > div { grid-template-columns: 1fr; gap: 0.2rem; }
  .partner-status-list dd { text-align: left; }
  .partner-media-upload-indicator { min-width: 100%; }
  .partner-rich-toolbar { flex-wrap: wrap; }
  .partner-rich-toolbar-hint { flex-basis: 100%; margin: 0.25rem 0 0; }
}


/* ================================================================
   Arcavium v8.35.6 — colonnes stables en modale et aperçu vidéo
   ================================================================ */
.partner-layout-columns {
  width: 100%;
  min-width: 0;
}
.partner-layout-column {
  min-width: 0;
  overflow: hidden;
}

/* La page partenaire est souvent affichée dans une iframe de 50 % de largeur.
   Sur ordinateur, cette largeur réduite ne doit pas transformer 2 ou 3 colonnes
   en une pile verticale. L'empilement est réservé aux petits écrans tactiles. */
@media (max-width: 700px) and (pointer: coarse) {
  .partner-layout-columns {
    grid-template-columns: 1fr !important;
  }
}

.partner-video-shell {
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #121a2a;
}
.partner-video-preview {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 7rem;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: linear-gradient(135deg, #1b2944, #5c377b);
  color: #fff;
  cursor: pointer;
  text-align: left;
}
.partner-video-preview img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.partner-video-preview::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(5,10,22,.05), rgba(5,10,22,.78));
}
.partner-video-preview-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.35);
  font: 900 clamp(1.1rem, 3vw, 2rem)/1 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.partner-video-preview-content {
  position: absolute;
  inset: auto 0 0;
  z-index: 3;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .75rem;
  align-items: center;
  padding: clamp(.75rem, 2vw, 1.2rem);
}
.partner-video-play-icon {
  display: grid;
  width: clamp(2.6rem, 5vw, 3.6rem);
  height: clamp(2.6rem, 5vw, 3.6rem);
  place-items: center;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 999px;
  background: rgba(10,16,30,.58);
  font-size: 1.05rem;
  line-height: 1;
  backdrop-filter: blur(5px);
}
.partner-video-preview-copy strong,
.partner-video-preview-copy span {
  display: block;
  color: #fff;
  font-family: var(--sans);
}
.partner-video-preview-copy strong {
  overflow-wrap: anywhere;
  font-size: clamp(.8rem, 1.5vw, 1rem);
  line-height: 1.25;
}
.partner-video-preview-copy span {
  margin-top: .18rem;
  color: rgba(255,255,255,.8);
  font-size: .7rem;
}
.partner-video-preview:hover .partner-video-play-icon,
.partner-video-preview:focus-visible .partner-video-play-icon {
  background: #69408c;
  transform: scale(1.05);
}
.partner-video-preview:focus-visible {
  outline: 3px solid #dfc7f2;
  outline-offset: -3px;
}
.partner-video-shell iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
}

/* Recherche de position publique dans l'espace Réserve. */
.reserve-location-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .65rem;
  align-items: stretch;
}
.reserve-location-search .secondary-button { white-space: nowrap; }
.reserve-location-results {
  display: grid;
  gap: .45rem;
  margin-top: .55rem;
  padding: .55rem;
  border: 1px solid rgba(24,64,94,.14);
  border-radius: 12px;
  background: rgba(244,248,250,.92);
}
.reserve-location-choice {
  display: grid;
  gap: .22rem;
  width: 100%;
  padding: .72rem .82rem;
  border: 1px solid rgba(24,64,94,.16);
  border-radius: 9px;
  background: white;
  color: #24364a;
  text-align: left;
  cursor: pointer;
}
.reserve-location-choice:hover,
.reserve-location-choice:focus-visible {
  border-color: rgba(228,87,46,.58);
  outline: none;
  box-shadow: 0 0 0 3px rgba(228,87,46,.1);
}
.reserve-location-choice strong { font-family: Arial, Helvetica, sans-serif; font-size: .84rem; }
.reserve-location-choice span { color: #607083; font-family: Arial, Helvetica, sans-serif; font-size: .76rem; line-height: 1.35; }

@media (max-width: 620px) {
  .reserve-location-search { grid-template-columns: 1fr; }
}

/* ========================================================================== 
   Comptes personnels v29.6 — navigation harmonisée, factures et SHA-256
   ========================================================================== */
.account-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .35rem;
  padding: .38rem;
  border: 1px solid rgba(16,37,67,.12);
  border-radius: 1.25rem;
  background: rgba(255,255,255,.82);
  box-shadow: 0 .7rem 2rem rgba(16,37,67,.08);
  backdrop-filter: blur(12px);
}
.account-nav-link,
.account-nav .account-nav-logout {
  min-height: 2.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: .78rem 1rem !important;
  border: 0 !important;
  border-radius: .92rem !important;
  background: transparent !important;
  color: #102543 !important;
  text-decoration: none;
  font: 800 .78rem/1 var(--sans) !important;
  letter-spacing: .025em;
  cursor: pointer;
  transition: transform .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.account-nav-link:hover,
.account-nav .account-nav-logout:hover {
  transform: translateY(-1px);
  background: rgba(16,37,67,.07) !important;
}
.account-nav-link.active {
  color: #fff !important;
  background: #102543 !important;
  box-shadow: 0 .55rem 1.25rem rgba(16,37,67,.22);
  pointer-events: none;
}
.account-nav-link.account-nav-invoices:not(.active) {
  color: #a84224 !important;
  background: rgba(228,87,46,.09) !important;
}
.account-nav .account-nav-logout {
  color: #7c2f20 !important;
  border: 1px solid rgba(124,47,32,.18) !important;
}
.reserve-resources-grid-single { grid-template-columns: minmax(0, 1fr); }

.file-information {
  min-width: 0;
  flex: 1 1 auto;
}
.file-sha-details {
  margin-top: .5rem;
  max-width: 48rem;
  font-family: var(--sans);
}
.file-sha-details summary {
  width: fit-content;
  cursor: pointer;
  color: #31527d;
  font-size: .75rem;
  font-weight: 800;
  user-select: none;
}
.file-sha-details summary code {
  padding: .14rem .3rem;
  border-radius: .3rem;
  background: rgba(36,87,164,.08);
  color: #234775;
}
.file-sha-content {
  display: flex;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
  margin-top: .45rem;
  padding: .6rem;
  border-radius: .65rem;
  background: rgba(16,37,67,.045);
  border: 1px solid rgba(16,37,67,.08);
}
.file-sha-content code {
  min-width: 0;
  flex: 1 1 30rem;
  overflow-wrap: anywhere;
  color: #172d4b;
  font-size: .74rem;
  line-height: 1.55;
}
.file-sha-copy {
  flex: 0 0 auto;
  padding: .58rem .72rem !important;
  font-size: .72rem !important;
}
.file-sha-missing {
  color: #8a5428 !important;
}

.factures-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr);
  gap: 1rem;
  padding: clamp(3rem, 8vw, 8rem) clamp(1.2rem, 7vw, 8rem) clamp(2rem, 5vw, 4rem);
  background: #102543;
  color: #fff;
}
.factures-hero h1 {
  max-width: 12ch;
  margin: .25rem 0 .8rem;
  color: #fff;
  font-size: clamp(3.4rem, 8vw, 8rem);
  line-height: .88;
}
.factures-hero > div:first-child > p:last-child {
  max-width: 48rem;
  color: rgba(255,255,255,.75);
  font-family: var(--sans);
  font-size: 1.02rem;
  line-height: 1.65;
}
.factures-account,
.factures-public {
  padding: 2rem clamp(1.2rem, 7vw, 8rem) clamp(3rem, 7vw, 6rem);
}
.factures-account-topline { margin-bottom: 1.25rem; }
.factures-main-panel { min-height: 18rem; }
.factures-login-card { max-width: 54rem; margin: 0 auto; }
.factures-login-actions { display: flex; gap: .55rem; flex-wrap: wrap; margin-top: 1rem; }
.factures-login-actions .account-nav-link { border: 1px solid rgba(16,37,67,.14) !important; background: white !important; }
.facture-page-item { padding: 1rem; border-radius: 1rem; }

@media (max-width: 920px) {
  .factures-hero { grid-template-columns: 1fr; }
  .account-nav { justify-content: flex-start; width: 100%; border-radius: 1rem; }
}
@media (max-width: 620px) {
  .account-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .account-nav-link,
  .account-nav .account-nav-logout { width: 100%; }
  .file-sha-content { align-items: stretch; }
  .file-sha-copy { width: 100%; }
}
@media (max-width: 430px) {
  .account-nav { grid-template-columns: 1fr; }
}

/* ========================================================================== */
/* MÉDIAS ARCAVIUM — V30.0                                                    */
/* ========================================================================== */
.home-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-card.media { background: linear-gradient(135deg, rgba(22, 116, 112, .9), rgba(16, 37, 67, .9)); }
.header-cta.media-link { border-color: rgba(114, 222, 211, .62); }
.header-cta.media-link.active { background: rgba(58, 157, 148, .34); }
.account-nav-link.account-nav-media:not(.active) { color: #185f5a; }

.media-page { background: #f7f4ee; }
.media-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(18rem, .5fr);
  gap: clamp(1.2rem, 4vw, 4rem);
  align-items: end;
  padding: clamp(2.4rem, 6vw, 6rem) clamp(1.2rem, 5vw, 5rem) clamp(1.8rem, 4vw, 3rem);
  background: linear-gradient(135deg, #0c2c31, #102543 72%);
  color: white;
}
.media-hero h1 { margin: .2rem 0 .75rem; font-size: clamp(3rem, 7vw, 6.7rem); line-height: .92; }
.media-hero > div:first-child > p:last-child { max-width: 55rem; color: rgba(255,255,255,.82); font-size: 1.05rem; line-height: 1.65; }
.media-login-layout { padding: clamp(2rem, 5vw, 5rem); }
.media-login-card { max-width: 42rem; margin: 0 auto; }
.media-login-links { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; font-family: var(--sans); }
.media-login-links a { padding: .7rem .9rem; border: 1px solid rgba(16,37,67,.16); background: white; text-decoration: none; color: var(--bleu-nuit); }
.media-account { padding: clamp(1.2rem, 4vw, 4rem); }
.media-account-topline { margin-bottom: 1rem; }
.media-map-section { background: white; border: 1px solid rgba(16,37,67,.14); box-shadow: 0 22px 60px rgba(16,37,67,.08); }
.media-map-toolbar { display:flex; justify-content:space-between; align-items:end; gap:1rem; padding:1.2rem 1.35rem; border-bottom:1px solid rgba(16,37,67,.12); }
.media-map-toolbar h2 { margin: .15rem 0 0; }
.media-map-stats { display:flex; flex-wrap:wrap; gap:.65rem; font-family:var(--sans); }
.media-map-stats span { padding:.55rem .7rem; background:#f3f5f4; border:1px solid rgba(16,37,67,.1); }
.media-map-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(21rem,.7fr); min-height:42rem; }
.media-map-frame { position:relative; min-height:42rem; border-right:1px solid rgba(16,37,67,.12); }
#media-map { width:100%; height:100%; min-height:42rem; background:#dfe8e5; }
.media-panel { padding:1.25rem; overflow:auto; max-height:42rem; background:#fbfaf7; }
.media-panel-placeholder { max-width:26rem; }
.media-panel-heading { display:flex; justify-content:space-between; align-items:start; gap:.8rem; margin-bottom:1rem; }
.media-panel-heading h3 { margin:.15rem 0 0; font-size:1.55rem; }
.media-read-state { flex:0 0 auto; padding:.42rem .65rem; border-radius:999px; font-family:var(--sans); font-size:.73rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.media-read-state.is-unread { background:#d75432; color:white; }
.media-read-state.is-read { background:#dce9e4; color:#24584d; }
.media-description { line-height:1.65; color:#49586d; }
.media-list { display:grid; gap:.75rem; }
.media-list-card { display:grid; grid-template-columns:5.6rem minmax(0,1fr); gap:.85rem; padding:.8rem; background:white; border:1px solid rgba(16,37,67,.12); }
.media-list-card > img { width:5.6rem; height:5.6rem; object-fit:cover; background:#e8ecea; }
.media-list-card h4 { margin:.12rem 0 .35rem; font-size:1.05rem; }
.media-list-card p { margin:.2rem 0 .65rem; line-height:1.45; }
.media-list-card.is-unread { border-left:4px solid #d75432; }
.media-list-card.is-read { opacity:.82; }
.media-type-label { font-family:var(--sans); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:#647187; }
.media-open-button { padding:.55rem .75rem; }
.media-content-view { margin:1rem 0; }
.media-content-view audio, .media-content-view video { width:100%; }
.media-content-view video { max-height:28rem; background:#071117; }
.media-cover, .media-full-image { display:block; max-width:100%; max-height:27rem; margin:0 auto 1rem; object-fit:contain; }
.media-content-view iframe { width:100%; height:32rem; border:1px solid rgba(16,37,67,.14); background:white; }
.media-article { font-size:1.02rem; line-height:1.75; }
.media-article h2 { margin-top:1.5rem; font-size:1.7rem; }
.media-article h3 { margin-top:1.3rem; font-size:1.3rem; }
.media-article blockquote { margin:1.2rem 0; padding:.5rem 1rem; border-left:4px solid #2f8079; background:#edf6f3; }
.media-article a { color:#195f75; font-weight:700; text-decoration:underline; text-underline-offset:.18em; }
.media-article a::after { content:" ↗"; font-size:.82em; }
.media-content-meta { margin:.8rem 0; font-family:var(--sans); font-size:.76rem; color:#647187; }
.media-map-legend { display:flex; flex-wrap:wrap; gap:1rem; padding:.9rem 1.2rem; border-top:1px solid rgba(16,37,67,.12); font-family:var(--sans); font-size:.78rem; }
.media-map-legend span { display:flex; align-items:center; gap:.45rem; }
.media-legend-marker, .media-marker { display:grid; place-items:center; border-radius:50%; font-family:Arial,sans-serif; font-weight:900; }
.media-legend-marker { width:1.55rem; height:1.55rem; font-size:.66rem; }
.media-legend-marker.unread { background:#d75432; box-shadow:0 0 0 5px rgba(215,84,50,.18); }
.media-legend-marker.read { background:#2f8079; }
.media-legend-marker.grouped { background:#102543; color:white; }
.media-marker-wrapper { background:transparent !important; border:0 !important; }
.media-marker { width:2.25rem; height:2.25rem; color:white; border:3px solid white; box-shadow:0 5px 15px rgba(16,37,67,.35); font-size:.76rem; }
.media-marker.is-unread { background:#d75432; animation:mediaPulse 1.55s ease-in-out infinite; }
.media-marker.is-read { background:#2f8079; }
.media-marker.is-group { background:#102543; }
.media-marker.is-group.is-unread { background:#b9482c; }
@keyframes mediaPulse { 0%,100%{box-shadow:0 5px 15px rgba(16,37,67,.35),0 0 0 0 rgba(215,84,50,.42)} 50%{box-shadow:0 5px 15px rgba(16,37,67,.35),0 0 0 11px rgba(215,84,50,0)} }
@media (prefers-reduced-motion: reduce) { .media-marker.is-unread { animation:none; box-shadow:0 5px 15px rgba(16,37,67,.35),0 0 0 6px rgba(215,84,50,.2); } }
@media (max-width: 1100px) { .home-actions { grid-template-columns:repeat(2,minmax(0,1fr)); } .media-map-layout { grid-template-columns:1fr; } .media-map-frame { border-right:0; border-bottom:1px solid rgba(16,37,67,.12); } .media-panel { max-height:none; } }
@media (max-width: 760px) { .home-actions,.media-hero { grid-template-columns:1fr; } .media-map-toolbar { align-items:start; flex-direction:column; } .media-map-layout,#media-map,.media-map-frame { min-height:34rem; } .media-list-card { grid-template-columns:4.6rem minmax(0,1fr); } .media-list-card > img { width:4.6rem;height:4.6rem; } }

/* ========================================================================== 
   MON COMPTE — MENU EMPILÉ ET PARTICIPATIONS MANUSCRIT V30.3
   ========================================================================== */
.account-menu-dropdown {
  position: relative;
  flex: 0 0 auto;
  min-width: min(24rem, 100%);
  font-family: var(--sans);
}
.account-menu-dropdown > summary {
  list-style: none;
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .82rem 1.15rem;
  border: 1px solid rgba(16,37,67,.16);
  border-radius: .95rem;
  background: #102543;
  color: #fff;
  box-shadow: 0 .65rem 1.8rem rgba(16,37,67,.18);
  cursor: pointer;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  user-select: none;
}
.account-menu-dropdown > summary::-webkit-details-marker { display: none; }
.account-menu-dropdown > summary::after {
  content: "⌄";
  font-size: 1rem;
  transition: transform .18s ease;
}
.account-menu-dropdown[open] > summary::after { transform: rotate(180deg); }
.account-menu-dropdown > summary:hover,
.account-menu-dropdown > summary:focus-visible {
  background: #17345d;
  outline: none;
}
.account-menu-dropdown .account-nav-stack {
  position: absolute;
  z-index: 1200;
  top: calc(100% + .55rem);
  right: 0;
  width: min(27rem, calc(100vw - 2rem));
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: .2rem;
  padding: .65rem;
  border-radius: 1rem;
  background: rgba(255,255,255,.98);
  box-shadow: 0 1.2rem 3.4rem rgba(16,37,67,.2);
}
.account-menu-dropdown .account-nav-link,
.account-menu-dropdown .account-nav-logout {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
  line-height: 1.25 !important;
}
.account-nav-separator {
  display: block;
  width: calc(100% - 1rem);
  height: 1px;
  margin: .45rem .5rem;
  background: rgba(16,37,67,.12);
}
.account-nav-link.account-nav-manuscript:not(.active) {
  color: #714918 !important;
  background: rgba(190,138,56,.11) !important;
}

.account-manuscript-page {
  min-height: 70vh;
  padding-bottom: clamp(3rem, 8vw, 7rem);
  background: #f7f4ee;
}
.account-manuscript-hero {
  padding: clamp(3rem, 7vw, 7rem) clamp(1.2rem, 7vw, 8rem) clamp(2rem, 5vw, 4rem);
  background: linear-gradient(135deg, #102543, #51401f);
  color: #fff;
}
.account-manuscript-hero h1 {
  max-width: 14ch;
  margin: .3rem 0 1rem;
  color: #fff;
  font-size: clamp(3rem, 7vw, 7rem);
  line-height: .92;
}
.account-manuscript-hero > p:last-child {
  max-width: 52rem;
  color: rgba(255,255,255,.78);
  font-family: var(--sans);
  line-height: 1.65;
}
.account-manuscript-status,
.account-manuscript-content {
  margin: 2rem clamp(1.2rem, 7vw, 8rem) 0;
}
.account-manuscript-content > .account-topline { margin-bottom: 1.25rem; }
.account-manuscript-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.account-manuscript-summary h3 { margin-bottom: .35rem; }
.account-manuscript-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.account-manuscript-card {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}
.account-manuscript-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}
.account-manuscript-card-header h3 { margin: .2rem 0 0; }
.account-manuscript-badge {
  flex: 0 0 auto;
  padding: .42rem .65rem;
  border-radius: 999px;
  font: 800 .7rem/1 var(--sans);
  letter-spacing: .03em;
  text-transform: uppercase;
}
.account-manuscript-badge.public { background: rgba(41,132,87,.12); color: #236b49; }
.account-manuscript-badge.private { background: rgba(122,64,42,.1); color: #7a402a; }
.account-manuscript-card-actions {
  display: flex;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
  margin-top: auto;
}
.account-manuscript-empty { grid-column: 1 / -1; }
.account-reprise-back { margin-top: 1rem; }

@media (max-width: 920px) {
  .account-menu-dropdown { width: 100%; min-width: 0; }
  .account-menu-dropdown > summary { width: 100%; }
  .account-menu-dropdown .account-nav-stack {
    position: static;
    width: 100%;
    margin-top: .55rem;
    box-shadow: 0 .8rem 2rem rgba(16,37,67,.12);
  }
  .account-manuscript-list { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .account-manuscript-summary { align-items: stretch; flex-direction: column; }
  .account-manuscript-summary .header-cta { width: 100%; justify-content: center; }
}

/* V30.4 — gestion mairie depuis le compte */
#mairie-compte-image-preview {
  min-height: 5rem;
  margin: .65rem 0;
  padding: .7rem;
  border: 1px solid rgba(20,35,60,.16);
  border-radius: 1rem;
  background: rgba(255,255,255,.68);
}
#mairie-compte-image-preview img {
  display: block;
  width: min(100%, 34rem);
  max-height: 22rem;
  object-fit: cover;
  border-radius: .8rem;
}

/* ========================================================================== 
   V30.5 — COMPTE PUBLIC, CARTE MANUSCRIT ET ACTIONS VISIBLES
   ========================================================================== */
.account-entry-link {
  border-color: rgba(16,37,67,.26) !important;
  background: #fff !important;
  color: #102543 !important;
}
.account-entry-link:hover,
.account-entry-link:focus-visible {
  background: #edf2f7 !important;
}
.commune-search-wrap {
  position: relative;
  width: 100%;
  margin: .85rem 0 .7rem;
}
.commune-search-wrap input { width: 100%; }
.commune-search-wrap .search-results {
  z-index: 1000;
  width: 100%;
}
.commune-quick-menus {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem;
  margin: 0 0 1rem;
}
.commune-quick-menu {
  min-width: 0;
  width: 100%;
}
.commune-quick-menu > summary {
  width: 100%;
  justify-content: center;
  min-height: 2.75rem;
}
.commune-quick-menu .header-submenu {
  left: 0;
  right: auto;
  width: min(18rem, calc(100vw - 3rem));
}
.account-manuscript-card-actions .account-contribution-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.8rem;
  padding: .75rem 1rem;
  border: 1px solid #102543;
  border-radius: .8rem;
  background: #102543;
  color: #fff !important;
  font: 900 .78rem/1.2 var(--sans);
  letter-spacing: .025em;
  text-decoration: none;
  box-shadow: 0 .55rem 1.4rem rgba(16,37,67,.16);
}
.account-manuscript-card-actions .account-contribution-action:hover,
.account-manuscript-card-actions .account-contribution-action:focus-visible {
  background: #1b3b69;
  color: #fff !important;
  outline: 3px solid rgba(36,87,164,.2);
}
.account-profile-page { min-height: 70vh; }
.account-auth-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
}
.account-auth-card { margin: 0; }
.account-auth-card h2 { margin-top: .3rem; }
.account-lost-code {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(16,37,67,.12);
}
.account-lost-code > label {
  display: block;
  margin-bottom: .45rem;
  font: 800 .76rem/1.2 var(--sans);
}
.account-inline-form {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: .55rem;
}
.account-inline-form button { white-space: nowrap; }
.account-profile-card { margin-top: 0; }
.account-profile-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}
.account-profile-heading h2 { margin: .2rem 0 .45rem; }
.account-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.4rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(16,37,67,.12);
}
.account-profile-primary,
.account-profile-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.8rem;
  padding: .75rem 1rem;
  border-radius: .8rem;
  font: 900 .78rem/1.2 var(--sans);
  text-decoration: none;
}
.account-profile-primary { background:#102543; color:#fff; }
.account-profile-secondary { border:1px solid rgba(16,37,67,.22); color:#102543; background:#fff; }
@media (max-width: 820px) {
  .account-auth-grid { grid-template-columns: 1fr; }
  .account-profile-heading { flex-direction: column; }
  .account-profile-heading .account-menu-dropdown { width: 100%; }
}
@media (max-width: 620px) {
  .commune-quick-menus { grid-template-columns: 1fr; }
  .account-inline-form { grid-template-columns: 1fr; }
  .account-inline-form button { width: 100%; }
}

/* ========================================================================== 
   V30.6 — Lisibilité Manuscrit et tableau de bord Mon Compte
   ========================================================================== */

/* Les menus secondaires sont placés sur une carte claire : ils ne doivent pas
   reprendre le texte blanc du bandeau principal. */
.commune-quick-menus {
  margin-top: .2rem;
}
.commune-quick-menu > summary.header-cta {
  min-height: 2.8rem;
  border: 1px solid rgba(16,37,67,.18);
  background: rgba(16,37,67,.035);
  color: var(--bleu-nuit);
  box-shadow: 0 .35rem 1rem rgba(16,37,67,.045);
  font-size: .68rem;
  letter-spacing: .055em;
}
.commune-quick-menu > summary.header-cta:hover,
.commune-quick-menu > summary.header-cta:focus-visible,
.commune-quick-menu[open] > summary.header-cta {
  border-color: rgba(36,87,164,.36);
  background: rgba(36,87,164,.09);
  color: var(--bleu-arcavium);
  outline: none;
}
.commune-quick-menu > summary.header-cta::after {
  color: currentColor;
  opacity: .72;
}

.account-profile-page {
  background:
    radial-gradient(circle at 88% 8%, rgba(36,87,164,.09), transparent 24rem),
    var(--papier);
}
.account-page-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr);
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: end;
  padding-bottom: clamp(2rem, 5vw, 4rem);
}
.account-page-hero h1 {
  max-width: 10ch;
}
.account-page-hero > div:first-child > p:last-child {
  max-width: 48rem;
}
.account-hero-points {
  display: grid;
  gap: .7rem;
  padding: 1rem;
  border: 1px solid rgba(16,37,67,.13);
  background: rgba(255,255,255,.66);
  box-shadow: 0 1rem 3rem rgba(16,37,67,.055);
}
.account-hero-points div {
  display: grid;
  grid-template-columns: minmax(8rem, .7fr) minmax(0, 1.3fr);
  gap: .8rem;
  align-items: baseline;
  padding: .7rem .75rem;
  border-bottom: 1px solid rgba(16,37,67,.09);
}
.account-hero-points div:last-child { border-bottom: 0; }
.account-hero-points strong {
  color: var(--bleu-nuit);
  font-family: var(--sans);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .045em;
}
.account-hero-points span {
  color: rgba(20,35,60,.7);
  font: .86rem/1.45 var(--sans);
}
.account-page-loading {
  margin: 0 clamp(1.25rem, 8vw, 10rem) 2rem;
}
.account-auth-grid,
.account-profile-shell {
  margin: 0 clamp(1.25rem, 8vw, 10rem) clamp(3rem, 7vw, 6rem);
}
.account-auth-grid {
  align-items: stretch;
}
.account-auth-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 100%;
  padding: clamp(1.35rem, 3vw, 2.2rem);
  border: 1px solid rgba(16,37,67,.14);
  background: rgba(255,255,255,.92);
  box-shadow: 0 1rem 3rem rgba(16,37,67,.055);
}
.account-auth-card .form-actions { margin-top: auto; }
.account-auth-heading h2 {
  margin: .25rem 0 .7rem;
}
.account-auth-heading p:last-child {
  margin-bottom: 0;
  color: rgba(20,35,60,.72);
}
.account-register-card {
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(232,240,249,.88));
}
.account-register-benefits {
  display: grid;
  gap: .5rem;
  padding: .9rem 1rem;
  border-left: 3px solid var(--bleu-arcavium);
  background: rgba(36,87,164,.06);
  color: rgba(20,35,60,.76);
  font: .84rem/1.4 var(--sans);
}
.account-register-benefits span::before {
  content: "✓";
  margin-right: .5rem;
  color: #24764c;
  font-weight: 900;
}
.account-profile-shell {
  display: grid;
  gap: 1.2rem;
}
.account-profile-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(16,37,67,.12);
  background: linear-gradient(120deg, #fff, #eef3f9);
  box-shadow: 0 1.1rem 3rem rgba(16,37,67,.06);
}
.account-profile-identity {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}
.account-profile-mark {
  display: grid;
  place-items: center;
  flex: 0 0 3.5rem;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--bleu-nuit);
  color: white;
  font: 800 1.35rem/1 var(--sans);
  box-shadow: 0 .5rem 1.5rem rgba(16,37,67,.2);
}
.account-profile-identity h2 {
  margin: .2rem 0 .35rem;
  overflow-wrap: anywhere;
  font-size: clamp(1.45rem, 3vw, 2.35rem);
}
.account-profile-identity p:last-child {
  margin: 0;
  color: rgba(20,35,60,.68);
  font-family: var(--sans);
}
.account-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.account-overview-card {
  min-width: 0;
  padding: 1.15rem 1.2rem;
  border: 1px solid rgba(16,37,67,.12);
  background: rgba(255,255,255,.86);
}
.account-overview-state {
  border-color: rgba(36,118,76,.24);
  background: rgba(36,118,76,.055);
}
.account-overview-label {
  display: block;
  margin-bottom: .55rem;
  color: rgba(20,35,60,.62);
  font: 800 .68rem/1.2 var(--sans);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.account-overview-card strong {
  display: block;
  color: var(--bleu-nuit);
  font: 700 clamp(1.15rem, 2.4vw, 1.55rem)/1.15 var(--sans);
  overflow-wrap: anywhere;
}
.account-overview-state strong { color: #1f7048; }
.account-overview-card p {
  margin: .55rem 0 0;
  color: rgba(20,35,60,.66);
  font: .82rem/1.45 var(--sans);
}
.account-services-panel {
  padding: clamp(1.3rem, 3vw, 2.1rem);
  border: 1px solid rgba(16,37,67,.13);
  background: white;
}
.account-section-heading {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(18rem, 1.2fr);
  gap: 1.4rem;
  align-items: end;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid rgba(16,37,67,.1);
}
.account-section-heading h3 {
  margin: .3rem 0 0;
  font-size: clamp(1.8rem, 3vw, 2.7rem);
}
.account-section-heading > p {
  margin: 0;
  color: rgba(20,35,60,.68);
}
.account-services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  margin-top: 1.2rem;
}
.account-service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 11.5rem;
  padding: 1rem 1.05rem 1.1rem;
  border: 1px solid rgba(16,37,67,.14);
  background: #fbfcfe;
  color: var(--bleu-nuit);
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.account-service-card::after {
  content: "Ouvrir →";
  margin-top: auto;
  padding-top: 1rem;
  color: var(--bleu-arcavium);
  font: 800 .72rem/1 var(--sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.account-service-card:hover,
.account-service-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(36,87,164,.42);
  box-shadow: 0 .9rem 2rem rgba(16,37,67,.08);
  outline: none;
}
.account-service-media {
  background: linear-gradient(145deg, rgba(231,246,244,.9), rgba(247,250,253,.95));
  border-color: rgba(24,95,90,.22);
}
.account-service-kicker {
  margin-bottom: .75rem;
  color: rgba(20,35,60,.58);
  font: 800 .64rem/1.2 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.account-service-card strong {
  font: 700 1.12rem/1.25 var(--sans);
}
.account-service-card > span:last-of-type {
  margin-top: .55rem;
  color: rgba(20,35,60,.68);
  font: .82rem/1.45 var(--sans);
}
.account-services-empty {
  margin: 1rem 0 0;
  padding: 1rem;
  border: 1px dashed rgba(16,37,67,.2);
  color: rgba(20,35,60,.68);
  text-align: center;
}
.account-information-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.account-information-card {
  padding: 1.25rem;
  border: 1px solid rgba(16,37,67,.12);
  background: rgba(255,255,255,.8);
}
.account-information-card h3 {
  margin: .3rem 0 .65rem;
  font-size: 1.35rem;
}
.account-information-card p:last-child {
  margin: 0;
  color: rgba(20,35,60,.68);
}
.account-security-card {
  background: rgba(242,237,226,.72);
}
.account-profile-actions {
  margin-top: 0;
  padding: 1rem 0 0;
}

@media (max-width: 980px) {
  .account-page-hero,
  .account-section-heading { grid-template-columns: 1fr; }
  .account-overview-grid,
  .account-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .account-profile-banner { align-items: stretch; flex-direction: column; }
  .account-profile-banner .account-menu-dropdown { width: 100%; }
  .account-overview-grid,
  .account-services-grid,
  .account-information-grid { grid-template-columns: 1fr; }
  .account-service-card { min-height: 9.8rem; }
}
@media (max-width: 520px) {
  .account-hero-points div { grid-template-columns: 1fr; gap: .3rem; }
  .account-profile-identity { align-items: flex-start; }
  .account-profile-mark { flex-basis: 2.8rem; width: 2.8rem; height: 2.8rem; }
}


/* ========================================================================== 
   V30.7 — Recherche Manuscrit déplacée selon le contenu de la fiche
   ========================================================================== */
.commune-tools-slot[hidden] { display: none !important; }
.commune-tools-panel-slot { margin-top: 1rem; }
.commune-tools-above-map {
  margin: 0 0 1rem;
  padding: .8rem;
  border: 1px solid rgba(16,37,67,.12);
  background: rgba(255,255,255,.84);
  box-shadow: 0 .45rem 1.35rem rgba(16,37,67,.045);
}
.commune-navigation-tools.is-above-map {
  display: grid;
  grid-template-columns: minmax(18rem, 1fr) minmax(20rem, .78fr);
  align-items: start;
  gap: .8rem;
}
.commune-navigation-tools.is-above-map .commune-search-wrap {
  margin: 0;
}
.commune-navigation-tools.is-above-map .commune-quick-menus {
  margin: 0;
}
.commune-navigation-tools.is-above-map .commune-quick-menu .header-submenu {
  z-index: 1200;
}
@media (max-width: 860px) {
  .commune-navigation-tools.is-above-map { grid-template-columns: 1fr; }
}


/* V30.8 — Partage transversal */
.library-book-share-wrap{display:flex;flex-direction:column;min-width:0}.library-book-share-wrap>.library-book{width:100%}.library-book-share{align-self:center;margin-top:8px}.archive-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.media-panel-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.media-panel-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.book-profile-actions .arcavium-share-trigger{min-height:2.6rem;text-transform:none;letter-spacing:.015em}.archive-heading-actions .arcavium-share-trigger{min-height:2.25rem}.media-map-toolbar .arcavium-share-trigger,.map-toolbar .arcavium-share-trigger{flex:0 0 auto}
@media(max-width:700px){.media-panel-heading{flex-direction:column}.media-panel-top-actions{justify-content:flex-start}.archive-heading{align-items:flex-start;flex-direction:column}.archive-heading-actions{width:100%}}

/* V30.8.3 — formulaire citoyen progressif + états publics Réserve */
.citizen-contact-notice {
  border: 1px solid rgba(16,37,67,.13);
  border-radius: 1rem;
  background: rgba(255,255,255,.72);
  padding: 1rem 1.05rem;
  color: rgba(20,35,60,.78);
  font-family: var(--sans);
  line-height: 1.55;
}
.citizen-contact-notice strong {
  display: block;
  color: var(--encre);
  margin-bottom: .45rem;
}
.citizen-contact-notice p {
  margin: .38rem 0 0;
  font-size: .82rem;
}
.citizen-sms-actions input {
  min-width: 10rem;
}
.depot-publication-badge.is-private {
  background: rgba(202,52,45,.11);
  color: #a22e29;
  border: 1px solid rgba(202,52,45,.16);
}
.depot-publication-badge.is-public {
  background: rgba(32,130,77,.11);
  color: #176c43;
  border: 1px solid rgba(32,130,77,.18);
}
.depot-summary-share-slot {
  display: inline-flex;
  align-items: center;
}


/* V30.8.5 — retour SMS citoyen visible et explicite */
.field-inline-alert {
  margin: .45rem 0 0;
  padding: .62rem .72rem;
  border: 1px solid rgba(161,41,34,.28);
  border-radius: .7rem;
  background: rgba(161,41,34,.08);
  color: #8d261f;
  font: 700 .82rem/1.45 var(--sans);
}
.citizen-sms-actions { align-items: center; }
.sms-action-feedback {
  flex: 1 1 20rem;
  min-width: min(20rem, 100%);
  padding: .72rem .82rem;
  border: 1px solid rgba(36,87,164,.2);
  border-radius: .75rem;
  background: rgba(36,87,164,.08);
  color: var(--encre);
  font: 800 .82rem/1.45 var(--sans);
}
.sms-action-feedback.loading {
  border-color: rgba(36,87,164,.28);
  background: rgba(36,87,164,.1);
}
.sms-action-feedback.success {
  border-color: rgba(31,122,73,.3);
  background: rgba(31,122,73,.1);
  color: #17613b;
}
.sms-action-feedback.error {
  border-color: rgba(161,41,34,.34);
  background: rgba(161,41,34,.1);
  color: #8d261f;
}
.sms-action-feedback a {
  color: inherit;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: .18em;
}
.small-note.success { color: #17613b; font-weight: 700; }
.small-note.error { color: #8d261f; font-weight: 800; }
@media (max-width: 720px) {
  .citizen-sms-actions { align-items: stretch; }
  .sms-action-feedback { flex-basis: 100%; min-width: 100%; }
}


/* Arcavium V30.9 — informations juridiques */

/* V30.9.1 — actions de facture */
.facture-actions{gap:.65rem}.facture-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.7rem 1rem;border-radius:999px;text-decoration:none;font:800 .8rem/1 var(--sans);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.facture-action:hover{transform:translateY(-1px)}.facture-action-pdf{border:0;background:#e4572e;color:#fff;box-shadow:0 7px 18px rgba(228,87,46,.2)}.facture-action-pdf:disabled{opacity:.6;cursor:wait}.facture-action-stripe{border:1px solid rgba(99,91,255,.26);background:#fff;color:#4f46d8}.facture-action-cgv{border:1px solid rgba(16,37,67,.17);background:rgba(255,255,255,.7);color:var(--encre)}
.account-prefilled-field{background:#f2efe8!important;color:#4f5664!important;cursor:not-allowed}
.partner-request-main{max-width:1040px;margin:0 auto}.partner-request-shell{max-width:760px;margin:0 auto 4rem}.partner-request-shell textarea{resize:vertical}.partner-request-shell input[readonly]{background:#f2efe8;color:#4f5664}
.site-legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem .65rem;margin-top:.8rem;font-size:.78rem;line-height:1.5}.site-legal-links a{color:inherit;text-decoration:underline;text-underline-offset:3px}.site-legal-footer-standalone{padding:1rem;text-align:center}.legal-body{background:linear-gradient(180deg,#fffdf8 0%,#f7f1e7 100%)}.legal-page{max-width:1040px;margin:0 auto;padding:clamp(1.6rem,4vw,3rem) clamp(1rem,4vw,3rem) clamp(3rem,7vw,5rem);min-height:70vh}.legal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.legal-back-button,.legal-home-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.65rem 1rem;border:1px solid rgba(16,37,67,.16);border-radius:999px;background:rgba(255,255,255,.72);color:var(--encre);font:800 .82rem/1 var(--sans);text-decoration:none;cursor:pointer}.legal-back-button:hover,.legal-home-link:hover{background:#fff}.legal-heading{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;margin-bottom:1.6rem;padding-bottom:1.4rem;border-bottom:1px solid rgba(16,37,67,.12)}.legal-heading h1{margin:.25rem 0;font-size:clamp(2rem,4vw,3.15rem);line-height:1.02;max-width:760px}.legal-heading [data-juridique-version]{font-family:var(--sans);color:rgba(16,37,67,.62);font-size:.9rem}.legal-document{max-width:850px;line-height:1.75;background:rgba(255,255,255,.62);border:1px solid rgba(16,37,67,.09);border-radius:18px;padding:clamp(1.15rem,3vw,2rem);box-shadow:0 14px 40px rgba(20,35,60,.05)}.legal-document h1{font-size:clamp(1.55rem,3vw,2.2rem);line-height:1.12}.legal-document h2{margin-top:2rem;font-size:clamp(1.35rem,2.4vw,1.8rem)}.legal-document h3{margin-top:1.5rem;font-size:clamp(1.1rem,2vw,1.35rem)}.legal-document p{margin:.7rem 0}.legal-document ul{padding-left:1.4rem}.legal-space{height:.35rem}.legal-error,.legal-form-message.error{color:#9b1c1c}.legal-form-card{margin-top:2.5rem;padding:1.5rem;border:1px solid rgba(20,35,60,.16);border-radius:18px}.legal-form-card form{display:grid;gap:1rem;max-width:720px}.legal-form-card label{display:grid;gap:.4rem}.legal-form-card input,.legal-form-card textarea{width:100%}.legal-form-message.success{color:#176b3a}.legal-consent{display:flex!important;gap:.65rem!important;align-items:flex-start!important;margin:.8rem 0!important}.legal-consent input{width:auto!important;margin-top:.2rem}.cgu-reaccept-overlay{position:fixed;inset:0;background:rgba(3,10,24,.78);z-index:99999;display:flex;align-items:center;justify-content:center;padding:1rem}.cgu-reaccept-card{max-width:620px;background:#fffaf0;color:#0d1d3a;padding:clamp(1.4rem,4vw,2.4rem);border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.cgu-reaccept-card h2{margin-top:0}.cgu-reaccept-card .actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1rem}
@media(max-width:700px){.legal-heading{display:block}.legal-heading button{margin-top:1rem}}
@media print{header,.site-header,.account-header,.site-legal-links,.legal-toolbar,button,[data-juridique-print],.legal-form-card{display:none!important}.legal-page{max-width:none;padding:0}.legal-document{max-width:none}body{background:#fff!important;color:#000!important}}


/* Arcavium V30.9.2 — navigation compte, partenariat violet, achat Réserve connecté */
.header-account-control{display:flex;align-items:center}.header-account-control .header-account-menu{position:relative}.header-account-control .header-account-menu>summary{list-style:none}.header-account-control .header-account-menu>summary::-webkit-details-marker{display:none}.header-account-control .header-account-menu .header-submenu{min-width:310px;right:0;left:auto;z-index:1200}.header-account-control .header-submenu button.account-nav-logout{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:.72rem .9rem;font:700 .8rem/1.25 var(--sans);cursor:pointer}.header-account-control .header-submenu button.account-nav-logout:hover{background:rgba(255,255,255,.08)}.header-account-control [data-account-menu-separator]{display:block;height:1px;margin:.35rem .7rem;background:rgba(255,255,255,.16)}

.partner-request-page{background:#f5f0f8}.partner-request-main{max-width:none;margin:0}.partner-request-hero{position:relative;overflow:hidden;padding:clamp(3rem,7vw,6.5rem) clamp(1.2rem,5vw,5rem);background:radial-gradient(circle at 82% 18%,rgba(196,152,231,.28),transparent 30%),linear-gradient(135deg,#24122f 0%,#4d2c65 48%,#69408c 100%);color:#fff}.partner-request-hero:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.13);border-radius:50%;right:-120px;bottom:-250px}.partner-request-hero-inner{position:relative;z-index:1;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr);gap:clamp(2rem,5vw,5rem);align-items:end}.partner-request-pill{display:inline-flex;padding:.5rem .8rem;margin-bottom:1.4rem;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.08);font:800 .72rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}.partner-request-hero .eyebrow{color:#d8b9ee}.partner-request-hero h1{max-width:820px;margin:.3rem 0 1.2rem;font-size:clamp(2.7rem,6vw,5.8rem);line-height:.96;letter-spacing:-.055em;font-weight:400}.partner-request-lead{max-width:760px;margin:0;color:rgba(255,255,255,.83);font:400 clamp(1rem,1.5vw,1.18rem)/1.75 var(--sans)}.partner-request-hero-card{padding:1.5rem;border:1px solid rgba(255,255,255,.18);border-radius:22px;background:rgba(18,8,25,.28);backdrop-filter:blur(8px);box-shadow:0 24px 55px rgba(0,0,0,.18)}.partner-request-symbol{display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-bottom:1.3rem;border-radius:50%;background:#fff;color:#69408c;font-size:1.2rem}.partner-request-hero-card strong{font-size:1.25rem}.partner-request-hero-card p{margin:.65rem 0 0;color:rgba(255,255,255,.76);font:400 .94rem/1.65 var(--sans)}.partner-request-content{max-width:1180px;margin:0 auto;padding:clamp(2rem,6vw,5.5rem) clamp(1.2rem,4vw,3rem);display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,6rem);align-items:start}.partner-request-intro{position:sticky;top:1.5rem}.partner-request-intro .eyebrow{color:#69408c}.partner-request-intro h2{margin:.35rem 0 1rem;font-size:clamp(2rem,4vw,3.5rem);line-height:1;letter-spacing:-.04em}.partner-request-intro>p{color:#685e70;font:400 .98rem/1.7 var(--sans)}.partner-request-points{display:grid;gap:.75rem;margin-top:2rem}.partner-request-points>div{display:grid;grid-template-columns:42px 1fr;gap:.8rem;padding:1rem 0;border-top:1px solid rgba(81,48,106,.14)}.partner-request-points span{color:#7e55a0;font:900 .75rem/1.5 var(--sans)}.partner-request-points p{margin:0;color:#62586a;font:400 .88rem/1.45 var(--sans)}.partner-request-points strong{color:#392347}.partner-request-form-card{padding:clamp(1.4rem,4vw,2.6rem);border:1px solid rgba(105,64,140,.18);border-radius:26px;background:#fff;box-shadow:0 24px 65px rgba(60,35,78,.10)}.partner-request-form-heading{display:flex;gap:1rem;align-items:center;margin-bottom:1.8rem;padding-bottom:1.4rem;border-bottom:1px solid rgba(105,64,140,.12)}.partner-request-mini-symbol{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:#69408c;color:#fff}.partner-request-form-heading .eyebrow{margin:0;color:#7a5598}.partner-request-form-heading h2{margin:.18rem 0 0;font-size:clamp(1.55rem,3vw,2.25rem)}#partner-request-form{display:grid;gap:1.25rem}.partner-request-field{display:grid;gap:.5rem}.partner-request-field label{color:#392347;font:800 .82rem/1.3 var(--sans)}.partner-request-field input,.partner-request-field textarea{width:100%;border:1px solid rgba(70,42,90,.18);border-radius:14px;background:#fbf9fc;padding:.9rem 1rem;color:#1d1423;font:500 .95rem/1.45 var(--sans);outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.partner-request-field input:focus,.partner-request-field textarea:focus{border-color:#765096;background:#fff;box-shadow:0 0 0 4px rgba(105,64,140,.10)}.partner-request-field input[readonly]{background:#f1edf4;color:#675d6d}.partner-request-field span{color:#7b7180;font:500 .76rem/1.45 var(--sans)}.partner-request-field textarea{min-height:190px;resize:vertical}.partner-request-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:.35rem}.partner-request-actions button{min-height:48px;padding:.8rem 1.25rem;border:0;border-radius:999px;background:#69408c;color:#fff;font:900 .8rem/1 var(--sans);cursor:pointer;box-shadow:0 10px 24px rgba(105,64,140,.23)}.partner-request-actions button:hover{background:#593474}.partner-request-actions>a{display:inline-flex;align-items:center;min-height:48px;padding:.8rem 1.1rem;border:1px solid rgba(105,64,140,.18);border-radius:999px;color:#5e3a78;text-decoration:none;font:800 .78rem/1 var(--sans)}
.reserve-connected-purchase-note{margin:.9rem 0;padding:.85rem 1rem;border-left:4px solid #dd4d1d;background:#fff4eb;color:#6f351f;font:800 .82rem/1.5 var(--sans)}
@media(max-width:900px){.partner-request-hero-inner,.partner-request-content{grid-template-columns:1fr}.partner-request-intro{position:static}.partner-request-hero-card{max-width:560px}.header-account-control .header-account-menu .header-submenu{min-width:min(310px,calc(100vw - 2rem))}}
@media(max-width:720px){.header-account-control{width:100%}.header-account-control>.header-cta,.header-account-control .header-account-menu,.header-account-control .header-account-menu>summary{width:100%}.partner-request-hero h1{font-size:clamp(2.45rem,14vw,4rem)}.partner-request-content{padding-top:2.5rem}}


/* Arcavium V30.9.3 — menu Mon compte d’en-tête aligné sur le menu historique */
.header-account-control .header-account-menu .header-submenu.account-nav{
  min-width:310px;right:0;left:auto;z-index:2500;display:flex;flex-direction:column;align-items:stretch;gap:.2rem;
  padding:.65rem;border:1px solid rgba(16,37,67,.12);border-radius:1rem;background:rgba(255,255,255,.99);
  box-shadow:0 1.2rem 3.4rem rgba(16,37,67,.2);backdrop-filter:blur(12px)
}
.header-account-control .header-submenu.account-nav .account-nav-link,
.header-account-control .header-submenu.account-nav .account-nav-logout{
  width:100%;min-height:2.8rem;display:flex;align-items:center;justify-content:flex-start;gap:.35rem;
  padding:.78rem 1rem!important;border-radius:.92rem!important;text-align:left;text-transform:none;white-space:normal;
  letter-spacing:.025em;font:800 .78rem/1.25 var(--sans)!important;text-decoration:none;cursor:pointer
}
.header-account-control .header-submenu.account-nav .account-nav-link{color:#102543!important;background:transparent!important;border:0!important}
.header-account-control .header-submenu.account-nav .account-nav-link:hover,
.header-account-control .header-submenu.account-nav .account-nav-link:focus-visible{transform:translateY(-1px);background:rgba(16,37,67,.07)!important;outline:none}
.header-account-control .header-submenu.account-nav .account-nav-manuscript{color:#714918!important;background:rgba(190,138,56,.11)!important}
.header-account-control .header-submenu.account-nav .account-nav-media{color:#185f5a!important;background:rgba(24,95,90,.09)!important}
.header-account-control .header-submenu.account-nav .account-nav-reserve{color:#a64a19!important;background:rgba(222,90,31,.09)!important}
.header-account-control .header-submenu.account-nav .account-nav-partner{color:#69408c!important;background:rgba(105,64,140,.09)!important}
.header-account-control .header-submenu.account-nav .account-nav-invoices{color:#a84224!important;background:rgba(228,87,46,.09)!important}
.header-account-control .header-submenu.account-nav .account-nav-logout{
  color:#7c2f20!important;background:rgba(124,47,32,.06)!important;border:1px solid rgba(124,47,32,.18)!important
}
.header-account-control .header-submenu.account-nav .account-nav-logout:hover{background:rgba(124,47,32,.12)!important}
.header-account-control .header-submenu.account-nav [data-account-menu-separator]{display:block;width:calc(100% - 1rem);height:1px;margin:.45rem .5rem;background:rgba(16,37,67,.12)}
@media(max-width:900px){.header-account-control .header-account-menu .header-submenu.account-nav{min-width:min(310px,calc(100vw - 2rem))}}

/* V30.9.7 — Mes informations personnelles */
.personal-page{max-width:1180px;margin:0 auto;padding:clamp(2rem,5vw,5rem) clamp(1rem,4vw,3rem) 5rem}.personal-hero{max-width:760px;margin-bottom:1.5rem}.personal-hero h1{margin:.4rem 0 1rem;font-size:clamp(2.5rem,6vw,5.5rem);line-height:.95}.personal-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:1.2rem;align-items:start}.personal-card{background:#fff;border:1px solid rgba(16,37,67,.16);padding:clamp(1.1rem,3vw,2rem)}.personal-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.personal-heading h2,.personal-security h2{margin:.3rem 0 1rem}.personal-private-badge,.personal-status{font-family:Arial,sans-serif;font-size:.72rem;font-weight:800;padding:.35rem .55rem;border-radius:999px;white-space:nowrap}.personal-private-badge{background:#eef2f8;color:#102543}.personal-field-status{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:center}.personal-status.is-ok{background:#edf8f1;color:#1f7a49}.personal-status.is-pending{background:#fff4e8;color:#9a4d16}.personal-address-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.personal-address-grid .full{grid-column:1/-1}.personal-sms-box{margin:1rem 0;padding:1rem;border:1px solid rgba(36,87,164,.22);background:#f7f9fd}.personal-security{position:sticky;top:1rem}.personal-security-item{padding:1rem 0;border-top:1px solid rgba(16,37,67,.12)}.personal-security-item strong{font-family:Arial,sans-serif}.account-invite-card{margin:1rem 0;padding:1.2rem;border:1px solid rgba(36,87,164,.22);background:#f7f9fd}.account-central-contact-card .header-cta{display:inline-flex;margin-top:.5rem}.account-source-note{padding:.65rem .75rem;background:#f7f9fd;border-left:3px solid #2457a4}
@media(max-width:800px){.personal-layout{grid-template-columns:1fr}.personal-security{position:static}.personal-field-status{grid-template-columns:1fr}.personal-status{justify-self:start}.personal-address-grid{grid-template-columns:1fr}.personal-address-grid .full{grid-column:auto}}

/* =============================================================
   V30.9.8 — reprise Manuscrit : invitation compte prioritaire
   ============================================================= */
.reprise-account-invite-top[hidden] { display: none !important; }
.reprise-account-invite-top {
  max-width: 1180px;
  margin: 0 auto 1.35rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: center;
  border: 2px solid #2457a4;
  border-radius: 1rem;
  background: linear-gradient(135deg, #102543 0%, #183b68 100%);
  color: white;
  box-shadow: 0 1rem 2.4rem rgba(16,37,67,.16);
}
.reprise-account-invite-top .eyebrow { color: #bcd2ef; }
.reprise-account-invite-top h2 {
  margin: .35rem 0 .7rem;
  max-width: 20ch;
  color: white;
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1;
}
.reprise-account-invite-top p { margin: .45rem 0; color: rgba(255,255,255,.88); }
.reprise-account-invite-top .small-note { color: rgba(255,255,255,.72); }
.reprise-account-invite-action {
  display: grid;
  gap: .7rem;
  justify-items: stretch;
  text-align: center;
}
.reprise-account-create-button {
  display: flex;
  min-height: 4.2rem;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.2rem;
  border-radius: .75rem;
  background: white;
  color: #102543;
  font: 900 1rem/1.15 Arial,Helvetica,sans-serif;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .025em;
  box-shadow: 0 .7rem 1.5rem rgba(0,0,0,.2);
  transition: transform .15s ease, box-shadow .15s ease;
}
.reprise-account-create-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 .9rem 1.9rem rgba(0,0,0,.25);
  text-decoration: none;
}
.reprise-account-invite-action span {
  color: rgba(255,255,255,.72);
  font: 700 .72rem/1.4 Arial,Helvetica,sans-serif;
}

/* =============================================================
   V30.9.8 — espaces Réserve / Partenaire sans encart privé vide
   ============================================================= */
.account-mosaic.account-mosaic-compact { grid-template-columns: minmax(0, 1fr); }
.account-mosaic.account-mosaic-compact .account-mosaic-side {
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .45fr);
  grid-template-rows: auto;
  height: auto;
  align-items: stretch;
}
.account-mosaic.account-mosaic-compact .account-mosaic-side > .reserve-panel { height: 100%; }
.partner-account-layout-clean {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.partner-account-layout-clean .partner-column-overview,
.partner-account-layout-clean .partner-public-coordinates-card {
  width: 100%;
  margin: 0;
}
.partner-overview-full { min-width: 0; }

/* =============================================================
   V30.9.8 — Mes informations personnelles
   ============================================================= */
.personal-page-v2 { max-width: 1240px; }
.personal-hero-v2 {
  max-width: none;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid rgba(16,37,67,.12);
}
.personal-hero-v2 > div:first-child { max-width: 780px; }
.personal-hero-badge {
  flex: 0 0 auto;
  padding: .6rem .85rem;
  border: 1px solid rgba(36,87,164,.24);
  border-radius: 999px;
  background: #f3f6fb;
  color: #2457a4;
  font: 800 .75rem/1 Arial,Helvetica,sans-serif;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.personal-global-message { margin: 0 0 1rem; }
.personal-layout-v2 {
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
  gap: 1.2rem;
}
.personal-layout-v2 .personal-card {
  border-radius: .9rem;
  box-shadow: 0 .35rem 1.4rem rgba(16,37,67,.055);
}
.personal-identity-card { min-width: 0; }
.personal-heading-with-action { margin-bottom: 1.2rem; }
.personal-heading-with-action > div { max-width: 42rem; }
.personal-heading-with-action p { margin: .35rem 0 0; color: #657286; }
.personal-save-top {
  flex: 0 0 auto;
  min-height: 2.7rem;
  padding: .7rem .9rem;
  border: 1px solid #2457a4;
  border-radius: .55rem;
  background: #2457a4;
  color: white;
  font: 800 .8rem/1 Arial,Helvetica,sans-serif;
  cursor: pointer;
}
.personal-save-bottom { margin-top: 1rem; }
.personal-security-stack { display: grid; gap: 1rem; min-width: 0; }
.personal-validation-card { position: relative; }
.personal-validation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
}
.personal-validation-heading h2 { margin: .25rem 0 .6rem; font-size: clamp(1.45rem, 2.4vw, 2rem); }
.personal-current-value {
  margin: .8rem 0;
  padding: .8rem .9rem;
  border: 1px solid rgba(16,37,67,.12);
  border-radius: .65rem;
  background: #f8fafc;
}
.personal-current-value span {
  display: block;
  margin-bottom: .25rem;
  color: #657286;
  font: 700 .68rem/1.3 Arial,Helvetica,sans-serif;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.personal-current-value strong {
  display: block;
  overflow-wrap: anywhere;
  color: #102543;
  font: 800 .94rem/1.4 Arial,Helvetica,sans-serif;
}
.personal-change-toggle { width: 100%; margin-top: .45rem; }
.personal-validation-flow {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(36,87,164,.2);
  border-radius: .7rem;
  background: #f7f9fd;
}
.personal-validation-flow[hidden],
.personal-code-step[hidden] { display: none !important; }
.personal-code-step {
  margin-top: .9rem;
  padding-top: .9rem;
  border-top: 1px solid rgba(16,37,67,.1);
}
.personal-code-step input {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-align: center;
}
.personal-code-step button { width: 100%; }
.personal-security-note {
  background: #102543;
  color: white;
}
.personal-security-note .eyebrow { color: #98b5dc; }
.personal-security-note h3 { color: white; }
.personal-security-note p { color: rgba(255,255,255,.8); }
.personal-security-note .header-cta {
  display: inline-flex;
  margin-top: .5rem;
  border-color: rgba(255,255,255,.4);
  color: white;
}

@media (max-width: 900px) {
  .reprise-account-invite-top { grid-template-columns: 1fr; }
  .personal-layout-v2 { grid-template-columns: 1fr; }
  .personal-hero-v2 { align-items: flex-start; flex-direction: column; }
  .account-mosaic.account-mosaic-compact .account-mosaic-side { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .personal-heading-with-action { flex-direction: column; }
  .personal-save-top { width: 100%; }
  .personal-validation-heading { flex-direction: column; }
  .reprise-account-create-button { min-height: 3.7rem; }
}


/* =============================================================
   V30.9.9 — accès reprise depuis la carte + validation mobile FR
   ============================================================= */
.map-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
  flex-wrap: wrap;
}
.manuscrit-resume-deposit {
  display: inline-flex;
  min-height: 2.7rem;
  align-items: center;
  justify-content: center;
  padding: .7rem 1rem;
  border: 1px solid #102543;
  border-radius: .45rem;
  background: #102543;
  color: white;
  font: 800 .78rem/1 Arial,Helvetica,sans-serif;
  text-decoration: none;
  letter-spacing: .015em;
}
.manuscrit-resume-deposit:hover {
  background: #183b68;
  border-color: #183b68;
  text-decoration: none;
}
@media (max-width: 760px) {
  .map-toolbar-actions { width: 100%; justify-content: stretch; }
  .map-toolbar-actions > * { flex: 1 1 auto; }
  .manuscrit-resume-deposit { min-height: 2.9rem; }
}


/* V31.0.1 — Mes informations : autocomplétion locale ville / code postal */
.personal-location-field{position:relative}.personal-location-field input[aria-expanded="true"]{border-color:var(--bleu-arcavium);box-shadow:0 0 0 2px rgba(36,87,164,.08)}.location-suggestions{position:absolute;z-index:40;top:100%;left:0;right:0;margin-top:.18rem;max-height:18rem;overflow:auto;border:1px solid rgba(16,37,67,.18);background:#fff;box-shadow:0 .9rem 2rem rgba(16,37,67,.14);font-family:var(--sans)}.location-suggestions[hidden]{display:none!important}.location-suggestion{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem .82rem;border:0;border-bottom:1px solid rgba(16,37,67,.08);background:#fff;color:var(--encre);text-align:left;cursor:pointer}.location-suggestion:last-child{border-bottom:0}.location-suggestion:hover,.location-suggestion.is-active,.location-suggestion:focus-visible{background:#f2f6fb;outline:none}.location-suggestion-name{min-width:0;font-weight:800;line-height:1.25}.location-suggestion-postal{flex:0 0 auto;color:#52647c;font-weight:800;font-variant-numeric:tabular-nums}.location-suggestion-type{display:block;margin-top:.12rem;color:#748195;font-size:.72rem;font-weight:700}.location-suggestions-empty{padding:.72rem .82rem;color:#65738a;font-size:.82rem;line-height:1.35}.personal-location-field.is-index-loading:after{content:"Chargement des communes…";position:absolute;top:calc(100% + .38rem);left:.1rem;z-index:42;padding:.32rem .45rem;background:#fff;color:#65738a;font:700 .72rem/1.2 var(--sans);box-shadow:0 .35rem .8rem rgba(16,37,67,.08)}


/* Partenaire — module Communication / logo (Pages v31.0.1) */
.partner-communication-panel {
  margin-top: 1.1rem;
}
.partner-communication-heading {
  margin-bottom: 1rem;
}
.partner-communication-grid {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(0, 1.5fr);
  gap: 1rem;
  align-items: stretch;
}
.partner-communication-preview {
  display: grid;
  min-height: 190px;
  place-items: center;
  overflow: hidden;
  padding: 1rem;
  border: 1px solid rgba(65,35,93,.16);
  background: #fbf9fd;
}
.partner-communication-preview img {
  display: block;
  width: 100%;
  max-width: 360px;
  max-height: 190px;
  object-fit: contain;
}
.partner-communication-logo-empty {
  color: #74647f;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .86rem;
  line-height: 1.5;
  text-align: center;
}
.partner-communication-controls {
  display: grid;
  align-content: start;
  gap: .65rem;
  min-width: 0;
}
.partner-communication-controls > label {
  color: #50316a;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .82rem;
  font-weight: 800;
}
.partner-communication-controls input[type="file"] {
  width: 100%;
}
.partner-communication-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
}
@media (max-width: 760px) {
  .partner-communication-grid {
    grid-template-columns: 1fr;
  }
}

/* V31.0.6 — Communication Partenaire : contrat lisible + lien de modification du site */
.partner-communication-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
  align-items: start;
  gap: 1.5rem;
}
.partner-communication-heading-side {
  min-width: 0;
}
.partner-communication-summary-card {
  padding: .9rem 1rem;
  border: 1px solid rgba(80,49,106,.17);
  border-radius: 14px;
  background: linear-gradient(180deg, #fcfaff 0%, #f7f2fb 100%);
  box-shadow: 0 5px 18px rgba(80,49,106,.06);
}
.partner-communication-contract {
  display: grid;
  gap: .65rem;
}
.partner-communication-contract-chip {
  display: grid;
  gap: .22rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid rgba(80,49,106,.12);
}
.partner-communication-contract-chip:last-child { padding-bottom: 0; border-bottom: 0; }
.partner-communication-contract-territory {
  color: #2c1d39;
  font: 800 .98rem/1.25 Georgia, "Times New Roman", serif;
}
.partner-communication-contract-dates {
  color: #695776;
  font: 700 .78rem/1.35 Arial, Helvetica, sans-serif;
}
.partner-communication-contract-empty {
  color: #74647f;
  font: 700 .78rem/1.35 Arial, Helvetica, sans-serif;
}
.partner-communication-site-reference {
  display: block;
  margin-top: .7rem;
  padding-top: .65rem;
  border-top: 1px solid rgba(80,49,106,.12);
  color: #50316a;
  font: 700 .78rem/1.35 Arial, Helvetica, sans-serif;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  overflow-wrap: anywhere;
}
.partner-communication-site-reference:hover { color: #321b49; }
#partner-public-coordinates { scroll-margin-top: 96px; }
@media (max-width: 900px) {
  .partner-communication-heading { grid-template-columns: 1fr; }
  .partner-communication-heading-side { max-width: 100%; }
}



/* V31.0.7 — Reporting Partenaire pré-Queue */
.partner-section-tabs{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 1.35rem;padding:.4rem;border:1px solid rgba(105,64,140,.16);border-radius:999px;background:rgba(255,255,255,.72);width:max-content;max-width:100%}
.partner-section-tab{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.65rem 1rem;border-radius:999px;color:#5e3a78;text-decoration:none;font:800 .8rem/1 var(--sans);white-space:nowrap}
.partner-section-tab:hover{background:rgba(105,64,140,.08)}
.partner-section-tab.is-active{background:#69408c;color:#fff}
.partner-reporting-shell{max-width:1180px;margin:0 auto;padding:0 clamp(1rem,4vw,3rem) clamp(3rem,6vw,5rem)}
.partner-reporting-content{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:1rem}
.partner-reporting-placeholder{min-height:240px}
@media(max-width:780px){.partner-section-tabs{width:100%;border-radius:18px}.partner-section-tab{flex:1 1 auto}.partner-reporting-content{grid-template-columns:1fr}}


/* Arcavium — Reporting Partenaire V31.0.9 */
.partner-reporting-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}
.partner-reporting-refresh{border:0;cursor:pointer;font:inherit;white-space:nowrap}
.partner-reporting-refresh:disabled{opacity:.55;cursor:wait}
.partner-reporting-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.partner-reporting-metric{min-width:0;padding:18px 16px;border:1px solid rgba(45,42,36,.14);border-radius:14px;background:rgba(255,255,255,.58);display:flex;flex-direction:column;gap:7px}
.partner-reporting-metric span{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:rgba(45,42,36,.68)}
.partner-reporting-metric strong{font-size:1.65rem;line-height:1.05;font-weight:650;overflow-wrap:anywhere}
.partner-reporting-metric small{font-size:.76rem;line-height:1.35;color:rgba(45,42,36,.62)}
.partner-reporting-empty{padding:22px;border:1px dashed rgba(45,42,36,.25);border-radius:14px;background:rgba(255,255,255,.4)}
.partner-reporting-empty p{margin:.45rem 0 0}
.partner-reporting-update{margin:18px 0 0;font-size:.82rem;color:rgba(45,42,36,.68)}
@media (max-width:1100px){.partner-reporting-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.partner-reporting-dashboard-head{display:block}.partner-reporting-refresh{margin-top:12px}.partner-reporting-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-reporting-metric{padding:15px 13px}.partner-reporting-metric strong{font-size:1.4rem}}
@media (max-width:430px){.partner-reporting-metrics{grid-template-columns:1fr}}

/* Arcavium V31.0.11 — Reporting Partenaire : historique mensuel */
.partner-reporting-controls{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.partner-reporting-controls label{font-size:.76rem;line-height:1;text-transform:uppercase;letter-spacing:.05em;color:rgba(45,42,36,.68);display:flex;flex-direction:column;gap:6px}
.partner-reporting-month-select{min-width:210px;max-width:100%;padding:10px 34px 10px 12px;border:1px solid rgba(45,42,36,.2);border-radius:10px;background:#fff;color:inherit;font:inherit}
.partner-reporting-month-select:disabled{opacity:.6}
@media (max-width:700px){.partner-reporting-controls{justify-content:flex-start;margin-top:14px}.partner-reporting-month-select{min-width:min(100%,260px)}}

/* V31.0.117 — Trois parcours lisibles sur /mon-compte/ uniquement. */
.account-profile-page .account-auth-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.account-profile-page .account-auth-card{min-width:0;padding:clamp(1.15rem,2.1vw,1.75rem)}
.account-profile-page .account-auth-heading h2{font-size:clamp(1.22rem,1.65vw,1.8rem);line-height:1.15}
.account-profile-page .account-auth-heading p:last-child{font-size:.88rem;line-height:1.5}
.account-profile-page .account-auth-card .form-actions{width:100%}
.account-profile-page .account-auth-card .form-actions>button{width:100%}
.account-structure-card{background:rgba(249,251,254,.96)}
.account-structure-link{display:flex;justify-content:center;align-items:center;min-height:2.95rem;width:100%;padding:.8rem 1rem;border-radius:.75rem;background:#102543;color:#fff!important;text-align:center;text-decoration:none;font:800 .85rem/1.25 var(--sans)}
.account-structure-link:hover,.account-structure-link:focus-visible{background:#1f426e;color:#fff!important;outline:2px solid #1f426e;outline-offset:2px}
@media(max-width:1100px){.account-profile-page .account-auth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-profile-page .account-structure-card{grid-column:1/-1}}
@media(max-width:760px){.account-profile-page .account-auth-grid{grid-template-columns:1fr}.account-profile-page .account-structure-card{grid-column:auto}}

/* v31.0.122: prénom et nom facultatifs sur le formulaire d'inscription. */
.account-register-names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;}
@media(max-width:520px){.account-register-names{grid-template-columns:minmax(0,1fr);}}
