:root {
  --wine-950: #2b0710;
  --wine-900: #3f0b17;
  --wine-800: #5a1121;
  --wine-700: #741a2e;
  --wine-600: #92243d;
  --rose: #d999a8;
  --gold: #c8a96d;
  --gold-light: #ead5a9;
  --ink: #241c19;
  --muted: #786c66;
  --paper: #fffdf9;
  --ivory: #f4efe7;
  --ivory-deep: #eae1d4;
  --line: #ded4c7;
  --success: #2f6a54;
  --danger: #a23446;
  --shadow: 0 22px 58px rgba(44, 23, 16, 0.15);
}
.gallery-cover{width:72px;height:54px;flex:0 0 72px;border:1px solid var(--line);border-radius:4px;background:#e8ded2;object-fit:cover}.gallery-cover.empty{display:grid;color:var(--wine);font-size:1.4rem;place-items:center}.youtube-deposit{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0;padding:18px;border:1px solid #d8b568;background:#fff8df}.youtube-deposit legend{padding:0 8px;color:var(--wine);font-weight:800}.youtube-deposit p{grid-column:1/-1;margin:0;color:var(--muted);line-height:1.5}.youtube-deposit label{display:grid;gap:6px;font-size:.72rem;font-weight:800}.youtube-deposit input{min-height:42px;padding:9px 11px;border:1px solid var(--line);background:#fff}.upload-or{display:flex;align-items:center;gap:10px;margin:8px 0;color:var(--muted);font-size:.7rem;text-transform:uppercase}.upload-or::before,.upload-or::after{height:1px;flex:1;background:var(--line);content:""}.media-preview-content iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.account-permanent-delete{grid-column:1/-1;padding:8px 12px;border-top:1px solid var(--line)}.account-permanent-delete summary{color:var(--muted);font-size:.72rem;cursor:pointer}.account-permanent-delete .danger-button{margin-top:8px}.account-data{margin-top:18px}.statistics-page{display:grid;gap:22px}@media(max-width:720px){.youtube-deposit{grid-template-columns:1fr}.youtube-deposit p{grid-column:auto}.gallery-cover{width:54px;height:46px;flex-basis:54px}}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--ivory);
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}

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

button,
select,
input[type="file"] {
  cursor: pointer;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

button:disabled,
select:disabled,
input:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

a {
  color: inherit;
}

.hidden {
  display: none !important;
}

.eyebrow {
  margin: 0 0 12px;
  color: var(--wine-700);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.primary-button,
.secondary-button,
.deposit-button,
.danger-button {
  border: 0;
  border-radius: 2px;
  font-weight: 800;
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.primary-button,
.deposit-button {
  padding: 14px 22px;
  background: var(--wine-700);
  box-shadow: 0 9px 24px rgba(116, 26, 46, 0.19);
  color: #fff;
}

.primary-button:hover,
.deposit-button:hover {
  background: var(--wine-600);
  transform: translateY(-1px);
}

.primary-button.full {
  display: block;
  width: 100%;
  text-align: center;
  text-decoration: none;
}

.secondary-button {
  padding: 10px 15px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--wine-800);
}

.secondary-button:hover {
  border-color: var(--gold);
  box-shadow: 0 5px 18px rgba(44, 23, 16, 0.09);
}

.danger-button {
  padding: 10px 14px;
  border: 1px solid #e2aeba;
  background: #fff4f6;
  color: var(--danger);
}

.text-button,
.icon-button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--wine-700);
}

.text-button {
  border-bottom: 1px solid currentColor;
  font-size: 0.78rem;
}

.text-button.light {
  color: #f0dce1;
}

.icon-button {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  color: white;
  font-size: 1rem;
}

.auth-page {
  background: var(--wine-950);
}

.auth-shell {
  position: relative;
  display: grid;
  min-height: 100vh;
  overflow: hidden;
  padding: 100px 28px 72px;
  background:
    radial-gradient(circle at 50% 48%, rgba(201, 169, 109, 0.18), transparent 34%),
    linear-gradient(140deg, #26060d, #4c0d1a 47%, #2c0710);
  color: #fff8ee;
  place-items: center;
}

.auth-shell::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
  background-size: 90px 90px;
  content: "";
}

.curtain {
  position: absolute;
  top: -8%;
  bottom: -8%;
  width: 29vw;
  min-width: 300px;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.3), transparent 18% 72%, rgba(0, 0, 0, 0.4)),
    repeating-linear-gradient(90deg, #450a17 0 54px, #6f1628 78px, #3c0712 112px);
  box-shadow: 0 0 100px rgba(0, 0, 0, 0.42);
  opacity: 0.68;
}

.curtain-left {
  left: -18vw;
  transform: skewX(-3deg);
}

.curtain-right {
  right: -18vw;
  transform: skewX(3deg) scaleX(-1);
}

.auth-brand {
  position: absolute;
  z-index: 2;
  top: 30px;
  left: 38px;
  display: flex;
  align-items: center;
  gap: 13px;
}

.auth-brand span,
.brand-mark {
  display: grid;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-family: Georgia, "Times New Roman", serif;
  place-items: center;
}

.auth-brand span {
  width: 42px;
  height: 42px;
  border-radius: 50%;
}

.auth-brand p {
  max-width: 190px;
  margin: 0;
  color: #d6bfc3;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.8rem;
  line-height: 1.35;
}

.auth-card {
  position: relative;
  z-index: 2;
  width: min(100%, 600px);
  padding: 50px 58px;
  border: 1px solid rgba(220, 182, 112, 0.38);
  background: rgba(46, 8, 16, 0.82);
  box-shadow: 0 35px 90px rgba(0, 0, 0, 0.38);
  text-align: center;
  backdrop-filter: blur(18px);
}

.auth-card .eyebrow {
  color: var(--gold);
}

.auth-card h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 7vw, 4.8rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.86;
}

.auth-intro {
  max-width: 440px;
  margin: 25px auto 30px;
  color: #d4bec2;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.04rem;
  line-height: 1.6;
}

.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 26px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.auth-tabs button {
  padding: 13px 8px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: #a98e94;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.auth-tabs button.active {
  border-bottom-color: var(--gold);
  color: #fff;
}

.stack-form {
  display: grid;
  gap: 16px;
  text-align: left;
}

.stack-form label,
.form-grid label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.auth-card .stack-form label {
  color: #d7c2c6;
}

input,
select,
textarea {
  width: 100%;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: white;
  color: var(--ink);
  letter-spacing: normal;
  text-transform: none;
}

textarea {
  resize: vertical;
}

.auth-card input {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: white;
}

.auth-card .text-button {
  justify-self: center;
  color: #d9bdc3;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.form-grid .wide {
  grid-column: 1 / -1;
}

.form-message,
.form-help,
.form-error {
  margin: 4px 0 0;
  font-size: 0.82rem;
  line-height: 1.5;
}

.form-message {
  min-height: 20px;
  color: var(--gold-light);
}

.form-message.error,
.form-error {
  color: #ffb6c3;
}

.auth-footer {
  position: absolute;
  z-index: 2;
  bottom: 27px;
  margin: 0;
  color: #a98d94;
  font-size: 0.66rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.install-shell {
  padding-top: 82px;
}

.install-shell .auth-card {
  width: min(100%, 780px);
}

.stack-form fieldset {
  padding: 19px;
  border: 1px solid rgba(255, 255, 255, 0.17);
}

.stack-form legend {
  padding: 0 8px;
  color: var(--gold-light);
  font-family: Georgia, "Times New Roman", serif;
}

.app-shell {
  min-height: 100vh;
}

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto minmax(350px, 1fr);
  align-items: center;
  min-height: 82px;
  padding: 0 28px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background: linear-gradient(100deg, var(--wine-950), var(--wine-800));
  box-shadow: 0 8px 30px rgba(43, 7, 16, 0.18);
  color: white;
}

.site-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  flex: 0 0 auto;
}

.site-brand > span:last-child {
  display: grid;
  gap: 3px;
}

.site-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.06rem;
  font-weight: 400;
}

.site-brand small {
  color: #c9aeb5;
  font-size: 0.62rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.top-nav {
  display: flex;
  align-self: stretch;
}

.top-nav button {
  position: relative;
  padding: 0 17px;
  border: 0;
  background: none;
  color: #cdb7bc;
  font-size: 0.74rem;
  font-weight: 800;
}

.top-nav button::after {
  position: absolute;
  right: 17px;
  bottom: 0;
  left: 17px;
  height: 3px;
  background: transparent;
  content: "";
}

.top-nav button.active {
  color: white;
}

.top-nav button.active::after {
  background: var(--gold);
}

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}

.deposit-button {
  padding: 11px 15px;
  border: 1px solid var(--gold);
  background: var(--gold);
  color: var(--wine-950);
  box-shadow: none;
}

.deposit-button:hover {
  background: var(--gold-light);
}

.user-menu {
  display: flex;
  align-items: center;
  gap: 8px;
}

.user-menu > span {
  display: grid;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: var(--gold-light);
  font-family: Georgia, "Times New Roman", serif;
  place-items: center;
}

.user-menu div {
  display: grid;
  gap: 2px;
}

.user-menu strong {
  font-size: 0.72rem;
}

.user-menu small {
  color: #b99ea4;
  font-size: 0.62rem;
}

.workspace {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-height: calc(100vh - 82px);
}

.source-sidebar {
  padding: 35px 22px;
  border-right: 1px solid var(--line);
  background: #ede6dc;
}

.sidebar-label {
  margin: 0 10px 13px;
  color: #978880;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.source-card {
  display: grid;
  grid-template-columns: 34px 1fr auto;
  align-items: center;
  width: 100%;
  margin-bottom: 7px;
  padding: 14px 12px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.source-card:hover {
  background: rgba(255, 255, 255, 0.56);
}

.source-card.active {
  border-color: #d6c7b6;
  background: var(--paper);
  box-shadow: 0 7px 24px rgba(45, 28, 20, 0.08);
}

.source-icon {
  color: var(--wine-700);
  font-size: 1.1rem;
}

.source-card > span:nth-child(2) {
  display: grid;
  gap: 3px;
}

.source-card strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.92rem;
}

.source-card small {
  color: var(--muted);
  font-size: 0.65rem;
}

.source-card b {
  display: grid;
  min-width: 25px;
  height: 25px;
  padding: 0 6px;
  border-radius: 99px;
  background: #e5d9cb;
  color: var(--wine-700);
  font-size: 0.67rem;
  place-items: center;
}

.sidebar-note {
  margin: 36px 10px 0;
  padding-top: 23px;
  border-top: 1px solid #d7cbbe;
}

.sidebar-note strong {
  color: var(--wine-700);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.sidebar-note p {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.55;
}

.content-area {
  min-width: 0;
  padding: 44px clamp(25px, 4vw, 62px) 70px;
}

.content-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 30px;
}

.content-heading h1 {
  margin: 0 0 9px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem, 4vw, 4.2rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.95;
}

.content-heading > div > p:last-child {
  max-width: 680px;
  margin: 0;
  color: var(--muted);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.5;
}

.view-controls {
  display: flex;
  padding: 3px;
  border: 1px solid var(--line);
  background: #ebe3d8;
}

.view-controls button {
  width: 39px;
  height: 35px;
  border: 0;
  background: transparent;
  color: var(--muted);
}

.view-controls button.active {
  background: var(--paper);
  box-shadow: 0 3px 10px rgba(45, 28, 20, 0.09);
  color: var(--wine-700);
}

.gallery-toolbar {
  display: flex;
  align-items: flex-end;
  gap: 17px;
  margin-bottom: 24px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 249, 0.75);
}

.gallery-toolbar label {
  display: grid;
  min-width: min(420px, 45vw);
  gap: 5px;
  color: var(--muted);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.gallery-toolbar select {
  min-height: 40px;
  padding: 8px 11px;
}

.gallery-summary {
  display: grid;
  min-width: 150px;
  margin-right: auto;
  gap: 3px;
}

.gallery-summary strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.9rem;
  font-weight: 400;
}

.gallery-summary span {
  color: var(--muted);
  font-size: 0.68rem;
}

.gallery-grid {
  display: grid;
  gap: 18px;
}

.gallery-grid.uniform {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.gallery-grid.original {
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  align-items: start;
}

.media-card {
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: 0 9px 25px rgba(57, 36, 27, 0.07);
  animation: media-in 420ms ease both;
  animation-delay: var(--delay);
}

@keyframes media-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.media-open {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: #d7cfc5;
}

.uniform .media-open {
  aspect-ratio: 4 / 3;
}

.original .media-open {
  min-height: 190px;
}

.media-open img,
.media-open video {
  display: block;
  width: 100%;
  transition: transform 380ms ease, filter 380ms ease;
}

.uniform .media-open img,
.uniform .media-open video {
  height: 100%;
  object-fit: cover;
}

.original .media-open img,
.original .media-open video {
  height: auto;
  max-height: 560px;
  object-fit: contain;
}

.media-card:hover .media-open img,
.media-card:hover .media-open video {
  filter: saturate(1.05);
  transform: scale(1.025);
}

.video-badge {
  position: absolute;
  right: 10px;
  bottom: 10px;
  padding: 6px 9px;
  border-radius: 99px;
  background: rgba(43, 7, 16, 0.8);
  color: white;
  font-size: 0.62rem;
  font-weight: 800;
}

.media-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 14px;
}

.media-meta > div {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.media-meta strong {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.83rem;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-meta small {
  color: var(--muted);
  font-size: 0.62rem;
}

.media-state {
  color: var(--gold);
  font-size: 0.68rem;
  font-weight: 800;
}

.empty-state {
  grid-column: 1 / -1;
  display: grid;
  min-height: 360px;
  padding: 60px 25px;
  border: 1px dashed #cfc0af;
  background: rgba(255, 253, 249, 0.55);
  text-align: center;
  place-items: center;
  place-content: center;
}

.empty-state > span {
  margin-bottom: 15px;
  color: var(--gold);
  font-size: 2rem;
}

.empty-state h3 {
  margin: 0 0 9px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.7rem;
  font-weight: 400;
}

.empty-state p {
  max-width: 480px;
  margin: 0 0 22px;
  color: var(--muted);
  line-height: 1.5;
}

.modal-open {
  overflow: hidden;
}

.overlay {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  overflow-y: auto;
  padding: 36px 20px;
  background: rgba(32, 10, 15, 0.72);
  backdrop-filter: blur(7px);
  place-items: center;
}

.modal {
  position: relative;
  width: min(100%, 760px);
  max-height: calc(100vh - 72px);
  padding: 39px;
  overflow-y: auto;
  border: 1px solid #d6c9b9;
  background: var(--paper);
  box-shadow: 0 35px 100px rgba(19, 5, 9, 0.38);
}

.modal-close {
  position: absolute;
  z-index: 2;
  top: 14px;
  right: 14px;
  display: grid;
  width: 36px;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  color: var(--wine-700);
  font-size: 1.45rem;
  place-items: center;
}

.modal h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 400;
  letter-spacing: -0.04em;
}

.modal-intro {
  max-width: 610px;
  margin: 14px 0 25px;
  color: var(--muted);
  line-height: 1.55;
}

.choice-fieldset {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 0;
  border: 0;
}

.choice-fieldset legend {
  grid-column: 1 / -1;
  margin-bottom: 7px;
  padding: 0;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.choice-card {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: center;
  min-height: 82px;
  padding: 15px;
  border: 1px solid var(--line);
  background: #fbf7f1;
  cursor: pointer;
}

.choice-card:has(input:checked) {
  border-color: var(--wine-700);
  box-shadow: inset 0 0 0 1px var(--wine-700);
}

.choice-card input {
  width: 17px;
  min-height: auto;
  margin: 0 12px 0 0;
}

.choice-card span {
  display: grid;
  gap: 4px;
}

.choice-card strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.9rem;
  letter-spacing: normal;
  text-transform: none;
}

.choice-card small {
  color: var(--muted);
  font-weight: 400;
  letter-spacing: normal;
  line-height: 1.35;
  text-transform: none;
}

.drop-zone {
  min-height: 180px;
  padding: 25px;
  border: 1px dashed #bda991;
  background: #f7f0e7;
  text-align: center;
  place-items: center;
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.drop-zone:hover,
.drop-zone.drag-active {
  border-color: var(--wine-700);
  background: #f0e2d4;
  box-shadow: inset 0 0 0 1px var(--wine-700);
}

.drop-zone input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.drop-zone .drop-icon {
  display: grid;
  width: 50px;
  height: 50px;
  margin-bottom: 5px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--wine-700);
  font-size: 1.6rem;
  place-items: center;
}

.drop-zone strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  letter-spacing: normal;
  text-transform: none;
}

.drop-zone small {
  color: var(--muted);
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
}

.upload-selection {
  overflow: hidden;
  border: 1px solid var(--line);
  background: white;
}

.upload-selection-heading {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  color: var(--wine-700);
  font-size: 0.76rem;
}

.upload-selection-heading span {
  color: var(--muted);
}

.upload-file-list {
  display: grid;
  max-height: 245px;
  overflow-y: auto;
}

.upload-file-list > div {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 11px;
  padding: 10px 12px;
  border-bottom: 1px solid #eee7dd;
}

.upload-file-list > div:last-child {
  border-bottom: 0;
}

.upload-file-kind {
  display: grid;
  width: 40px;
  height: 36px;
  background: #eee3d7;
  color: var(--wine-700);
  place-items: center;
}

.upload-file-list p {
  display: grid;
  min-width: 0;
  margin: 0;
  gap: 3px;
}

.upload-file-list p strong {
  overflow: hidden;
  font-size: 0.74rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.upload-file-list p small {
  color: var(--muted);
  font-size: 0.63rem;
}

.upload-file-list button {
  display: grid;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: white;
  color: var(--wine-700);
  font-size: 1.2rem;
  place-items: center;
}

.upload-modal .form-message.error {
  min-height: 0;
  padding: 11px 13px;
  border-left: 4px solid var(--danger);
  background: #f8e7e9;
  color: #7d1e31;
}

.upload-progress {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid #dac9b2;
  background: #f6efe4;
}

.upload-progress > div {
  display: flex;
  justify-content: space-between;
  color: var(--wine-700);
  font-size: 0.76rem;
}

.upload-progress progress {
  width: 100%;
  height: 10px;
  accent-color: var(--wine-700);
}

.upload-progress small {
  color: var(--muted);
  font-size: 0.65rem;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.modal-actions .primary-button {
  min-width: 230px;
}

.media-modal {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(290px, 0.75fr);
  width: min(100%, 1120px);
  padding: 0;
  overflow: hidden;
}

.media-preview {
  position: relative;
  display: grid;
  min-height: 610px;
  overflow: hidden;
  background: #1b1110;
  touch-action: pan-y;
  place-items: center;
}

.media-preview-content {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
}

.media-preview img,
.media-preview video {
  display: block;
  width: 100%;
  max-height: calc(100vh - 72px);
  object-fit: contain;
}

.media-navigation {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: grid;
  width: 50px;
  height: 66px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.46);
  border-radius: 3px;
  background: rgba(45, 7, 16, 0.76);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.35rem;
  line-height: 1;
  transform: translateY(-50%);
  place-items: center;
}

.media-navigation:hover {
  background: rgba(100, 20, 38, 0.96);
}

.media-navigation.previous {
  left: 16px;
}

.media-navigation.next {
  right: 16px;
}

.media-position {
  position: absolute;
  right: 50%;
  bottom: 15px;
  padding: 6px 10px;
  border-radius: 99px;
  background: rgba(45, 7, 16, 0.8);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 800;
  transform: translateX(50%);
}

.media-details {
  padding: 44px 32px 32px;
  overflow-y: auto;
}

.media-details h2 {
  overflow-wrap: anywhere;
  font-size: 2rem;
}

.media-details > p:not(.eyebrow) {
  color: var(--muted);
  line-height: 1.5;
}

.media-details label,
.owner-controls label {
  display: grid;
  margin: 16px 0;
  gap: 7px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.rating {
  display: flex;
  gap: 3px;
}

.rating button {
  padding: 3px;
  border: 0;
  background: none;
  color: #d7ccbd;
  font-size: 1.5rem;
}

.rating button.active {
  color: var(--gold);
}

.check-row {
  display: flex !important;
  align-items: center;
  gap: 9px !important;
}

.check-row input {
  width: 17px;
  min-height: auto;
}

.owner-controls {
  margin: 18px 0;
  padding: 15px;
  border: 1px solid var(--line);
  background: #f8f2ea;
}

.compact-modal {
  width: min(100%, 560px);
}

.admin-modal {
  width: min(100%, 1040px);
}

.admin-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}

.version-pill {
  padding: 7px 10px;
  border: 1px solid var(--line);
  background: var(--ivory);
  color: var(--wine-700);
  font-size: 0.7rem;
  font-weight: 800;
}

.admin-principle {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 20px;
  margin-bottom: 24px;
  padding: 18px;
  border-left: 4px solid var(--gold);
  background: #f5ede2;
}

.admin-principle strong {
  color: var(--wine-700);
  font-family: Georgia, "Times New Roman", serif;
}

.admin-principle p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.admin-user-head,
.admin-user-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 160px 150px 110px;
  align-items: center;
  gap: 12px;
}

.admin-user-head {
  padding: 10px 13px;
  color: var(--muted);
  font-size: 0.63rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.admin-user-row {
  padding: 13px;
  border-top: 1px solid var(--line);
}

.admin-user-row > div {
  display: grid;
  gap: 4px;
}

.admin-user-row strong {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.admin-user-row small {
  color: var(--muted);
  font-size: 0.68rem;
}

.admin-user-row select {
  min-height: 38px;
  padding: 7px 9px;
}

#toast {
  position: fixed;
  z-index: 200;
  right: 25px;
  bottom: 25px;
  max-width: 410px;
  padding: 14px 18px;
  background: var(--success);
  box-shadow: var(--shadow);
  color: white;
  font-size: 0.82rem;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity 180ms ease, transform 180ms ease;
}

#toast.show {
  opacity: 1;
  transform: translateY(0);
}

#toast.error {
  background: var(--danger);
}

@media (max-width: 1120px) {
  .site-header {
    grid-template-columns: 1fr auto;
  }

  .top-nav {
    position: fixed;
    z-index: 30;
    right: 0;
    bottom: 0;
    left: 0;
    height: 62px;
    justify-content: center;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    background: var(--wine-950);
  }

  .top-nav button {
    flex: 1;
    max-width: 220px;
  }

  .workspace {
    min-height: calc(100vh - 144px);
    padding-bottom: 62px;
  }

  .user-menu div,
  .header-actions .text-button {
    display: none;
  }
}

@media (max-width: 850px) {
  .site-header {
    min-height: 72px;
    padding: 0 16px;
  }

  .site-brand small,
  .user-menu {
    display: none;
  }

  .deposit-button {
    font-size: 0.7rem;
  }

  .workspace {
    display: block;
  }

  .source-sidebar {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 13px 15px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .sidebar-label,
  .sidebar-note {
    display: none;
  }

  .source-card {
    min-width: 210px;
    margin: 0;
  }

  .content-area {
    padding: 31px 18px 60px;
  }

  .gallery-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .gallery-toolbar label {
    min-width: 0;
  }

  .media-modal {
    display: block;
    overflow-y: auto;
  }

  .media-preview {
    min-height: 300px;
  }

  .admin-user-head {
    display: none;
  }

  .admin-user-row {
    grid-template-columns: 1fr 1fr;
  }

  .admin-user-row > div,
  .admin-user-row button {
    grid-column: 1 / -1;
  }
}

@media (max-width: 600px) {
  .auth-shell {
    padding: 86px 15px 50px;
    place-items: start center;
  }

  .auth-brand {
    top: 18px;
    left: 20px;
  }

  .auth-card {
    padding: 35px 22px;
  }

  .auth-card h1 {
    font-size: 3.2rem;
  }

  .auth-footer,
  .curtain {
    display: none;
  }

  .form-grid,
  .choice-fieldset {
    grid-template-columns: 1fr;
  }

  .form-grid .wide {
    grid-column: auto;
  }

  .site-brand strong {
    font-size: 0.9rem;
  }

  .brand-mark {
    width: 36px;
    height: 36px;
  }

  .deposit-button {
    padding: 9px 10px;
  }

  .header-actions {
    gap: 7px;
  }

  .content-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .content-heading h1 {
    font-size: 2.55rem;
  }

  .gallery-grid.uniform,
  .gallery-grid.original {
    grid-template-columns: 1fr;
  }

  .modal {
    padding: 34px 20px 24px;
  }

  .media-modal {
    padding: 0;
  }

  .media-navigation {
    width: 42px;
    height: 56px;
  }

  .media-navigation.previous {
    left: 9px;
  }

  .media-navigation.next {
    right: 9px;
  }

  .media-details {
    padding: 34px 20px 22px;
  }

  .modal-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .modal-actions .primary-button {
    min-width: 0;
  }

  .admin-principle {
    grid-template-columns: 1fr;
  }

  .admin-user-row {
    grid-template-columns: 1fr;
  }

  .admin-user-row > div,
  .admin-user-row button {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.user-menu {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}

.settings-link {
  display: flex;
  align-items: center;
  width: 100%;
  margin-top: 20px;
  padding: 13px 12px;
  border: 1px solid #d6c7b6;
  background: rgba(255, 253, 248, 0.7);
  color: var(--ink);
  gap: 11px;
  text-align: left;
}

.settings-link > span:first-child {
  color: var(--wine);
  font-size: 1.2rem;
}

.settings-link > span:last-child {
  display: grid;
  gap: 3px;
}

.settings-link strong {
  font-family: Georgia, serif;
  font-size: 0.88rem;
}

.settings-link small {
  color: var(--muted);
  font-size: 0.63rem;
}

.selection-drawer {
  position: fixed;
  z-index: 80;
  right: 22px;
  bottom: 22px;
  width: min(390px, calc(100vw - 44px));
  padding: 15px;
  border: 1px solid #d2c0a8;
  background: rgba(255, 253, 248, 0.98);
  box-shadow: 0 20px 60px rgba(37, 11, 17, 0.28);
  backdrop-filter: blur(14px);
}

.selection-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
}

.selection-drawer-head > div {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 2px 9px;
}

.selection-drawer-head p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--wine);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.selection-drawer-head strong {
  font-family: Georgia, serif;
  font-size: 1.05rem;
  font-weight: 400;
}

.selection-drawer-head small {
  color: var(--muted);
  font-size: 0.64rem;
}

.selection-thumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 12px 0;
}

.selection-thumbs button,
.selection-more {
  display: grid;
  width: 43px;
  height: 43px;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--line);
  background: #e8ded2;
  color: var(--wine);
  font-size: 0.68rem;
  font-weight: 800;
  place-items: center;
}

.selection-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.selection-more {
  border-radius: 50%;
}

.selection-drawer-actions {
  display: flex;
  gap: 8px;
}

.selection-drawer-actions .primary-button,
.selection-drawer-actions .secondary-button {
  flex: 1;
  text-align: center;
  text-decoration: none;
}

.settings-modal {
  width: min(100%, 960px);
}

.settings-identity {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 22px 0;
  padding: 16px;
  border-left: 4px solid var(--gold);
  background: var(--ivory);
}

.settings-identity > span {
  display: grid;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--wine);
  color: #fff;
  font-family: Georgia, serif;
  font-size: 1.2rem;
  place-items: center;
}

.settings-identity > div {
  display: grid;
  gap: 4px;
}

.settings-identity strong {
  font-family: Georgia, serif;
  font-size: 1.05rem;
  font-weight: 400;
}

.settings-identity small {
  color: var(--muted);
  font-size: 0.68rem;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.stat-card {
  display: grid;
  align-content: start;
  min-height: 126px;
  padding: 16px;
  border: 1px solid var(--line);
  background: #fff;
}

.stat-card strong {
  color: var(--wine);
  font-family: Georgia, serif;
  font-size: 2rem;
  font-weight: 400;
}

.stat-card span {
  margin-top: 4px;
  color: var(--ink);
  font-size: 0.69rem;
  font-weight: 800;
}

.stat-card small {
  margin-top: auto;
  padding-top: 8px;
  color: var(--muted);
  font-size: 0.62rem;
}

.settings-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}

.settings-summary article {
  display: grid;
  gap: 5px;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--ivory);
}

.settings-summary .eyebrow {
  margin-bottom: 4px;
}

.settings-summary strong {
  font-family: Georgia, serif;
  font-weight: 400;
}

.settings-summary span {
  color: var(--muted);
  font-size: 0.67rem;
}

