/* ─────────────────────────────────────────────────────────────────
   Edit page — boutons d'action en haut à gauche, hors panel
   ───────────────────────────────────────────────────────────────── */
.edit-page-actions {
  display: grid;
  grid-template-columns: minmax(0, min(var(--content-rail-width), calc(100vw - 2rem)));
  justify-content: center;
  align-items: flex-start;
}
.edit-page > form {
  display: contents;
}
.edit-page > form .edit-panel {
  display: grid;
  gap: var(--ui-frame-gap);
}
.edit-page-actions .edit-actions {
  width: var(--side-rail-width);
  display: grid;
  gap: var(--ui-frame-gap);
  position: sticky;
  top: var(--sticky-clearance);
  align-self: start;
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  transform: translateX(calc(-100% - var(--layout-rail-gap)));
}
.edit-page-actions .edit-panel {
  grid-column: 1;
  grid-row: 1;
  display: grid;
  gap: var(--ui-frame-gap);
}
.edit-actions {
  display: grid;
  gap: var(--ui-frame-gap);
  width: var(--side-rail-width);
  position: sticky;
  top: var(--sticky-clearance);
  align-self: start;
  border: 1px solid var(--ui-frame);
  background: rgba(var(--surface-rgb), 0.86);
  padding: var(--ui-frame-pad);
}
.edit-actions button {
  width: 100%;
  border: 1px solid var(--area-btn-border);
  background: var(--area-btn-bg);
  color: var(--fg);
  font-family: inherit;
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  height: var(--ui-button-height);
  padding: var(--ui-button-pad);
  line-height: var(--ui-control-line-height);
  cursor: pointer;
}
.edit-actions button:hover {
  background: var(--area-btn-grad);
  border-color: var(--area-btn-grad-hi);
}
.edit-actions .edit-action-save {
  background: var(--surface);
  border-color: var(--area-submit-border);
}
.edit-actions .edit-action-save:hover {
  background: var(--area-submit-grad);
}
.edit-actions .danger {
  background: transparent;
  border-color: var(--danger);
  color: var(--danger);
}
.edit-actions .danger:hover {
  background: var(--danger-soft);
  border-color: var(--danger);
  color: var(--danger);
}

