/* Freigaben & VPS in the admin section. Scoped: the section shares the document with the app. */
#publication-admin *{box-sizing:border-box}
#publication-admin a{color:#28574a;text-underline-offset:3px}
#publication-admin button,#publication-admin input,#publication-admin select{font:inherit}
#publication-admin button,#publication-admin select,#publication-admin input{border:1px solid #b9c4bc;border-radius:8px}
#publication-admin button{background:#e8ede6;color:#203f34;padding:.65rem .95rem;cursor:pointer}
#publication-admin button:hover{background:#dbe5d9}
#publication-admin button.primary{background:#285544;color:white;border-color:#285544}
#publication-admin button.primary:hover{background:#193e30}
#publication-admin button:disabled{opacity:.5;cursor:default}
#publication-admin button:focus-visible,#publication-admin a:focus-visible,#publication-admin input:focus-visible,#publication-admin select:focus-visible,#publication-admin summary:focus-visible{outline:3px solid #9b763f;outline-offset:3px}
#publication-admin input:not([type=checkbox]):not([type=radio]),#publication-admin select{background:white;padding:.6rem;width:100%;min-width:0}
#publication-admin input[type=checkbox]{width:1.1em;height:1.1em;accent-color:#285544}
#publication-admin .publish-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
#publication-admin h3{font-size:1rem;margin:.3rem 0}
#publication-admin p{margin:.45rem 0 1rem}
#publication-admin #connection-state,#publication-admin .badge{display:inline-block;border-radius:99px;background:#e5ebe2;padding:.3rem .7rem;font-size:.85rem}
#publication-admin #message:empty{display:none}
#publication-admin #message{padding:1rem;background:#fff3d9;border-left:3px solid #9d7438;border-radius:4px;overflow-wrap:anywhere}
#publication-admin .publish-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:1.8rem;align-items:start}
#publication-admin aside{background:#eeeee6;border-radius:12px;padding:1.1rem;position:sticky;top:1rem}
#publication-admin aside label{display:block;margin-bottom:.45rem}
#publication-admin aside button{width:100%;margin-top:.65rem}
#publication-admin aside h2{font:1.05rem system-ui,sans-serif;margin:1.8rem 0 .7rem}
#publication-admin .draft-list{display:grid;gap:.5rem}
#publication-admin .draft-list button{text-align:left;margin:0;padding:.75rem}
#publication-admin .draft-list button[aria-current=true]{border:2px solid #285544;background:#fffdf7}
#publication-admin .draft-list small{display:block;color:#667367;margin-top:.25rem}
#publication-admin .empty{padding:4rem 2rem;text-align:center;border:1px dashed #c1cabd;border-radius:12px;background:#faf9f4}
#publication-admin .review-top{background:#fffdf8;padding:1.4rem;border:1px solid #dce0d8;border-radius:12px}
#publication-admin .review-top p{color:#607064}
#publication-admin .grants{display:flex;flex-wrap:wrap;gap:.6rem 1.1rem}
#publication-admin .grants label{display:flex;gap:.45rem;align-items:center;font-size:.9rem}
#publication-admin .grants fieldset{border:0;padding:0}
#publication-admin .bulk-row{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-top:1rem}
#publication-admin .fine{font-size:.85rem;color:#647269}
#publication-admin .photo-page{margin-top:1.5rem}
#publication-admin .page-grants{padding:1rem;background:#eaece3;border-radius:8px;margin-bottom:.8rem}
#publication-admin .photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}
#publication-admin .photo-card{background:#fffdf8;border:1px solid #dce0d8;border-radius:10px;overflow:hidden}
#publication-admin .photo-card img{width:100%;height:170px;object-fit:contain;background:#eaeae3;display:block}
#publication-admin .photo-card .photo-details{padding:1rem}
#publication-admin .photo-card .grants{display:grid;gap:.45rem}
#publication-admin .photo-card p{font-size:.9rem;margin-bottom:.75rem}
#publication-admin .photo-card .photo-meta{color:#647269;font-size:.8rem}
#publication-admin .review-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;position:sticky;bottom:0;padding:1rem;background:#faf9f4f5;border-top:1px solid #d5dbd0;backdrop-filter:blur(8px);margin-top:1.5rem}
#publication-admin .review-actions .dirty-state{font-size:.85rem;margin-right:auto}
#publication-admin .summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.7rem;margin:1rem 0}
#publication-admin .summary-grid div{padding:.8rem;border:1px solid #d6ded3;border-radius:8px;background:#f4f6ed}
#publication-admin .summary-grid strong{display:block;font-size:1.3rem}
#publication-admin .summary-grid span{font-size:.85rem}
#publication-admin .target-settings{margin-top:2rem;border-top:1px solid #d5dbd0;padding-top:1rem}
#publication-admin .target-settings summary{cursor:pointer}
#publication-admin .target-settings form{display:grid;grid-template-columns:1fr 2fr auto;gap:1rem;align-items:end}
#publication-admin .target-settings label{display:grid;gap:.35rem;font-size:.9rem}
#publication-admin #transfer-status:not(:empty){padding:1rem 1.3rem;border:1px solid #cbd5c6;border-radius:10px;background:#edf1e7;margin-top:1.3rem}
#publication-admin progress{width:100%;height:1rem;accent-color:#285544}
#publication-admin dialog{width:min(900px,94vw);max-height:90vh;border:1px solid #c6cfbe;border-radius:14px;padding:1.5rem;color:inherit;background:#fffdf8}
#publication-admin dialog::backdrop{background:#13291dc0}
#publication-admin dialog header{display:flex;justify-content:space-between;align-items:start;gap:1rem}
#publication-admin dialog header button{padding:.4rem .7rem}
#publication-admin .preview-controls{display:flex;align-items:center;gap:1rem;margin:1rem 0}
#publication-admin .preview-controls select{width:auto}
#publication-admin .preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;max-height:34vh;overflow:auto;border:1px solid #dee3d5;border-radius:8px;padding:.6rem}
#publication-admin .preview-grid figure{margin:0}
#publication-admin .preview-grid img{width:100%;height:100px;object-fit:contain;background:#e9eae0}
#publication-admin .preview-grid figcaption{font-size:.8rem}
#publication-admin .dialog-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.2rem}
#publication-admin .private-note{border-left:3px solid #8b9e80;padding-left:.8rem}
#publication-admin .danger{color:#763b2c}
#publication-admin #review-dialog h2{max-width:90%}
@media(max-width:800px){#publication-admin .publish-layout{grid-template-columns:1fr}
#publication-admin aside{position:static}
#publication-admin .publish-heading{align-items:start;flex-direction:column}
#publication-admin .target-settings form{grid-template-columns:1fr}
#publication-admin .photo-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
#publication-admin .review-actions{bottom:0}
#publication-admin .draft-list{max-height:200px;overflow:auto}}
@media(prefers-reduced-motion:reduce){#publication-admin *{scroll-behavior:auto!important}}
#publication-admin /* Keep native text zoom usable on narrow screens. */
.publish-header,#publication-admin .dialog-actions,#publication-admin .preview-controls{flex-wrap:wrap}
#publication-admin .publish-layout>*,#publication-admin .photo-card,#publication-admin .grants label{min-width:0;overflow-wrap:anywhere}
#publication-admin button{max-width:100%;overflow-wrap:anywhere}
#publication-admin .grants input{flex-shrink:0}
#publication-admin .preview-controls select{max-width:100%}
#publication-admin [hidden]{display:none!important}
#publication-admin #album-settings{margin-top:1.5rem}
#publication-admin #album-settings>summary{cursor:pointer;margin-bottom:1rem}
#publication-admin .sync-plan section{margin:1.2rem 0}
#publication-admin .sync-plan h3{font-size:1rem;margin:0 0 .3rem}
#publication-admin .sync-plan ul{list-style:none;margin:.5rem 0 0;padding:0;max-height:14rem;overflow:auto;border:1px solid #dee3d5;border-radius:8px}
#publication-admin .sync-plan li{display:flex;justify-content:space-between;gap:1rem;padding:.45rem .8rem;border-top:1px solid #eceee6}
#publication-admin .sync-plan li:first-child{border-top:0}
#publication-admin .sync-plan li small{color:#647269;white-space:nowrap}
#publication-admin .sync-plan-removed h3{color:#763b2c}
#publication-admin .genealogy-sync fieldset{margin:1rem 0;min-width:0;border:1px solid #d6ddd3;border-radius:.6rem;padding:1rem}
#publication-admin .genealogy-sync pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:14rem;overflow:auto;font:inherit;background:#f4f5ef;padding:.7rem}
#publication-admin .genealogy-sync label{display:block;margin:.6rem 0}
#publication-admin .genealogy-sync input{margin-right:.5rem}
#publication-admin .genealogy-sync{overflow-wrap:anywhere}
#publication-admin .genealogy-sync ul{padding-inline-start:1.2em}
#publication-admin .sync-portrait{display:block;width:8rem;max-width:100%;border-radius:.5rem;margin:.5rem 0}