.global-stats {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.global-stats > div {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.batch-modal fieldset {
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
}

.batch-modal legend {
  padding: 0 6px;
  color: var(--muted);
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
}

@media (max-width: 850px) {
  .settings-link {
    min-width: 210px;
    margin-top: 0;
  }

  .selection-drawer {
    bottom: 76px;
  }

  .stats-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 600px) {
  .selection-drawer {
    right: 12px;
    bottom: 74px;
    width: calc(100vw - 24px);
  }

  .selection-thumbs button:nth-child(n + 5) {
    display: none;
  }

  .selection-drawer-actions {
    flex-direction: column;
  }

  .stats-grid,
  .settings-summary,
  .global-stats > div {
    grid-template-columns: 1fr;
  }
}

/* Version 4.2 */
.media-controls{position:sticky;z-index:15;top:94px;display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(220px,320px);align-items:center;gap:18px;margin:0 0 18px;padding:12px 14px;border:1px solid var(--line);background:rgba(255,253,249,.96);box-shadow:0 8px 24px rgba(45,28,20,.08);backdrop-filter:blur(12px)}
.selection-controls{display:flex;align-items:center;gap:8px}.selection-controls button,.pagination button{padding:8px 10px;border:1px solid var(--line);background:#fff;color:var(--wine-800);font-size:.68rem;font-weight:800}.selection-controls span{color:var(--muted);font-size:.68rem}.page-size-control,.columns-control{display:grid;gap:5px;color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase}.page-size-control select{min-height:34px;padding:5px 8px;border:1px solid var(--line);background:#fff}.columns-control span{display:flex;justify-content:space-between}.columns-control input{width:100%;accent-color:var(--wine-700)}
.gallery-grid.uniform,.gallery-grid.original{grid-template-columns:repeat(var(--gallery-columns,4),minmax(0,1fr))}.media-card{position:relative}.media-card.bulk-selected{border-color:var(--wine-700);box-shadow:0 0 0 2px rgba(116,26,46,.2)}.media-check{position:absolute;z-index:4;top:9px;left:9px;display:grid;width:30px;height:30px}.media-check input{position:absolute;width:1px;height:1px;opacity:0}.media-check span{display:grid;border:2px solid #fff;border-radius:4px;background:rgba(42,12,19,.78);color:transparent;place-items:center}.media-check input:checked+span{background:var(--wine-700);color:#fff}
.bulk-toolbar{display:flex;align-items:center;gap:10px;margin:-5px 0 18px;padding:12px 14px;border-left:4px solid var(--gold);background:#f5ede2}.bulk-toolbar strong{margin-right:auto}.bulk-toolbar select{min-width:220px;min-height:39px;padding:8px;border:1px solid var(--line);background:#fff}.pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:24px}.pagination span{color:var(--muted);font-size:.72rem}.gallery-move{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px;padding:14px;border:1px solid var(--line);background:var(--ivory)}
.admin-tabs{display:flex;gap:4px;margin:24px 0;border-bottom:1px solid var(--line)}.admin-tabs button{padding:12px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:800}.admin-tabs button.active{border-bottom-color:var(--wine-700);color:var(--wine-700)}.admin-panel{display:grid;gap:12px}.admin-user-card{display:grid;grid-template-columns:minmax(210px,1fr) 150px minmax(260px,1.2fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);background:#fff}.admin-user-card>div{display:grid;gap:3px}.admin-user-card small{color:var(--muted)}.group-checks{display:flex;flex-wrap:wrap;gap:7px 12px}.group-checks label{display:flex;align-items:center;gap:5px;font-size:.68rem}.group-checks input{width:16px;min-height:0}.admin-form{display:grid;grid-template-columns:1fr 160px 1fr auto;align-items:end;gap:12px;padding:16px;border:1px solid var(--line);background:var(--ivory)}.admin-form label{display:grid;gap:6px;color:var(--muted);font-size:.65rem;font-weight:800;text-transform:uppercase}.admin-form input,.admin-form select{min-height:40px;padding:8px;border:1px solid var(--line);background:#fff}.group-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.group-overview article{padding:16px;border:1px solid var(--line);background:#fff}.group-overview ul{display:grid;gap:5px;padding-left:18px}.role-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.role-summary article{padding:15px;border:1px solid var(--line);background:var(--ivory)}.role-summary strong{display:block;color:var(--wine-700);font-family:Georgia,serif;font-size:2rem}.invitation-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);background:#fff}.invite-link{padding:12px;border-left:3px solid var(--gold);background:#fff;word-break:break-all}
@media(max-width:1000px){.media-controls{grid-template-columns:1fr auto}.columns-control{grid-column:1/-1}.admin-user-card{grid-template-columns:1fr 140px}.admin-user-card .group-checks{grid-column:1/-1}.admin-form{grid-template-columns:1fr 1fr}.admin-form .group-checks{grid-column:1/-1}}
@media(max-width:650px){.media-controls{top:76px;grid-template-columns:1fr}.selection-controls{flex-wrap:wrap}.columns-control{grid-column:auto}.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar select{min-width:0}.admin-user-card,.admin-form{grid-template-columns:1fr}.admin-form .group-checks{grid-column:auto}.role-summary{grid-template-columns:1fr 1fr}.gallery-grid.uniform,.gallery-grid.original{grid-template-columns:repeat(var(--gallery-columns,1),minmax(0,1fr))}}

/* Version 4.9 — guides intégrés, filtres de notes et activité administrateur. */
.guide-button{padding:9px 12px;border:1px solid rgba(255,255,255,.35);border-radius:2px;color:#fff;font-size:.69rem;font-weight:800;text-decoration:none}.guide-button:hover{border-color:var(--gold);color:var(--gold-light)}.guide-link{text-decoration:none}.admin-heading-tools{display:flex;align-items:center;gap:9px}.admin-heading-tools a{text-decoration:none;white-space:nowrap}
.rating-filter{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0;padding:9px 0 0;border:0;border-top:1px solid var(--line)}.rating-filter legend{float:left;margin:0 10px 0 0;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.rating-filter button,.rating-filter label{display:flex;align-items:center;gap:5px;min-height:30px;padding:5px 8px;border:1px solid var(--line);background:#fff;color:var(--wine-700);font-size:.66rem;font-weight:800}.rating-filter button.active{border-color:var(--wine-700);background:var(--wine-700);color:#fff}.rating-filter input{width:15px;height:15px;margin:0;accent-color:var(--wine-700)}.rating-filter label>span{color:#c28c21}.rating-filter small{display:grid;min-width:18px;height:18px;border-radius:9px;background:var(--ivory);color:var(--muted);font-size:.55rem;place-items:center}.rating-badge{position:absolute;right:9px;top:9px;display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:99px;background:rgba(45,7,16,.88);color:#f4cb67;font-size:.59rem;letter-spacing:-.08em}.rating-badge b{margin-left:2px;color:#fff;font-size:.6rem;letter-spacing:0}
.activity-page{display:grid;gap:18px}.activity-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:17px;border-left:4px solid var(--gold);background:var(--ivory)}.activity-intro h3,.activity-section h3{margin:3px 0 7px;font-family:Georgia,serif;font-size:1.35rem;font-weight:400}.activity-intro p:last-child{max-width:760px;margin:0;color:var(--muted);font-size:.72rem;line-height:1.55}.activity-intro>span{padding:7px 9px;border:1px solid var(--line);background:#fff;color:var(--wine-700);font-size:.62rem;font-weight:800;white-space:nowrap}.activity-filters{display:grid;grid-template-columns:1fr 1fr 180px;gap:10px}.activity-filters label{display:grid;gap:5px;color:var(--muted);font-size:.62rem;font-weight:900;text-transform:uppercase}.activity-filters select{min-height:42px;padding:8px;border:1px solid var(--line);background:#fff}.activity-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.activity-stats .stat-card{display:grid;min-height:104px;padding:16px;border:1px solid var(--line);background:#fff}.activity-stats .stat-card strong{color:var(--wine-700);font-family:Georgia,serif;font-size:2rem;font-weight:400}.activity-stats .stat-card span{color:var(--muted);font-size:.66rem;font-weight:800}.activity-section{display:grid;gap:9px}.activity-section-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.activity-section-head>span{color:var(--muted);font-size:.65rem}.activity-table-wrap{overflow:auto;border:1px solid var(--line)}.activity-table{width:100%;border-collapse:collapse;background:#fff;font-size:.66rem}.activity-table th{padding:9px;text-align:left;background:var(--ivory);color:var(--muted);font-size:.57rem;text-transform:uppercase}.activity-table td{padding:9px;border-top:1px solid var(--line);vertical-align:top}.activity-table td:first-child{display:grid;gap:2px}.activity-table small{color:var(--muted);font-size:.56rem}.activity-events{display:grid;max-height:390px;overflow:auto;border:1px solid var(--line);background:#fff}.activity-events article{display:grid;grid-template-columns:145px minmax(170px,.8fr) minmax(220px,1.3fr);gap:12px;padding:10px;border-top:1px solid var(--line)}.activity-events article:first-child{border-top:0}.activity-events time,.activity-events small,.activity-events span{color:var(--muted);font-size:.6rem}.activity-events article>div{display:grid;gap:2px}.activity-events b{font-size:.65rem}
@media(max-width:900px){.guide-button{display:none}.activity-filters{grid-template-columns:1fr 1fr}.activity-filters label:last-child{grid-column:1/-1}.activity-stats{grid-template-columns:repeat(3,1fr)}.activity-events article{grid-template-columns:115px 1fr}.activity-events article>div:last-child{grid-column:1/-1}.admin-heading-tools{align-items:flex-end;flex-direction:column}}
@media(max-width:600px){.rating-filter legend{width:100%;margin-bottom:5px}.activity-intro{flex-direction:column}.activity-filters,.activity-stats{grid-template-columns:1fr}.activity-filters label:last-child{grid-column:auto}.activity-events article{grid-template-columns:1fr}.activity-events article>div:last-child{grid-column:auto}.admin-heading-tools a{display:none}}
.selection-drawer-tools{display:flex;align-items:center;gap:12px}.selection-drawer.collapsed{width:min(330px,calc(100vw - 44px));padding-block:12px}.selection-drawer.collapsed .selection-drawer-head{align-items:center}.selection-drawer.collapsed .selection-drawer-head p{display:none}.selection-drawer-actions{flex-wrap:wrap}.selection-drawer-actions .import-button{flex-basis:100%}.owner-controls fieldset{margin:0;padding:12px;border:1px solid var(--line)}.owner-controls legend{padding:0 6px;color:var(--muted);font-size:.65rem;font-weight:800;text-transform:uppercase}.stack-form{display:grid;gap:14px}.stack-form>label{display:grid;gap:6px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.stack-form input,.stack-form select,.stack-form textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);background:#fff;color:var(--ink)}.import-modal{width:min(100%,680px)}
@media(max-width:600px){.selection-drawer.collapsed{width:calc(100vw - 24px)}.selection-drawer-tools{gap:8px}}

/* Version 4.5 — zoom recentré sur le média, sélection en galerie et dépôt continu. */
.media-modal{grid-template-columns:minmax(0,1fr) clamp(230px,18vw,280px);width:min(96vw,1520px);height:min(94dvh,980px);max-height:94dvh}.media-preview{height:100%;min-height:0}.media-preview img,.media-preview video{width:100%;height:100%;max-height:100%;object-fit:contain}.media-details{padding:48px 19px 20px;overflow-y:auto}.media-details h2{margin:4px 0 7px;font-size:clamp(1.25rem,2vw,1.85rem)}.media-details>p:not(.eyebrow){margin:0 0 8px;font-size:.68rem}.media-details .check-row{margin:11px 0}.media-customizations{margin:10px 0;border:1px solid var(--line);background:#f8f2ea}.media-customizations summary{padding:11px 12px;color:var(--wine-700);font-size:.67rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.media-customization-body{padding:0 12px 12px}.media-customization-body .rating{margin-top:3px}.media-customization-body label,.media-customization-body .owner-controls label{margin:10px 0}.media-customization-body textarea{min-height:68px}.media-customization-body .owner-controls{margin:10px 0 0;padding:10px;background:#fff}.media-details>.full{margin-top:8px}

.upload-complete{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:15px;border:1px solid #9fcab5;background:#edf8f1;color:#214f3a}.upload-complete>span{display:grid;width:38px;height:38px;border-radius:50%;background:#287552;color:#fff;font-weight:900;place-items:center}.upload-complete>div{display:grid;gap:6px}.upload-complete p{margin:0;font-size:.72rem;line-height:1.5}.upload-complete>div>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px}.upload-complete button{min-width:0}

.selection-gallery-modal{display:flex;flex-direction:column;width:min(94vw,1280px);height:min(90dvh,900px);max-height:90dvh;padding:34px;overflow:hidden}.selection-gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.selection-gallery-heading h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3rem);font-weight:400}.selection-gallery-heading p:last-child{margin:8px 0 0;color:var(--muted);font-size:.72rem}.selection-gallery-heading a{text-decoration:none}.selection-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;min-height:0;flex:1;padding-right:5px;overflow-y:auto}.selection-gallery-grid article{position:relative;display:grid;grid-template-rows:minmax(140px,1fr) auto;min-height:220px;border:1px solid var(--line);background:#fff}.selection-gallery-preview{display:grid;min-height:0;padding:0;border:0;background:#1b1110;place-items:center;overflow:hidden}.selection-gallery-preview img,.selection-gallery-preview video{width:100%;height:100%;object-fit:contain}.selection-gallery-grid article>div{display:grid;gap:3px;padding:10px 38px 10px 11px}.selection-gallery-grid strong{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.selection-gallery-grid small{color:var(--muted);font-size:.6rem;line-height:1.4}.selection-gallery-remove{position:absolute;right:7px;bottom:9px;display:grid;width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--wine-700);font-size:1.05rem;place-items:center}

@media(max-width:850px){.media-modal{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;height:94dvh;overflow:hidden}.media-details{padding:16px 18px 17px}.media-details>.eyebrow{display:none}.media-details h2{margin-right:35px}.media-customizations{margin:7px 0}.selection-gallery-modal{padding:30px 18px 18px}.selection-gallery-heading{align-items:flex-start;flex-direction:column}.selection-gallery-grid{height:calc(100% - 150px);grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
@media(max-width:600px){.selection-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.selection-gallery-grid article{min-height:180px}.upload-complete{grid-template-columns:1fr}.upload-complete>div>div{display:grid}.upload-complete button{width:100%}}

/* Version 4.6 — invitations en lot et sauvegardes administrées. */
.invitations-admin-layout{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(360px,1.1fr);gap:18px}.invite-batch-form{display:grid;grid-template-columns:1fr!important;align-items:stretch!important}.invite-form-heading h3,.invitation-history h3,.backup-intro h3,.backup-list h3{margin:0 0 7px;font-family:Georgia,"Times New Roman",serif;font-weight:400}.invite-form-heading p{margin:0;color:var(--muted);font-size:.7rem;line-height:1.5}.invite-batch-form textarea{width:100%;padding:9px;border:1px solid var(--line);background:#fff;resize:vertical}.invite-batch-form fieldset{margin:0;padding:10px;border:1px solid var(--line)}.invite-batch-form legend{padding:0 5px;color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase}.invitation-history{display:grid;align-content:start;gap:8px}.invite-results{display:grid;gap:7px;padding:12px;border-left:3px solid var(--gold);background:#fff}.invite-results p{display:grid;gap:4px;margin:0}.invite-results span{font-size:.66rem}.invite-results input{width:100%;min-height:34px;padding:6px;border:1px solid var(--line);font-size:.61rem}.backup-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px;border-left:4px solid var(--gold);background:var(--ivory)}.backup-intro p:last-child{max-width:760px;margin:0;color:var(--muted);font-size:.72rem;line-height:1.55}.backup-intro>span{padding:7px 9px;border:1px solid var(--line);background:#fff;color:var(--wine-700);font-size:.62rem;font-weight:800;white-space:nowrap}.backup-create{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.4fr) auto;align-items:end;gap:12px;padding:15px;border:1px solid var(--line);background:#fff}.backup-create label{display:grid;gap:6px;color:var(--muted);font-size:.64rem;font-weight:800;text-transform:uppercase}.backup-create input,.backup-create textarea{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--line);background:#fff}.backup-list{display:grid;gap:8px}.backup-list-head{display:flex;align-items:center;justify-content:space-between}.backup-list-head>span{color:var(--muted);font-size:.68rem}.backup-list>article{display:grid;grid-template-columns:145px minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px;border:1px solid var(--line);background:#fff}.backup-status,.backup-list>article>div:nth-child(2){display:grid;gap:5px}.backup-status small,.backup-list>article small{color:var(--muted);font-size:.62rem}.backup-list>article strong{font-family:Georgia,serif;font-weight:400}.backup-list>article p{margin:0;color:var(--muted);font-size:.69rem}.backup-actions{display:flex;align-items:center;gap:8px}.backup-actions a{text-decoration:none}.empty-backups{padding:28px;border:1px dashed var(--line);color:var(--muted);text-align:center}.status-pill.ready{background:#dcefe6;color:#256046}.status-pill.missing{background:#f2dde1;color:#8b2940}
.backup-operation{display:grid;gap:11px;margin:14px 0;padding:16px;border:1px solid #d5c3a9;background:linear-gradient(135deg,#fffdf9,#f7efe4);box-shadow:0 12px 30px rgba(57,25,31,.08)}.backup-operation.success{border-color:#8bb7a1;background:#f1faf5}.backup-operation.error{border-color:#d79aa8;background:#fff5f7}.backup-operation-heading,.backup-operation-heading>div{display:flex;align-items:center;gap:11px}.backup-operation-heading{justify-content:space-between}.backup-operation-heading>div>div{display:grid;gap:3px}.backup-operation-heading strong{color:var(--wine-700);font-family:Georgia,serif;font-size:1rem;font-weight:400}.backup-operation-heading small{color:var(--muted);font-size:.65rem}.backup-operation-heading b{color:var(--wine-700);font-size:.82rem}.backup-operation-spinner{width:24px;height:24px;border:3px solid #e4d4bf;border-top-color:var(--wine-700);border-radius:50%;animation:backup-spin .85s linear infinite}.backup-operation.success .backup-operation-spinner{border-color:var(--success);animation:none}.backup-operation.error .backup-operation-spinner{border-color:var(--danger);border-radius:2px;animation:none}.backup-progress-track{position:relative;height:12px;overflow:hidden;border-radius:999px;background:#e8ded2}.backup-progress-track>span{position:absolute;inset:0 auto 0 0;min-width:2%;border-radius:inherit;background:linear-gradient(90deg,var(--wine-700),#b84f68,var(--gold));transition:width .28s ease}.backup-operation.running .backup-progress-track>span::after{position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);content:"";animation:backup-shimmer 1.2s ease-in-out infinite}.backup-progress-track.indeterminate>span{animation:backup-indeterminate 1.4s ease-in-out infinite}.backup-operation-details{border-top:1px solid rgba(116,26,46,.12);padding-top:10px}.backup-operation-details summary{display:flex;align-items:center;width:max-content;color:var(--wine-700);font-size:.69rem;font-weight:800;cursor:pointer;gap:7px}.backup-operation-details summary span{display:grid;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#eadfce;font-size:.61rem;place-items:center}.backup-operation-details ol{display:grid;max-height:230px;margin:11px 0 0;padding:0;overflow:auto;list-style:none}.backup-operation-details li{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:8px 4px;border-top:1px solid rgba(116,26,46,.09)}.backup-operation-details time{color:var(--muted);font-size:.61rem}.backup-operation-details li div{display:grid;gap:2px}.backup-operation-details li strong{color:var(--ink);font-size:.66rem}.backup-operation-details li span{color:var(--muted);font-size:.63rem;line-height:1.4;overflow-wrap:anywhere}@keyframes backup-spin{to{transform:rotate(360deg)}}@keyframes backup-shimmer{from{transform:translateX(-130%)}to{transform:translateX(330%)}}@keyframes backup-indeterminate{0%{left:-38%}50%{left:62%}100%{left:100%}}
@media(max-width:950px){.invitations-admin-layout{grid-template-columns:1fr}.backup-create,.backup-list>article{grid-template-columns:1fr}.backup-actions{flex-wrap:wrap}.backup-actions>*{flex:1}.backup-intro{flex-direction:column}}

/* Version 4.7 — collections masquées avec audience ciblée. */
.access-targets{margin:0;padding:14px;border:1px solid #d4bea1;background:#fffaf2}.access-targets>legend{padding:0 7px;color:var(--wine-700);font-size:.67rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.access-targets>p{margin:0 0 12px;color:var(--muted);font-size:.69rem;line-height:1.5}.access-target-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.access-target-columns>div{display:grid;align-content:start;gap:9px;min-width:0}.access-target-columns>div>strong{font-size:.67rem}.access-targets .group-checks{max-height:172px;padding:10px;border:1px solid var(--line);background:#fff;overflow:auto}.access-targets .group-checks label{width:100%;align-items:flex-start}.access-targets .user-checks{display:grid}.access-targets .user-checks label>span{display:grid;gap:2px}.access-targets .user-checks small{color:var(--muted);font-size:.58rem;overflow-wrap:anywhere}.access-targets>[data-access-summary]{display:block;margin-top:10px;color:var(--muted);font-size:.63rem}.access-targets .access-warning{color:var(--danger);font-weight:800}
@media(max-width:700px){.access-target-columns{grid-template-columns:1fr}.access-targets .group-checks{max-height:130px}}

/* Version 4.7.1 — les images verticales restent entièrement visibles dans le zoom. */
.media-preview,
.media-preview-content {
  min-width: 0;
  min-height: 0;
}

.media-preview-content {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.media-preview-content img,
.media-preview-content video {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

@media (min-width: 851px) {
  .media-modal {
    grid-template-rows: minmax(0, 1fr);
  }
}

.admin-user-actions {
  display: grid;
  gap: 7px;
}

.admin-user-actions button {
  width: 100%;
}

.account-link-result {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  padding: 11px;
  border-left: 3px solid var(--gold);
  background: #fffaf2;
}

.account-link-result strong {
  grid-column: 1 / -1;
  font-size: .69rem;
}

.account-link-result input {
  min-width: 0;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: .65rem;
}

@media (max-width: 700px) {
  .account-link-result {
    grid-template-columns: 1fr;
  }

  .account-link-result strong {
    grid-column: auto;
  }
}

/* Version 4.8.0 — cadre de zoom canonique, indépendant du ratio du fichier. */
#media-overlay {
  padding: 18px 20px;
  overflow: hidden;
}

.media-modal {
  box-sizing: border-box;
  grid-template-rows: minmax(0, 1fr);
  height: calc(100vh - 36px);
  height: min(980px, calc(100dvh - 36px));
  max-height: calc(100vh - 36px);
  max-height: calc(100dvh - 36px);
  min-height: 0;
  overflow: hidden;
}

.media-preview {
  position: relative;
  display: block;
  align-self: stretch;
  width: 100%;
  height: auto;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  contain: layout paint;
  isolation: isolate;
}

.media-preview-content {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}

.media-preview-content img,
.media-preview-content video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

.media-details {
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
}

.media-modal .modal-close {
  z-index: 5;
}

@media (min-width: 851px) {
  .media-modal {
    grid-template-rows: minmax(0, 1fr);
  }
}

.admin-user-card.compact-admin-user {
  position: relative;
  grid-template-columns: minmax(210px, 1.25fr) 112px 112px minmax(145px, .7fr) auto;
  gap: 8px;
  padding: 8px 10px;
}

.compact-admin-identity {
  display: flex !important;
  align-items: center;
  min-width: 0;
  gap: 8px;
}

.compact-admin-identity > span {
  display: grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--wine-700);
  color: white;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .78rem;
  place-items: center;
}

.compact-admin-identity > div {
  display: grid;
  min-width: 0;
  gap: 1px;
}

.compact-admin-identity strong {
  overflow: hidden;
  font-size: .73rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.compact-admin-identity small {
  overflow: hidden;
  font-size: .59rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.compact-admin-field {
  display: grid;
  gap: 2px;
  color: var(--muted);
  font-size: .54rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.compact-admin-field select {
  min-height: 32px;
  padding: 4px 6px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: .65rem;
}

.compact-admin-groups {
  position: relative;
  min-width: 0;
}

.compact-admin-groups summary {
  display: flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--wine-700);
  font-size: .62rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}

.compact-admin-groups summary::-webkit-details-marker {
  display: none;
}

.compact-admin-groups summary::after {
  margin-left: auto;
  content: "⌄";
}

.compact-admin-groups[open] summary::after {
  content: "⌃";
}

.compact-admin-groups > .group-checks {
  position: absolute;
  z-index: 8;
  top: 36px;
  right: 0;
  display: grid;
  width: min(290px, 72vw);
  max-height: 230px;
  padding: 11px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 14px 38px rgba(45, 28, 20, .2);
  overflow: auto;
}

.admin-user-actions.compact-icon-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.compact-icon-actions .admin-icon-action {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  color: var(--wine-700);
  font-size: 1rem;
  line-height: 1;
  place-items: center;
}

.compact-icon-actions .admin-icon-action:hover {
  border-color: var(--wine-700);
  background: var(--ivory);
}

.compact-icon-actions .admin-icon-action.save {
  background: var(--wine-700);
  color: #fff;
}

.compact-icon-actions .admin-icon-action.access {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--wine-900);
}

.compact-icon-actions .admin-icon-action.delete {
  border-color: #dfabb5;
  color: var(--danger);
}

.compact-icon-actions .admin-icon-action:disabled {
  background: #f1ece5;
  color: #a89c94;
}

@media (max-width: 820px) {
  .admin-user-card.compact-admin-user {
    grid-template-columns: minmax(0, 1fr) 112px 112px;
  }

  .compact-admin-identity {
    grid-column: 1 / -1;
  }

  .compact-admin-groups {
    grid-column: 1 / 2;
  }

  .admin-user-actions.compact-icon-actions {
    grid-column: 2 / -1;
    justify-content: flex-end;
  }

  .compact-admin-groups > .group-checks {
    right: auto;
    left: 0;
  }
}

@media (max-width: 850px) {
  .media-modal {
    grid-template-rows: minmax(0, 1fr) auto;
  }
}

@media (max-width: 600px) {
  #media-overlay {
    padding: 10px;
  }

  .media-modal {
    height: calc(100dvh - 20px);
    max-height: calc(100dvh - 20px);
  }

  .admin-user-card.compact-admin-user {
    grid-template-columns: 1fr 1fr;
  }

  .compact-admin-identity,
  .compact-admin-groups,
  .admin-user-actions.compact-icon-actions {
    grid-column: 1 / -1;
  }

  .admin-user-actions.compact-icon-actions {
    justify-content: flex-start;
  }

  .compact-admin-groups > .group-checks {
    position: static;
    width: 100%;
    margin-top: 5px;
    box-shadow: none;
  }
}

.release-stamp {
  display: inline-flex;
  margin-top: 13px !important;
  padding: 6px 9px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--wine-700) !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: .64rem !important;
  font-weight: 800;
  letter-spacing: .02em;
}

/* Version 5.1 — studio de design, modèles et navigation visuelle des collections. */
:root {
  --wine: #641426;
  --wine-dark: #2d0710;
  --wine-mid: #5b1323;
  --sidebar-bg: #ece4da;
  --font-body: Arial, Helvetica, sans-serif;
  --font-display: Georgia, "Times New Roman", serif;
  --base-size: 16px;
  --heading-scale: 4.2rem;
  --signal-spacing: .17em;
  --sidebar-width: 280px;
  --header-height: 82px;
  --content-padding: 52px;
  --gallery-gap: 18px;
  --control-height: 42px;
  --card-radius: 4px;
  --control-radius: 2px;
  --thumb-radius: 4px;
  --border-width: 1px;
  --card-shadow: 0 8px 24px rgba(32,18,22,.08);
  --header-shadow: 0 8px 30px rgba(43,7,16,.18);
  --backdrop-blur: 7px;
  --motion-speed: 200ms;
  --image-filter: none;
}

html { font-size: var(--base-size); }
body, button, input, select, textarea { font-family: var(--font-body); }
body { background: var(--ivory); color: var(--ink); }
.site-header { min-height: var(--header-height); background: linear-gradient(105deg,var(--wine-dark),var(--wine-mid)); box-shadow: var(--header-shadow); }
.workspace { grid-template-columns: var(--sidebar-width) minmax(0,1fr); min-height: calc(100vh - var(--header-height)); }
.source-sidebar { position: relative; background: var(--sidebar-bg); isolation: isolate; }
.source-sidebar > * { position: relative; z-index: 1; }
.content-area { padding-right: var(--content-padding); padding-left: var(--content-padding); }
.content-heading h1, .modal h2, .admin-heading h2, .design-studio-intro h3, .source-card strong, .gallery-summary strong, .media-meta strong, .stat-card strong { font-family: var(--font-display); }
.content-heading h1 { font-size: clamp(2.5rem,6vw,var(--heading-scale)); }
.eyebrow, .sidebar-label, .design-workbench label, .design-filter label { letter-spacing: var(--signal-spacing); }
.gallery-grid { gap: var(--gallery-gap); }
.media-card, .stat-card, .design-model-grid > button, .gallery-picker summary, .gallery-picker-menu { border-width: var(--border-width); border-radius: var(--card-radius); background: var(--paper); box-shadow: var(--card-shadow); }
.primary-button, .secondary-button, .danger-button, .deposit-button, .guide-button, .gallery-picker-menu button, .official-quick-list button { border-radius: var(--control-radius); }
.media-card, .stat-card, .design-model-grid > button, .gallery-picker summary, .gallery-picker-menu, .primary-button, .secondary-button, .danger-button, .deposit-button, .guide-button, .gallery-picker-menu button, .official-quick-list button { transition-duration: var(--motion-speed); }
.primary-button, .secondary-button, .danger-button, .deposit-button, .gallery-toolbar select, .stack-form input, .stack-form select, .stack-form textarea { min-height: var(--control-height); }
.overlay { backdrop-filter: blur(var(--backdrop-blur)); }
.media-open img, .selection-gallery-preview img, .gallery-cover, .gallery-picker img, .official-quick-list img { filter: var(--image-filter); }

html[data-pattern="curtain"] .source-sidebar::before { position:absolute;z-index:0;inset:0;background:repeating-linear-gradient(100deg,transparent 0 24px,rgba(255,255,255,.16) 25px 27px,rgba(0,0,0,.025) 28px 46px);content:"";pointer-events:none; }
html[data-pattern="spotlight"] .site-header::after { position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 72% -30%,rgba(255,255,255,.35),transparent 48%);content:""; }
html[data-pattern="halftone"] .source-sidebar::before { position:absolute;z-index:0;inset:0;background-image:radial-gradient(rgba(34,42,39,.14) 1px,transparent 1px);background-size:7px 7px;content:"";pointer-events:none; }
html[data-pattern="grid"] .source-sidebar::before { position:absolute;z-index:0;inset:0;background-image:linear-gradient(rgba(36,88,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(36,88,255,.09) 1px,transparent 1px);background-size:22px 22px;content:"";pointer-events:none; }
html[data-pattern="waves"] .source-sidebar::before { position:absolute;z-index:0;inset:0;background:repeating-radial-gradient(ellipse at 0 40%,transparent 0 18px,rgba(8,125,130,.08) 19px 21px,transparent 22px 38px);content:"";pointer-events:none; }

.official-quick-list { display:grid;max-height:290px;margin:-2px 0 13px 19px;padding-left:12px;border-left:1px solid var(--line);overflow:auto; }
.official-quick-list button { display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:9px;padding:7px;border:1px solid transparent;background:transparent;color:var(--ink);text-align:left; }
.official-quick-list button:hover, .official-quick-list button.active { border-color:var(--line);background:var(--paper); }
.official-quick-list img, .official-quick-list button > span:first-child { display:grid;width:38px;height:32px;border-radius:var(--thumb-radius);background:var(--ivory);object-fit:cover;place-items:center; }
.official-quick-list button > span:last-child { display:grid;min-width:0;gap:2px; }
.official-quick-list strong { overflow:hidden;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap; }
.official-quick-list small { color:var(--muted);font-size:.57rem; }
.official-quick-empty { padding:8px;color:var(--muted);font-size:.6rem; }

.enhanced-gallery-native { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important; }
.gallery-picker { position:relative;min-width:min(390px,42vw);text-transform:none; }
.gallery-picker summary { display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;min-height:58px;padding:5px 10px;color:var(--ink);cursor:pointer;list-style:none; }
.gallery-picker summary::-webkit-details-marker { display:none; }
.gallery-picker summary img, .gallery-picker-empty { display:grid;width:58px;height:46px;margin-left:-5px;border-radius:var(--thumb-radius);background:var(--ivory);font-style:normal;object-fit:cover;place-items:center; }
.gallery-picker summary > span:not(.gallery-picker-visual) { display:grid;min-width:0;gap:3px;padding-left:10px; }
.gallery-picker summary strong { overflow:hidden;font-family:var(--font-display);font-size:.83rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap; }
.gallery-picker summary small { color:var(--muted);font-size:.58rem;font-weight:400; }
.gallery-picker summary > b { color:var(--wine);font-size:1rem; }
.gallery-picker[open] summary { border-color:var(--wine); }
.gallery-picker-menu { position:absolute;z-index:45;top:calc(100% + 6px);left:0;display:grid;width:min(520px,78vw);max-height:390px;padding:7px;overflow:auto; }
.gallery-picker-menu button { display:grid;grid-template-columns:66px minmax(0,1fr);align-items:center;gap:10px;padding:7px;border:1px solid transparent;background:transparent;color:var(--ink);text-align:left; }
.gallery-picker-menu button:hover, .gallery-picker-menu button.active { border-color:var(--gold);background:var(--ivory); }
.gallery-picker-menu img, .gallery-picker-menu .gallery-picker-empty { display:grid;width:66px;height:48px;margin:0;border-radius:var(--thumb-radius);background:var(--sidebar-bg);object-fit:cover;place-items:center; }
.gallery-picker-menu button > span:not(.gallery-picker-visual) { display:grid;min-width:0;gap:3px; }
.gallery-picker-menu strong { overflow:hidden;font-family:var(--font-display);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap; }
.gallery-picker-menu small { color:var(--muted);font-size:.59rem; }
.gallery-toolbar > label { min-width:min(390px,42vw); }
.gallery-toolbar > label > .gallery-picker { margin-top:5px; }
.bulk-toolbar > .gallery-picker { min-width:230px; }
.bulk-toolbar .gallery-picker summary { grid-template-columns:42px minmax(0,1fr) auto;min-height:42px; }
.bulk-toolbar .gallery-picker summary img, .bulk-toolbar .gallery-picker summary .gallery-picker-empty { width:42px;height:32px; }

.design-studio { display:grid;gap:18px; }
.design-studio-intro { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px;border-left:4px solid var(--gold);background:var(--ivory); }
.design-studio-intro h3 { margin:2px 0 7px;font-size:1.55rem;font-weight:500; }
.design-studio-intro p:last-child { max-width:760px;margin:0;color:var(--muted);font-size:.72rem;line-height:1.55; }
.design-studio-intro > span { padding:7px 9px;border:1px solid var(--line);background:var(--paper);color:var(--wine);font-size:.62rem;font-weight:800;white-space:nowrap; }
.design-model-grid { display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:9px; }
.design-model-grid > button { position:relative;display:grid;align-content:start;gap:6px;min-height:150px;padding:12px;border-style:solid;color:var(--ink);text-align:left; }
.design-model-grid > button:hover, .design-model-grid > button.active { border-color:var(--wine);box-shadow:inset 0 0 0 1px var(--wine),var(--card-shadow); }
.design-swatches { display:flex;height:28px;overflow:hidden;border-radius:calc(var(--card-radius)/2); }
.design-swatches i { flex:1; }
.design-model-grid strong { font-family:var(--font-display);font-size:.82rem; }
.design-model-grid small { color:var(--muted);font-size:.59rem;line-height:1.35; }
.design-model-grid b { margin-top:auto;color:var(--wine);font-size:.55rem;text-transform:uppercase; }
.design-workbench { display:grid;gap:14px;padding:16px;border:1px solid var(--line);background:var(--ivory); }
.design-workbench-head { display:flex;align-items:end;justify-content:space-between;gap:14px; }
.design-workbench-head > div:first-child { display:grid;grid-template-columns:220px minmax(280px,1fr);flex:1;gap:10px; }
.design-workbench label, .design-filter label { display:grid;gap:5px;color:var(--muted);font-size:.61rem;font-weight:900;text-transform:uppercase; }
.design-workbench input:not([type=color]):not([type=range]), .design-workbench select { width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--line);background:var(--paper);color:var(--ink); }
.design-actions { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px; }
.design-filter { display:grid;grid-template-columns:1fr 220px auto;align-items:end;gap:10px; }
.design-filter > span { padding-bottom:10px;color:var(--muted);font-size:.62rem;white-space:nowrap; }
.design-table-wrap { max-height:530px;overflow:auto;border:1px solid var(--line); }
.design-table { width:100%;border-collapse:collapse;background:var(--paper);font-size:.67rem; }
.design-table th { position:sticky;z-index:2;top:0;padding:9px;background:var(--ivory);color:var(--muted);text-align:left;text-transform:uppercase; }
.design-table td { padding:9px;border-top:1px solid var(--line);vertical-align:middle; }
.design-table td:first-child { width:130px; }
.design-table td:first-child span { color:var(--wine);font-size:.58rem;font-weight:900;text-transform:uppercase; }
.design-table td:nth-child(2) { min-width:190px; }
.design-table td:nth-child(3) { min-width:250px; }
.design-table td:last-child { color:var(--muted);font-size:.6rem;line-height:1.35; }
.design-color-input, .design-range-input { display:grid;grid-template-columns:minmax(120px,1fr) 72px;align-items:center;gap:8px; }
.design-color-input input { width:100%;height:38px;padding:3px;border:1px solid var(--line);background:var(--paper); }
.design-color-input code, .design-range-input output { color:var(--wine);font-size:.6rem;font-weight:800;text-align:right; }
.design-range-input input { width:100%;accent-color:var(--wine); }
.design-intro-tools { display:grid;justify-items:end;gap:8px; }
.design-intro-tools span, .design-intro-tools a { padding:7px 9px;border:1px solid var(--line);background:var(--paper);color:var(--wine);font-size:.62rem;font-weight:800;text-decoration:none;white-space:nowrap; }
.design-intro-tools a:hover { border-color:var(--gold); }


@media (max-width: 980px) {
  .design-model-grid { grid-template-columns:repeat(2,1fr); }
  .design-workbench-head { align-items:stretch;flex-direction:column; }
  .design-actions { justify-content:flex-start; }
}
@media (max-width: 850px) {
  .official-quick-list { display:none; }
  .gallery-picker { min-width:0; }
  .gallery-picker-menu { position:fixed;top:80px;right:16px;bottom:75px;left:16px;width:auto;max-height:none; }
  .content-area { padding-right:18px;padding-left:18px; }
}
@media (max-width: 650px) {
  .design-model-grid, .design-workbench-head > div:first-child, .design-filter { grid-template-columns:1fr; }
  .design-actions { display:grid;grid-template-columns:1fr; }
  .design-studio-intro { flex-direction:column; }
  .design-intro-tools { justify-items:start; }
  .design-filter > span { padding:0; }
}

/* Version 5.2 — thèmes visiteurs et studio flottant. */
.site-header { grid-template-columns:minmax(210px,.9fr) auto minmax(330px,.9fr) auto;isolation:isolate; }
.site-header > * { position:relative;z-index:2; }
.content-area { position:relative;isolation:isolate; }
.content-area > * { position:relative;z-index:1; }
html[data-pattern="spotlight"] .site-header::after { z-index:1; }
.header-theme-switcher { display:flex;align-items:center;justify-self:center;gap:4px;max-width:520px;padding:5px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);backdrop-filter:blur(9px); }
.theme-switcher-label { display:grid;min-width:105px;padding:0 7px;gap:1px; }
.theme-switcher-label small { color:#cdb7bc;font-size:.49rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.theme-switcher-label strong { max-width:125px;overflow:hidden;color:#fff;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap; }
.header-theme-switcher button { position:relative;display:grid;width:29px;height:29px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:#fff;place-items:center; }
.header-theme-switcher button:hover,.header-theme-switcher button.active { border-color:var(--gold);background:rgba(255,255,255,.12);box-shadow:0 0 0 2px rgba(0,0,0,.16); }
.header-theme-switcher button b { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap; }
.header-theme-switcher button.reset span { font-size:.85rem; }
.theme-switcher-swatch { display:block;width:19px;height:19px;border:2px solid var(--theme-accent);border-radius:50%;background:linear-gradient(135deg,var(--theme-primary) 0 50%,var(--theme-surface) 50%); }
.design-preview-mode { background:transparent;backdrop-filter:none;pointer-events:none; }
.design-preview-mode .admin-modal { position:fixed;top:92px;left:24px;width:min(980px,calc(100vw - 48px));height:min(78vh,780px);min-width:min(620px,calc(100vw - 24px));min-height:420px;max-width:calc(100vw - 16px);max-height:calc(100vh - 100px);padding:20px;resize:both;pointer-events:auto;box-shadow:0 28px 90px rgba(20,8,12,.34); }
.design-preview-mode .admin-heading { padding:3px 48px 10px 4px;border-bottom:1px solid var(--line);cursor:move;touch-action:none;user-select:none; }
.design-preview-mode .admin-heading h2 { font-size:1.55rem; }
.design-preview-mode .admin-tabs { margin:10px 0 14px; }
.design-preview-mode .design-studio-intro { padding:12px; }
.design-preview-mode .design-model-grid { grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto; }
.design-preview-mode .design-model-grid > button { min-height:118px; }
.design-preview-mode .design-table-wrap { max-height:360px; }
.design-preview-mode .design-studio { gap:12px; }
@media (max-width: 1420px) {
  .site-header { grid-template-columns:minmax(210px,1fr) auto auto; }
  .top-nav { position:fixed;z-index:30;right:0;bottom:0;left:0;height:62px;justify-content:center;background:var(--wine-dark); }
  .top-nav button { flex:1;max-width:220px; }
  .workspace { padding-bottom:62px; }
  .user-menu div { display:none; }
  .header-theme-switcher { justify-self:end; }
}
@media (max-width: 900px) {
  .site-header { grid-template-columns:minmax(180px,1fr) auto;gap:8px;padding-top:7px;padding-bottom:7px; }
  .header-theme-switcher { grid-column:1/-1;grid-row:2;width:100%;max-width:none;justify-content:center; }
  .header-actions { grid-column:2;grid-row:1; }
  .theme-switcher-label { margin-right:auto; }
  .design-preview-mode .admin-modal { top:10px;left:10px!important;width:calc(100vw - 20px);height:calc(100vh - 82px);min-width:0;max-height:none;resize:none; }
  .design-preview-mode .design-model-grid { grid-template-columns:repeat(5,130px); }
}
@media (max-width: 600px) {
  .theme-switcher-label { min-width:82px; }
  .theme-switcher-label strong { max-width:92px; }
  .header-theme-switcher button { width:27px;height:27px; }
  .theme-switcher-swatch { width:17px;height:17px; }
  .design-preview-mode .admin-heading-tools { display:none; }
  .design-preview-mode .admin-tabs { overflow-x:auto;flex-wrap:nowrap; }
}

/* Version 5.3 — dégagement de la grille, bibliothèque visuelle, fil d’idées et identité éditable. */
:root { --controls-gallery-spacing:28px; }
.media-controls { margin-bottom:var(--controls-gallery-spacing); }
.site-identity-editor { display:grid;grid-template-columns:minmax(190px,.7fr) 1fr 1.4fr auto;align-items:end;gap:10px;padding:14px;border:1px solid var(--line);background:var(--paper); }
.site-identity-editor h4 { margin:2px 0 0;font-family:var(--font-display);font-size:1rem;font-weight:500; }
.site-identity-editor label,.image-library-field>span { display:grid;gap:5px;color:var(--muted);font-size:.61rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase; }
.site-identity-editor input { width:100%;min-height:40px;padding:7px 9px;border:1px solid var(--line);background:var(--ivory);color:var(--ink); }
.image-library-field { position:relative;display:grid;min-width:0;gap:5px; }
.image-library-picker { position:relative;text-transform:none; }
.image-library-picker summary { display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;min-height:54px;padding:4px 8px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--paper);color:var(--ink);cursor:pointer;list-style:none; }
.image-library-picker summary::-webkit-details-marker { display:none; }
.image-library-picker summary img,.image-library-picker summary>i { display:grid;width:54px;height:44px;border-radius:var(--thumb-radius);background:var(--ivory);font-style:normal;object-fit:cover;place-items:center; }
.image-library-picker summary>span { display:grid;min-width:0;gap:2px;padding:0 8px; }
.image-library-picker summary strong,.image-library-picker summary small { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.image-library-picker summary strong { font-size:.72rem; }
.image-library-picker summary small { color:var(--muted);font-size:.56rem;font-weight:400; }
.image-library-picker[open] summary { border-color:var(--wine); }
.image-library-menu { position:absolute;z-index:80;top:calc(100% + 5px);right:0;display:grid;width:min(520px,78vw);max-height:420px;padding:9px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper);box-shadow:0 18px 55px rgba(31,12,17,.25);overflow:auto; }
.image-library-menu>label { display:grid;gap:4px;margin-bottom:7px;color:var(--muted);font-size:.59rem;font-weight:800;text-transform:uppercase; }
.image-library-menu input { width:100%;min-height:38px!important;padding:7px 9px!important;border:1px solid var(--line)!important;background:#fff!important; }
.image-library-menu>button,.image-library-results button { display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:9px;width:100%;padding:6px;border:1px solid transparent;background:transparent;color:var(--ink);text-align:left; }
.image-library-menu>button:hover,.image-library-results button:hover,.image-library-menu button.selected { border-color:var(--gold);background:var(--ivory); }
.image-library-menu button img,.image-library-menu button>i { display:grid;width:62px;height:46px;border-radius:var(--thumb-radius);background:var(--sidebar-bg);font-style:normal;object-fit:cover;place-items:center; }
.image-library-menu button>span { display:grid;min-width:0;gap:2px; }
.image-library-menu button strong,.image-library-menu button small { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.image-library-menu button strong { font-size:.69rem; }
.image-library-menu button small { color:var(--muted);font-size:.55rem; }
.image-library-results { display:grid;gap:2px; }
.image-library-results>p { padding:15px;color:var(--muted);font-size:.68rem;text-align:center; }
.community-panel { display:grid;gap:8px;margin:24px 0 0;padding:11px;border:1px solid #d0bea8;border-radius:var(--card-radius);background:rgba(255,253,248,.9);box-shadow:var(--card-shadow); }
.community-panel-head { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.community-panel-head>div { display:grid;gap:2px; }
.community-panel-head strong { color:var(--wine);font-family:var(--font-display);font-size:.83rem;font-weight:500; }
.community-panel-head small { color:var(--muted);font-size:.56rem; }
.community-panel-head button { display:grid;width:29px;height:29px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--wine);place-items:center; }
.community-preview { display:grid;max-height:125px;gap:6px;overflow:auto; }
.community-preview article,.community-preview>p { margin:0;padding:7px;border-left:2px solid var(--gold);background:var(--ivory); }
.community-preview strong { font-size:.58rem; }
.community-preview p { margin:2px 0 0;color:var(--muted);font-size:.6rem;line-height:1.35; }
.community-panel form { display:grid;gap:6px; }
.community-panel textarea { width:100%;padding:7px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:.65rem;resize:vertical; }
.community-panel form>div { display:flex;align-items:center;justify-content:space-between;gap:7px; }
.community-panel form span { color:var(--wine);font-size:.55rem;font-weight:800; }
.community-panel form button { padding:6px 9px;border:0;border-radius:var(--control-radius);background:var(--wine);color:#fff;font-size:.6rem;font-weight:800; }
.community-overlay { z-index:135; }
.community-dialog { width:min(96vw,1240px);height:min(92dvh,900px);max-height:92dvh;padding:34px;overflow:hidden; }
.community-dialog-head { display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:18px; }
.community-dialog-head h2 { font-size:clamp(1.9rem,4vw,3rem); }
.community-dialog-head>div:first-child>p:last-child { max-width:720px;margin:9px 0 0;color:var(--muted);font-size:.72rem;line-height:1.5; }
.community-overall { display:grid;min-width:120px;padding:12px;border:1px solid var(--gold);background:var(--ivory);text-align:center; }
.community-overall strong { color:var(--wine);font-family:var(--font-display);font-size:2rem;font-weight:500; }
.community-overall strong small { font-size:.8rem; }
.community-overall span { color:var(--muted);font-size:.58rem; }
.community-layout { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px;height:calc(100% - 120px);min-height:0; }
.community-thread,.community-ratings { display:grid;min-height:0;gap:12px; }
.community-thread { grid-template-rows:minmax(0,1fr) auto; }
.community-messages { display:grid;align-content:start;gap:8px;padding-right:5px;overflow:auto; }
.community-messages article { display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:11px;border:1px solid var(--line);background:#fff; }
.community-messages article>div { display:flex;align-items:center;gap:9px; }
.community-messages time { color:var(--muted);font-size:.57rem; }
.community-messages article>p { grid-column:1/-1;margin:0;color:var(--ink);font-size:.7rem;line-height:1.5;white-space:pre-wrap; }
.community-messages article>button { justify-self:end; }
.community-messages article.moderated { border-style:dashed;background:var(--ivory); }
.community-messages article.moderated>p { color:var(--muted);font-style:italic; }
.community-empty { padding:30px;color:var(--muted);text-align:center; }
.community-compose { display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px;padding:12px;border:1px solid var(--line);background:var(--ivory); }
.community-compose label { display:grid;gap:5px;color:var(--muted);font-size:.61rem;font-weight:800;text-transform:uppercase; }
.community-compose textarea { width:100%;padding:8px;border:1px solid var(--line);background:#fff;color:var(--ink);resize:vertical; }
.community-ratings { align-content:start;padding:15px;border:1px solid var(--line);background:var(--ivory);overflow:auto; }
.community-ratings h3 { margin:2px 0 5px;font-family:var(--font-display);font-weight:500; }
.community-ratings>div:first-child>p:last-child { margin:0;color:var(--muted);font-size:.66rem;line-height:1.45; }
.criterion-rating { display:grid;gap:5px;padding:8px 0;border-top:1px solid var(--line); }
.criterion-rating>div:first-child { display:flex;justify-content:space-between;gap:8px;font-size:.68rem; }
.criterion-rating span { color:var(--muted);font-size:.6rem; }
.rating-stars { display:flex;gap:3px; }
.rating-stars button { padding:0;border:0;background:transparent;color:#cbbfb3;font-size:1.45rem;line-height:1; }
.rating-stars button.active { color:#d19b27;text-shadow:0 1px 0 #8d6514; }
.public-rating-stats { display:grid;gap:10px;margin-top:8px;padding-top:12px;border-top:2px solid var(--gold); }
.public-rating-stats>h3 { margin:0; }
.public-rating-stats>article { padding:9px;border:1px solid var(--line);background:#fff; }
.public-rating-stats article>div:first-child { display:flex;justify-content:space-between;gap:8px;font-size:.65rem; }
.public-rating-stats article>div:first-child span { color:var(--wine);font-weight:800; }
.rating-distribution { display:grid;gap:3px;margin-top:6px; }
.rating-distribution>span { display:grid;grid-template-columns:25px 1fr 20px;align-items:center;gap:5px; }
.rating-distribution b,.rating-distribution small { color:var(--muted);font-size:.52rem; }
.rating-distribution i { display:block;height:5px;background:var(--ivory);overflow:hidden; }
.rating-distribution em { display:block;height:100%;background:var(--gold); }
@media (max-width:1050px) {
  .site-identity-editor { grid-template-columns:1fr 1fr; }
  .site-identity-editor>div,.site-identity-editor button { grid-column:1/-1; }
  .community-layout { grid-template-columns:1fr;height:auto; }
  .community-dialog { overflow:auto; }
  .community-messages { max-height:420px; }
  .community-ratings { overflow:visible; }
}
@media (max-width:850px) {
  .community-panel.compact { min-width:240px;margin:0; }
  .image-library-menu { position:fixed;top:84px;right:16px;bottom:74px;left:16px;width:auto;max-height:none; }
  .community-dialog { height:94dvh;padding:30px 16px 18px; }
  .community-dialog-head { flex-direction:column; }
  .community-overall { align-self:stretch; }
  .community-compose { grid-template-columns:1fr; }
  .site-identity-editor { grid-template-columns:1fr; }
  .site-identity-editor>div,.site-identity-editor button { grid-column:auto; }
}

/* Correction 5.3.1 — le sélecteur principal reste au-dessus de la grille. */
.gallery-toolbar { position:relative;z-index:35;overflow:visible; }
.gallery-picker[open] { z-index:80; }
.gallery-picker-menu { z-index:90; }

/* Version 5.4 — invitations temporaires et consultation visiteur. */
.visitor-invite-button { min-height:var(--control-height);padding:9px 13px;border:1px solid rgba(255,255,255,.36);border-radius:var(--control-radius);background:rgba(255,255,255,.08);color:#fff;font-size:.66rem;font-weight:800;white-space:nowrap; }
.visitor-invite-button:hover { border-color:var(--gold);background:rgba(255,255,255,.15); }
.visitor-readonly-pill { padding:7px 10px;border:1px solid var(--gold);border-radius:99px;background:var(--ivory);color:var(--wine);font-size:.63rem;font-weight:900;letter-spacing:.04em;white-space:nowrap; }
.community-readonly { margin:0;padding:8px;border-left:3px solid var(--gold);background:var(--ivory);color:var(--muted);font-size:.62rem;line-height:1.45; }
.visitor-invite-modal { width:min(100%,640px); }
.visitor-permissions { display:flex;flex-wrap:wrap;gap:7px;padding:12px;border-left:4px solid var(--gold);background:var(--ivory); }
.visitor-permissions>* { padding:5px 8px;border:1px solid var(--line);background:#fff;color:var(--wine);font-size:.62rem; }
.visitor-invite-result { display:grid;grid-template-columns:42px 1fr;gap:12px;margin-top:12px;padding:16px;border:1px solid #9fcab5;background:#edf8f1; }
.visitor-invite-result>span { display:grid;width:38px;height:38px;border-radius:50%;background:#287552;color:#fff;font-weight:900;place-items:center; }
.visitor-invite-result>div { display:grid;gap:9px; }
.visitor-invite-result input { width:100%;min-height:42px;padding:8px;border:1px solid var(--line);background:#fff;font-size:.65rem; }
.visitor-invite-result>div>div { display:flex;flex-wrap:wrap;gap:8px; }
.visitor-invite-result small { color:#456456;font-size:.62rem;line-height:1.45; }
.visitor-mode .bulk-toolbar,.visitor-mode #upload-overlay,.visitor-mode #gallery-overlay,.visitor-mode #import-overlay,.visitor-mode .media-customizations,.visitor-mode #import-media,.visitor-mode #save-media,.visitor-mode #edit-gallery { display:none!important; }
.visitor-mode:not(.visitor-selection-enabled) .selection-controls,
.visitor-mode:not(.visitor-selection-enabled) .media-check,
.visitor-mode:not(.visitor-selection-enabled) .selection-drawer,
.visitor-mode:not(.visitor-selection-enabled) #selection-gallery-overlay,
.visitor-mode:not(.visitor-selection-enabled) .media-details>.check-row { display:none!important; }
.visitor-mode .media-controls { grid-template-columns:auto minmax(220px,1fr);justify-content:end; }
.visitor-mode .media-controls:before { content:"Consultation publique · lecture seule";justify-self:start;padding:7px 10px;border:1px solid var(--gold);border-radius:99px;background:var(--ivory);color:var(--wine);font-size:.63rem;font-weight:900; }
.visitor-mode.visitor-selection-enabled .media-controls:before { content:"Consultation publique · sélection et ZIP autorisés"; }
.visitor-mode.visitor-selection-enabled #selection-import,
.visitor-mode.visitor-selection-enabled #selection-attributes { display:none!important; }
.visitor-mode .media-details { align-content:start; }
@media (max-width:1420px) { .visitor-invite-button { padding-inline:9px;font-size:.6rem; } }
@media (max-width:900px) { .visitor-invite-button { display:none; }.visitor-mode .media-controls { grid-template-columns:1fr; }.visitor-mode .media-controls:before { justify-self:stretch;text-align:center; } }

/* Correctif YouTube — iframe HTML5 16:9 ajustée au cadre de zoom. */
.media-preview-content .youtube-embed-stage {
  position: absolute;
  inset: 0;
  display: grid;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #000;
  place-items: center;
}

.media-preview-content iframe.youtube-embed {
  position: static;
  inset: auto;
  display: block;
  width: 560px;
  height: 315px;
  max-width: 100%;
  max-height: 100%;
  border: 0;
  background: #000;
}

.media-preview-content .youtube-embed-error {
  padding: 24px;
  color: #fff;
  text-align: center;
}



/* 5.5.0 - déplacement depuis la sélection */
.selection-gallery-move{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) auto;align-items:end;gap:12px;margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--ivory)}.selection-gallery-move-copy{display:grid;gap:5px}.selection-gallery-move-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:1.05rem}.selection-gallery-move label{display:grid;gap:6px}.selection-gallery-move label span{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.selection-gallery-move select{width:100%}.selection-gallery-move small{color:var(--muted)}.selection-gallery-move button{white-space:nowrap}@media(max-width:850px){.selection-gallery-move{grid-template-columns:1fr}.selection-gallery-move button{width:100%}}

/* 5.5.3 - portabilité compacte avec progression */
.transfer-panel{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper)}
.transfer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.transfer-head h3{margin:2px 0 4px}.transfer-head p{max-width:760px;margin:0;color:var(--muted)}
.transfer-head>span{flex:0 0 auto;padding:5px 9px;border:1px solid var(--line);border-radius:999px;font-size:.72rem}
.transfer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.transfer-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--ivory)}
.transfer-card-title{grid-column:1/-1;display:flex;align-items:baseline;gap:8px}.transfer-card-title strong{font-family:Georgia,"Times New Roman",serif;font-size:1.08rem}.transfer-card-title small{color:var(--muted)}
.transfer-card label{display:grid;gap:4px;min-width:0;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.transfer-card input{width:100%;min-width:0}.transfer-card button{white-space:nowrap}
.transfer-progress{grid-column:1/-1;display:grid;gap:5px}.transfer-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:.78rem}.transfer-progress b{font-variant-numeric:tabular-nums}
.transfer-progress-track{height:9px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--line) 55%,transparent)}
.transfer-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:var(--wine);transition:width .28s ease;position:relative}
.transfer-progress-track span::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0 35%,rgba(255,255,255,.48) 50%,transparent 65% 100%);transform:translateX(-100%);animation:transfer-progress-shine 1.1s linear infinite}
@keyframes transfer-progress-shine{to{transform:translateX(100%)}}
.transfer-result{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0}.transfer-result small{overflow-wrap:anywhere}
.transfer-warning{margin:10px 0 0;color:var(--muted);font-size:.78rem}
@media(max-width:900px){.transfer-grid{grid-template-columns:1fr}.transfer-head{display:grid}.transfer-head>span{justify-self:start}}
@media(max-width:560px){.transfer-card{grid-template-columns:1fr}.transfer-card button{width:100%}.transfer-card-title{display:grid;gap:2px}.transfer-result{align-items:flex-start;flex-direction:column}}

/* 5.5.4 - export sélectif et résolution des utilisateurs */
.transfer-card-wide{grid-column:1/-1}
.transfer-gallery-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--paper)}
.transfer-gallery-list label{display:flex;align-items:flex-start;gap:8px;padding:8px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:8px;background:var(--ivory);text-transform:none;letter-spacing:normal;font-weight:400}
.transfer-gallery-list input{width:auto;margin-top:3px}.transfer-gallery-list span{display:grid;gap:2px}.transfer-gallery-list small{color:var(--muted)}
.transfer-user-mapping{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper)}
.transfer-mapping-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.transfer-mapping-head h4{margin:2px 0}.transfer-mapping-head>span{font-size:.76rem;color:var(--muted)}
.transfer-user-list{display:grid;gap:8px;max-height:430px;overflow:auto;padding-right:4px}
.transfer-user-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) minmax(220px,1fr);align-items:end;gap:10px;padding:10px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--ivory)}
.transfer-user-row>div:first-child{display:grid;gap:2px}.transfer-user-row small{color:var(--muted)}.transfer-user-row label{display:grid;gap:4px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.transfer-user-row [data-new-user]{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.transfer-import-confirm{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.transfer-import-confirm>label{display:grid;gap:4px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.transfer-import-confirm [data-transfer-progress]{grid-column:1/-1}
@media(max-width:1000px){.transfer-user-row{grid-template-columns:1fr 1fr}.transfer-user-row>div:first-child{grid-column:1/-1}}
@media(max-width:650px){.transfer-user-row,.transfer-import-confirm{grid-template-columns:1fr}.transfer-user-row [data-new-user]{grid-template-columns:1fr}.transfer-import-confirm button{width:100%}}

/* 5.6.0 — date précise et cinémathèque */
.videos-nav-button{display:inline-flex;align-items:center;gap:.35rem}
.video-filmstrip{margin:0 0 var(--controls-gallery-spacing);padding:14px 16px;border:1px solid var(--line);border-radius:var(--card-radius);background:linear-gradient(180deg,var(--ivory),var(--paper));overflow:hidden}
.video-filmstrip-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}
.video-filmstrip-head h2{margin:0;font-size:1.2rem}.video-filmstrip-head .eyebrow{margin:0 0 2px}
.video-filmstrip-track{display:flex;gap:10px;overflow-x:auto;padding:8px 4px 12px;scroll-snap-type:x proximity;scrollbar-width:thin}
.video-film-frame{position:relative;flex:0 0 clamp(150px,18vw,230px);aspect-ratio:16/9;padding:0;overflow:hidden;border:5px solid #171313;border-radius:8px;background:#090909;color:#fff;scroll-snap-align:start}
.video-film-frame::before,.video-film-frame::after{content:"";position:absolute;z-index:3;left:0;right:0;height:6px;background:repeating-linear-gradient(90deg,#d8c9a2 0 6px,#171313 6px 14px)}
.video-film-frame::before{top:0}.video-film-frame::after{bottom:0}
.video-film-frame img,.video-film-frame video{width:100%;height:100%;object-fit:cover}
.video-film-frame>span{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.68);font-size:1rem}
.video-film-frame>strong{position:absolute;left:8px;right:8px;bottom:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 6px;background:rgba(0,0,0,.72);font-size:.72rem;text-align:left}
@media(max-width:640px){.video-filmstrip-head{align-items:start;flex-direction:column}.video-film-frame{flex-basis:210px}}

/* 5.6.1 — catalogue vidéo transversal */
.gallery-toolbar.video-catalog-toolbar .gallery-picker-shell,
.gallery-toolbar.video-catalog-toolbar select,
.gallery-toolbar.video-catalog-toolbar #edit-gallery{display:none!important}
.video-catalog{display:block!important;margin-top:0}
.video-catalog-section-heading{margin:26px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--wine)}
.video-catalog-section-heading:first-child{margin-top:0}
.video-catalog-section-heading h2{margin:0;font-family:var(--font-display);font-size:clamp(1.45rem,2.4vw,2rem)}
.video-catalog-collection{margin:0 0 22px;padding:15px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper)}
.video-catalog-collection>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.video-catalog-collection h3{margin:2px 0 0;font-size:1.15rem}
.video-catalog-collection>header>span{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:var(--ivory);font-size:.75rem}
.video-catalog-date{margin:0;color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.video-catalog-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.video-catalog-card{display:grid;grid-template-rows:auto 1fr;min-width:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--ivory);text-align:left}
.video-catalog-card:hover,.video-catalog-card:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow)}
.video-catalog-preview{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#090909}
.video-catalog-preview img,.video-catalog-preview video{width:100%;height:100%;object-fit:cover}
.video-catalog-preview i{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;font-style:normal}
.video-catalog-caption{display:grid;gap:3px;padding:10px}
.video-catalog-caption strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.video-catalog-caption small{color:var(--muted)}
@media(max-width:600px){.video-catalog-row{grid-template-columns:1fr 1fr}.video-catalog-collection{padding:10px}}
@media(max-width:420px){.video-catalog-row{grid-template-columns:1fr}}

/* 5.7.0 — page vidéo dédiée et dates individuelles */
.video-page{position:fixed;inset:0;z-index:1200;display:flex;flex-direction:column;background:var(--paper);color:var(--ink)}
.video-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px clamp(18px,4vw,54px);border-bottom:1px solid var(--line);background:var(--ivory)}
.video-page-header h1{margin:2px 0 4px;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.8rem)}
.video-page-header p{margin:0;color:var(--muted)}
.video-page-content{min-height:0;flex:1;overflow:auto;padding:20px clamp(18px,4vw,54px) 44px}
.video-page-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--ivory)}
.video-page-summary span{color:var(--muted)}
body.video-page-open{overflow:hidden}
@media(max-width:640px){.video-page-header{display:grid}.video-page-header button{width:100%}.video-page-summary{align-items:flex-start;flex-direction:column}}


/* 5.8.0 — volet gauche redimensionnable et escamotable */
.workspace{
  grid-template-columns:var(--sidebar-live-width,var(--sidebar-width)) minmax(0,1fr);
  transition:grid-template-columns 180ms ease;
}
.source-sidebar{
  min-width:0;
  width:auto;
  overflow-x:hidden;
}
.sidebar-toggle-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.38rem;
  min-height:36px;
  padding:.45rem .7rem;
  border:1px solid rgba(255,255,255,.32);
  border-radius:var(--control-radius);
  background:rgba(255,255,255,.1);
  color:#fff;
  white-space:nowrap;
}
.sidebar-toggle-button:hover,
.sidebar-toggle-button:focus-visible{background:rgba(255,255,255,.2)}
.sidebar-resize-handle{
  position:absolute!important;
  z-index:20!important;
  top:0;
  right:-6px;
  bottom:0;
  width:12px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  cursor:col-resize;
  touch-action:none;
}
.sidebar-resize-handle::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:5px;
  width:2px;
  background:transparent;
  transition:background 160ms ease,box-shadow 160ms ease;
}
.sidebar-resize-handle:hover::before,
.sidebar-resize-handle:focus-visible::before,
body.sidebar-resizing .sidebar-resize-handle::before{
  background:var(--wine);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--wine) 18%,transparent);
}
body.sidebar-resizing,
body.sidebar-resizing *{cursor:col-resize!important;user-select:none!important}
body.sidebar-resizing .workspace{transition:none}
body.sidebar-collapsed .workspace{grid-template-columns:0 minmax(0,1fr)}
body.sidebar-collapsed .source-sidebar{
  visibility:hidden;
  padding-left:0;
  padding-right:0;
  border-right:0;
  opacity:0;
  pointer-events:none;
}
body.sidebar-collapsed .content-area{min-width:0}
body.sidebar-collapsed .sidebar-toggle-button{
  background:rgba(255,255,255,.22);
}
@media(max-width:1100px){
  .sidebar-toggle-label{display:none}
  .sidebar-toggle-button{width:38px;padding:.4rem}
}
@media(max-width:900px){
  .workspace,
  body.sidebar-collapsed .workspace{
    grid-template-columns:1fr;
  }
  .sidebar-resize-handle{display:none}
  body.sidebar-collapsed .source-sidebar{display:none}
  body:not(.sidebar-collapsed) .source-sidebar{
    visibility:visible;
    width:auto;
    opacity:1;
  }
}


/* 5.8.1 — commande du volet intégrée et invitation dans les paramètres */
:root{--sidebar-collapsed-width:36px}

.source-sidebar{position:relative}
.sidebar-toggle-in-panel{
  position:absolute;
  z-index:30;
  top:8px;
  right:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.38rem;
  min-height:34px;
  padding:.42rem .58rem;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--paper);
  color:var(--ink);
  box-shadow:var(--shadow);
}
.sidebar-toggle-in-panel:hover,
.sidebar-toggle-in-panel:focus-visible{background:var(--ivory)}
.source-sidebar>.source-card:first-of-type,
.source-sidebar>.sidebar-card:first-of-type{margin-top:44px}

body.sidebar-collapsed .workspace{
  grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)!important;
}
body.sidebar-collapsed .source-sidebar{
  display:block!important;
  visibility:visible!important;
  width:var(--sidebar-collapsed-width)!important;
  min-width:var(--sidebar-collapsed-width)!important;
  max-width:var(--sidebar-collapsed-width)!important;
  padding:0!important;
  border-right:1px solid var(--line)!important;
  opacity:1!important;
  overflow:visible!important;
  pointer-events:auto!important;
  background:var(--sidebar-bg);
}
body.sidebar-collapsed .source-sidebar>*:not(.sidebar-toggle-in-panel){
  visibility:hidden!important;
  pointer-events:none!important;
}
body.sidebar-collapsed .sidebar-toggle-in-panel{
  position:absolute;
  inset:0;
  width:var(--sidebar-collapsed-width);
  min-height:100%;
  padding:10px 4px;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:var(--sidebar-bg);
  color:var(--ink);
  writing-mode:vertical-rl;
  text-orientation:mixed;
  gap:9px;
}
body.sidebar-collapsed .sidebar-toggle-in-panel .sidebar-toggle-label{
  display:inline!important;
  font-weight:800;
  letter-spacing:.045em;
}
body.sidebar-collapsed .sidebar-toggle-in-panel .sidebar-toggle-icon{
  writing-mode:horizontal-tb;
}
body.sidebar-collapsed .sidebar-resize-handle{display:none!important}

.settings-visitor-action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:18px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--ivory);
}
.settings-visitor-action>div{display:grid;gap:3px}
.settings-visitor-action strong{font-family:var(--font-display);font-size:1.08rem}
.settings-visitor-action span{color:var(--muted);font-size:.86rem}

@media(max-width:1100px){
  .sidebar-toggle-in-panel .sidebar-toggle-label{display:inline}
  .sidebar-toggle-in-panel{width:auto}
}
@media(max-width:900px){
  body.sidebar-collapsed .workspace{
    grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)!important;
  }
  body.sidebar-collapsed .source-sidebar{display:block!important}
  .settings-visitor-action{align-items:stretch;flex-direction:column}
}