/* Contribution / édition : panneaux compacts et guidés. */
.edit-page:has(.edit-panel-compact) {
  --edit-ref-gap: var(--ui-frame-gap);
  --edit-ref-pad: var(--ui-frame-pad);
  --edit-ref-control: var(--ui-control-height);
  grid-template-columns: minmax(0, min(var(--content-rail-width), calc(100vw - 2rem)));
  column-gap: 0;
}
.edit-page:has(.edit-panel-compact) .edit-panel-compact {
  grid-column: 1;
  grid-row: 1;
  gap: var(--edit-ref-gap);
  border-color: var(--ui-frame);
}
.edit-page:has(.edit-panel-compact) .edit-context-note {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  width: var(--side-rail-width);
  transform: translateX(calc(100% + var(--layout-rail-gap)));
}
.edit-page:has(.edit-panel-compact) .edit-floating-submit {
  grid-column: 1;
  grid-row: 2;
  justify-self: end;
  margin-top: var(--ui-action-attach-gap);
}
.edit-context-note {
  position: sticky;
  top: var(--sticky-clearance);
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  display: grid;
  gap: var(--ui-panel-gap);
  align-self: start;
}
.edit-context-main,
.edit-context-help {
  border: 1px solid var(--border-soft);
  background: rgba(var(--surface-rgb), 0.82);
  box-shadow: 0 16px 44px rgba(var(--shadow-rgb), 0.045);
  padding: var(--edit-ref-pad);
  display: grid;
  gap: var(--edit-ref-gap);
}
.edit-context-note .edit-context-title,
.edit-context-help > span {
  border: 1px solid var(--border-soft);
  background: var(--neutral-grad);
  color: var(--fg);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-transform: uppercase;
  padding: var(--ui-text-pad);
}
.edit-context-body,
.edit-context-help p {
  border: 1px solid var(--border-soft);
  background: rgba(var(--surface-rgb), 0.74);
  padding: var(--ui-text-pad);
}
.edit-context-body {
  display: grid;
  gap: 4px;
}
.edit-context-body p,
.edit-context-help p {
  color: var(--fg-soft);
  font-size: 0.68rem;
  line-height: 1.22;
  margin: 0;
}
.edit-context-help > span {
  display: block;
}
.edit-context-help p {
  padding: var(--ui-text-pad);
}
.edit-panel-compact {
  padding: var(--edit-ref-pad);
  gap: var(--edit-ref-gap);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.edit-panel-compact > * {
  grid-column: 1 / -1;
}
/* Bandeau du panneau : cadre primaire comme le panneau lui-meme. Les champs
   restent un cran en dessous sur --area-frame. */
.edit-panel-compact .edit-panel-head {
  border: 1px solid var(--ui-frame);
  background: var(--ui-frame-soft);
  padding: var(--ui-text-pad);
  margin-bottom: 0;
}
.edit-panel-compact .edit-panel-head span {
  margin-bottom: 1px;
  font-size: 0.62rem;
}
.edit-panel-compact .edit-panel-head h1 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.15;
}
.edit-compact-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--edit-ref-gap);
}
.edit-compact-grid .edit-field-collection {
  grid-column: 1 / -1;
}
.edit-panel-compact .edit-field {
  border: 1px solid var(--area-frame);
  background:
    linear-gradient(90deg, var(--area-frame-soft) 0%, rgba(var(--surface-rgb), 0.74) 62%, rgba(var(--surface-rgb), 0.9) 100%);
  padding: var(--edit-ref-pad);
  display: grid;
  gap: var(--edit-ref-gap);
  min-width: 0;
  align-content: start;
}
.edit-reference-grid .edit-field-name,
.edit-reference-grid .edit-field-people,
.edit-reference-grid .edit-field-city,
.edit-reference-grid .edit-field-year,
.edit-reference-grid .edit-field-status,
.edit-reference-grid .edit-field-category,
.edit-artist-grid .edit-field-name,
.edit-artist-grid .edit-field-alias,
.edit-artist-grid .edit-field-country,
.edit-artist-grid .edit-field-profession,
.edit-artist-grid .edit-field-birth,
.edit-artist-grid .edit-field-status {
  grid-column: span 3;
}
.edit-panel-compact .edit-field-status {
  border-color: var(--success);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--success) 26%, var(--surface) 74%) 0%, rgba(var(--surface-rgb), 0.86) 100%);
}
.edit-panel-compact .edit-field-status > span {
  color: var(--success);
}
.edit-panel-compact .edit-field-status select {
  border-color: var(--success);
  background-color: color-mix(in srgb, var(--success) 16%, var(--surface) 84%);
}
.edit-panel-compact .edit-field > span,
.edit-panel-compact .edit-field label > span,
.edit-panel-compact .people-field-label,
.edit-panel-compact .links-editor-label {
  color: var(--fg-muted);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  margin: 0;
}
.edit-panel-compact .edit-field > label,
.edit-panel-compact .edit-field .people-field,
.edit-panel-compact .edit-field .links-editor {
  display: grid;
  gap: var(--edit-ref-gap);
}
.edit-panel-compact .edit-field input:not([type="hidden"]):not([type="file"]),
.edit-panel-compact .edit-field textarea,
.edit-panel-compact .edit-field select {
  border-color: var(--border-soft);
  background: rgba(var(--surface-rgb), 0.96);
  padding: var(--ui-control-pad-y) var(--ui-control-pad-x);
  min-height: var(--edit-ref-control);
}
.contribution-page[data-category-accent-active="true"] .edit-panel-reference .edit-field:not(.edit-field-status) input:not([type="hidden"]):not([type="file"]),
.contribution-page[data-category-accent-active="true"] .edit-panel-reference .edit-field:not(.edit-field-status) textarea,
.contribution-page[data-category-accent-active="true"] .edit-panel-reference .edit-field:not(.edit-field-status) select {
  border-color: color-mix(in srgb, var(--category-accent) 64%, var(--border-soft) 36%);
}
.edit-panel-compact .people-field {
  grid-template-columns: minmax(0, 1fr) var(--edit-ref-control);
  align-items: start;
}
.edit-panel-compact .people-field-label {
  grid-column: 1 / -1;
}
.edit-panel-compact .people-rows {
  grid-column: 1;
  grid-row: 2;
  gap: var(--edit-ref-gap);
}
.edit-panel-compact .people-row {
  grid-template-columns: minmax(0, 1fr) var(--edit-ref-control);
  gap: var(--edit-ref-gap);
}
.edit-panel-compact .people-row input[type="text"] {
  min-height: var(--edit-ref-control);
  padding: var(--ui-control-pad-y) var(--ui-control-pad-x);
}
.edit-panel-compact .people-field .people-row-remove,
.edit-panel-compact .people-field .people-row-add {
  width: var(--edit-ref-control);
  min-width: var(--edit-ref-control);
  max-width: var(--edit-ref-control);
  height: var(--edit-ref-control);
  min-height: var(--edit-ref-control);
}
.edit-panel-compact .people-field .people-row-add {
  grid-column: 2;
  grid-row: 2;
}
.edit-panel-compact .edit-field-description textarea {
  min-height: 264px;
}
.edit-panel-compact .edit-field-upload input[type="file"] {
  font-size: 0.66rem;
  line-height: var(--edit-compact-action-height);
  min-height: 0;
}
.edit-panel-compact .edit-field-upload input[type="file"]::file-selector-button {
  width: var(--edit-compact-button-width);
  height: var(--edit-compact-action-height);
  min-height: var(--edit-compact-action-height);
  padding: 0 7px;
  line-height: var(--ui-button-line-height);
}
.edit-panel-compact .edit-field-upload {
  grid-column: 1;
}
.edit-panel-compact .edit-field-links {
  grid-column: 2;
  gap: 0;
}
.edit-panel-compact .edit-field-upload,
.edit-panel-compact .edit-field-links {
  align-content: start;
}
.edit-panel-compact .links-editor {
  display: grid;
  gap: var(--edit-ref-gap);
  align-items: start;
  line-height: 1.2;
}
.edit-panel-compact .links-editor-label {
  line-height: 1.2;
}
.edit-panel-compact .links-editor .link-add-btn {
  justify-self: start;
  width: var(--edit-compact-button-width);
  height: var(--edit-compact-action-height);
  min-height: var(--edit-compact-action-height);
  margin: 0;
  padding: 0 7px;
  line-height: var(--ui-button-line-height);
}
.edit-panel-compact .links-list {
  margin-top: 0;
}
.edit-panel-compact .links-list:empty {
  display: none;
  margin: 0;
}
.edit-panel-compact .links-list:not(:empty) + .link-add-btn {
  margin-top: 0;
}
.edit-page:has(.edit-panel-compact) .form-actions button {
  border: 1px solid var(--area-submit-border);
  background: var(--area-submit-bg);
  color: var(--fg);
  font-family: inherit;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  line-height: var(--ui-control-line-height);
  text-transform: uppercase;
  height: var(--ui-button-height);
  padding: var(--ui-button-pad);
}
.edit-page:has(.edit-panel-compact) .edit-floating-submit button {
  width: var(--ui-action-width);
}

