:root{--public-editor-gap:15px;--public-editor-label-gap:6px}
/* Édition administrateur : crayons discrets et fenêtre aux couleurs publiques. */
.public-edit-target,.public-edit-link{position:relative}
.public-edit-link{display:inline-block;max-width:100%;margin-right:30px}
.public-edit-pencil{position:absolute;right:0;bottom:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:5px;border:0;border-radius:6px;background:var(--bg);color:var(--muted);cursor:pointer;line-height:1}
.public-edit-target{padding-right:30px}
.public-edit-link>.public-edit-pencil{right:-30px}
.public-edit-pencil svg{display:block;width:16px;height:16px}
.public-edit-pencil:hover,.public-edit-pencil:focus-visible{color:var(--accent);outline:1px solid var(--accent)}
.public-text-dialog{box-sizing:border-box;width:min(600px,calc(100vw - 30px));max-height:calc(100dvh - 30px);padding:var(--public-editor-gap);border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:14px/1.5 Satoshi,sans-serif;overflow:auto}
.public-text-dialog::backdrop{background:#0009}
.public-text-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--public-editor-gap);margin-bottom:var(--public-editor-gap);cursor:grab;touch-action:none;user-select:none}
.public-text-dialog textarea{box-sizing:border-box;display:block;width:100%;min-height:60px;height:auto;max-height:50dvh;resize:vertical;margin:var(--public-editor-label-gap) 0 0;padding:var(--public-editor-gap);background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:6px;font:inherit}
.public-text-dialog :is(input,textarea):focus{outline:2px solid var(--accent);outline-offset:-2px;border-color:var(--accent)}
.public-text-dialog button{padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit;cursor:pointer}
.public-text-dialog button:hover{border-color:var(--accent);color:var(--accent)}
.public-text-dialog button:disabled{opacity:.5;cursor:wait}
.public-text-dialog .public-text-close{width:32px;height:32px;padding:0}
.public-text-dialog-actions{display:flex;justify-content:flex-end;gap:var(--public-editor-gap);margin-top:var(--public-editor-gap)}
.public-text-dialog-actions button:last-child{border-color:var(--accent);color:var(--accent)}
.public-edit-status{margin:var(--public-editor-gap) 0 0;font-size:13px;color:var(--accent)}
.public-edit-status:empty{display:none}

/* Shared editor fields. */
.public-text-dialog label{display:block;font-size:13px;margin:0;min-width:0}
.public-text-dialog [hidden]{display:none}
.public-text-dialog input{display:block;box-sizing:border-box;width:100%;margin-top:var(--public-editor-label-gap);padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit}

/* One editing entry per section; grouped fields scroll inside the dialog. */
.public-edit-block{position:relative}
.public-edit-block>.public-block-pencil{top:0;right:0;bottom:auto;z-index:5}
.wrap.public-edit-block>.public-block-pencil{right:5%}
.public-block-fields{display:grid;gap:var(--public-editor-gap);max-height:60dvh;overflow-y:auto;overflow-x:hidden;padding:4px var(--public-editor-gap) 4px 4px;scrollbar-gutter:stable}

.public-text-dialog.is-dragging .public-text-dialog-heading{cursor:grabbing}

/* Link label and destination share one compact row. */
.public-block-link-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--public-editor-gap);align-items:start}
.public-block-fields input{height:48px;min-height:48px}

/* PDF name and replacement action form one aligned group. */
.public-block-document-row{grid-template-columns:minmax(0,1fr) auto;align-items:end}
.public-block-document-row>.public-document-upload{width:48px;height:48px;min-height:48px;margin:0;padding:0;display:flex;align-items:center;justify-content:center}
.public-document-upload svg{width:20px;height:20px;flex:none}

/* Empty document rows retain editor bindings without occupying public space. */
.riders[hidden],.riders > a[hidden]{display:none}

/* Banner animation layers share the original image geometry. */
.banner-animation-host{position:relative;overflow:hidden}
.banner-animation-host .banner-slide-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.hero.banner-animation-host .banner-slide-overlay{z-index:0}

/* Manual banner controls reuse the gallery button treatment. */
.banner-navigation{position:absolute;right:15px;bottom:15px;z-index:2;display:flex;gap:15px}
.banner-navigation-button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--accent);background:var(--bg);color:var(--accent);cursor:pointer}
.banner-navigation-button:hover,.banner-navigation-button:focus-visible{background:var(--accent);color:var(--bg)}