/* 5.9.0 — chronologie éditoriale */
.chronology-modal{width:min(94vw,860px);max-height:90dvh;overflow:auto}
.chronology-section{margin-top:18px;padding:15px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--ivory)}
.chronology-section>div:first-child{display:grid;gap:3px}
.chronology-section>div:first-child small{color:var(--muted)}
.chronology-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;max-height:260px;overflow:auto;padding:4px}
.chronology-item{display:flex!important;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--paper);text-transform:none!important;letter-spacing:normal!important}
.chronology-item input{width:auto}
.chronology-item span{display:grid;gap:2px;min-width:0}
.chronology-item strong,.chronology-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chronology-item small{color:var(--muted)}


/* 5.9.1 — flèche d'ouverture visible sur le volet fermé */
.sidebar-toggle-arrow{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:24px;
  height:24px;
  font-size:20px;
  line-height:1;
  transition:transform 160ms ease,background 160ms ease,color 160ms ease;
}
body.sidebar-collapsed .sidebar-toggle-in-panel{
  justify-content:flex-start;
}
body.sidebar-collapsed .sidebar-toggle-arrow{
  order:-1;
  position:absolute;
  top:8px;
  left:50%;
  transform:translateX(-50%);
  width:28px;
  height:28px;
  border-radius:50%;
  background:var(--paper);
  color:var(--wine);
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  font-size:22px;
  writing-mode:horizontal-tb;
}
body.sidebar-collapsed .sidebar-toggle-label{
  margin-top:42px;
}
body.sidebar-collapsed .sidebar-toggle-in-panel:hover .sidebar-toggle-arrow,
body.sidebar-collapsed .sidebar-toggle-in-panel:focus-visible .sidebar-toggle-arrow{
  transform:translateX(-50%) scale(1.12);
  background:var(--wine);
  color:#fff;
}
body.sidebar-collapsed .sidebar-toggle-in-panel.sidebar-toggle-attention .sidebar-toggle-arrow{
  animation:sidebar-arrow-pulse 5.5s ease-in-out infinite;
}
@keyframes sidebar-arrow-pulse{
  0%,72%,100%{transform:translateX(-50%) scale(1);box-shadow:0 2px 8px rgba(0,0,0,.18)}
  78%{transform:translateX(-50%) scale(1.12);box-shadow:0 0 0 5px color-mix(in srgb,var(--wine) 18%,transparent)}
  84%{transform:translateX(-50%) scale(1)}
  90%{transform:translateX(-50%) scale(1.08)}
}
@media(prefers-reduced-motion:reduce){
  body.sidebar-collapsed .sidebar-toggle-in-panel.sidebar-toggle-attention .sidebar-toggle-arrow{
    animation:none;
  }
}