@media (max-width: 1100px) {
  .edit-page:has(.edit-panel-compact) .edit-context-note {
    position: static;
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    width: 100%;
    transform: none;
  }
}

@media (max-width: 980px) {
  .edit-switcher,
  .edit-page-actions .edit-actions {
    position: static;
    transform: none;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    grid-column: 1;
    grid-row: auto;
    margin-bottom: var(--ui-frame-gap);
    justify-self: stretch;
  }
  .edit-switcher + .edit-panel,
  .contribution-page.has-contribution-selection .edit-panel,
  .edit-page-actions .edit-panel {
    grid-row: auto;
  }
}

@media (max-width: 620px) {
  .edit-panel-head {
    display: grid;
  }
  .edit-page {
    display: grid;
    gap: var(--ui-panel-gap);
    grid-template-columns: minmax(0, 1fr);
  }
  .edit-switcher {
    width: min(var(--content-rail-width), calc(100vw - 2rem));
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-row: auto;
    justify-self: stretch;
    transform: none;
  }
  .contribution-switcher {
    grid-template-columns: minmax(0, 1fr);
  }
  .edit-switcher + .edit-panel {
    grid-row: auto;
  }
}

@media (max-width: 720px) {
  .edit-page:has(.edit-panel-compact) {
    grid-template-columns: minmax(0, min(var(--content-rail-width), calc(100vw - 2rem)));
  }
  .edit-page:has(.edit-panel-compact) .edit-context-note {
    position: static;
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    width: 100%;
    transform: none;
  }
  .edit-compact-grid {
    grid-template-columns: 1fr;
  }
  .edit-panel-compact {
    grid-template-columns: 1fr;
  }
  .edit-panel-compact .edit-field-name,
  .edit-panel-compact .edit-field-people,
  .edit-panel-compact .edit-field-year,
  .edit-panel-compact .edit-field-city,
  .edit-panel-compact .edit-field-category,
  .edit-panel-compact .edit-field-alias,
  .edit-panel-compact .edit-field-country,
  .edit-panel-compact .edit-field-profession,
  .edit-panel-compact .edit-field-birth,
  .edit-panel-compact .edit-field-status,
  .edit-panel-compact .edit-field-upload,
  .edit-panel-compact .edit-field-links {
    grid-column: 1;
  }
  .edit-page-actions .edit-actions {
    position: static;
    transform: none;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    grid-column: 1;
    grid-row: auto;
    margin-bottom: 8px;
    justify-self: stretch;
  }
  .edit-page-actions .edit-panel {
    grid-row: auto;
  }
}