/* 5.9.2 — bouton Vidéos et page générale en pellicules */
.header-video-button{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  min-height:38px;
  padding:.52rem .86rem!important;
  border:1px solid color-mix(in srgb,var(--wine) 58%,var(--line))!important;
  border-radius:var(--control-radius)!important;
  background:var(--wine)!important;
  color:#fff!important;
  font-weight:800;
  box-shadow:0 3px 10px color-mix(in srgb,var(--wine) 24%,transparent);
}
.header-video-button:hover,
.header-video-button:focus-visible{
  transform:translateY(-1px);
  background:color-mix(in srgb,var(--wine) 86%,#000)!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--wine) 32%,transparent);
}
.header-video-button>span:first-child{font-size:.78rem}

.video-page-catalog{display:grid;gap:22px}
.video-page-collection{
  padding:15px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:linear-gradient(180deg,var(--ivory),var(--paper));
}
.video-page-collection-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:10px;
}
.video-page-collection-header h2{
  margin:1px 0 3px;
  font-family:var(--font-display);
  font-size:clamp(1.2rem,2vw,1.6rem);
}
.video-page-collection-header p{margin:0;color:var(--muted)}
.video-page-collection-header>span{
  flex:0 0 auto;
  padding:5px 9px;
  border-radius:999px;
  background:var(--paper);
  font-size:.75rem;
  font-weight:800;
}
.video-page-filmstrip{
  display:flex;
  gap:11px;
  overflow-x:auto;
  padding:8px 4px 13px;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
}
.video-page-film-frame{
  position:relative;
  flex:0 0 clamp(180px,22vw,280px);
  aspect-ratio:16/9;
  overflow:hidden;
  padding:0;
  border:6px solid #171313;
  border-radius:8px;
  background:#090909;
  color:#fff;
  scroll-snap-align:start;
  text-align:left;
}
.video-page-film-frame::before,
.video-page-film-frame::after{
  content:"";
  position:absolute;
  z-index:4;
  left:0;
  right:0;
  height:7px;
  background:repeating-linear-gradient(90deg,#d8c9a2 0 7px,#171313 7px 15px);
}
.video-page-film-frame::before{top:0}
.video-page-film-frame::after{bottom:0}
.video-page-film-frame>img,
.video-page-film-frame>video{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 180ms ease;
}
.video-page-film-frame:hover>img,
.video-page-film-frame:hover>video,
.video-page-film-frame:focus-visible>img,
.video-page-film-frame:focus-visible>video{transform:scale(1.035)}
.video-page-play{
  position:absolute;
  z-index:3;
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(0,0,0,.72);
  font-size:1rem;
}
.video-page-film-caption{
  position:absolute;
  z-index:3;
  left:8px;
  right:8px;
  bottom:10px;
  display:grid;
  gap:2px;
  min-width:0;
  padding:5px 7px;
  background:rgba(0,0,0,.76);
}
.video-page-film-caption strong,
.video-page-film-caption small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.video-page-film-caption small{color:rgba(255,255,255,.78);font-size:.67rem}
@media(max-width:640px){
  .header-video-button{padding:.48rem .65rem!important}
  .video-page-collection{padding:10px}
  .video-page-film-frame{flex-basis:220px}
}


/* 5.9.3 — priorité du visualiseur sur la page Vidéos */
#media-overlay{
  z-index:1300;
}
#media-overlay:not(.hidden){
  pointer-events:auto;
}


/* 5.9.5 — filtre global Vidéos dans la grille principale */
.header-video-button.active{
  background:#fff!important;
  color:var(--wine)!important;
  box-shadow:inset 0 0 0 2px var(--wine);
}
.gallery-toolbar.video-catalog-toolbar{
  grid-template-columns:1fr;
}
.gallery-toolbar.video-catalog-toolbar>label,
.gallery-toolbar.video-catalog-toolbar #gallery-select,
.gallery-toolbar.video-catalog-toolbar .gallery-cover{
  display:none!important;
}
.gallery-toolbar.video-catalog-toolbar .gallery-summary{
  grid-column:1/-1;
}


/* 5.9.6 — Vidéos YouTube redevient un élément normal du menu supérieur */
.top-nav .videos-nav-button,
.top-nav .videos-nav-button:hover,
.top-nav .videos-nav-button:focus-visible,
.top-nav .videos-nav-button.active{
  min-height:unset;
  padding:inherit!important;
  border:inherit!important;
  border-radius:inherit!important;
  background:inherit!important;
  color:inherit!important;
  box-shadow:none!important;
  transform:none!important;
  font-weight:inherit;
}
.top-nav .videos-nav-button.active{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
}


/* 5.9.7 — catalogue YouTube reconstruit collection par collection */
.youtube-catalog-active .media-controls,
.youtube-catalog-active .bulk-toolbar,
.youtube-catalog-active .pagination{
  display:none!important;
}
.gallery-toolbar.video-catalog-toolbar{
  grid-template-columns:1fr;
}
.gallery-toolbar.video-catalog-toolbar .gallery-cover,
.gallery-toolbar.video-catalog-toolbar>label,
.gallery-toolbar.video-catalog-toolbar .gallery-picker,
.gallery-toolbar.video-catalog-toolbar #edit-gallery,
.gallery-toolbar.video-catalog-toolbar #open-chronology{
  display:none!important;
}
.gallery-toolbar.video-catalog-toolbar .gallery-summary{
  grid-column:1/-1;
}
.youtube-collections-page{
  display:grid;
  gap:20px;
  margin-top:0;
}
.youtube-collection-section{
  min-width:0;
  padding:15px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:linear-gradient(180deg,var(--ivory),var(--paper));
}
.youtube-collection-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
}
.youtube-collection-heading h2{
  margin:2px 0 3px;
  font-family:var(--font-display);
  font-size:clamp(1.2rem,2vw,1.6rem);
}
.youtube-collection-heading p{margin:0;color:var(--muted)}
.youtube-collection-heading>span{
  flex:0 0 auto;
  padding:5px 9px;
  border-radius:999px;
  background:var(--paper);
  font-size:.75rem;
  font-weight:800;
}
.youtube-collection-filmstrip{
  padding-bottom:13px;
}
.youtube-catalog-frame{
  flex-basis:clamp(180px,22vw,280px);
}
@media(max-width:640px){
  .youtube-collection-section{padding:10px}
  .youtube-collection-heading{align-items:flex-start;flex-direction:column}
  .youtube-catalog-frame{flex-basis:220px}
}


/* 5.9.8 — repère vidéo dans les listes de collections */
.gallery-picker-visual{
  position:relative;
  display:grid;
  width:max-content;
  min-width:0;
}
.gallery-picker-video-logo{
  position:absolute;
  z-index:3;
  top:50%;
  right:-9px;
  display:grid;
  place-items:center;
  width:21px;
  height:21px;
  border:2px solid var(--paper);
  border-radius:50%;
  background:var(--wine);
  color:#fff;
  box-shadow:0 2px 7px rgba(0,0,0,.24);
  font-size:.62rem;
  font-style:normal;
  line-height:1;
  transform:translateY(-50%);
}
.gallery-picker-menu .gallery-picker-video-logo{
  right:-10px;
  width:22px;
  height:22px;
}


/* 5.10.0 — repères vidéo du volet et géométrie paramétrable des pellicules */
:root{
  --video-strip-bottom-spacing:14px;
  --video-strip-padding:12px;
  --video-strip-frame-gap:10px;
  --video-strip-frame-width:220px;
  --video-strip-header-spacing:8px;
  --video-strip-section-gap:12px;
}

/* Le grand dégagement réglé pour la grille ne s'applique plus à la pellicule. */
.video-filmstrip{
  margin:0 0 var(--video-strip-bottom-spacing);
  padding:var(--video-strip-padding);
}
.video-filmstrip-head{
  margin-bottom:var(--video-strip-header-spacing);
}
.video-filmstrip-track{
  gap:var(--video-strip-frame-gap);
  padding:4px 2px max(6px,calc(var(--video-strip-padding) / 2));
}
.video-film-frame{
  flex-basis:var(--video-strip-frame-width);
}
.youtube-collections-page{
  gap:var(--video-strip-section-gap);
}
.youtube-collection-section{
  padding:var(--video-strip-padding);
}
.youtube-collection-heading{
  margin-bottom:var(--video-strip-header-spacing);
}
.youtube-collection-filmstrip{
  gap:var(--video-strip-frame-gap);
  padding-bottom:max(6px,calc(var(--video-strip-padding) / 2));
}
.youtube-catalog-frame{
  flex-basis:var(--video-strip-frame-width);
}

/* Même repère vidéo que dans les sélecteurs illustrés, adapté au volet. */
.official-quick-visual{
  position:relative;
  display:grid;
  width:38px;
  height:32px;
  place-items:center;
}
.official-quick-visual>img,
.official-quick-empty-cover{
  display:grid;
  width:38px;
  height:32px;
  border-radius:var(--thumb-radius);
  background:var(--ivory);
  object-fit:cover;
  place-items:center;
}
.official-quick-visual .official-quick-video-logo{
  right:-7px;
  width:18px;
  height:18px;
  border-width:1px;
  font-size:.5rem;
}
.official-quick-list.hidden{
  display:none!important;
}


/* 5.11.0 — compacité, en-tête escamotable, statistiques et archives */
:root{
  --header-effective-height:var(--header-height,82px);
  --header-compact-height:42px;
  --content-top-spacing:24px;
  --heading-bottom-spacing:16px;
  --gallery-toolbar-spacing:10px;
  --media-controls-spacing:10px;
  --media-controls-padding:8px;
}

/* Compacité verticale par défaut, sans réactiver les grands vides des anciens modèles. */
.content-area{
  padding-top:clamp(12px,var(--content-top-spacing),48px);
  padding-bottom:40px;
}
.content-heading{
  margin-bottom:clamp(8px,var(--heading-bottom-spacing),32px);
}
.gallery-toolbar{
  margin-bottom:clamp(4px,var(--gallery-toolbar-spacing),24px);
  padding:10px 12px;
}
.video-filmstrip{
  margin-bottom:clamp(4px,var(--video-strip-bottom-spacing),24px);
  padding:clamp(6px,var(--video-strip-padding),18px);
}
.media-controls{
  top:calc(var(--header-effective-height) + 8px);
  gap:10px;
  margin-bottom:clamp(4px,var(--media-controls-spacing),24px);
  padding:clamp(6px,var(--media-controls-padding),16px) 10px;
}
.compact-empty-state{
  min-height:140px;
}

/* Réduction du volet haut en une seule ligne compacte. */
.site-header{
  min-height:var(--header-effective-height);
  transition:min-height 180ms ease,padding 180ms ease;
}
.workspace{
  min-height:calc(100vh - var(--header-effective-height));
}
.header-toggle-button,
.fullscreen-button{
  position:relative;
  display:grid;
  width:36px;
  height:36px;
  min-width:36px;
  padding:0;
  border:1px solid rgba(255,255,255,.3);
  border-radius:var(--control-radius);
  background:rgba(255,255,255,.08);
  color:#fff;
  place-items:center;
}
.header-toggle-button:hover,
.header-toggle-button:focus-visible,
.fullscreen-button:hover,
.fullscreen-button:focus-visible{
  background:rgba(255,255,255,.18);
}
.header-toggle-button span,
.fullscreen-button span{
  font-size:1rem;
  line-height:1;
}
body.header-compact{
  --header-effective-height:var(--header-compact-height);
}
body.header-compact .site-header{
  grid-template-columns:minmax(150px,.8fr) auto auto minmax(260px,1fr);
  min-height:var(--header-compact-height);
  padding:0 12px;
}
body.header-compact .brand-mark{
  width:28px;
  height:28px;
}
body.header-compact .site-brand{
  gap:7px;
}
body.header-compact .site-brand strong{
  font-size:.78rem;
}
body.header-compact .site-brand small,
body.header-compact .theme-switcher-label,
body.header-compact .user-menu div{
  display:none;
}
body.header-compact .top-nav button{
  padding-inline:10px;
  font-size:.64rem;
}
body.header-compact .top-nav button::after{
  right:10px;
  left:10px;
}
body.header-compact .header-theme-switcher{
  gap:2px;
  padding:2px 4px;
}
body.header-compact .header-theme-switcher button{
  width:27px;
  height:27px;
}
body.header-compact .header-actions{
  gap:6px;
}
body.header-compact .guide-button,
body.header-compact .deposit-button{
  min-height:30px;
  padding:6px 9px;
  font-size:.62rem;
}
body.header-compact .user-menu>span,
body.header-compact .icon-button,
body.header-compact .header-toggle-button,
body.header-compact .fullscreen-button{
  width:30px;
  height:30px;
  min-width:30px;
}
body.header-compact .media-controls{
  top:calc(var(--header-compact-height) + 6px);
}

/* Choix explicite des administrateurs comptés dans les statistiques. */
.activity-admin-inclusion{
  display:grid;
  grid-template-columns:minmax(240px,.8fr) minmax(320px,1.6fr) auto;
  align-items:center;
  gap:14px;
  padding:14px;
  border:1px solid var(--line);
  border-left:4px solid var(--gold);
  background:var(--ivory);
}
.activity-admin-inclusion h4{
  margin:2px 0 4px;
  font-family:var(--font-display);
  font-size:1rem;
}
.activity-admin-inclusion p{
  margin:0;
  color:var(--muted);
  font-size:.75rem;
  line-height:1.45;
}
.activity-admin-checks{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:7px;
}
.activity-admin-checks label{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid var(--line);
  background:var(--paper);
  font-size:.72rem;
}
.activity-admin-checks input{
  width:auto;
  min-height:0;
}
.activity-admin-checks span{
  display:grid;
  gap:2px;
  min-width:0;
}
.activity-admin-checks strong,
.activity-admin-checks small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.activity-admin-checks small{
  color:var(--muted);
}
.activity-admin-actions{
  display:flex;
  gap:8px;
}

/* Provenance des invités et archive des invitations. */
.visitor-inviter{
  color:var(--wine)!important;
  font-weight:700;
}
.invitation-history-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.invitation-history-head h3{
  margin:2px 0 0;
}
.invitation-history-head>span{
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--ivory);
  font-size:.72rem;
}
.invitation-archive-row{
  grid-template-columns:minmax(220px,1.2fr) minmax(210px,.9fr) auto auto;
}
.invitation-archive-identity,
.invitation-archive-dates{
  display:grid;
  gap:3px;
}
.invitation-archive-dates small,
.invitation-archive-identity small{
  color:var(--muted);
}
.invitation-archive-identity b{
  color:var(--ink);
}

@media(max-width:1200px){
  .activity-admin-inclusion{
    grid-template-columns:1fr;
  }
  .activity-admin-actions{
    justify-content:flex-end;
  }
  .invitation-archive-row{
    grid-template-columns:1fr auto;
  }
  .invitation-archive-dates{
    grid-column:1/-1;
  }
}
@media(max-width:900px){
  body.header-compact .site-header{
    grid-template-columns:minmax(150px,1fr) auto;
    min-height:54px;
    padding:5px 10px;
  }
  body.header-compact{
    --header-effective-height:54px;
  }
  body.header-compact .header-theme-switcher{
    display:none;
  }
  .header-toggle-button,
  .fullscreen-button{
    width:32px;
    height:32px;
    min-width:32px;
  }
}
@media(max-width:650px){
  .activity-admin-checks{
    grid-template-columns:1fr;
  }
  .activity-admin-actions{
    justify-content:stretch;
  }
  .activity-admin-actions button{
    flex:1;
  }
  .invitation-archive-row{
    grid-template-columns:1fr;
  }
}


/* Finition compacte 5.11.0 : commandes rapprochées de la grille. */
.media-controls{
  row-gap:6px;
}
.media-controls .selection-controls{
  gap:6px;
}
.media-controls .selection-controls button,
.media-controls .pagination button{
  padding:5px 8px;
}
.media-controls .page-size-control select{
  min-height:30px;
  padding:4px 7px;
}
.media-controls .rating-filter{
  gap:5px;
  padding-top:5px;
}
.media-controls .rating-filter button,
.media-controls .rating-filter label{
  min-height:26px;
  padding:3px 6px;
}
.video-filmstrip-track{
  padding-top:2px;
}


/* 5.12.0 — interface compacte, commandes toujours accessibles */
:root{
  --header-compact-height:44px;
  --compact-section-spacing:4px;
  --gallery-toolbar-padding:8px;
  --media-controls-gap:6px;
}
.visually-hidden{
  position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;
  padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important;
}
.content-area{padding-top:clamp(0px,var(--content-top-spacing),48px)}
.content-heading{margin-bottom:clamp(0px,var(--heading-bottom-spacing),32px)}
.gallery-toolbar{
  margin-bottom:clamp(0px,var(--gallery-toolbar-spacing),24px);
  padding:var(--gallery-toolbar-padding);
}
.video-filmstrip{margin-bottom:clamp(0px,var(--video-strip-bottom-spacing),32px)}
.media-controls{
  margin-bottom:clamp(0px,var(--media-controls-spacing),24px);
  padding:var(--media-controls-padding) 8px;
  position:sticky;z-index:80;top:calc(var(--header-effective-height) + 4px);
  display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;
  gap:var(--media-controls-gap);min-width:0;min-height:var(--control-height);
  overflow:visible;border:1px solid var(--line);background:var(--paper);
  box-shadow:0 6px 18px rgba(45,28,20,.12);isolation:isolate;
}
.media-controls .selection-controls{
  display:flex;flex:0 0 auto;align-items:center;flex-wrap:nowrap;
  gap:var(--media-controls-gap);min-width:max-content;
}
.media-controls .selection-controls button{min-height:30px;padding:4px 8px;white-space:nowrap}
.media-controls .selection-controls span{white-space:nowrap}
.media-display-controls{
  display:flex;align-items:center;justify-content:flex-end;gap:var(--media-controls-gap);
  min-width:0;overflow:visible;flex-wrap:nowrap;
}
.media-display-controls .page-size-control,
.media-display-controls .columns-control{
  display:flex;align-items:center;gap:5px;min-width:max-content;color:var(--muted);
  font-size:.6rem;font-weight:800;text-transform:uppercase;
}
.media-display-controls .page-size-control select{
  width:auto;min-width:62px;min-height:30px;padding:3px 6px;
}
.media-display-controls .columns-control{
  flex:1 1 250px;min-width:190px;max-width:360px;
}
.media-display-controls .columns-control span{flex:0 0 auto;white-space:nowrap}
.media-display-controls .columns-control input[type="range"]{
  flex:1 1 120px;min-width:100px;width:auto;height:24px;min-height:24px;
  margin:0;padding:0;border:0;background:transparent;
}
.rating-filter-menu{position:relative;flex:0 0 auto}
.rating-filter-menu>summary{
  display:flex;align-items:center;gap:5px;min-height:30px;padding:4px 8px;
  border:1px solid var(--line);border-radius:var(--control-radius);background:#fff;
  color:var(--wine-700);cursor:pointer;list-style:none;white-space:nowrap;user-select:none;
}
.rating-filter-menu>summary::-webkit-details-marker{display:none}
.rating-filter-menu>summary::after{content:"⌄";margin-left:2px;color:var(--muted);font-size:.75rem}
.rating-filter-menu[open]>summary{
  border-color:var(--wine-700);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--wine) 15%,transparent);
}
.rating-filter-menu>summary strong{font-size:.63rem}
.rating-filter-menu>summary small{color:var(--muted);font-size:.58rem}
.rating-filter-menu .rating-filter{
  position:absolute;z-index:120;top:calc(100% + 6px);right:0;display:flex;
  width:max-content;max-width:min(520px,calc(100vw - 32px));align-items:center;
  flex-wrap:wrap;gap:5px;margin:0;padding:8px;border:1px solid var(--line);
  border-radius:var(--control-radius);background:var(--paper);
  box-shadow:0 14px 34px rgba(35,20,16,.2);
}
.rating-filter-menu .rating-filter button,
.rating-filter-menu .rating-filter label{min-height:28px;padding:4px 7px}
.gallery-grid{
  position:relative;z-index:1;
  scroll-margin-top:calc(var(--header-effective-height) + var(--control-height) + 16px);
}
.media-card{z-index:0}

.header-action-button{
  display:inline-flex!important;width:auto!important;min-width:42px!important;height:34px!important;
  padding:0 8px!important;align-items:center;justify-content:center;gap:5px;
  border-width:1px!important;border-style:solid!important;background:rgba(255,255,255,.12)!important;
}
.header-toggle-button{border-color:color-mix(in srgb,var(--gold) 78%,#fff)!important}
.fullscreen-button{border-color:rgba(170,225,255,.82)!important}
.header-action-button:hover,.header-action-button:focus-visible{
  background:rgba(255,255,255,.24)!important;transform:translateY(-1px);
}
.header-action-icon{
  display:grid;width:20px;height:20px;place-items:center;font-size:1.05rem!important;line-height:1;
}
.header-action-label{font-size:.56rem;font-weight:900;letter-spacing:.02em;white-space:nowrap}

body.fullscreen-active{--header-effective-height:var(--header-compact-height)}
body:is(.header-compact,.fullscreen-active) .site-header{
  grid-template-columns:minmax(140px,.75fr) auto auto minmax(245px,1fr);
  min-height:var(--header-compact-height);padding:0 10px;gap:8px;
}
body:is(.header-compact,.fullscreen-active) .brand-mark{width:28px;height:28px}
body:is(.header-compact,.fullscreen-active) .site-brand{gap:6px}
body:is(.header-compact,.fullscreen-active) .site-brand strong{font-size:.76rem}
body:is(.header-compact,.fullscreen-active) .site-brand small,
body:is(.header-compact,.fullscreen-active) .theme-switcher-label,
body:is(.header-compact,.fullscreen-active) .user-menu div{display:none}
body:is(.header-compact,.fullscreen-active) .top-nav button{padding-inline:8px;font-size:.62rem}
body:is(.header-compact,.fullscreen-active) .header-theme-switcher{gap:2px;padding:2px 4px}
body:is(.header-compact,.fullscreen-active) .header-theme-switcher button{width:26px;height:26px}
body:is(.header-compact,.fullscreen-active) .header-actions{gap:4px}
body:is(.header-compact,.fullscreen-active) .guide-button,
body:is(.header-compact,.fullscreen-active) .deposit-button{
  min-height:28px;padding:5px 8px;font-size:.6rem;
}
body:is(.header-compact,.fullscreen-active) .header-action-button{
  width:30px!important;min-width:30px!important;height:30px!important;padding:0!important;
}
body:is(.header-compact,.fullscreen-active) .header-action-label{display:none}

body:is(.header-compact,.fullscreen-active) .content-area{padding-top:var(--compact-section-spacing)}
body:is(.header-compact,.fullscreen-active) .content-heading{
  min-height:32px;align-items:center;gap:8px;margin-bottom:var(--compact-section-spacing);
}
body:is(.header-compact,.fullscreen-active) .content-heading>div:first-child{
  display:flex;min-width:0;align-items:center;gap:8px;
}
body:is(.header-compact,.fullscreen-active) .content-heading .eyebrow{display:none}
body:is(.header-compact,.fullscreen-active) .content-heading h1{
  flex:0 0 auto;margin:0;font-size:1.12rem;line-height:1;letter-spacing:-.02em;white-space:nowrap;
}
body:is(.header-compact,.fullscreen-active) #section-description{
  max-width:34vw;margin:0;overflow:hidden;color:var(--muted);font-size:.66rem;
  line-height:1.2;text-overflow:ellipsis;white-space:nowrap;
}
body:is(.header-compact,.fullscreen-active) .release-stamp{
  flex:0 0 auto;margin:0;padding:2px 5px;font-size:.52rem;line-height:1.2;white-space:nowrap;
}
body:is(.header-compact,.fullscreen-active) .view-controls{height:28px;padding:2px}
body:is(.header-compact,.fullscreen-active) .view-controls button{width:30px;height:24px}

body:is(.header-compact,.fullscreen-active) .gallery-toolbar{
  min-height:38px;align-items:center;flex-wrap:nowrap;gap:6px;
  margin-bottom:var(--compact-section-spacing);padding:4px 6px;
}
body:is(.header-compact,.fullscreen-active) .gallery-cover{width:34px;height:34px;flex:0 0 34px}
body:is(.header-compact,.fullscreen-active) .gallery-toolbar label{
  display:flex;min-width:min(320px,34vw);align-items:center;gap:4px;
}
body:is(.header-compact,.fullscreen-active) .gallery-field-label{display:none}
body:is(.header-compact,.fullscreen-active) .gallery-picker summary{min-height:34px;padding:2px 6px}
body:is(.header-compact,.fullscreen-active) .gallery-summary{
  display:flex;min-width:0;align-items:center;gap:6px;
}
body:is(.header-compact,.fullscreen-active) .gallery-summary strong,
body:is(.header-compact,.fullscreen-active) .gallery-summary span{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
body:is(.header-compact,.fullscreen-active) .gallery-toolbar .secondary-button{
  min-height:30px;padding:5px 8px;font-size:.62rem;
}

body:is(.header-compact,.fullscreen-active) .video-filmstrip{
  margin-bottom:var(--compact-section-spacing);padding:4px 6px;
}
body:is(.header-compact,.fullscreen-active) .video-filmstrip-head{align-items:center;margin-bottom:2px}
body:is(.header-compact,.fullscreen-active) .video-filmstrip-head .eyebrow{display:none}
body:is(.header-compact,.fullscreen-active) .video-filmstrip-head h2{font-size:.82rem;line-height:1}
body:is(.header-compact,.fullscreen-active) .video-filmstrip-track{
  gap:min(var(--video-strip-frame-gap),6px);padding:2px;
}
body:is(.header-compact,.fullscreen-active) .video-film-frame{
  flex-basis:min(var(--video-strip-frame-width),150px);border-width:3px;
}

body:is(.header-compact,.fullscreen-active) .media-controls{
  top:calc(var(--header-compact-height) + 2px);min-height:36px;
  gap:var(--media-controls-gap);margin-bottom:var(--compact-section-spacing);padding:2px 6px;
}
body:is(.header-compact,.fullscreen-active) .media-controls .selection-controls button,
body:is(.header-compact,.fullscreen-active) .rating-filter-menu>summary{
  min-height:28px;padding:3px 6px;
}
body:is(.header-compact,.fullscreen-active) .media-display-controls .page-size-control select{min-height:28px}
body:is(.header-compact,.fullscreen-active) .media-display-controls .columns-control{
  min-width:170px;max-width:300px;
}

@media(max-width:1050px){
  .media-controls{grid-template-columns:1fr;align-items:stretch}
  .media-display-controls{justify-content:flex-start;flex-wrap:wrap;overflow:visible}
  body:is(.header-compact,.fullscreen-active) .media-controls{
    grid-template-columns:1fr;align-items:stretch;
  }
}
@media(max-width:760px){
  .media-controls{grid-template-columns:1fr;padding-inline:6px}
  .media-display-controls{justify-content:flex-start}
  .media-display-controls .columns-control{min-width:175px}
  .header-action-label{display:none}
  .header-action-button{width:34px!important;min-width:34px!important;padding:0!important}
  body:is(.header-compact,.fullscreen-active) .content-heading{align-items:flex-start}
  body:is(.header-compact,.fullscreen-active) #section-description,
  body:is(.header-compact,.fullscreen-active) .release-stamp{display:none}
}
@media(max-width:480px){
  .rating-filter-menu .rating-filter{
    position:fixed;right:12px;bottom:12px;left:12px;top:auto;
    width:auto;max-width:none;justify-content:center;
  }
}


/* 5.13.0 — gestion compacte des comptes, groupes et super-administrateur */
.admin-users-toolbar{
  position:sticky;z-index:12;top:0;display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(210px,280px) auto;
  align-items:end;gap:8px;margin-bottom:8px;padding:8px 10px;
  border:1px solid var(--line);background:var(--ivory);
}
.admin-users-toolbar>div{display:grid;gap:1px}
.admin-users-toolbar label{display:grid;gap:3px;color:var(--muted);font-size:.56rem;font-weight:800;text-transform:uppercase}
.admin-users-toolbar select{min-height:32px;padding:4px 7px;border:1px solid var(--line);background:#fff}
.admin-users-list{display:grid;gap:6px}

.admin-user-card.compact-admin-user{
  grid-template-columns:minmax(230px,1.25fr) 108px 108px minmax(280px,1.35fr) auto;
  align-items:center;gap:7px;padding:7px 9px;
}
.compact-admin-identity strong{display:flex;align-items:center;gap:6px;min-width:0}
.super-admin-badge{
  flex:0 0 auto;padding:2px 5px;border:1px solid var(--gold);
  border-radius:999px;background:var(--ivory);color:var(--wine);
  font-size:.5rem;font-style:normal;font-weight:900;text-transform:uppercase;
}
.super-admin-card{border-left:4px solid var(--gold)!important}

.compact-admin-groups,
.compact-invite-groups{
  min-width:0;margin:0;padding:0;border:0;background:transparent;
}
.compact-admin-groups legend,
.compact-invite-groups legend{
  margin:0 0 2px;padding:0;color:var(--muted);
  font-size:.5rem;font-weight:900;text-transform:uppercase;
}
.compact-admin-groups>.group-checks,
.compact-invite-groups>.group-checks{
  position:static!important;display:flex!important;width:auto!important;max-height:none!important;
  padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
  overflow:visible!important;
}
.compact-group-checks{
  display:flex;align-items:center;flex-wrap:wrap;gap:2px 8px;
}
.compact-group-checks label{
  position:relative;display:inline-flex;align-items:center;gap:4px;min-height:18px;padding:0;
  border:0!important;border-radius:0;background:transparent!important;
  color:var(--ink);font-size:.55rem;text-transform:none;white-space:nowrap;
}
.compact-group-checks .group-check-all{
  color:var(--wine);font-weight:900;
}
.compact-group-checks .group-check-input{
  position:absolute;width:1px;height:1px;min-height:0;margin:0;padding:0;
  opacity:0;pointer-events:none;
}
.compact-group-checks .group-check-visual{
  display:grid;flex:0 0 14px;width:14px;height:14px;
  border:1px solid #8f9b92;border-radius:3px;background:#fff;place-items:center;
}
.compact-group-checks .group-check-visual::after{
  color:#fff;font-size:10px;font-weight:900;line-height:1;content:"";
}
.compact-group-checks .group-check-input:focus-visible + .group-check-visual{
  outline:2px solid var(--gold);outline-offset:2px;
}
.compact-group-checks .group-check-input:checked + .group-check-visual{
  border-color:#2f8750;background:#2f8750;
}
.compact-group-checks .group-check-input:checked + .group-check-visual::after{
  content:"✓";
}
.compact-group-checks .group-check-input:indeterminate + .group-check-visual{
  border-color:#a8c8b0;background:#deeee2;
}
.compact-group-checks .group-check-input:indeterminate + .group-check-visual::after{
  color:#76927d;content:"✓";
}
.compact-group-checks .group-check-name{
  overflow:hidden;max-width:150px;text-overflow:ellipsis;
}

.visitor-import-admin{
  display:flex;align-items:center;gap:6px;min-width:145px;padding:5px 7px;
  border:1px solid var(--line);background:var(--ivory);font-size:.58rem;
}
.visitor-import-admin input{width:15px;min-height:0}
.visitor-import-admin span{display:grid;gap:1px}
.visitor-import-admin small{color:var(--muted);font-size:.5rem}
.visitor-import-choice{
  display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:9px;
  padding:11px;border:1px solid var(--gold);background:var(--ivory);
}
.visitor-import-choice input{width:17px;min-height:17px;margin-top:2px}
.visitor-import-choice span{display:grid;gap:3px}
.visitor-import-choice small{color:var(--muted);font-size:.65rem;line-height:1.35}

.compact-icon-actions .admin-icon-action.super-transfer{
  border-color:var(--gold);background:var(--ivory);color:var(--wine);font-size:1.05rem;
}
.compact-icon-actions .admin-icon-action.super-transfer:hover{background:var(--gold)}

@media(max-width:1180px){
  .admin-user-card.compact-admin-user{grid-template-columns:minmax(220px,1fr) 108px 108px auto}
  .compact-admin-groups{grid-column:1/-1}
  .visitor-import-admin{grid-column:1/-2}
}
@media(max-width:760px){
  .admin-users-toolbar{grid-template-columns:1fr 1fr}
  .admin-users-toolbar>div{grid-column:1/-1}
  .admin-user-card.compact-admin-user{grid-template-columns:1fr 1fr}
  .compact-admin-identity,.compact-admin-groups,.visitor-import-admin{grid-column:1/-1}
}

/* 5.13.1 — groupes utilisateurs sans encadrement */
.compact-admin-groups,.compact-invite-groups{box-shadow:none!important}


/* 5.14.0 — aperçu du laboratoire bêta */
body.beta-preview-mode *{cursor:crosshair!important}
body.beta-preview-mode .beta-preview-selected{
  outline:3px solid #2f80ed!important;
  outline-offset:2px!important;
}


/* 5.14.0 — accès au laboratoire bêta */
.beta-lab-button{
  display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:6px 9px;
  border:1px solid rgba(221,198,142,.78);border-radius:var(--control-radius);
  background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font-weight:850;
}
.beta-lab-button:hover,.beta-lab-button:focus-visible{background:rgba(255,255,255,.24)}


/* 5.15.0 — gestion optionnelle de Memcached */
.cache-admin{display:grid;gap:14px}
.cache-state{
  display:inline-flex;align-items:center;justify-content:center;min-width:96px;
  padding:6px 10px;border:1px solid var(--line);border-radius:999px;
  background:var(--ivory);color:var(--muted);font-size:.72rem;font-weight:900;
  text-transform:uppercase;letter-spacing:.05em;
}
.cache-state.active{border-color:#78a989;background:#e7f3e9;color:#27643d}
.cache-status-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;
}
.cache-status-grid article{
  display:grid;gap:4px;min-width:0;padding:10px;border:1px solid var(--line);
  border-radius:var(--control-radius);background:var(--ivory);
}
.cache-status-grid article span{
  color:var(--muted);font-size:.62rem;font-weight:850;text-transform:uppercase;
}
.cache-status-grid article strong{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;
}
.cache-message{
  margin:0;padding:9px 11px;border-left:3px solid var(--gold);
  background:var(--ivory);color:var(--muted);font-size:.8rem;
}
.cache-settings-form{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
  padding:12px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper);
}
.cache-settings-form label{display:grid;gap:5px;min-width:0}
.cache-settings-form label.wide,.cache-settings-form .wide{grid-column:1/-1}
.cache-settings-form input,.cache-settings-form select{width:100%}
.cache-settings-form .check-row{
  display:flex;grid-column:1/-1;align-items:center;gap:8px;
}
.cache-settings-form .check-row input{width:auto}
@media(max-width:720px){
  .cache-settings-form{grid-template-columns:1fr}
  .cache-settings-form label.wide,.cache-settings-form .wide{grid-column:auto}
}


/* 5.16.0 — validation d’accès et suivi du courriel */
.compact-admin-access{
  display:grid;
  align-content:start;
  gap:3px;
}
.access-approval-check{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
  padding:3px 0 0;
  color:var(--muted);
  font-size:.54rem;
  letter-spacing:0;
  text-transform:none;
  cursor:pointer;
}
.access-approval-check input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.access-approval-mark{
  display:grid;
  flex:0 0 15px;
  width:15px;
  height:15px;
  border:1px solid #8f9b92;
  border-radius:3px;
  background:#fff;
  place-items:center;
}
.access-approval-mark::after{
  color:#fff;
  font-size:10px;
  font-weight:900;
  line-height:1;
  content:"";
}
.access-approval-check input:checked + .access-approval-mark{
  border-color:#2f8750;
  background:#2f8750;
}
.access-approval-check input:checked + .access-approval-mark::after{
  content:"✓";
}
.access-approval-check input:focus-visible + .access-approval-mark{
  outline:2px solid var(--gold);
  outline-offset:2px;
}
.access-approval-check>span:last-child{
  display:grid;
  min-width:0;
  gap:0;
}
.access-approval-check strong{
  color:var(--ink);
  font-size:.56rem;
  white-space:nowrap;
}
.access-approval-check small{
  overflow:hidden;
  max-width:120px;
  color:var(--muted);
  font-size:.48rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.access-approval-check.unavailable{
  cursor:not-allowed;
  opacity:.64;
}
.access-mail-status{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin-top:2px;
  padding:2px 5px;
  border-radius:999px;
  font-size:.5rem!important;
  font-weight:800;
  line-height:1.25;
}
.access-mail-status.sent{
  background:#e4f3e8;
  color:#246c3c;
}
.access-mail-status.failed{
  background:#fff0ec;
  color:#a33b2f;
}
.access-mail-status.unavailable{
  background:#f2eee9;
  color:#7e6f65;
}
.access-mail-status.never{
  background:#f3f0ec;
  color:#82766d;
}
@media(min-width:1181px){
  .admin-user-card.compact-admin-user{
    grid-template-columns:minmax(230px,1.25fr) 112px 160px minmax(145px,.7fr) auto;
  }
}
@media(max-width:1180px){
  .compact-admin-access{
    min-width:140px;
  }
}


/* 5.16.1 — déconnexion native */
.logout-form{
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:0;
}
.logout-form .text-button{
  margin:0;
}


/* 5.17.0 — notes visibles, présence et galerie temporaire */
.media-visual-shell{
  position:relative;
  min-width:0;
}
.media-card-personal{
  position:absolute;
  z-index:5;
  right:8px;
  bottom:8px;
  left:8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  pointer-events:none;
}
.media-card-rating{
  display:inline-flex;
  align-items:center;
  gap:1px;
  padding:3px 5px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(26,15,18,.64);
  box-shadow:0 2px 9px rgba(0,0,0,.16);
  backdrop-filter:blur(4px);
  pointer-events:auto;
}
.media-card-rating button,
.media-card-rating span{
  display:grid;
  width:15px;
  height:18px;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.38);
  font-size:.68rem;
  line-height:1;
  place-items:center;
}
.media-card-rating button{
  cursor:pointer;
}
.media-card-rating button:hover,
.media-card-rating button:focus-visible,
.media-card-rating .active{
  color:#f4c95d;
}
.media-card-rating button:focus-visible{
  outline:1px solid #fff;
  outline-offset:1px;
}
.media-card-presence{
  display:inline-flex;
  min-width:25px;
  height:25px;
  min-height:0;
  padding:0 6px;
  align-items:center;
  justify-content:center;
  gap:3px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(26,15,18,.64);
  color:rgba(255,255,255,.72);
  box-shadow:0 2px 9px rgba(0,0,0,.16);
  backdrop-filter:blur(4px);
  font-size:.67rem;
  pointer-events:auto;
}
button.media-card-presence{
  cursor:pointer;
}
.media-card-presence.active{
  border-color:#a8dfb7;
  background:rgba(36,113,62,.88);
  color:#fff;
}
.media-card-presence.has-presence:not(.active){
  color:#d7f0dc;
}
.media-card-presence b{
  font-size:.55rem;
}
.media-card-presence.readonly{
  pointer-events:none;
}

.selection-personal-actions,
.selection-gallery-quick-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:8px 0;
  padding:7px 9px;
  border:1px solid var(--line);
  background:var(--ivory);
}
.selection-rating-control{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.selection-rating-control>span{
  color:var(--muted);
  font-size:.58rem;
  font-weight:900;
  text-transform:uppercase;
  white-space:nowrap;
}
.selection-rating-stars{
  display:flex;
  gap:1px;
}
.selection-rating-stars button{
  display:grid;
  width:22px;
  height:24px;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  color:#c4b6a7;
  font-size:.88rem;
  place-items:center;
}
.selection-rating-stars button.active,
.selection-rating-stars button:hover,
.selection-rating-stars button:focus-visible{
  color:#c98b16;
}
.selection-rating-control .text-button{
  padding:2px 4px;
  font-size:.55rem;
}
.selection-presence-control{
  display:flex!important;
  align-items:center;
  gap:6px;
  margin:0;
  color:var(--ink);
  font-size:.62rem;
  font-weight:800;
  text-transform:none!important;
  letter-spacing:normal!important;
  white-space:nowrap;
}
.selection-presence-control input{
  width:16px;
  height:16px;
  min-height:0;
}
.media-presence-control{
  display:grid;
  gap:4px;
  margin:8px 0;
  padding:8px 9px;
  border-left:3px solid #4f9463;
  background:#edf7ef;
}
.media-presence-control .check-row{
  margin:0;
}
.media-presence-control small{
  color:#486650;
  font-size:.62rem;
  line-height:1.35;
}

.selection-gallery-quick-actions{
  flex:0 0 auto;
  margin:0 0 10px;
}
.selection-materialize-form{
  display:grid;
  grid-template-columns:minmax(220px,1.1fr) minmax(210px,.8fr) auto;
  align-items:end;
  gap:8px 12px;
  flex:0 0 auto;
  margin:0 0 10px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-left:4px solid var(--gold);
  background:var(--ivory);
}
.selection-materialize-copy{
  display:grid;
  gap:2px;
}
.selection-materialize-copy small{
  color:var(--muted);
  font-size:.6rem;
  line-height:1.35;
}
.selection-materialize-form>label{
  display:grid;
  gap:4px;
  color:var(--muted);
  font-size:.58rem;
  font-weight:900;
  text-transform:uppercase;
}
.selection-materialize-form select,
.selection-materialize-form input,
.selection-materialize-form textarea{
  min-height:34px;
  padding:6px 8px;
}
.selection-materialize-form>.check-row{
  grid-column:1/3;
  display:flex;
  align-items:center;
  align-self:center;
  text-transform:none;
}
.selection-materialize-form>.primary-button{
  grid-column:3;
  grid-row:2;
}
.selection-materialize-new{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:2fr .65fr 1fr 1fr;
  gap:8px;
}
.selection-materialize-new label{
  display:grid;
  gap:4px;
  color:var(--muted);
  font-size:.56rem;
  font-weight:900;
  text-transform:uppercase;
}
.selection-materialize-new .wide{
  grid-column:1/-1;
}
.selection-gallery-modal{
  gap:0;
}
.selection-gallery-heading{
  margin-bottom:12px;
}

body.presence-source-active .gallery-cover.empty{
  color:#4f9463;
}

@media(max-width:900px){
  .selection-materialize-form{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .selection-materialize-form>*,
  .selection-materialize-form>.check-row,
  .selection-materialize-form>.primary-button{
    grid-column:1;
    grid-row:auto;
  }
  .selection-materialize-new{
    grid-template-columns:1fr 1fr;
  }
  .selection-materialize-new .wide{
    grid-column:1/-1;
  }
}
@media(max-width:620px){
  .selection-personal-actions,
  .selection-gallery-quick-actions{
    align-items:flex-start;
    flex-direction:column;
  }
  .selection-presence-control{
    white-space:normal;
  }
  .selection-materialize-new{
    grid-template-columns:1fr;
  }
  .selection-materialize-new .wide{
    grid-column:1;
  }
}


/* 5.17.2 — présence publique explicite et notes de lot confirmées */
label.media-card-presence{
  position:relative;
  width:auto;
  min-width:25px;
  padding:3px 6px 3px 4px;
  text-transform:none;
  letter-spacing:normal;
}
.media-card-presence input{
  position:absolute;
  width:1px;
  height:1px;
  margin:0;
  opacity:0;
  pointer-events:none;
}
.media-card-presence-mark{
  display:grid;
  flex:0 0 17px;
  width:17px;
  height:17px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.48);
  font-size:.66rem;
  font-weight:900;
  line-height:1;
  place-items:center;
}
.media-card-presence input:checked + .media-card-presence-mark{
  border-color:#7fd39a;
  background:#26834a;
  color:#fff;
  box-shadow:0 0 0 2px rgba(92,207,127,.2),0 0 12px rgba(80,220,126,.42);
}
.media-card-presence input:focus-visible + .media-card-presence-mark{
  outline:2px solid #fff;
  outline-offset:2px;
}
.media-card-presence-label{
  color:rgba(255,255,255,.88);
  font-size:.55rem;
  font-weight:800;
  line-height:1;
}
.media-card-presence.active{
  border-color:#8cdda4;
  background:rgba(26,104,52,.9);
}
.media-card-presence.active .media-card-presence-label{
  color:#fff;
}
.media-card-presence.readonly .media-card-presence-mark{
  color:#d7f0dc;
}
.selection-rating-control{
  flex-wrap:wrap;
}
.selection-rating-control>small{
  flex:1 0 100%;
  color:var(--muted);
  font-size:.5rem;
  font-weight:600;
  line-height:1.2;
  text-transform:none;
}
.selection-presence-control>span{
  display:grid;
  gap:1px;
}
.selection-presence-control strong{
  font-size:.62rem;
}
.selection-presence-control small{
  color:var(--muted);
  font-size:.5rem;
  font-weight:600;
  line-height:1.2;
}
.media-presence-public-check{
  align-items:flex-start!important;
}
.media-presence-public-check>span{
  display:grid;
  gap:2px;
}
.media-presence-public-check small{
  color:#486650;
  font-size:.58rem;
  line-height:1.3;
}
@media(max-width:620px){
  .media-card-presence-label{
    display:none;
  }
  label.media-card-presence{
    padding-right:4px;
  }
}


/* 5.18.0 — aides contextuelles et design unifié */
.ui-tooltip{
  position:fixed;
  z-index:5000;
  width:max-content;
  max-width:min(320px,calc(100vw - 20px));
  padding:8px 10px;
  border:1px solid color-mix(in srgb,var(--gold) 52%,var(--line));
  border-radius:8px;
  background:color-mix(in srgb,var(--wine-dark) 94%,#000);
  color:#fff;
  font-size:.68rem;
  font-weight:650;
  line-height:1.35;
  text-align:left;
  box-shadow:0 12px 30px rgba(20,8,13,.28);
  pointer-events:none;
}
.ui-tooltip::before{
  position:absolute;
  left:50%;
  width:8px;
  height:8px;
  background:inherit;
  border-left:1px solid color-mix(in srgb,var(--gold) 52%,var(--line));
  border-top:1px solid color-mix(in srgb,var(--gold) 52%,var(--line));
  content:"";
  transform:translateX(-50%) rotate(45deg);
}
.ui-tooltip[data-side="bottom"]::before{
  top:-5px;
}
.ui-tooltip[data-side="top"]::before{
  bottom:-5px;
  transform:translateX(-50%) rotate(225deg);
}
.ui-tooltip.hidden{
  display:none!important;
}

.design-mode-switcher{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:0 0 12px;
}
.design-mode-switcher button{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  gap:1px 8px;
  min-height:54px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--paper);
  color:var(--ink);
  text-align:left;
}
.design-mode-switcher button>span{
  grid-row:1/3;
  display:grid;
  width:32px;
  height:32px;
  border-radius:8px;
  background:var(--ivory);
  color:var(--wine);
  place-items:center;
  font-size:1rem;
}
.design-mode-switcher button strong{
  font-size:.72rem;
}
.design-mode-switcher button small{
  color:var(--muted);
  font-size:.58rem;
}
.design-mode-switcher button.active{
  border-color:var(--gold);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 18%,transparent);
}
.design-mode-switcher button:hover,
.design-mode-switcher button:focus-visible{
  border-color:var(--wine);
  transform:translateY(-1px);
}

.design-quality-panel{
  display:grid;
  gap:10px;
  margin:12px 0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--paper);
}
.design-quality-panel.success{
  border-color:#91c7a0;
  background:#f2faf4;
}
.design-quality-panel.warning{
  border-color:#d6b16c;
  background:#fff9ed;
}
.design-quality-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.design-quality-heading h4{
  margin:2px 0 0;
}
.design-quality-heading>strong{
  padding:4px 7px;
  border-radius:999px;
  background:var(--ivory);
  color:var(--wine);
  font-size:.58rem;
}
.design-quality-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.design-quality-grid article{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 24px;
  align-items:center;
  gap:8px;
  padding:7px;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:#fff;
}
.design-quality-grid article>div{
  display:grid;
  gap:2px;
}
.design-quality-grid article strong{
  font-size:.61rem;
}
.design-quality-grid article small{
  color:var(--muted);
  font-size:.54rem;
}
.design-quality-grid article>b{
  display:grid;
  width:22px;
  height:22px;
  border-radius:50%;
  place-items:center;
}
.design-quality-grid article.valid>b{
  background:#ddf2e3;
  color:#286f40;
}
.design-quality-grid article.invalid>b{
  background:#fff0cf;
  color:#9a5c00;
}
.design-quality-swatch{
  position:relative;
  display:block;
  width:38px;
  height:26px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:6px;
}
.design-quality-swatch i{
  position:absolute;
  inset:0;
}
.design-quality-swatch i:last-child{
  inset:8px 7px;
  border-radius:3px;
}
.design-quality-panel>small{
  color:var(--muted);
  font-size:.54rem;
}

.design-model-grid button{
  overflow:hidden;
}
.design-model-preview{
  display:grid;
  grid-template-columns:34% 1fr;
  grid-template-rows:12px 34px;
  width:100%;
  min-height:46px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--model-wine) 25%,var(--line));
  border-radius:8px;
  background:var(--model-ivory);
}
.design-model-preview i:first-child{
  grid-column:1/-1;
  background:linear-gradient(90deg,var(--model-wine),color-mix(in srgb,var(--model-wine) 70%,#000));
}
.design-model-preview i:nth-child(2){
  background:color-mix(in srgb,var(--model-wine) 12%,var(--model-ivory));
}
.design-model-preview i:nth-child(3){
  margin:5px;
  border-radius:5px;
  background:var(--model-paper);
  box-shadow:inset 0 -4px 0 var(--model-gold);
}

.design-advanced-layer{
  position:fixed;
  z-index:4800;
  inset:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  background:#171214;
}
.design-advanced-layer.hidden{
  display:none!important;
}
.design-advanced-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:66px;
  padding:8px 14px;
  border-bottom:1px solid rgba(255,255,255,.14);
  background:linear-gradient(135deg,var(--wine-dark),var(--wine-mid));
  color:#fff;
}
.design-advanced-header .eyebrow{
  color:var(--gold);
}
.design-advanced-header h2{
  margin:1px 0;
  color:#fff;
  font-size:1.12rem;
}
.design-advanced-header p{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:.64rem;
}
.design-advanced-header-actions{
  display:flex;
  align-items:center;
  gap:6px;
}
.design-advanced-layer iframe{
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
body.design-advanced-open{
  overflow:hidden;
}
body.design-advanced-open>.app-shell,
body.design-advanced-open>.selection-drawer,
body.design-advanced-open>.overlay{
  filter:none;
}

@media(max-width:780px){
  .design-mode-switcher,
  .design-quality-grid{
    grid-template-columns:1fr;
  }
  .design-quality-heading,
  .design-advanced-header{
    align-items:stretch;
    flex-direction:column;
  }
  .design-advanced-header-actions{
    width:100%;
  }
  .design-advanced-header-actions button{
    flex:1;
  }
}

/* 5.20.1 — suppression des étoiles, en-tête développé sur trois lignes,
   et thème Chrome Argent. */

/* Un seul pictogramme, décliné dans les vignettes, le zoom et les sélections. */
.rating-clear-button{
  position:relative;
  display:inline-grid;
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  padding:0;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--paper);
  color:var(--muted);
  place-items:center;
  cursor:pointer;
}
.rating-clear-button:hover,
.rating-clear-button:focus-visible{
  border-color:#b8443c;
  color:#b8443c;
  box-shadow:0 0 0 2px color-mix(in srgb,#b8443c 18%,transparent);
}
.rating-clear-button.active{
  border-color:#a13b34;
  background:#a13b34;
  color:#fff;
}
.rating-clear-glyph{
  position:relative;
  display:grid;
  width:17px;
  height:17px;
  font-size:.78rem;
  line-height:1;
  place-items:center;
}
.rating-clear-glyph::after{
  position:absolute;
  width:19px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--paper) 55%,transparent);
  content:"";
  transform:rotate(-45deg);
}
.rating-clear-button-zoom{
  margin-top:4px;
}
.rating-clear-button-bulk{
  width:28px;
  height:28px;
  min-width:28px;
  min-height:28px;
}
.media-card-rating .rating-clear-button-card{
  width:20px;
  height:18px;
  min-width:20px;
  min-height:18px;
  margin-left:2px;
  padding-left:3px;
  border:0;
  border-left:1px solid rgba(255,255,255,.26);
  border-radius:0;
  background:transparent;
  color:rgba(255,255,255,.62);
}
.media-card-rating .rating-clear-button-card .rating-clear-glyph{
  width:14px;
  height:14px;
  font-size:.62rem;
}
.media-card-rating .rating-clear-button-card .rating-clear-glyph::after{
  width:15px;
  height:1.5px;
  box-shadow:0 0 0 1px rgba(26,15,18,.45);
}
.media-card-rating .rating-clear-button-card:hover,
.media-card-rating .rating-clear-button-card:focus-visible{
  color:#ffb8b3;
  box-shadow:none;
}
.media-card-rating .rating-clear-button-card.active{
  background:rgba(161,59,52,.78);
  color:#fff;
}

/* Le mode développé possède exactement trois lignes :
   1. identité + thèmes, 2. navigation, 3. actions.
   Les règles compactes existantes ne sont pas touchées. */
body:not(.header-compact):not(.fullscreen-active){
  --header-expanded-height:max(148px,calc(var(--header-height) + 58px));
  --header-effective-height:var(--header-expanded-height);
}
body:not(.header-compact):not(.fullscreen-active) .site-header{
  grid-template-columns:minmax(210px,1fr) minmax(0,2fr);
  grid-template-areas:
    "brand themes"
    "nav nav"
    "actions actions";
  grid-template-rows:40px 38px 40px;
  min-height:var(--header-expanded-height);
  padding:6px 18px;
  align-content:center;
  gap:4px 16px;
}
body:not(.header-compact):not(.fullscreen-active) .site-brand{
  grid-area:brand;
  min-width:0;
}
body:not(.header-compact):not(.fullscreen-active) .header-theme-switcher{
  grid-area:themes;
  width:auto;
  max-width:100%;
  justify-self:end;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin;
}
body:not(.header-compact):not(.fullscreen-active) .top-nav{
  position:static;
  grid-area:nav;
  width:min(100%,980px);
  height:38px;
  inset:auto;
  align-self:center;
  justify-self:center;
  display:flex;
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--control-radius);
  background:rgba(0,0,0,.10);
  overflow:hidden;
}
body:not(.header-compact):not(.fullscreen-active) .top-nav button{
  flex:1 1 0;
  min-width:0;
  min-height:36px;
  padding:0 12px;
  justify-content:center;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body:not(.header-compact):not(.fullscreen-active) .top-nav button::after{
  right:10px;
  left:10px;
}
body:not(.header-compact):not(.fullscreen-active) .header-actions{
  grid-area:actions;
  width:100%;
  min-width:0;
  justify-content:center;
  gap:6px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:1px 0;
  scrollbar-width:thin;
}
body:not(.header-compact):not(.fullscreen-active) .header-actions > button,
body:not(.header-compact):not(.fullscreen-active) .header-actions > a,
body:not(.header-compact):not(.fullscreen-active) .header-actions > form > button{
  min-height:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
body:not(.header-compact):not(.fullscreen-active) .header-actions > :is(
  .guide-button,
  .deposit-button,
  .security-account-link,
  .beta-lab-button
){
  min-width:96px;
  padding:0 10px;
}
body:not(.header-compact):not(.fullscreen-active) .header-actions .user-menu{
  min-width:148px;
  height:32px;
}
body:not(.header-compact):not(.fullscreen-active) .header-actions .user-menu > span{
  width:28px;
  height:28px;
}
body:not(.header-compact):not(.fullscreen-active) .logout-form{
  min-width:68px;
  justify-content:center;
}
body:not(.header-compact):not(.fullscreen-active) .workspace{
  min-height:calc(100vh - var(--header-expanded-height));
  padding-bottom:0;
}

@media(max-width:760px){
  body:not(.header-compact):not(.fullscreen-active){
    --header-expanded-height:136px;
  }
  body:not(.header-compact):not(.fullscreen-active) .site-header{
    grid-template-columns:minmax(120px,.72fr) minmax(0,1.28fr);
    grid-template-rows:34px 34px 34px;
    padding:5px 8px;
    gap:4px 8px;
  }
  body:not(.header-compact):not(.fullscreen-active) .theme-switcher-label{
    display:none;
  }
  body:not(.header-compact):not(.fullscreen-active) .header-theme-switcher{
    padding:2px 4px;
  }
  body:not(.header-compact):not(.fullscreen-active) .header-theme-switcher button{
    width:24px;
    height:24px;
  }
  body:not(.header-compact):not(.fullscreen-active) .theme-switcher-swatch{
    width:16px;
    height:16px;
  }
  body:not(.header-compact):not(.fullscreen-active) .top-nav{
    height:34px;
  }
  body:not(.header-compact):not(.fullscreen-active) .top-nav button{
    min-height:32px;
    padding:0 5px;
    font-size:.56rem;
  }
  body:not(.header-compact):not(.fullscreen-active) .header-actions{
    justify-content:flex-start;
  }
}

/* Chrome argenté : aucun fichier d’image, uniquement des gradients CSS. */
html[data-pattern="chrome"] body{
  background:
    radial-gradient(circle at 48% -12%,rgba(255,255,255,.94),transparent 31%),
    linear-gradient(135deg,#c6ced3 0%,#f8f9fa 22%,#adb7bd 43%,#f2f4f5 64%,#bcc5ca 82%,#edf0f2 100%);
}
html[data-pattern="chrome"] .site-header{
  background:
    linear-gradient(112deg,#0d1216 0%,#364049 16%,#aeb8bf 31%,#eef2f4 41%,#68747d 51%,#f7f9fa 63%,#4a555e 77%,#11171c 100%);
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.72);
}
html[data-pattern="chrome"] .site-header::before{
  position:absolute;
  z-index:1;
  inset:0;
  background:
    linear-gradient(98deg,transparent 0 29%,rgba(255,255,255,.38) 35%,transparent 42%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,rgba(0,0,0,.035) 1px 2px);
  content:"";
  pointer-events:none;
}
html[data-pattern="chrome"] .brand-mark{
  border:1px solid rgba(255,255,255,.88);
  background:
    radial-gradient(circle at 32% 24%,#fff 0 10%,#dce2e5 18%,#7d8991 48%,#f8fafb 70%,#5e6971 100%);
  box-shadow:
    inset 0 1px 3px rgba(255,255,255,.95),
    inset 0 -3px 7px rgba(13,18,22,.48),
    0 3px 12px rgba(0,0,0,.38);
  color:#151a1e;
  text-shadow:0 1px 0 rgba(255,255,255,.75);
}
html[data-pattern="chrome"] .source-sidebar::before{
  position:absolute;
  z-index:0;
  inset:0;
  background:
    linear-gradient(110deg,rgba(255,255,255,.54),transparent 26%,rgba(75,87,96,.16) 50%,rgba(255,255,255,.42) 72%,transparent),
    repeating-linear-gradient(0deg,rgba(255,255,255,.20) 0 1px,rgba(83,94,102,.11) 1px 3px);
  content:"";
  pointer-events:none;
}
html[data-pattern="chrome"] :is(
  .media-card,
  .gallery-toolbar,
  .media-controls,
  .source-card,
  .settings-link,
  .stat-card,
  .gallery-picker summary,
  .gallery-picker-menu
){
  border-color:#89959d;
  background:
    linear-gradient(145deg,rgba(255,255,255,.98) 0%,rgba(199,207,212,.94) 42%,rgba(249,250,251,.98) 68%,rgba(169,179,186,.90) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    inset 0 -1px 0 rgba(76,87,95,.24),
    0 10px 24px rgba(20,28,34,.18);
}
html[data-pattern="chrome"] :is(
  .primary-button,
  .secondary-button,
  .deposit-button,
  .guide-button,
  .security-account-link,
  .header-action-button
){
  border-color:#7f8b94!important;
  background:
    linear-gradient(180deg,#fff 0%,#d9dfe3 35%,#9ea9b1 58%,#eef1f3 100%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 rgba(53,62,69,.35),
    0 3px 9px rgba(0,0,0,.24)!important;
  color:#151a1e!important;
  text-shadow:0 1px 0 rgba(255,255,255,.74)!important;
}
html[data-pattern="chrome"] :is(
  .primary-button,
  .secondary-button,
  .deposit-button,
  .guide-button,
  .security-account-link,
  .header-action-button
):hover{
  background:
    linear-gradient(180deg,#fff 0%,#edf1f3 30%,#b4bec5 58%,#fff 100%)!important;
}
html[data-pattern="chrome"] .header-theme-switcher,
html[data-pattern="chrome"] .top-nav{
  border-color:rgba(255,255,255,.46);
  background:rgba(12,17,21,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}
html[data-pattern="chrome"] .top-nav button,
html[data-pattern="chrome"] .site-brand small{
  color:rgba(255,255,255,.88);
}
html[data-pattern="chrome"] .top-nav button.active{
  color:#fff;
}
html[data-pattern="chrome"] .top-nav button.active::after{
  background:linear-gradient(90deg,#8d989f,#fff,#77838b);
}

/* 5.20.4 — navigation flottante, commandes compactes et accueil marketing. */
body.archive-page{overflow-x:hidden}
.gallery-control-stack{position:relative;z-index:16;display:grid;min-width:0;max-width:100%;gap:var(--compact-section-spacing);margin:0 0 var(--compact-section-spacing)}
.gallery-control-stack>.gallery-toolbar,.gallery-control-stack>.media-controls,.gallery-control-stack>.bulk-toolbar{position:static;top:auto;min-width:0;margin:0}
.gallery-control-stack>.media-controls{margin-bottom:var(--controls-gallery-spacing)}
.gallery-control-stack>.bulk-toolbar:not(.hidden){margin:calc(var(--controls-gallery-spacing) * -1) 0 var(--controls-gallery-spacing)}
body.scroll-compact{--header-effective-height:var(--header-compact-height)}
body.scroll-compact .site-header{min-height:var(--header-compact-height)}
body.scroll-compact .workspace{min-height:calc(100vh - var(--header-compact-height))}
body.scroll-compact .gallery-control-stack{
  position:sticky;z-index:19;top:var(--header-compact-height);display:flex;width:100%;min-height:44px;max-width:100%;
  align-items:center;gap:5px;margin:0 0 var(--compact-section-spacing);padding:4px;
  border:1px solid color-mix(in srgb,var(--line) 85%,transparent);
  background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:0 12px 30px rgba(27,16,19,.18);
  backdrop-filter:blur(max(10px,var(--backdrop-blur)));overflow-x:auto;overflow-y:visible;
  overscroll-behavior-inline:contain;scrollbar-width:thin
}
body.scroll-compact .gallery-control-stack>.gallery-toolbar{
  display:flex;flex:1 0 auto;min-width:max-content;min-height:36px;align-items:center;flex-wrap:nowrap;gap:5px;
  padding:2px 4px;border:0;background:transparent;box-shadow:none
}
body.scroll-compact .gallery-control-stack .gallery-cover{display:none}
body.scroll-compact .gallery-control-stack .gallery-toolbar label{display:flex;min-width:210px;max-width:310px;align-items:center;gap:4px}
body.scroll-compact .gallery-control-stack .gallery-field-label{display:none}
body.scroll-compact .gallery-control-stack .gallery-picker summary,
body.scroll-compact .gallery-control-stack .gallery-toolbar select{min-height:30px;height:30px;padding-block:2px}
body.scroll-compact .gallery-control-stack .gallery-summary{display:none}
body.scroll-compact .gallery-control-stack .gallery-toolbar .secondary-button{min-height:30px;height:30px;padding:4px 7px;white-space:nowrap}
body.scroll-compact .gallery-control-stack>.media-controls{
  display:flex;flex:0 0 auto;min-width:max-content;min-height:36px;align-items:center;gap:5px;
  padding:2px 4px;border:0;background:transparent;box-shadow:none
}
body.scroll-compact .gallery-control-stack .selection-controls,
body.scroll-compact .gallery-control-stack .media-display-controls{display:flex;min-width:max-content;align-items:center;flex-wrap:nowrap;gap:5px}
body.scroll-compact .gallery-control-stack .selection-controls button,
body.scroll-compact .gallery-control-stack .rating-filter-menu>summary{min-height:30px;height:30px;padding:3px 7px;white-space:nowrap}
body.scroll-compact .gallery-control-stack #selection-count{white-space:nowrap}
body.scroll-compact .gallery-control-stack .page-size-control,
body.scroll-compact .gallery-control-stack .columns-control{display:flex;min-width:auto;align-items:center;gap:5px;white-space:nowrap}
body.scroll-compact .gallery-control-stack .page-size-control select{width:auto;min-width:62px;min-height:30px;height:30px;padding:2px 22px 2px 6px}
body.scroll-compact .gallery-control-stack .columns-control{width:180px}
body.scroll-compact .gallery-control-stack .columns-control input{min-width:105px}
body.scroll-compact .gallery-control-stack>.bulk-toolbar:not(.hidden){
  display:flex;flex:0 0 auto;min-width:max-content;min-height:36px;align-items:center;gap:5px;margin:0;padding:2px 5px;
  border-left:3px solid var(--gold);background:color-mix(in srgb,var(--ivory) 88%,transparent)
}
body.scroll-compact .gallery-control-stack .bulk-toolbar strong{margin-right:2px;white-space:nowrap}
body.scroll-compact .gallery-control-stack .bulk-toolbar select{min-width:155px;min-height:30px;height:30px;padding:3px 6px}
body.scroll-compact .gallery-control-stack .bulk-toolbar button{min-height:30px;height:30px;padding:3px 7px;white-space:nowrap}
@media(max-width:760px){
  body.scroll-compact .gallery-control-stack{right:calc(var(--content-padding) * -1);left:calc(var(--content-padding) * -1);width:calc(100% + (var(--content-padding) * 2));max-width:none;padding-inline:7px}
  body.scroll-compact .gallery-control-stack .gallery-toolbar label{min-width:185px}
  body.scroll-compact .gallery-control-stack .columns-control{width:155px}
}

.auth-page{min-height:100%;overflow-x:hidden;background:#05090d}
.auth-shell.auth-shell-marketing{
  position:relative;display:grid;min-height:100svh;
  grid-template-columns:minmax(260px,1fr) minmax(360px,520px) minmax(260px,1fr);
  align-items:center;gap:clamp(24px,4vw,54px);
  padding:clamp(70px,9vh,120px) clamp(24px,5vw,72px) clamp(44px,6vh,68px);
  overflow:auto;background:#05090d url("images/login-page-reference.png") center center/cover no-repeat;
  color:#f5f7f8
}
.auth-shell.auth-shell-marketing::before,.auth-shell.auth-shell-marketing::after,.auth-ambient{display:none}
.auth-shell.auth-shell-marketing .curtain{display:none}
.auth-shell.auth-shell-marketing .auth-brand{position:absolute;z-index:3;top:22px;left:clamp(20px,3vw,34px)}
.auth-shell.auth-shell-marketing .auth-brand p{color:rgba(239,245,248,.86)}
.auth-marketing-panel{
  position:relative;z-index:2;grid-column:1;justify-self:start;display:grid;width:min(100%,720px);align-content:center;gap:16px;
  margin-right:auto;padding:clamp(18px,2vw,26px);border:1px solid rgba(255,255,255,.08);border-radius:18px;
  background:rgba(5,10,16,.48);box-shadow:0 16px 42px rgba(0,0,0,.24);backdrop-filter:blur(8px);text-shadow:0 2px 18px rgba(0,0,0,.75)
}
.auth-marketing-kicker{margin:0;color:#d8b35d;font-size:.72rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.auth-marketing-panel h1{margin:0;color:#fff;font-family:var(--font-display);font-size:clamp(2.5rem,4.9vw,5.5rem);font-weight:500;letter-spacing:-.055em;line-height:.9}
.auth-marketing-panel h1 em{color:#e8bb55;font-style:normal}
.auth-marketing-lead{max-width:680px;margin:0;color:rgba(237,243,246,.92);font-size:clamp(.94rem,1.15vw,1.12rem);line-height:1.65}
.auth-marketing-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:680px}
.auth-marketing-features article{
  display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;padding:10px 12px;
  border:1px solid rgba(200,225,237,.18);border-radius:12px;background:rgba(4,10,15,.46);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);backdrop-filter:blur(8px)
}
.auth-marketing-features article>span{display:grid;width:32px;height:32px;border:1px solid rgba(235,188,84,.52);border-radius:9px;color:#f0c35d;place-items:center}
.auth-marketing-features article>div{display:grid;gap:2px}
.auth-marketing-features strong{color:#fff;font-size:.78rem}
.auth-marketing-features small{color:rgba(226,235,239,.76);font-size:.62rem}
.auth-marketing-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.auth-discover-button{
  display:inline-grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px;min-width:min(100%,300px);
  padding:10px 14px;border:1px solid rgba(244,196,91,.72);border-radius:12px;
  background:linear-gradient(135deg,rgba(230,178,62,.94),rgba(173,118,28,.96));
  box-shadow:0 12px 32px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.34);color:#12171b;text-decoration:none;text-shadow:none
}
.auth-discover-button>span:first-child{display:grid;width:34px;height:34px;border-radius:50%;background:rgba(15,20,24,.86);color:#fff;place-items:center}
.auth-discover-button>span:last-child{display:grid;gap:1px}
.auth-discover-button small{color:rgba(18,23,27,.68);font-size:.58rem}
.auth-guide-link{padding:9px 12px;border:1px solid rgba(220,235,242,.28);border-radius:10px;background:rgba(5,12,18,.54);color:#eef5f8;text-decoration:none;text-shadow:none}
.auth-discovery{max-width:680px;border-top:1px solid rgba(220,235,242,.17);padding-top:10px}
.auth-discovery summary{color:#f1c96d;cursor:pointer;font-size:.7rem;font-weight:800}
.auth-discovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin-top:9px;color:rgba(231,239,243,.84);font-size:.65rem}
.auth-discovery-grid span::before{margin-right:6px;color:#e6b94f;content:"✓"}
.auth-access-card{
  position:relative;z-index:3;grid-column:2;justify-self:center;align-self:center;width:min(100%,520px);
  padding:clamp(28px,4vw,48px);border:1px solid rgba(202,220,229,.25);border-radius:16px;
  background:linear-gradient(145deg,rgba(14,20,27,.92),rgba(7,11,16,.88));
  box-shadow:0 34px 90px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.08);text-align:left;backdrop-filter:blur(20px)
}
.auth-access-card h2{margin:4px 0 0;color:#fff;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.7rem);font-weight:500}
.auth-access-card .auth-intro{margin:10px 0 22px;color:rgba(226,236,240,.76);font-family:var(--font-body);font-size:.85rem;line-height:1.45}
.auth-access-card .auth-tabs{margin-bottom:18px}
.auth-access-card input{border-color:rgba(219,233,240,.20);border-radius:8px;background:rgba(255,255,255,.075)}
.auth-access-card input:focus{border-color:#e5ba58;background:rgba(255,255,255,.11)}
.auth-shell.auth-shell-marketing .auth-footer{right:clamp(18px,3vw,28px);bottom:18px;color:rgba(220,231,236,.60)}
@media(max-width:1120px){
  .auth-shell.auth-shell-marketing{grid-template-columns:minmax(0,1fr) minmax(340px,500px);gap:24px}
  .auth-marketing-panel{grid-column:1;width:min(100%,640px)}
  .auth-access-card{grid-column:2}
}
@media(max-width:900px){
  .auth-shell.auth-shell-marketing{grid-template-columns:1fr;align-content:start;gap:20px;padding:86px 20px 58px;background-position:center center}
  .auth-marketing-panel,.auth-access-card{grid-column:1;width:min(100%,620px);justify-self:center}
  .auth-marketing-panel h1{font-size:clamp(2.6rem,9vw,4.8rem)}
}
@media(max-width:620px){
  .auth-shell.auth-shell-marketing{padding:76px 12px 54px}
  .auth-shell.auth-shell-marketing .auth-brand{top:16px;left:14px}
  .auth-marketing-features,.auth-discovery-grid{grid-template-columns:1fr}
  .auth-access-card{padding:24px 18px}
  .auth-shell.auth-shell-marketing .auth-footer{position:relative;right:auto;bottom:auto;grid-column:1;margin:4px auto 0;text-align:center}
}
@media(prefers-reduced-motion:reduce){.auth-shell.auth-shell-marketing *{scroll-behavior:auto}}

.marketing-page{margin:0;min-height:100vh;background:#05090d;color:#eef4f7}
.marketing-shell{min-height:100vh;background:linear-gradient(180deg,rgba(3,7,11,.42),#05090d 72%),url("images/login-archives-lyriques-cinematic.jpg") center top/cover fixed no-repeat}
.marketing-hero{display:grid;min-height:82vh;grid-template-columns:minmax(0,1.15fr) minmax(320px,.7fr);align-items:end;gap:36px;padding:clamp(90px,12vh,150px) clamp(24px,7vw,120px) 74px;background:linear-gradient(90deg,rgba(2,6,10,.92),rgba(3,8,13,.52) 62%,rgba(2,6,10,.82))}
.marketing-hero h1{max-width:880px;margin:0;font-family:var(--font-display);font-size:clamp(3.2rem,7vw,7.2rem);font-weight:500;letter-spacing:-.06em;line-height:.88}
.marketing-hero h1 em{color:#edc262;font-style:normal}.marketing-hero p{max-width:760px;color:rgba(232,240,244,.78);font-size:clamp(1rem,1.4vw,1.28rem);line-height:1.7}
.marketing-hero-card{padding:22px;border:1px solid rgba(220,235,242,.22);border-radius:16px;background:rgba(5,12,18,.68);box-shadow:0 28px 70px rgba(0,0,0,.38);backdrop-filter:blur(18px)}
.marketing-hero-card a{display:flex;min-height:46px;align-items:center;justify-content:center;border-radius:10px;background:#e5b953;color:#11161a;font-weight:900;text-decoration:none}
.marketing-content{display:grid;gap:64px;padding:70px clamp(24px,7vw,120px) 100px}.marketing-section{display:grid;gap:20px}.marketing-section>header{max-width:820px}
.marketing-section h2{margin:0;font-family:var(--font-display);font-size:clamp(2rem,4vw,4rem);font-weight:500}.marketing-section>header p{color:rgba(222,233,238,.68);line-height:1.65}
.marketing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.marketing-grid article{min-height:180px;padding:20px;border:1px solid rgba(207,226,235,.13);border-radius:14px;background:linear-gradient(145deg,rgba(18,27,34,.88),rgba(7,12,17,.92))}
.marketing-grid article span{display:grid;width:42px;height:42px;border:1px solid rgba(235,190,88,.5);border-radius:12px;color:#efc362;place-items:center}.marketing-grid h3{margin:16px 0 6px}.marketing-grid p{margin:0;color:rgba(222,233,238,.66);line-height:1.55}
.marketing-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px clamp(24px,7vw,120px);border-top:1px solid rgba(207,226,235,.13);background:#03070a}.marketing-footer a{color:#efc362}
@media(max-width:900px){.marketing-hero{grid-template-columns:1fr;align-items:end}.marketing-grid{grid-template-columns:1fr}}



/* 5.20.5 — stabilisation des barres flottantes et accueil sur un seul écran. */

/* Une seule mécanique sticky : le conteneur des commandes pilote les deux
   barres. Les enfants ne créent plus un second contexte sticky concurrent. */
.gallery-control-stack{
  position:sticky!important;
  z-index:90;
  top:var(--header-effective-height);
  width:100%;
  max-width:100%;
  min-width:0;
  isolation:isolate;
}
.gallery-control-stack>.gallery-toolbar,
.gallery-control-stack>.media-controls,
.gallery-control-stack>.bulk-toolbar{
  position:static!important;
  top:auto!important;
}
body.scroll-compact .gallery-control-stack{
  top:var(--header-compact-height);
}

/* Évite le clignotement produit par une transition de hauteur au moment où
   la barre devient sticky/compacte. */
.site-header,
.gallery-control-stack{
  transition:none!important;
}

/* En mode développé, le ruban supérieur utilise réellement toute la largeur
   disponible ; navigation et actions se répartissent sans largeur plafond. */
body:not(.header-compact):not(.fullscreen-active) .site-header{
  width:100%;
  max-width:none;
  grid-template-columns:minmax(190px,.78fr) minmax(0,1.22fr);
  padding-inline:clamp(10px,1.4vw,24px);
}
body:not(.header-compact):not(.fullscreen-active) .top-nav{
  width:100%;
  max-width:none;
  justify-self:stretch;
}
body:not(.header-compact):not(.fullscreen-active) .header-actions{
  width:100%;
  max-width:none;
  justify-content:space-between;
}
body:not(.header-compact):not(.fullscreen-active) .header-actions>*{
  flex:0 1 auto;
}

/* Connexion : la totalité de l'accueil tient dans un viewport, sans ascenseur
   vertical de page. Les panneaux eux-mêmes restent sûrs sur très faible hauteur. */
.auth-page{
  height:100dvh;
  min-height:100dvh;
  overflow:hidden;
}
.auth-shell.auth-shell-marketing{
  box-sizing:border-box;
  width:100%;
  height:100dvh;
  min-height:0;
  max-height:100dvh;
  padding:clamp(58px,7vh,82px) clamp(16px,4vw,64px) clamp(18px,3vh,34px);
  gap:clamp(16px,3vw,42px);
  overflow:hidden;
}
.auth-marketing-panel,
.auth-access-card{
  max-height:calc(100dvh - 108px);
  overflow:auto;
  scrollbar-width:thin;
}
.auth-marketing-panel{
  padding:clamp(14px,1.6vw,22px);
  gap:clamp(8px,1.4vh,14px);
}
.auth-marketing-panel h1{
  font-size:clamp(2.1rem,min(4.6vw,7.2vh),5rem);
}
.auth-marketing-lead{
  font-size:clamp(.84rem,min(1.05vw,1.8vh),1.05rem);
  line-height:1.45;
}
.auth-marketing-features article{
  padding:8px 10px;
}
.auth-access-card{
  padding:clamp(18px,3vh,34px) clamp(18px,2.5vw,34px);
}
.auth-access-card .auth-intro{
  margin:7px 0 14px;
}
.auth-access-card .auth-tabs{
  margin-bottom:12px;
}
.auth-access-card .stack-form{
  gap:10px;
}
.auth-shell.auth-shell-marketing .auth-footer{
  bottom:8px;
}

@media(max-height:760px){
  .auth-marketing-features{gap:5px}
  .auth-marketing-features article{padding:6px 8px}
  .auth-discovery{display:none}
  .auth-access-card .eyebrow{font-size:.58rem}
  .auth-access-card h2{font-size:clamp(1.45rem,3.8vh,2.2rem)}
  .auth-access-card input{min-height:38px}
}
@media(max-height:620px){
  .auth-marketing-features{display:none}
  .auth-marketing-lead{display:none}
  .auth-access-card .auth-intro{display:none}
}
@media(max-width:900px){
  .auth-shell.auth-shell-marketing{
    grid-template-columns:minmax(0,.82fr) minmax(310px,1.18fr);
    align-content:center;
    padding:54px 12px 16px;
  }
  .auth-marketing-panel,
  .auth-access-card{
    grid-column:auto;
    width:100%;
    max-height:calc(100dvh - 76px);
  }
  .auth-marketing-panel h1{
    font-size:clamp(1.75rem,5.5vw,3.2rem);
  }
  .auth-marketing-features{
    grid-template-columns:1fr;
  }
  .auth-marketing-features article:nth-child(n+3){
    display:none;
  }
}
@media(max-width:620px){
  .auth-shell.auth-shell-marketing{
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    gap:8px;
    padding:48px 8px 8px;
  }
  .auth-marketing-panel{
    display:flex;
    max-height:none;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:8px 10px;
    overflow:hidden;
  }
  .auth-marketing-kicker,
  .auth-marketing-lead,
  .auth-marketing-features,
  .auth-discovery,
  .auth-guide-link{
    display:none;
  }
  .auth-marketing-panel h1{
    flex:1;
    font-size:clamp(1.25rem,7vw,1.8rem);
    line-height:1;
  }
  .auth-marketing-panel h1 br{
    display:none;
  }
  .auth-marketing-actions{
    flex:0 0 auto;
  }
  .auth-discover-button{
    min-width:0;
    grid-template-columns:28px;
    padding:6px;
  }
  .auth-discover-button>span:last-child{
    display:none;
  }
  .auth-access-card{
    align-self:stretch;
    max-height:100%;
    padding:14px 14px;
  }
  .auth-shell.auth-shell-marketing .auth-footer{
    display:none;
  }
}


/* 5.20.6 — fixation réelle des barres et compaction verticale. */

/* Valeurs volontairement plus compactes pour réduire la zone vide avant la galerie. */
:root{
  --content-top-spacing:10px;
  --heading-bottom-spacing:7px;
  --gallery-toolbar-spacing:5px;
  --controls-gallery-spacing:7px;
  --video-strip-bottom-spacing:7px;
  --live-header-height:var(--header-effective-height);
  --live-controls-left:0px;
  --live-controls-width:100vw;
  --live-controls-height:44px;
}

/* Le sticky dépendait du contexte de défilement et pouvait disparaître.
   L'en-tête devient réellement fixé au viewport. */
body.archive-page .site-header{
  position:fixed!important;
  z-index:1200!important;
  top:0!important;
  right:0!important;
  left:0!important;
  width:100vw!important;
  max-width:100vw!important;
  margin:0!important;
}

/* Le contenu garde exactement la hauteur réellement mesurée de l'en-tête. */
body.archive-page .app-shell{
  padding-top:var(--live-header-height);
}

/* La zone de commandes reste dans le flux en haut de page. */
body.archive-page .gallery-control-stack{
  position:relative!important;
  top:auto!important;
  z-index:100;
  margin-bottom:4px!important;
}

/* Après défilement, elle est fixée juste sous l'en-tête.
   Le placeholder JS conserve sa place et évite tout saut. */
body.archive-page.scroll-compact .gallery-control-stack{
  position:fixed!important;
  z-index:1150!important;
  top:var(--live-header-height)!important;
  left:var(--live-controls-left)!important;
  width:var(--live-controls-width)!important;
  max-width:var(--live-controls-width)!important;
  min-height:var(--live-controls-height);
  margin:0!important;
}

/* Réservation de la place du dock lorsqu'il est fixé. */
.gallery-control-placeholder{
  display:none;
  width:100%;
  height:0;
  pointer-events:none;
}
body.archive-page.scroll-compact .gallery-control-placeholder{
  display:block;
  height:var(--live-controls-height);
}

/* La première galerie doit commencer au plus près des commandes. */
.content-area{
  padding-top:clamp(4px,var(--content-top-spacing),18px)!important;
}
.content-heading{
  margin-bottom:clamp(3px,var(--heading-bottom-spacing),12px)!important;
}
.gallery-control-stack + .video-filmstrip{
  margin-top:3px!important;
}
.video-filmstrip{
  margin-bottom:clamp(4px,var(--video-strip-bottom-spacing),12px)!important;
}
.gallery-grid{
  margin-top:0!important;
}
body.header-compact .content-heading,
body.scroll-compact .content-heading{
  margin-bottom:3px!important;
}
body.scroll-compact .content-area{
  padding-top:4px!important;
}
body.scroll-compact .gallery-control-stack + .video-filmstrip{
  margin-top:3px!important;
}

/* Le ruban développé continue d'occuper toute la largeur. */
body.archive-page:not(.header-compact):not(.fullscreen-active) .site-header{
  width:100vw!important;
  max-width:100vw!important;
  padding-inline:clamp(10px,1.4vw,24px)!important;
}

/* Pas de transition sur les dimensions fixes : aucune oscillation visuelle. */
body.archive-page .site-header,
body.archive-page .gallery-control-stack{
  transition:none!important;
  transform:none!important;
}

/* Mobile : le dock garde son propre débordement horizontal, jamais la page. */
@media(max-width:760px){
  body.archive-page.scroll-compact .gallery-control-stack{
    left:0!important;
    width:100vw!important;
    max-width:100vw!important;
  }
}


/* 5.20.7 — retour aux barres statiques, compaction verticale et identité. */

/* Aucune barre de navigation ou de sélection n'est flottante. */
body.archive-page .site-header,
body.archive-page.header-compact .site-header,
body.archive-page.fullscreen-active .site-header{
  position:relative!important;
  z-index:20!important;
  top:auto!important;
  right:auto!important;
  left:auto!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  transform:none!important;
}
body.archive-page .app-shell{
  padding-top:0!important;
}
body.archive-page .gallery-control-stack,
body.archive-page.scroll-compact .gallery-control-stack,
body.archive-page .media-controls{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  left:auto!important;
  width:auto!important;
  max-width:100%!important;
  transform:none!important;
}
.gallery-control-placeholder{
  display:none!important;
  height:0!important;
}

/* En-tête développé : deux lignes compactes sur toute la largeur. */
body.archive-page .site-header{
  display:grid!important;
  grid-template-columns:minmax(270px,auto) minmax(0,1fr) auto;
  grid-template-areas:
    "brand nav version"
    "theme actions actions";
  grid-template-rows:minmax(34px,auto) minmax(38px,auto);
  align-items:center;
  column-gap:12px;
  row-gap:2px;
  min-height:74px!important;
  padding:4px clamp(10px,1.25vw,22px)!important;
}
body.archive-page .site-brand{
  grid-area:brand;
  min-width:0;
  gap:8px;
}
body.archive-page .brand-mark{
  width:32px;
  height:32px;
}
body.archive-page .site-brand-copy{
  display:grid;
  grid-template-columns:auto auto;
  align-items:baseline;
  column-gap:8px;
  row-gap:0;
  min-width:0;
}
body.archive-page .site-brand-copy strong{
  grid-column:1/-1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.92rem;
}
body.archive-page .site-brand-copy small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.54rem;
  line-height:1.1;
}
body.archive-page #site-brand-subtitle[hidden]{
  display:none!important;
}
body.archive-page #site-brand-organisation{
  color:#d8c4c8;
  font-weight:700;
  letter-spacing:.045em;
}
body.archive-page .site-version-badge{
  grid-area:version;
  justify-self:end;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:999px;
  color:#f4d88b;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.05em;
  white-space:nowrap;
}
body.archive-page .top-nav{
  grid-area:nav;
  min-width:0;
  min-height:32px;
  align-self:center;
  justify-content:center;
  gap:2px;
}
body.archive-page .top-nav button{
  min-height:31px;
  padding:3px clamp(7px,1vw,13px);
  font-size:.66rem;
  white-space:nowrap;
}
body.archive-page .top-nav button::after{
  right:7px;
  bottom:0;
  left:7px;
  height:2px;
}
body.archive-page .header-theme-switcher{
  grid-area:theme;
  min-width:0;
  min-height:34px;
}
body.archive-page .header-actions{
  grid-area:actions;
  display:flex;
  min-width:0;
  min-height:34px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:5px!important;
}
body.archive-page .header-actions :is(
  button,a,.deposit-button,.beta-lab-button,.guide-button,.security-account-link
){
  min-height:30px;
}
body.archive-page .header-actions .header-action-button{
  padding:3px 7px;
}
body.archive-page .deposit-button{
  padding:6px 10px;
}
body.archive-page .user-menu{
  gap:5px;
}
body.archive-page .user-menu>span{
  width:28px;
  height:28px;
}
body.archive-page .user-menu strong{
  font-size:.64rem;
}
body.archive-page .user-menu small{
  font-size:.54rem;
}

/* Le mode compact manuel reste disponible mais conserve deux lignes. */
body.archive-page.header-compact .site-header{
  grid-template-rows:30px 32px;
  min-height:64px!important;
  padding-block:2px!important;
}
body.archive-page.header-compact .site-brand-copy small{
  font-size:.49rem;
}
body.archive-page.header-compact .header-action-label,
body.archive-page.header-compact .theme-switcher-label small{
  display:none;
}

/* Zone située juste avant les médias : fortement compactée. */
body.archive-page .content-area{
  padding-top:6px!important;
}
body.archive-page .content-heading{
  display:flex!important;
  min-height:34px;
  align-items:center!important;
  justify-content:space-between;
  gap:8px!important;
  margin:0 0 4px!important;
}
body.archive-page .content-heading>div:first-child{
  display:flex;
  min-width:0;
  align-items:baseline;
  gap:8px;
}
body.archive-page .content-heading .eyebrow{
  display:none!important;
}
body.archive-page .content-heading h1{
  flex:0 0 auto;
  margin:0!important;
  font-size:clamp(1.15rem,1.7vw,1.55rem)!important;
  letter-spacing:-.025em!important;
  line-height:1!important;
}
body.archive-page #section-description{
  min-width:0;
  max-width:none!important;
  margin:0!important;
  overflow:hidden;
  color:var(--muted);
  font-family:inherit!important;
  font-size:.64rem;
  line-height:1.1!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.archive-page .view-controls{
  flex:0 0 auto;
  padding:1px;
}
body.archive-page .view-controls button{
  width:30px;
  height:28px;
}

/* Galerie + sélection sur une seule ligne lorsque la largeur le permet. */
body.archive-page .gallery-control-stack{
  display:grid!important;
  grid-template-columns:minmax(430px,1.15fr) minmax(500px,1fr);
  align-items:stretch;
  gap:4px!important;
  margin:0 0 4px!important;
  padding:0!important;
}
body.archive-page .gallery-toolbar{
  display:flex!important;
  min-width:0;
  min-height:38px;
  align-items:center!important;
  gap:5px!important;
  margin:0!important;
  padding:3px 5px!important;
  border:1px solid var(--line);
  background:rgba(255,253,249,.86);
}
body.archive-page .gallery-cover,
body.archive-page .gallery-field-label{
  display:none!important;
}
body.archive-page .gallery-toolbar label{
  display:block!important;
  flex:0 1 42%;
  min-width:180px!important;
  max-width:360px;
  margin:0;
}
body.archive-page .gallery-toolbar select{
  width:100%;
  min-height:28px!important;
  height:28px!important;
  padding:2px 22px 2px 7px!important;
  font-size:.68rem;
}
body.archive-page .gallery-summary{
  display:flex!important;
  flex:1 1 auto;
  min-width:100px!important;
  align-items:baseline;
  gap:5px!important;
  margin:0!important;
  overflow:hidden;
  white-space:nowrap;
}
body.archive-page .gallery-summary strong{
  overflow:hidden;
  font-size:.72rem!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.archive-page .gallery-summary span{
  overflow:hidden;
  font-size:.56rem!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.archive-page .gallery-toolbar .secondary-button{
  min-height:28px!important;
  height:28px!important;
  padding:3px 7px!important;
  white-space:nowrap;
  font-size:.62rem;
}

body.archive-page .media-controls{
  display:flex!important;
  min-width:0;
  min-height:38px;
  align-items:center;
  justify-content:space-between;
  gap:5px!important;
  margin:0!important;
  padding:3px 5px!important;
  border:1px solid var(--line);
  background:rgba(255,253,249,.86);
  box-shadow:none!important;
  backdrop-filter:none!important;
}
body.archive-page .selection-controls,
body.archive-page .media-display-controls{
  display:flex!important;
  min-width:0;
  align-items:center;
  flex-wrap:nowrap;
  gap:4px!important;
}
body.archive-page .selection-controls button,
body.archive-page .rating-filter-menu>summary{
  min-height:28px!important;
  height:28px!important;
  padding:3px 6px!important;
  font-size:.6rem;
  white-space:nowrap;
}
body.archive-page #selection-count{
  font-size:.58rem;
  white-space:nowrap;
}
body.archive-page .page-size-control,
body.archive-page .columns-control{
  display:flex!important;
  min-width:auto!important;
  align-items:center;
  gap:4px!important;
  font-size:.54rem!important;
  white-space:nowrap;
}
body.archive-page .page-size-control select{
  min-height:28px!important;
  height:28px!important;
  padding:2px 20px 2px 5px!important;
}
body.archive-page .columns-control{
  width:150px;
}
body.archive-page .columns-control input{
  min-width:80px;
}
body.archive-page .bulk-toolbar:not(.hidden){
  grid-column:1/-1;
  display:flex!important;
  min-height:34px;
  align-items:center;
  gap:5px!important;
  margin:0!important;
  padding:3px 5px!important;
}
body.archive-page .bulk-toolbar select,
body.archive-page .bulk-toolbar button{
  min-height:28px!important;
  height:28px!important;
  padding:3px 7px!important;
}
body.archive-page .video-filmstrip{
  margin-top:0!important;
  margin-bottom:4px!important;
  padding-top:4px!important;
  padding-bottom:4px!important;
}
body.archive-page .video-filmstrip-head{
  margin-bottom:3px!important;
}
body.archive-page .video-filmstrip-head .eyebrow{
  margin:0!important;
  font-size:.52rem!important;
}
body.archive-page .video-filmstrip-head h2{
  margin:0!important;
  font-size:.9rem!important;
}
body.archive-page .gallery-grid{
  margin-top:0!important;
}

/* Largeurs intermédiaires : deux rangées compactes, jamais flottantes. */
@media(max-width:1180px){
  body.archive-page .site-header{
    grid-template-columns:minmax(240px,auto) minmax(0,1fr) auto;
  }
  body.archive-page .header-actions{
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:thin;
  }
  body.archive-page .gallery-control-stack{
    grid-template-columns:1fr;
  }
}
@media(max-width:820px){
  body.archive-page .site-header{
    grid-template-columns:minmax(190px,1fr) auto;
    grid-template-areas:
      "brand version"
      "nav nav"
      "theme actions";
    grid-template-rows:auto auto auto;
  }
  body.archive-page .top-nav{
    justify-content:flex-start;
    overflow-x:auto;
    scrollbar-width:thin;
  }
}


/* 5.20.8 — présentation deux lignes validée et commandes compactes. */

/* --- En-tête : EXACTEMENT DEUX LIGNES --- */
body.archive-page .site-header,
body.archive-page.header-compact .site-header,
body.archive-page.fullscreen-active .site-header{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(300px,.9fr) minmax(390px,1.15fr) minmax(620px,1.85fr) auto!important;
  grid-template-areas:
    "brand theme actions actions"
    "nav nav nav version"!important;
  grid-template-rows:54px 44px!important;
  width:100%!important;
  max-width:100%!important;
  min-height:98px!important;
  height:auto!important;
  align-items:center!important;
  column-gap:12px!important;
  row-gap:4px!important;
  padding:5px clamp(14px,1.4vw,28px) 6px!important;
  overflow:visible!important;
}

body.archive-page .site-brand{
  grid-area:brand!important;
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
}
body.archive-page .brand-mark{
  flex:0 0 auto;
  width:40px!important;
  height:40px!important;
  font-size:.78rem;
}
body.archive-page .site-brand-copy{
  display:grid!important;
  min-width:0;
  grid-template-columns:1fr!important;
  gap:0!important;
}
body.archive-page .site-brand-copy strong{
  display:block;
  overflow:hidden;
  color:var(--header-text,#fff);
  font-size:clamp(.86rem,1.05vw,1.08rem)!important;
  line-height:1.05!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.archive-page .site-brand-copy small{
  display:block;
  overflow:hidden;
  max-width:100%;
  font-size:.52rem!important;
  line-height:1.08!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.archive-page #site-brand-subtitle[hidden]{display:none!important}
body.archive-page #site-brand-organisation{
  color:color-mix(in srgb,var(--header-text,#fff) 72%,var(--gold) 28%)!important;
  font-weight:800!important;
  letter-spacing:.045em!important;
}

body.archive-page .header-theme-switcher{
  grid-area:theme!important;
  display:flex!important;
  width:100%;
  min-width:0;
  min-height:42px!important;
  align-items:center;
  gap:8px!important;
  padding:3px 10px!important;
  border:1px solid color-mix(in srgb,var(--header-text,#fff) 20%,transparent)!important;
  border-radius:999px!important;
}
body.archive-page .theme-switcher-label{
  flex:0 0 auto;
  min-width:96px;
}
body.archive-page .theme-switcher-label small{
  font-size:.48rem!important;
}
body.archive-page .theme-switcher-label strong{
  display:block;
  overflow:hidden;
  max-width:120px;
  font-size:.67rem!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.archive-page .header-theme-switcher button{
  flex:0 0 auto;
  width:29px!important;
  height:29px!important;
}

body.archive-page .header-actions{
  grid-area:actions!important;
  display:flex!important;
  min-width:0;
  min-height:44px!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:nowrap!important;
  gap:7px!important;
  overflow:visible!important;
}
body.archive-page .header-actions :is(
  .guide-button,.security-account-link,.deposit-button,.icon-button,.user-menu,.text-button
){
  flex:0 0 auto;
  min-height:34px!important;
}
body.archive-page .guide-button,
body.archive-page .security-account-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px!important;
  border:1px solid color-mix(in srgb,var(--header-text,#fff) 32%,transparent)!important;
  border-radius:8px!important;
}
body.archive-page .header-menu-icon{
  display:inline-grid;
  min-width:18px;
  place-items:center;
  font-size:.82rem;
}
body.archive-page .deposit-button{
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  min-width:128px;
  justify-content:center;
  padding:5px 12px!important;
  border-radius:8px!important;
}
body.archive-page .header-actions>.icon-button{
  width:34px!important;
  height:34px!important;
}
body.archive-page .user-menu{
  max-width:230px;
  min-width:150px;
  padding:3px 5px!important;
}
body.archive-page .user-menu>span{
  width:32px!important;
  height:32px!important;
}
body.archive-page .user-menu div{
  min-width:0;
}
body.archive-page .user-menu strong,
body.archive-page .user-menu small{
  overflow:hidden;
  max-width:165px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.archive-page .logout-form{
  flex:0 0 auto;
}
body.archive-page #logout{
  padding-inline:8px!important;
  white-space:nowrap;
}

body.archive-page .top-nav{
  grid-area:nav!important;
  display:flex!important;
  width:100%;
  min-width:0;
  min-height:40px!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:3px!important;
  padding:2px 7px!important;
  border:1px solid color-mix(in srgb,var(--header-text,#fff) 18%,transparent)!important;
  border-radius:8px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin;
}
body.archive-page .top-nav button{
  display:inline-flex!important;
  flex:1 1 150px!important;
  min-width:max-content!important;
  min-height:34px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  padding:4px 12px!important;
  border-radius:6px!important;
  font-size:.65rem!important;
  white-space:nowrap!important;
}
body.archive-page .top-nav-icon{
  display:inline-grid;
  width:19px;
  height:19px;
  place-items:center;
  color:color-mix(in srgb,var(--gold) 88%,white 12%);
  font-size:.8rem;
}
body.archive-page .top-nav button.active{
  color:var(--gold)!important;
}
body.archive-page .top-nav button.active::after{
  right:10px!important;
  bottom:-1px!important;
  left:10px!important;
  height:2px!important;
}

body.archive-page .site-version-badge{
  grid-area:version!important;
  display:inline-flex!important;
  justify-self:end!important;
  align-self:center!important;
  min-height:30px;
  align-items:center;
  padding:4px 9px!important;
  border:1px solid color-mix(in srgb,var(--gold) 45%,transparent)!important;
  border-radius:999px!important;
  color:var(--gold)!important;
  font-size:.61rem!important;
  font-weight:900!important;
  letter-spacing:.055em!important;
  white-space:nowrap;
}

/* Le bouton manuel "Compacter" conserve deux lignes, simplement plus serrées. */
body.archive-page.header-compact .site-header{
  grid-template-rows:44px 36px!important;
  min-height:84px!important;
  padding-block:3px!important;
}
body.archive-page.header-compact .brand-mark{
  width:34px!important;
  height:34px!important;
}
body.archive-page.header-compact .site-brand-copy small{
  font-size:.47rem!important;
}
body.archive-page.header-compact .header-theme-switcher{
  min-height:35px!important;
}
body.archive-page.header-compact .header-theme-switcher button{
  width:26px!important;
  height:26px!important;
}
body.archive-page.header-compact .header-actions :is(
  .guide-button,.security-account-link,.deposit-button,.icon-button,.user-menu,.text-button
){
  min-height:30px!important;
}
body.archive-page.header-compact .top-nav{
  min-height:33px!important;
}
body.archive-page.header-compact .top-nav button{
  min-height:29px!important;
}

/* --- Commandes sous l’en-tête : bande très compacte, statique --- */
body.archive-page .gallery-control-stack,
body.archive-page.scroll-compact .gallery-control-stack{
  position:relative!important;
  display:grid!important;
  grid-template-columns:auto minmax(360px,1fr) minmax(520px,1.7fr)!important;
  grid-template-areas:
    "quick gallery media"
    "bulk bulk bulk";
  width:100%!important;
  max-width:100%!important;
  min-height:40px;
  align-items:stretch;
  gap:4px!important;
  margin:0 0 4px!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
body.archive-page .gallery-control-placeholder{
  display:none!important;
}

body.archive-page .gallery-control-quick-actions{
  grid-area:quick;
  display:flex;
  min-width:max-content;
  min-height:40px;
  align-items:center;
  gap:4px;
  padding:3px 4px;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--paper);
}
body.archive-page .gallery-control-quick-actions .header-action-button{
  display:inline-grid!important;
  width:34px!important;
  min-width:34px!important;
  height:32px!important;
  min-height:32px!important;
  padding:2px!important;
  place-items:center;
}
body.archive-page .gallery-control-quick-actions .header-action-label{
  display:none!important;
}
body.archive-page .gallery-control-quick-actions .gallery-design-action{
  display:inline-flex;
  height:32px;
  min-height:32px;
  align-items:center;
  gap:5px;
  padding:3px 9px!important;
  white-space:nowrap;
  font-size:.61rem;
}

body.archive-page .gallery-toolbar{
  grid-area:gallery!important;
  min-height:40px!important;
  height:40px!important;
  padding:3px 5px!important;
}
body.archive-page .media-controls{
  grid-area:media!important;
  min-height:40px!important;
  height:40px!important;
  padding:3px 5px!important;
}
body.archive-page .bulk-toolbar:not(.hidden){
  grid-area:bulk!important;
  min-height:34px!important;
}

/* Présentation de type tableau de commande, proche de la maquette. */
body.archive-page .selection-controls::before{
  margin-right:1px;
  color:var(--muted);
  font-size:.49rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  content:"Sélection";
}
body.archive-page .page-size-control::before{
  color:var(--muted);
  font-size:.49rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  content:"Affichage";
}
body.archive-page .rating-filter-menu::before{
  display:none;
}

/* Le titre et la description restent immédiatement au-dessus des commandes. */
body.archive-page .content-area{
  padding-top:5px!important;
}
body.archive-page .content-heading{
  min-height:31px!important;
  margin:0 0 3px!important;
}
body.archive-page .content-heading h1{
  font-size:clamp(1.05rem,1.5vw,1.4rem)!important;
}
body.archive-page #section-description{
  font-size:.59rem!important;
}

/* Adaptation sans créer de troisième ligne dans l’en-tête. */
@media(max-width:1500px){
  body.archive-page .site-header,
  body.archive-page.header-compact .site-header{
    grid-template-columns:minmax(270px,.9fr) minmax(350px,1fr) minmax(520px,1.6fr) auto!important;
    column-gap:8px!important;
    padding-inline:10px!important;
  }
  body.archive-page .header-actions{
    gap:4px!important;
  }
  body.archive-page .guide-button,
  body.archive-page .security-account-link{
    padding-inline:7px!important;
  }
  body.archive-page .deposit-button{
    min-width:110px;
  }
  body.archive-page .user-menu{
    min-width:130px;
    max-width:190px;
  }
  body.archive-page .gallery-control-stack{
    grid-template-columns:auto minmax(320px,.9fr) minmax(500px,1.5fr)!important;
  }
}

@media(max-width:1180px){
  /* Toujours 2 lignes : défilement interne de chaque rangée, jamais une 3e rangée. */
  body.archive-page .site-header,
  body.archive-page.header-compact .site-header{
    grid-template-columns:minmax(230px,auto) minmax(330px,1fr) minmax(460px,1.6fr) auto!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
  body.archive-page .header-theme-switcher,
  body.archive-page .header-actions,
  body.archive-page .top-nav{
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
  body.archive-page .gallery-control-stack{
    grid-template-columns:auto minmax(330px,1fr) minmax(500px,1.5fr)!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
  }
}

@media(max-width:760px){
  body.archive-page .site-header,
  body.archive-page.header-compact .site-header{
    grid-template-columns:minmax(150px,.85fr) minmax(150px,.95fr) minmax(0,1.65fr) auto!important;
    width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
  }
  body.archive-page .site-brand-copy strong{
    font-size:.72rem!important;
  }
  body.archive-page .site-brand-copy small{
    font-size:.43rem!important;
  }
  body.archive-page .header-theme-switcher,
  body.archive-page .header-actions,
  body.archive-page .top-nav{
    min-width:0!important;
    overflow-x:auto!important;
  }
  body.archive-page{
    overflow-x:hidden!important;
  }
}


/* 5.20.9 — sélection sur deux lignes et lisibilité automatique des thèmes. */

:root{
  --readable-text:var(--ink);
  --readable-muted:var(--muted);
  --readable-ivory-text:var(--ink);
  --readable-sidebar-text:var(--ink);
  --readable-header-text:#fff;
  --readable-control-bg:var(--paper);
}

/* La troisième colonne du tableau de commande est maintenant sur deux lignes.
   Ligne 1 : sélection ; ligne 2 : affichage et notation. */
body.archive-page .media-controls{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:32px 32px!important;
  grid-template-areas:
    "selection"
    "display";
  height:70px!important;
  min-height:70px!important;
  align-content:center!important;
  gap:2px!important;
  padding:2px 5px!important;
  overflow:visible!important;
}

body.archive-page .selection-controls{
  grid-area:selection;
  display:flex!important;
  min-width:0!important;
  width:100%;
  height:32px;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:4px!important;
  overflow:hidden;
}

body.archive-page .media-display-controls{
  grid-area:display;
  display:flex!important;
  min-width:0!important;
  width:100%;
  height:32px;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  overflow:visible!important;
}

body.archive-page .selection-controls button{
  flex:0 0 auto;
  min-height:27px!important;
  height:27px!important;
  padding:2px 6px!important;
}

body.archive-page #selection-count{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

body.archive-page .media-display-controls .columns-control{
  flex:1 1 190px!important;
  min-width:145px!important;
  max-width:290px!important;
}

body.archive-page .media-display-controls .page-size-control{
  flex:0 0 auto;
}

body.archive-page .media-display-controls .rating-filter-menu{
  flex:0 0 auto;
}

/* Les deux autres blocs s'alignent sur la nouvelle hauteur sans créer
   de chevauchement ni de vide important. */
body.archive-page .gallery-control-stack{
  align-items:stretch!important;
}
body.archive-page .gallery-control-quick-actions,
body.archive-page .gallery-toolbar{
  min-height:70px!important;
  height:70px!important;
}
body.archive-page .gallery-control-quick-actions{
  align-content:center;
}
body.archive-page .gallery-toolbar{
  flex-wrap:nowrap!important;
}

/* Contrastes applicatifs : aucune commande ne reprend aveuglément une couleur
   d'accent trop claire pour son fond. Cela s'applique aux thèmes intégrés
   comme aux thèmes administrateur. */
body.archive-page :is(
  .content-area,
  .gallery-toolbar,
  .media-controls,
  .bulk-toolbar,
  .modal,
  .admin-modal,
  .settings-modal,
  .gallery-picker-menu,
  .rating-filter-menu .rating-filter
){
  color:var(--readable-text)!important;
}

body.archive-page :is(
  .gallery-summary span,
  #selection-count,
  .page-size-control,
  .columns-control,
  .rating-filter-menu>summary small,
  .admin-panel small,
  .modal small,
  .settings-modal small
){
  color:var(--readable-muted)!important;
}

body.archive-page :is(
  input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),
  textarea,
  select
){
  border-color:color-mix(in srgb,var(--readable-text) 28%,var(--line))!important;
  background:var(--readable-control-bg)!important;
  color:var(--readable-text)!important;
  caret-color:var(--readable-text)!important;
}

body.archive-page select option,
body.archive-page select optgroup{
  background:var(--readable-control-bg)!important;
  color:var(--readable-text)!important;
}

body.archive-page :is(
  .selection-controls button,
  .pagination button,
  .secondary-button,
  .rating-filter-menu>summary,
  .view-controls button
){
  color:var(--readable-text)!important;
}

body.archive-page :is(
  .site-header,
  .site-header a,
  .site-header button,
  .site-header .user-menu strong,
  .site-header .user-menu small
){
  color:var(--readable-header-text);
}

body.archive-page .site-version-badge,
body.archive-page .top-nav button.active,
body.archive-page .top-nav-icon{
  /* L'accent reste visible, mais le texte principal ne dépend plus de lui. */
  text-shadow:0 1px 2px color-mix(in srgb,var(--wine-dark) 65%,transparent);
}

body.archive-page .source-sidebar,
body.archive-page .source-sidebar :is(button,a,strong,span,p,small,label){
  color:var(--readable-sidebar-text);
}

/* Les surfaces sombres conservent un texte calculé à partir de leur fond. */
html[data-design="chrome-cinema"] body.archive-page{
  color:var(--readable-ivory-text);
}

/* Les contrôles désactivés restent lisibles tout en étant clairement atténués. */
body.archive-page :is(button,input,select,textarea):disabled{
  color:color-mix(in srgb,var(--readable-text) 58%,var(--readable-control-bg))!important;
  opacity:.78!important;
}

/* Sous 1180 px, les deux lignes restent indépendantes et défilent localement
   si nécessaire : jamais de superposition. */
@media(max-width:1180px){
  body.archive-page .media-controls{
    min-width:520px;
  }
  body.archive-page .selection-controls,
  body.archive-page .media-display-controls{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:thin;
  }
}


/* 5.21.0 — gestion des thèmes, plein écran dans l'en-tête et sélection stable. */

:root{
  --readable-button-bg:var(--paper);
  --readable-button-text:var(--ink);
  --readable-primary-bg:var(--wine);
  --readable-primary-text:#fff;
}

/* La zone de sélection n'a plus aucune variante compacte.
   Elle conserve toujours ses deux lignes, quel que soit l'état de l'en-tête. */
body.archive-page .media-controls,
body.archive-page.header-compact .media-controls,
body.archive-page.scroll-compact .media-controls,
body.archive-page.fullscreen-active .media-controls{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:32px 32px!important;
  grid-template-areas:"selection" "display"!important;
  height:70px!important;
  min-height:70px!important;
  max-height:none!important;
  gap:2px!important;
  padding:2px 5px!important;
  overflow:visible!important;
}
body.archive-page .selection-controls,
body.archive-page.header-compact .selection-controls,
body.archive-page.scroll-compact .selection-controls{
  grid-area:selection!important;
  height:32px!important;
  min-height:32px!important;
}
body.archive-page .media-display-controls,
body.archive-page.header-compact .media-display-controls,
body.archive-page.scroll-compact .media-display-controls{
  grid-area:display!important;
  height:32px!important;
  min-height:32px!important;
}

/* Contraste des boutons : fond et texte sont maintenant un couple calculé,
   et non deux couleurs indépendantes du thème. */
body.archive-page :is(
  .selection-controls button,
  .pagination button,
  .secondary-button,
  .rating-filter-menu>summary,
  .view-controls button,
  .gallery-toolbar .secondary-button,
  .gallery-control-quick-actions .header-action-button
){
  border-color:color-mix(in srgb,var(--readable-button-text) 28%,var(--line))!important;
  background:var(--readable-button-bg)!important;
  color:var(--readable-button-text)!important;
  text-shadow:none!important;
}
body.archive-page :is(
  .primary-button,
  .deposit-button
){
  border-color:color-mix(in srgb,var(--readable-primary-text) 30%,var(--readable-primary-bg))!important;
  background:var(--readable-primary-bg)!important;
  color:var(--readable-primary-text)!important;
  text-shadow:none!important;
}
body.archive-page :is(
  .selection-controls button,
  .pagination button,
  .secondary-button,
  .primary-button,
  .rating-filter-menu>summary,
  .view-controls button
):hover{
  filter:brightness(.96) contrast(1.04);
}
body.archive-page :is(
  .selection-controls button,
  .pagination button,
  .secondary-button,
  .primary-button,
  .rating-filter-menu>summary,
  .view-controls button
):focus-visible{
  outline:3px solid color-mix(in srgb,var(--gold) 70%,#000 30%)!important;
  outline-offset:2px;
}

/* Plein écran : commande de gestion d'affichage dans la barre haute. */
body.archive-page .header-display-button{
  display:inline-flex!important;
  width:auto!important;
  min-width:96px!important;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:4px 9px!important;
}
body.archive-page .header-display-label{
  font-size:.61rem;
  font-weight:800;
  white-space:nowrap;
}
body.archive-page.header-compact .header-display-button{
  min-width:34px!important;
  width:34px!important;
  padding:2px!important;
}
body.archive-page.header-compact .header-display-label{
  display:none!important;
}

/* Administration des thèmes. */
.design-public-toggle{
  display:inline-flex!important;
  min-height:34px;
  align-items:center;
  gap:7px;
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--readable-button-bg);
  color:var(--readable-button-text);
  font-size:.62rem;
  font-weight:800;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.design-public-toggle input{
  width:16px;
  height:16px;
  accent-color:var(--wine-700);
}
.design-public-toggle:has(input:disabled){
  opacity:.72;
}


/* 5.21.1 — gestion simplifiée des thèmes et détails de vignettes escamotables. */

.theme-manager-simple{
  display:grid;
  gap:9px;
  margin:10px 0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--paper);
  color:var(--readable-text);
}
.theme-manager-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:14px;
}
.theme-manager-heading h4{
  margin:2px 0 0;
}
.theme-manager-heading>label{
  display:grid;
  min-width:min(360px,46vw);
  gap:4px;
  font-size:.62rem;
  font-weight:800;
}
.theme-manager-heading select{
  min-height:34px;
  background:var(--readable-control-bg)!important;
  color:var(--readable-text)!important;
}
.theme-access-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:5px;
}
.theme-access-row{
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr);
  align-items:center;
  gap:7px;
  min-width:0;
  padding:7px 8px;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--ivory);
  color:var(--readable-ivory-text);
  text-transform:none!important;
  letter-spacing:normal!important;
}
.theme-access-row input{
  width:16px;
  height:16px;
  accent-color:var(--wine-700);
}
.theme-access-row span{
  display:grid;
  min-width:0;
  gap:1px;
}
.theme-access-row strong,
.theme-access-row small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.theme-access-row small,
.theme-manager-help{
  color:var(--readable-muted)!important;
  font-size:.56rem;
}
.design-actions{
  align-items:center!important;
}
.design-public-toggle{
  display:none!important;
}

/* Bouton simple d'affichage des détails des vignettes. */
.media-details-toggle{
  display:inline-flex!important;
  flex:0 0 auto!important;
  min-height:27px!important;
  height:27px!important;
  align-items:center;
  gap:4px;
  padding:2px 7px!important;
  white-space:nowrap;
}
.media-details-toggle[aria-pressed="true"]{
  border-color:color-mix(in srgb,var(--gold) 65%,var(--line))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 30%,transparent);
}

/* L'escamotage ne touche que les informations textuelles sous la vignette.
   Étoiles, présence, sélection et commandes sur l'image restent visibles. */
body.media-details-hidden .gallery-grid .media-card>.media-meta{
  display:none!important;
}
body.media-details-hidden .gallery-grid .media-card{
  padding-bottom:0!important;
}
body.media-details-hidden .gallery-grid .media-visual-shell{
  margin-bottom:0!important;
}

@media(max-width:760px){
  .theme-manager-heading{
    align-items:stretch;
    flex-direction:column;
  }
  .theme-manager-heading>label{
    min-width:0;
    width:100%;
  }
}


/* 5.22.0 — centre de thèmes repensé. */

.theme-center{
  display:grid;
  gap:12px;
  min-width:0;
  color:var(--readable-text);
}
.theme-center-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:linear-gradient(135deg,var(--paper),var(--ivory));
}
.theme-center-header h3,
.theme-center-header p{
  margin:.15em 0;
}
.theme-site-identity,
.theme-publication-panel,
.theme-editor-shell{
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--paper);
}
.theme-site-identity{
  display:grid;
  grid-template-columns:minmax(180px,.4fr) minmax(0,1.6fr);
  gap:14px;
  padding:12px;
}
.theme-site-identity form{
  display:grid;
  grid-template-columns:repeat(3,minmax(150px,1fr)) auto;
  align-items:end;
  gap:8px;
}
.theme-site-identity form label{
  display:grid;
  gap:4px;
}
.theme-publication-panel{
  display:grid;
  gap:10px;
  padding:12px;
}
.theme-publication-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
}
.theme-publication-heading p{
  margin:.15em 0;
}
.theme-default-field{
  display:grid!important;
  min-width:min(360px,44vw);
  gap:4px;
}
.theme-default-field select{
  min-height:36px;
  background:var(--readable-control-bg)!important;
  color:var(--readable-text)!important;
}
.theme-library{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:7px;
}
.theme-library-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--ivory);
}
.theme-library-card.active{
  border-color:var(--gold);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 22%,transparent);
}
.theme-card-select{
  display:grid;
  min-width:0;
  grid-template-columns:66px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:7px;
  border:0;
  background:transparent;
  color:var(--readable-ivory-text);
  text-align:left;
  cursor:pointer;
}
.theme-card-preview{
  display:grid;
  width:66px;
  height:42px;
  grid-template-columns:repeat(2,1fr);
  grid-template-rows:repeat(2,1fr);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--readable-ivory-text) 22%,transparent);
  border-radius:7px;
}
.theme-card-preview i:nth-child(1){background:var(--theme-card-wine)}
.theme-card-preview i:nth-child(2){background:var(--theme-card-gold)}
.theme-card-preview i:nth-child(3){background:var(--theme-card-paper)}
.theme-card-preview i:nth-child(4){background:var(--theme-card-ink)}
.theme-card-copy{
  display:grid;
  min-width:0;
  gap:2px;
}
.theme-card-copy strong,
.theme-card-copy small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.theme-card-copy small{
  color:var(--readable-muted);
  font-size:.56rem;
}
.theme-card-public{
  display:grid!important;
  min-width:62px;
  place-items:center;
  gap:1px;
  padding:5px;
  border-left:1px solid var(--line);
  background:var(--paper);
  color:var(--readable-text);
  font-size:.5rem;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.theme-card-public input{
  width:17px;
  height:17px;
  accent-color:var(--wine-700);
}
.theme-editor-shell{
  display:grid;
  grid-template-columns:minmax(235px,290px) minmax(0,1fr);
  min-height:520px;
  overflow:hidden;
}
.theme-editor-sidebar{
  display:grid;
  align-content:start;
  gap:9px;
  padding:13px;
  border-right:1px solid var(--line);
  background:var(--ivory);
}
.theme-editor-sidebar h4{
  margin:.1em 0;
  font-size:1rem;
}
.theme-editor-sidebar p{
  margin:.15em 0;
  color:var(--readable-muted);
}
.theme-editor-sidebar>label{
  display:grid;
  gap:4px;
}
.theme-editor-sidebar textarea{
  resize:vertical;
}
.theme-editor-status{
  display:grid;
  gap:2px;
  padding:7px 8px;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--paper);
}
.theme-editor-status span{
  font-weight:800;
}
.theme-editor-status small{
  color:var(--readable-muted);
}
.theme-editor-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
}
.theme-editor-actions button{
  min-width:0;
}
.theme-editor-main{
  display:grid;
  align-content:start;
  min-width:0;
  gap:8px;
  padding:12px;
}
.theme-editor-toolbar{
  display:flex;
  align-items:end;
  gap:6px;
}
.theme-editor-toolbar label{
  display:grid;
  flex:1 1 auto;
  gap:4px;
}
.theme-setting-groups{
  display:grid;
  gap:6px;
}
.theme-setting-group{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--paper);
}
.theme-setting-group>summary{
  display:flex;
  min-height:36px;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 9px;
  background:var(--ivory);
  color:var(--readable-ivory-text);
  cursor:pointer;
  font-weight:800;
}
.theme-setting-group>summary small{
  color:var(--readable-muted);
  font-size:.55rem;
}
.theme-setting-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
}
.theme-setting-item{
  display:grid!important;
  grid-template-columns:minmax(160px,1fr) minmax(140px,.9fr);
  align-items:center;
  gap:8px;
  min-width:0;
  padding:8px;
  background:var(--paper);
  color:var(--readable-text);
  text-transform:none!important;
  letter-spacing:normal!important;
}
.theme-setting-item>span{
  display:grid;
  min-width:0;
  gap:2px;
}
.theme-setting-item>span small{
  color:var(--readable-muted);
  font-size:.53rem;
  line-height:1.25;
}
.theme-setting-item [data-design-key]{
  min-width:0;
  width:100%;
}
.theme-loading,
.theme-error-panel{
  display:grid;
  min-height:190px;
  place-items:center;
  gap:8px;
  padding:24px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--paper);
  text-align:center;
}
.theme-loading span{
  width:34px;
  height:34px;
  border:3px solid var(--line);
  border-top-color:var(--wine);
  border-radius:50%;
  animation:theme-spin .8s linear infinite;
}
@keyframes theme-spin{to{transform:rotate(360deg)}}

@media(max-width:1180px){
  .theme-site-identity{
    grid-template-columns:1fr;
  }
  .theme-site-identity form{
    grid-template-columns:repeat(3,minmax(130px,1fr));
  }
  .theme-site-identity form button{
    grid-column:1/-1;
    justify-self:start;
  }
  .theme-setting-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:820px){
  .theme-center-header,
  .theme-publication-heading{
    align-items:stretch;
    flex-direction:column;
  }
  .theme-default-field{
    min-width:0;
    width:100%;
  }
  .theme-site-identity form{
    grid-template-columns:1fr;
  }
  .theme-editor-shell{
    grid-template-columns:1fr;
  }
  .theme-editor-sidebar{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .theme-setting-item{
    grid-template-columns:1fr;
  }
}


/* 5.23.0 — en-tête unique, typographies détaillées et studio détachable. */
:root{
  --font-ui:var(--font-body);
  --font-meta:var(--font-body);
  --font-body-size:var(--base-size);
  --font-ui-size:13px;
  --font-button-size:12px;
  --font-meta-size:11px;
  --font-collection-size:24px;
}
body.archive-page.header-compact .site-header{
  grid-template-rows:54px 44px!important; min-height:98px!important;
  padding:5px clamp(14px,1.4vw,28px) 6px!important;
}
body.archive-page.header-compact .brand-mark{width:40px!important;height:40px!important}
body.archive-page.header-compact .site-brand-copy small{font-size:.52rem!important}
body.archive-page.header-compact .header-theme-switcher{min-height:42px!important}
body.archive-page.header-compact .header-theme-switcher button{width:29px!important;height:29px!important}
body.archive-page.header-compact .header-actions :is(.guide-button,.security-account-link,.deposit-button,.icon-button,.user-menu,.text-button){min-height:34px!important}
body.archive-page.header-compact .top-nav{min-height:40px!important}
body.archive-page.header-compact .top-nav button{min-height:34px!important}
.header-toggle-button,#toggle-header{display:none!important}

body{font-family:var(--font-body);font-size:var(--font-body-size)}
body :is(button,input,select,textarea,.top-nav,.header-actions,.gallery-toolbar,.media-controls,.admin-tabs){font-family:var(--font-ui)}
body :is(button,.top-nav button,.header-actions a,.header-actions button){font-size:var(--font-button-size)}
body :is(input,select,textarea,label,.gallery-toolbar,.media-controls,.admin-tabs){font-size:var(--font-ui-size)}
body :is(.media-meta,.media-meta small,.gallery-summary span,.gallery-summary small,.user-menu small,.eyebrow){font-family:var(--font-meta);font-size:var(--font-meta-size)}
body :is(.content-heading h1,.gallery-title,.gallery-heading h2){font-family:var(--font-display);font-size:var(--font-collection-size)}

.design-font-picker{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,.9fr);align-items:center;gap:7px}
.design-font-preview{display:flex;min-height:34px;align-items:center;padding:5px 8px;overflow:hidden;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--ivory);color:var(--readable-ivory-text);font-size:14px;white-space:nowrap}
.design-range-input{grid-template-columns:28px minmax(90px,1fr) 28px minmax(52px,auto)!important}
.design-step-button{display:grid;width:28px;height:28px;min-height:28px!important;padding:0!important;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--readable-button-bg);color:var(--readable-button-text);font-weight:900}
.theme-center-header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* Fenêtre mobile intégrée */
body.theme-settings-floating #admin-overlay{pointer-events:none!important;background:transparent!important}
body.theme-settings-floating #admin-overlay>.admin-modal{
  position:fixed!important;z-index:1600!important;width:min(1040px,86vw)!important;
  max-width:calc(100vw - 16px)!important;height:min(820px,88vh)!important;
  max-height:calc(100vh - 16px)!important;margin:0!important;resize:both;
  overflow:auto!important;pointer-events:auto!important;box-shadow:0 24px 70px rgba(0,0,0,.34)!important
}
body.theme-settings-floating #admin-overlay .admin-heading,
body.theme-settings-floating #admin-overlay .admin-tabs{display:none!important}
body.theme-settings-floating #admin-overlay .admin-panel{display:none!important}
body.theme-settings-floating #admin-overlay #admin-design{display:block!important;padding:0!important}
body.theme-settings-floating .theme-center-header{position:sticky;z-index:4;top:0;cursor:move;user-select:none}
body.theme-settings-floating .theme-center-header button{cursor:pointer}

/* Fenêtre navigateur totalement détachée */
body.theme-studio-detached{min-height:100vh;overflow:auto!important;background:var(--ivory)}
body.theme-studio-detached > :not(#admin-overlay):not(#toast):not(#ui-tooltip):not(script){display:none!important}
body.theme-studio-detached #admin-overlay{position:static!important;display:block!important;width:100%!important;height:auto!important;min-height:100vh;padding:0!important;background:transparent!important;overflow:visible!important}
body.theme-studio-detached #admin-overlay>.admin-modal{position:static!important;width:100%!important;max-width:none!important;min-height:100vh!important;height:auto!important;margin:0!important;padding:10px!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
body.theme-studio-detached #admin-overlay .modal-close,
body.theme-studio-detached #admin-overlay .admin-heading,
body.theme-studio-detached #admin-overlay .admin-tabs{display:none!important}
body.theme-studio-detached #admin-overlay .admin-panel{display:none!important}
body.theme-studio-detached #admin-overlay #admin-design{display:block!important;padding:0!important}
body.theme-studio-detached .theme-center{min-height:100vh}

#admin-design .theme-editor-shell{max-height:min(68vh,760px)}
#admin-design .theme-editor-main,#admin-design .theme-editor-sidebar{overflow:auto}
@media(max-width:820px){.design-font-picker{grid-template-columns:1fr}}


/* 5.23.1 — interrupteur administrateur / vue utilisateur. */
.admin-user-mode-switch{
  display:grid!important;
  grid-template-columns:34px auto;
  grid-template-areas:"track copy";
  min-width:116px;
  min-height:34px;
  align-items:center;
  gap:6px;
  padding:3px 7px!important;
  border:1px solid color-mix(in srgb,var(--header-text,#fff) 30%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--wine-dark) 78%,#000 22%);
  color:var(--readable-header-text,#fff)!important;
  cursor:pointer;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.admin-user-mode-switch input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.admin-user-mode-track{
  grid-area:track;
  position:relative;
  display:block;
  width:34px;
  height:18px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  background:rgba(255,255,255,.16);
  transition:background .16s ease;
}
.admin-user-mode-track i{
  position:absolute;
  top:2px;
  left:2px;
  width:12px;
  height:12px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.28);
  transition:transform .16s ease;
}
.admin-user-mode-copy{
  grid-area:copy;
  display:grid;
  min-width:0;
  line-height:1;
}
.admin-user-mode-copy small{
  color:inherit!important;
  font-size:.48rem!important;
  opacity:.7;
}
.admin-user-mode-copy strong{
  color:inherit!important;
  font-size:.61rem!important;
  white-space:nowrap;
}
.admin-user-mode-switch.is-user-mode{
  border-color:#85d5a4;
  background:#174c31;
}
.admin-user-mode-switch.is-user-mode .admin-user-mode-track{
  background:#55b97c;
}
.admin-user-mode-switch.is-user-mode .admin-user-mode-track i{
  transform:translateX(16px);
}
.admin-user-mode-switch:has(input:focus-visible){
  outline:3px solid var(--gold);
  outline-offset:2px;
}
.admin-user-mode-switch.is-pending{
  opacity:.6;
  cursor:progress;
}

/* L'état est volontairement visible pour éviter de confondre test et administration. */
body.archive-page:has(#toggle-admin-user-mode:checked)::after{
  position:fixed;
  z-index:1900;
  right:12px;
  bottom:12px;
  padding:6px 10px;
  border:1px solid #85d5a4;
  border-radius:999px;
  background:#174c31;
  color:#fff;
  content:"Vue utilisateur — compte administrateur inchangé";
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:800;
  box-shadow:0 8px 26px rgba(0,0,0,.22);
  pointer-events:none;
}


/* 5.23.1 — choix direct du thème par défaut sur chaque carte. */
.theme-card-flags{
  display:grid;
  grid-template-rows:1fr 1fr;
  min-width:78px;
  border-left:1px solid var(--line);
  background:var(--paper);
}
.theme-card-default,
.theme-card-public{
  display:grid!important;
  grid-template-columns:16px 1fr;
  align-items:center;
  justify-items:start;
  gap:5px;
  min-width:0;
  padding:5px 6px;
  border:0!important;
  background:transparent!important;
  color:var(--readable-text)!important;
  font-size:.5rem;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.theme-card-default{
  border-bottom:1px solid var(--line)!important;
}
.theme-card-default input,
.theme-card-public input{
  width:15px;
  height:15px;
  accent-color:var(--wine-700);
}
.theme-card-default span,
.theme-card-public span{
  white-space:nowrap;
}


/* 5.23.2 — profil Mister-T et réglages de test accessibles depuis la barre haute. */
.admin-user-mode-control{position:relative;display:flex;align-items:center;gap:4px}
.admin-user-mode-details{position:relative}
.admin-user-mode-details>summary{
  display:flex;align-items:center;gap:3px;min-height:32px;padding:4px 7px;
  border:1px solid color-mix(in srgb,var(--header-text,#fff) 28%,transparent);
  border-radius:999px;background:color-mix(in srgb,var(--wine-dark) 80%,#000 20%);
  color:var(--readable-header-text,#fff);cursor:pointer;font-size:10px;font-weight:800;list-style:none
}
.admin-user-mode-details>summary::-webkit-details-marker{display:none}
.admin-user-mode-details[open]>summary span{transform:rotate(180deg)}
#admin-user-mode-profile-form{
  position:absolute;z-index:1450;top:calc(100% + 8px);right:0;display:grid;
  width:min(320px,calc(100vw - 20px));gap:8px;padding:12px;border:1px solid var(--line);
  border-radius:12px;background:var(--paper);color:var(--readable-text);
  box-shadow:0 18px 48px rgba(0,0,0,.28)
}
#admin-user-mode-profile-form label{display:grid;gap:3px;font-size:11px}
#admin-user-mode-profile-form :is(select,input){width:100%;min-height:34px}
.test-profile-heading{display:grid;gap:2px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.test-profile-heading strong{font-size:15px}.test-profile-heading small{color:var(--muted);font-size:10px;line-height:1.35}
.theme-default-direct-help{max-width:360px;margin:0;color:var(--muted);font-size:11px;line-height:1.35}


/* 5.23.3 — bascule Mister-T instantanée et contrastes de prévisualisation. */
body.admin-user-preview :is(
  .content-area,
  .gallery-toolbar,
  .media-controls,
  .gallery-summary,
  .source-sidebar,
  #admin-user-mode-profile-form,
  .modal,
  .settings-modal
){
  color:var(--readable-text)!important;
}

body.admin-user-preview :is(
  .content-heading h1,
  .content-heading h2,
  .content-heading p,
  .gallery-summary strong,
  .gallery-summary span,
  .gallery-summary small,
  .media-meta,
  .media-meta strong,
  .media-meta small,
  .source-sidebar label,
  .source-sidebar strong,
  .source-sidebar small,
  #admin-user-mode-profile-form label,
  #admin-user-mode-profile-form strong,
  #admin-user-mode-profile-form small
){
  color:var(--readable-text)!important;
  text-shadow:none!important;
}

body.admin-user-preview :is(input,select,textarea){
  background:var(--readable-control-bg)!important;
  color:var(--readable-text)!important;
}

body.admin-user-preview select option,
body.admin-user-preview select optgroup{
  background:var(--readable-control-bg)!important;
  color:var(--readable-text)!important;
}

/* Les surfaces de l'en-tête restent traitées avec leur contraste propre. */
body.admin-user-preview .site-header,
body.admin-user-preview .site-header :is(a,button,.user-menu strong,.user-menu small){
  color:var(--readable-header-text)!important;
}

/* Les informations directement superposées aux images conservent leur traitement sombre. */
body.admin-user-preview .media-visual-shell :is(.media-card-stars,.media-card-personal,.media-check){
  color:#fff!important;
}


/* 5.23.4 — préférence de notification des nouvelles demandes d’accès. */
.settings-admin-notifications{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--paper);
  color:var(--readable-text);
}
.settings-admin-notifications>div{
  display:grid;
  gap:2px;
}
.settings-admin-notifications p,
.settings-admin-notifications strong,
.settings-admin-notifications span{
  margin:0;
}
.settings-admin-notifications>div>span{
  color:var(--readable-muted);
  font-size:.72rem;
}
.settings-notification-toggle{
  display:flex!important;
  align-items:center;
  gap:7px;
  min-width:max-content;
  padding:6px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--readable-control-bg);
  color:var(--readable-text)!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.settings-notification-toggle input{
  width:17px;
  height:17px;
  accent-color:var(--wine-700);
}
.settings-notification-toggle:has(input:disabled){
  opacity:.78;
}
@media(max-width:720px){
  .settings-admin-notifications{
    align-items:stretch;
    flex-direction:column;
  }
  .settings-notification-toggle{
    align-self:flex-start;
  }
}


/* 5.23.5 — préférence personnelle des notifications de dépôts visibles. */
.settings-visible-deposit-notifications{
  margin-top:10px;
}
.settings-visible-deposit-notifications .eyebrow{
  color:var(--readable-muted)!important;
}


/* 5.23.6 — date du média visible et éditable. */
.media-date-visible{
  margin:.15rem 0 .45rem;
  color:var(--readable-muted);
  font-size:.72rem;
  font-weight:700;
}
.media-meta small{
  line-height:1.25;
}


/* 5.23.7 — accueil de connexion déroulant sur le fond fourni. */

body.auth-page{
  position:relative;
  isolation:isolate;
  width:100%;
  min-height:100dvh!important;
  height:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  background:#170807!important;
}

body.auth-page::before{
  position:fixed;
  z-index:-2;
  inset:0;
  background:#170807 url("images/fondecran_053.jpg") center center / cover no-repeat;
  content:"";
  pointer-events:none;
}

/* Le fichier de fond reste inchangé ; seuls les panneaux apportent leur propre lisibilité. */
body.auth-page::after{
  position:fixed;
  z-index:-1;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(18,5,5,.10) 0%,
    rgba(18,5,5,.24) 52%,
    rgba(18,5,5,.48) 100%
  );
  content:"";
  pointer-events:none;
}

.auth-shell.auth-shell-marketing{
  display:grid!important;
  width:100%;
  min-height:100dvh!important;
  height:auto!important;
  max-height:none!important;
  grid-template-columns:minmax(280px,1fr) minmax(360px,520px) minmax(40px,.25fr)!important;
  grid-template-rows:minmax(100dvh,auto) auto auto auto!important;
  align-items:center!important;
  gap:clamp(28px,4vw,56px)!important;
  padding:clamp(72px,9vh,118px) clamp(18px,5vw,76px) 30px!important;
  overflow:visible!important;
  background:transparent!important;
}

.auth-shell.auth-shell-marketing .auth-brand{
  position:absolute;
  z-index:5;
  top:22px;
  left:clamp(20px,3vw,40px);
}

.auth-marketing-panel{
  grid-column:1!important;
  grid-row:1!important;
  align-self:center!important;
  max-height:none!important;
  overflow:visible!important;
}

.auth-access-card{
  grid-column:2!important;
  grid-row:1!important;
  align-self:center!important;
  max-height:none!important;
  overflow:visible!important;
}

.auth-communication-section,
.auth-solutions-section{
  grid-column:1 / -1;
  width:min(1240px,100%);
  justify-self:center;
  border:1px solid rgba(238,190,82,.46);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(34,7,9,.93),rgba(12,8,10,.90));
  box-shadow:0 28px 90px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.07);
  color:#fff;
  backdrop-filter:blur(16px);
}

.auth-communication-section{
  grid-row:2;
  display:grid;
  gap:20px;
  padding:clamp(20px,4vw,48px);
}

.auth-public-section-heading{
  display:grid;
  max-width:900px;
  gap:8px;
}

.auth-public-section-heading h2,
.auth-solutions-copy h2{
  margin:0;
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(1.7rem,3.3vw,3.5rem);
  line-height:1.05;
}

.auth-public-section-heading p,
.auth-solutions-copy p{
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:clamp(.86rem,1.25vw,1.08rem);
  line-height:1.6;
}

.auth-communication-visual{
  display:grid;
  gap:8px;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(241,196,94,.36);
  border-radius:18px;
  background:#0c0809;
}

.auth-communication-visual img{
  display:block;
  width:100%;
  height:auto;
}

.auth-communication-visual figcaption{
  padding:9px 14px 12px;
  color:rgba(255,255,255,.72);
  font-size:.7rem;
  line-height:1.45;
}

.auth-public-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px;
}

.auth-public-actions a{
  min-height:42px;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

.auth-solutions-section{
  grid-row:3;
  display:grid;
  gap:20px;
  padding:clamp(22px,4vw,50px);
}

.auth-solutions-copy{
  display:grid;
  max-width:930px;
  gap:8px;
}

.auth-solutions-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.auth-solutions-grid article{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  align-items:start;
  gap:13px;
  padding:18px;
  border:1px solid rgba(235,190,88,.28);
  border-radius:15px;
  background:rgba(8,7,9,.58);
}

.auth-solutions-grid article>span{
  display:grid;
  width:50px;
  height:50px;
  place-items:center;
  border:1px solid rgba(237,189,82,.68);
  border-radius:14px;
  color:#edbd58;
  font-size:1.35rem;
}

.auth-solutions-grid strong{
  display:block;
  margin-bottom:5px;
  color:#efbe58;
  font-size:1rem;
}

.auth-solutions-grid p{
  margin:0;
  color:rgba(255,255,255,.78);
  line-height:1.5;
}

.auth-solutions-audiences{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.auth-solutions-audiences span{
  padding:5px 10px;
  border:1px solid rgba(237,189,82,.32);
  border-radius:999px;
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.86);
  font-size:.7rem;
}

.auth-solutions-contact{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:center;
  justify-self:start;
  gap:12px;
  min-width:min(100%,430px);
  padding:13px 17px;
  border:1px solid rgba(255,218,134,.88);
  border-radius:14px;
  background:linear-gradient(135deg,#efc25d,#c98e2f);
  box-shadow:0 14px 36px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.35);
  color:#1c1207;
  text-decoration:none;
}

.auth-solutions-contact>span:first-child{
  display:grid;
  width:46px;
  height:46px;
  place-items:center;
  border-radius:50%;
  background:rgba(25,15,6,.87);
  color:#fff;
  font-size:1.1rem;
}

.auth-solutions-contact>span:last-child{
  display:grid;
  gap:2px;
}

.auth-solutions-contact strong{
  font-size:1rem;
}

.auth-solutions-contact small{
  color:rgba(28,18,7,.72);
  font-size:.66rem;
  line-height:1.35;
}

.auth-solutions-contact:hover,
.auth-solutions-contact:focus-visible{
  filter:brightness(1.06);
  transform:translateY(-1px);
}

.auth-shell.auth-shell-marketing .auth-footer{
  position:static!important;
  grid-column:1 / -1;
  grid-row:4;
  justify-self:center;
  margin:0;
  padding:4px 0 0;
  color:rgba(255,255,255,.72);
  text-align:center;
}

@media(max-width:900px){
  .auth-shell.auth-shell-marketing{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto auto auto!important;
    align-content:start!important;
    padding:84px 14px 28px!important;
  }

  .auth-marketing-panel{
    grid-column:1!important;
    grid-row:1!important;
    width:min(100%,700px)!important;
    justify-self:center!important;
  }

  .auth-access-card{
    grid-column:1!important;
    grid-row:2!important;
    width:min(100%,620px)!important;
    justify-self:center!important;
  }

  .auth-communication-section{
    grid-row:3;
  }

  .auth-solutions-section{
    grid-row:4;
  }

  .auth-shell.auth-shell-marketing .auth-footer{
    grid-row:5;
  }
}

@media(max-width:680px){
  .auth-marketing-panel{
    display:grid!important;
    padding:16px!important;
  }

  .auth-marketing-kicker,
  .auth-marketing-lead,
  .auth-marketing-features,
  .auth-discovery,
  .auth-guide-link{
    display:initial;
  }

  .auth-marketing-features{
    display:grid!important;
    grid-template-columns:1fr;
  }

  .auth-marketing-features article:nth-child(n){
    display:grid!important;
  }

  .auth-marketing-panel h1{
    font-size:clamp(2rem,12vw,3.4rem)!important;
  }

  .auth-marketing-panel h1 br{
    display:block!important;
  }

  .auth-solutions-grid{
    grid-template-columns:1fr;
  }

  .auth-public-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .auth-public-actions a{
    width:100%;
  }
}

@media(prefers-reduced-motion:reduce){
  .auth-solutions-contact{
    transition:none;
  }
}


/* 5.24.0 — localisation dynamique des présences dans le zoom. */

.media-region-stage{
  position:relative;
  display:grid;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  overflow:hidden;
  background:#120d0e;
  place-items:center;
}

.media-region-stage>img{
  display:block;
  width:100%;
  height:100%;
  max-height:100%;
  object-fit:contain;
  user-select:none;
  -webkit-user-drag:none;
}

.media-region-canvas{
  position:absolute;
  z-index:4;
  overflow:visible;
  pointer-events:none;
}

.media-region-highlights{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.media-region-highlight{
  position:absolute;
  box-sizing:border-box;
  border:1px solid rgba(255,215,119,.22);
  border-radius:20%;
  background:rgba(255,204,82,.025);
  opacity:.28;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
  transition:
    opacity 140ms ease,
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.media-region-highlight.active{
  z-index:3;
  border-color:#ffe09a;
  background:radial-gradient(
    ellipse at center,
    rgba(255,224,144,.34) 0%,
    rgba(245,181,54,.16) 48%,
    rgba(245,181,54,.035) 72%,
    transparent 100%
  );
  opacity:1;
  box-shadow:
    0 0 0 2px rgba(255,239,188,.72),
    0 0 18px 6px rgba(255,188,50,.60),
    inset 0 0 18px rgba(255,234,167,.34);
  transform:scale(1.035);
  animation:media-region-pulse 1.1s ease-in-out infinite alternate;
}

@keyframes media-region-pulse{
  from{
    box-shadow:
      0 0 0 2px rgba(255,239,188,.68),
      0 0 13px 4px rgba(255,188,50,.46),
      inset 0 0 14px rgba(255,234,167,.28);
  }
  to{
    box-shadow:
      0 0 0 3px rgba(255,246,216,.92),
      0 0 25px 9px rgba(255,188,50,.72),
      inset 0 0 23px rgba(255,234,167,.46);
  }
}

.media-region-draw{
  position:absolute;
  z-index:5;
  box-sizing:border-box;
  border:2px solid #ffe39e;
  border-radius:12px;
  background:rgba(241,175,43,.18);
  box-shadow:
    0 0 0 2px rgba(0,0,0,.28),
    0 0 22px rgba(255,188,53,.74);
  pointer-events:none;
}

.media-region-instruction{
  position:absolute;
  z-index:8;
  right:12px;
  bottom:12px;
  left:12px;
  max-width:max-content;
  margin:auto;
  padding:8px 13px;
  border:1px solid rgba(255,222,145,.68);
  border-radius:999px;
  background:rgba(22,12,11,.90);
  color:#fff;
  font-family:var(--font-ui);
  font-size:.68rem;
  line-height:1.35;
  text-align:center;
  box-shadow:0 8px 28px rgba(0,0,0,.38);
  pointer-events:none;
}

.media-region-stage.drawing{
  cursor:crosshair;
  touch-action:none;
}

.media-region-stage.saving{
  cursor:progress;
}

.media-presence-control{
  background:var(--readable-control-bg,var(--paper))!important;
  color:var(--readable-text,var(--ink))!important;
  border:1px solid color-mix(in srgb,var(--readable-text,var(--ink)) 20%,var(--line))!important;
  border-left:4px solid #4f9463!important;
  border-radius:var(--control-radius);
}

.media-presence-control .media-presence-public-check span strong,
.media-presence-control .media-presence-public-check span small{
  color:var(--readable-text,var(--ink))!important;
}

.media-region-edit{
  justify-self:start;
  min-height:30px;
  padding:4px 9px!important;
  font-size:.61rem;
}

.media-public-identifications{
  display:grid;
  gap:6px;
  padding-top:7px;
  border-top:1px solid color-mix(in srgb,var(--readable-text,var(--ink)) 18%,transparent);
}

.media-identifications-title{
  display:flex;
  width:max-content;
  max-width:100%;
  min-height:28px;
  align-items:center;
  gap:7px;
  padding:3px 8px;
  border:1px solid color-mix(in srgb,var(--readable-text,var(--ink)) 24%,var(--line));
  border-radius:999px;
  background:var(--readable-button-bg,var(--paper));
  color:var(--readable-button-text,var(--ink));
  font-size:.64rem;
  font-weight:900;
  cursor:default;
}

.media-identifications-title:not(:disabled){
  cursor:help;
}

.media-identifications-title:not(:disabled):hover,
.media-identifications-title:not(:disabled):focus-visible{
  border-color:var(--gold);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 24%,transparent);
}

.media-identifications-title b{
  display:grid;
  min-width:20px;
  height:20px;
  place-items:center;
  border-radius:999px;
  background:#32764a;
  color:#fff;
  font-size:.58rem;
}

.media-presence-people{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.media-presence-people button{
  display:inline-grid;
  min-height:30px;
  grid-template-columns:auto;
  gap:0;
  padding:4px 8px;
  border:1px solid color-mix(in srgb,var(--readable-text,var(--ink)) 22%,var(--line));
  border-radius:8px;
  background:var(--readable-button-bg,var(--paper));
  color:var(--readable-button-text,var(--ink));
  text-align:left;
}

.media-presence-people button span{
  font-size:.62rem;
  font-weight:800;
}

.media-presence-people button small{
  color:var(--readable-muted,var(--muted))!important;
  font-size:.49rem;
  line-height:1.15;
}

.media-presence-people button.has-region{
  cursor:help;
}

.media-presence-people button.has-region:hover,
.media-presence-people button.has-region:focus-visible{
  border-color:#d79b28;
  background:color-mix(in srgb,var(--gold) 14%,var(--readable-button-bg,var(--paper)));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 20%,transparent);
}

.media-presence-people button.without-region{
  opacity:.68;
  cursor:default;
}

#media-presence-summary{
  color:var(--readable-muted,var(--muted))!important;
}

/* Le super-administrateur contrôle la disponibilité globale du profil de test. */
.settings-mister-test{
  margin-top:10px;
  border-left:4px solid var(--gold)!important;
}

@media(max-width:680px){
  .media-region-instruction{
    right:6px;
    bottom:7px;
    left:6px;
    padding:7px 9px;
    border-radius:10px;
    font-size:.59rem;
  }

  .media-presence-people button{
    flex:1 1 135px;
  }
}

@media(prefers-reduced-motion:reduce){
  .media-region-highlight.active{
    animation:none;
  }
}


/* 5.25.0 — recherche par identifications publiques déclarées. */
.media-identification-search{
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid color-mix(in srgb,var(--gold) 38%,var(--line));
  border-radius:var(--control-radius);
  background:color-mix(in srgb,var(--ivory) 88%,var(--gold) 12%);
  color:var(--readable-ivory-text);
}
.media-identification-search>div:first-child{
  display:grid;
  gap:3px;
}
.media-identification-search strong{
  color:var(--readable-ivory-text);
  font-size:.76rem;
}
.media-identification-search small{
  color:var(--readable-muted);
  font-size:.61rem;
  line-height:1.4;
}
.media-identification-search-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}
.media-identification-search-actions button{
  min-width:0;
  white-space:normal;
}
@media(max-width:640px){
  .media-identification-search-actions{
    grid-template-columns:1fr;
  }
}


/* 5.26.0 — identifications privées manuelles et recherche de co-présence. */

.private-region-highlight{
  border-style:dashed;
  border-color:rgba(120,201,255,.38);
  background:rgba(77,174,238,.035);
  opacity:.34;
}
.private-region-highlight.active{
  border-color:#9bdcff;
  background:radial-gradient(
    ellipse at center,
    rgba(155,220,255,.38) 0%,
    rgba(77,174,238,.18) 50%,
    rgba(77,174,238,.035) 74%,
    transparent 100%
  );
  box-shadow:
    0 0 0 2px rgba(190,232,255,.72),
    0 0 18px 6px rgba(64,171,234,.58),
    inset 0 0 18px rgba(173,224,255,.34);
  animation:private-region-pulse 1.1s ease-in-out infinite alternate;
}
@keyframes private-region-pulse{
  from{
    box-shadow:
      0 0 0 2px rgba(190,232,255,.66),
      0 0 13px 4px rgba(64,171,234,.42),
      inset 0 0 14px rgba(173,224,255,.26);
  }
  to{
    box-shadow:
      0 0 0 3px rgba(221,245,255,.92),
      0 0 25px 9px rgba(64,171,234,.68),
      inset 0 0 23px rgba(173,224,255,.44);
  }
}
body.private-person-region-drawing .media-region-draw{
  border-color:#a9e3ff;
  background:rgba(70,176,238,.18);
  box-shadow:
    0 0 0 2px rgba(0,0,0,.28),
    0 0 22px rgba(70,176,238,.72);
}

.media-private-identifications{
  display:grid;
  gap:8px;
  padding-top:9px;
  border-top:1px solid color-mix(
    in srgb,
    var(--readable-text,var(--ink)) 18%,
    transparent
  );
}
.media-private-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.media-private-heading>div{
  display:grid;
  gap:2px;
}
.media-private-heading strong{
  color:var(--readable-text,var(--ink));
  font-size:.76rem;
}
.media-private-heading small{
  color:var(--readable-muted,var(--muted))!important;
  font-size:.59rem;
  line-height:1.4;
}
#media-private-identifications-count{
  display:grid;
  min-width:22px;
  height:22px;
  place-items:center;
  border-radius:999px;
  background:#2e7fae;
  color:#fff;
  font-size:.58rem;
}

.media-private-person-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:7px;
}
.media-private-person-form label{
  display:grid;
  gap:3px;
  color:var(--readable-muted,var(--muted));
  font-size:.57rem;
  font-weight:800;
}
.media-private-person-form input{
  min-height:34px;
  background:var(--readable-control-bg,var(--paper));
  color:var(--readable-text,var(--ink));
}
.media-private-person-form button{
  min-height:34px;
  white-space:normal;
}

.media-private-person-regions{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.media-private-person-chip{
  display:flex;
  align-items:stretch;
  overflow:hidden;
  border:1px solid color-mix(in srgb,#4a9dd0 48%,var(--line));
  border-radius:9px;
  background:color-mix(
    in srgb,
    var(--readable-control-bg,var(--paper)) 90%,
    #83cef5 10%
  );
}
.media-private-person-focus{
  display:grid;
  gap:0;
  min-height:31px;
  padding:4px 8px;
  border:0;
  background:transparent;
  color:var(--readable-text,var(--ink));
  text-align:left;
  cursor:help;
}
.media-private-person-focus span{
  font-size:.62rem;
  font-weight:850;
}
.media-private-person-focus small{
  color:var(--readable-muted,var(--muted))!important;
  font-size:.49rem;
}
.media-private-person-focus:hover,
.media-private-person-focus:focus-visible{
  background:color-mix(in srgb,#7cc9f2 18%,transparent);
}
.media-private-person-remove{
  width:27px;
  min-height:31px;
  padding:0;
  border:0;
  border-left:1px solid color-mix(in srgb,#4a9dd0 35%,var(--line));
  background:transparent;
  color:var(--readable-muted,var(--muted));
}
.media-private-person-remove:hover,
.media-private-person-remove:focus-visible{
  background:#8f2736;
  color:#fff;
}
.media-private-empty{
  color:var(--readable-muted,var(--muted))!important;
  font-size:.59rem;
}

.media-private-search{
  border:1px solid color-mix(in srgb,#4a9dd0 38%,var(--line));
  border-radius:var(--control-radius);
  background:color-mix(in srgb,var(--ivory) 92%,#77c8f3 8%);
}
.media-private-search>summary{
  padding:7px 9px;
  color:var(--readable-ivory-text,var(--ink));
  font-size:.65rem;
  font-weight:850;
  cursor:pointer;
}
.media-private-search-body{
  display:grid;
  gap:8px;
  padding:0 9px 9px;
}
.media-private-search-body>p{
  margin:0;
  color:var(--readable-muted,var(--muted));
  font-size:.58rem;
  line-height:1.4;
}
.media-private-person-catalog{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:5px;
}
.media-private-person-catalog label{
  display:grid!important;
  grid-template-columns:17px minmax(0,1fr);
  grid-template-areas:"check label" "check count";
  align-items:center;
  gap:0 6px;
  min-width:0;
  padding:5px 7px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--readable-control-bg,var(--paper));
  color:var(--readable-text,var(--ink));
  text-transform:none!important;
  letter-spacing:normal!important;
}
.media-private-person-catalog input{
  grid-area:check;
  width:15px;
  height:15px;
  accent-color:#2e7fae;
}
.media-private-person-catalog span{
  grid-area:label;
  overflow:hidden;
  font-size:.59rem;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.media-private-person-catalog small{
  grid-area:count;
  color:var(--readable-muted,var(--muted))!important;
  font-size:.48rem;
}
.media-private-search-body>label{
  display:grid;
  gap:3px;
  color:var(--readable-muted,var(--muted));
  font-size:.56rem;
  font-weight:800;
}
.media-private-search-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}
.media-private-search-actions button{
  min-width:0;
  white-space:normal;
}

@media(max-width:640px){
  .media-private-person-form,
  .media-private-search-actions{
    grid-template-columns:1fr;
  }
}
@media(prefers-reduced-motion:reduce){
  .private-region-highlight.active{
    animation:none;
  }
}


.media-private-catalog-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 27px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--readable-control-bg,var(--paper));
}
.media-private-catalog-row>label{
  border:0!important;
  border-radius:0!important;
}
.media-private-catalog-row>button{
  width:27px;
  min-height:100%;
  padding:0;
  border:0;
  border-left:1px solid var(--line);
  background:transparent;
  color:var(--readable-muted,var(--muted));
}
.media-private-catalog-row>button:hover,
.media-private-catalog-row>button:focus-visible{
  background:#8f2736;
  color:#fff;
}


/* 5.27.0 — portabilité intégrale ZIP/XML. */
.portable-panel{
  display:grid;
  gap:14px;
  margin-top:16px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--paper);
  color:var(--readable-text,var(--ink));
}
.portable-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.portable-grid .transfer-card-wide{
  grid-column:1 / -1;
}
.portable-export-form{
  margin-top:auto;
}
.portable-export-form button{
  width:100%;
}
.portable-grid code{
  font-size:.9em;
}
@media(max-width:760px){
  .portable-grid{
    grid-template-columns:1fr;
  }
  .portable-grid .transfer-card-wide{
    grid-column:auto;
  }
}


/* 5.27.1 — état des exports portables découpés en requêtes courtes. */
.portable-export-status{
  display:none;
  margin:0;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--readable-control-bg,var(--paper));
  color:var(--readable-text,var(--ink));
  font-size:.7rem;
  line-height:1.45;
}
.portable-export-status.active{
  display:block;
}


/* 5.28.0 — jetons de transfert et connexion volontaire au Hub. */
.settings-hub-transfer,
.settings-hub-connection{
  display:grid;
  gap:12px;
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  background:var(--readable-card-bg,var(--paper));
  color:var(--readable-text,var(--ink));
}
.settings-token-form{
  display:grid;
  gap:10px;
}
.settings-token-form .form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.settings-token-form small,
.settings-hub-connection small{
  color:var(--muted);
  line-height:1.45;
}
.settings-hub-update-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.settings-hub-update-actions small{
  flex:1 1 220px;
}
@media(max-width:720px){
  .settings-token-form .form-grid{
    grid-template-columns:1fr;
  }
}


/* 5.28.0 — corrections identifications, sélecteur transversal et validation du zoom. */
.sidebar-identification-selector{
  display:grid;
  gap:9px;
  margin:10px 0 14px;
  padding:10px;
  border:1px solid color-mix(in srgb,var(--gold) 34%,var(--line));
  border-radius:var(--control-radius);
  background:color-mix(in srgb,var(--sidebar-bg) 92%,var(--gold) 8%);
}
.sidebar-identification-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
.sidebar-identification-head>div{
  display:grid;
  gap:2px;
}
.sidebar-identification-head strong{font-size:.72rem}
.sidebar-identification-head small,
.sidebar-identification-help{font-size:.55rem;line-height:1.35;color:var(--muted)}
.sidebar-identification-head>b{
  display:grid;
  min-width:24px;
  min-height:24px;
  place-items:center;
  border-radius:999px;
  background:var(--wine);
  color:#fff;
  font-size:.58rem;
}
.sidebar-identification-groups{display:grid;gap:6px}
.sidebar-identification-groups details{
  border:1px solid color-mix(in srgb,var(--line) 78%,transparent);
  border-radius:8px;
  overflow:hidden;
}
.sidebar-identification-groups summary{
  padding:6px 8px;
  cursor:pointer;
  font-size:.62rem;
  font-weight:800;
}
.sidebar-identification-list{
  display:grid;
  max-height:155px;
  overflow:auto;
  padding:4px 7px 7px;
  gap:3px;
}
.sidebar-identification-list label{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
  padding:4px 2px;
  font-size:.6rem;
}
.sidebar-identification-list label span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar-identification-list label small{font-size:.5rem;color:var(--muted)}
.sidebar-identification-option{
  display:grid;
  gap:3px;
  font-size:.56rem;
  font-weight:700;
}
.sidebar-identification-option select{width:100%;min-width:0}
.sidebar-identification-empty{padding:5px 2px;color:var(--muted);font-size:.54rem}

.media-private-person-form{
  grid-template-columns:minmax(240px,1fr) auto!important;
  align-items:end;
}
.media-private-person-form label{
  min-width:0;
}
#media-private-person-label{
  width:100%!important;
  min-width:240px;
  min-height:42px;
  font-size:.82rem;
  padding:9px 11px;
}

.media-save-button{
  transition:box-shadow .18s ease,transform .18s ease,opacity .18s ease;
}
.media-save-button:disabled{
  opacity:.48;
  cursor:default;
  filter:saturate(.45);
}
.media-save-button.is-dirty:not(:disabled){
  font-weight:900;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 35%,transparent),
    0 8px 22px color-mix(in srgb,var(--wine) 24%,transparent);
  animation:media-save-invite 1.4s ease-in-out infinite alternate;
}
@keyframes media-save-invite{
  from{transform:translateY(0)}
  to{transform:translateY(-1px)}
}
@media(max-width:720px){
  .media-private-person-form{grid-template-columns:1fr!important}
  #media-private-person-label{min-width:0}
}
@media(prefers-reduced-motion:reduce){
  .media-save-button.is-dirty:not(:disabled){animation:none}
}


/* 5.28.7 — coches compactes alignées avec les libellés. */
.sidebar-identification-list label{
  grid-template-columns:minmax(0,1fr) auto auto;
  grid-template-areas:"person check count";
  align-items:center;
  column-gap:6px;
  row-gap:0;
}
.sidebar-identification-list label>span{
  grid-area:person;
  font-size:.6rem;
  line-height:1.2;
}
.sidebar-identification-list label>small{
  grid-area:count;
  align-self:center;
}
.sidebar-identification-list label>input[type="checkbox"]{
  grid-area:check;
  width:11px;
  height:11px;
  min-width:11px;
  margin:0;
  accent-color:var(--wine);
}
.sidebar-identification-scopes{
  display:grid;
  gap:4px;
  margin:0;
  padding:7px;
  border:1px solid color-mix(in srgb,var(--line) 82%,transparent);
  border-radius:8px;
}
.sidebar-identification-scopes legend{
  padding:0 3px;
  font-size:.56rem;
  font-weight:800;
}
.sidebar-identification-scopes label{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  font-size:.56rem;
}
.sidebar-identification-scopes input[type="checkbox"]{
  width:12px;
  height:12px;
  margin:0;
  accent-color:var(--wine);
}
.sidebar-identification-live{
  display:grid;
  gap:1px;
  padding:6px 7px;
  border-radius:7px;
  background:color-mix(in srgb,var(--wine) 7%,transparent);
}
.sidebar-identification-live strong{font-size:.62rem}
.sidebar-identification-live small{font-size:.5rem;color:var(--muted);line-height:1.3}


/* 5.28.9 — identifications transversales regroupées par dépôt. */
.gallery-grid.identification-grouped{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.identification-deposit-group{
  display:grid;
  gap:8px;
  min-width:0;
}
.identification-deposit-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  padding:7px 9px;
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--ivory) 90%,var(--wine) 10%);
}
.identification-deposit-heading>div{
  display:grid;
  gap:1px;
  min-width:0;
}
.identification-deposit-heading strong{
  font-size:.72rem;
  line-height:1.2;
}
.identification-deposit-heading small{
  color:var(--muted);
  font-size:.52rem;
}
.identification-deposit-heading>span{
  flex:0 0 auto;
  font-size:.56rem;
  font-weight:800;
}
.identification-deposit-grid{
  display:grid;
  grid-template-columns:repeat(var(--gallery-columns),minmax(0,1fr));
  gap:var(--gallery-gap,10px);
}
@media(max-width:720px){
  .identification-deposit-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
