:root{
  --bg:#f5f3ef;--panel:#fff;--ink:#151515;--muted:#6f6a62;--line:#ddd8cf;--soft:#ebe7df;
  --accent:#1c1c1c;--danger:#9b2c2c;--shadow:0 18px 45px rgba(0,0,0,.08);--radius:18px;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{margin:0;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
img{display:block;max-width:100%}
[hidden]{display:none!important}

.eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--muted);font-weight:700}
.auth-gate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#eeeae3;padding:24px}
.auth-card{width:min(470px,100%);background:white;padding:32px;border:1px solid var(--line);box-shadow:var(--shadow)}
.auth-card h1{font-family:Georgia,serif;font-weight:400;font-size:2.2rem;margin:.2rem 0 .8rem}
.auth-card label{display:grid;gap:8px;margin:24px 0 14px;font-size:.9rem}
.auth-card input{width:100%;border:1px solid var(--line);padding:12px 14px;background:#fff}
.form-message{min-height:1.4em;color:var(--danger);font-size:.9rem}

.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 24px;background:rgba(245,243,239,.95);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.topbar h1{margin:0;font-size:1.25rem;font-weight:650;display:flex;align-items:center;gap:10px}
.test-badge{font-size:.62rem;letter-spacing:.11em;padding:5px 7px;border:1px solid var(--ink);border-radius:999px}
.topbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.save-status{font-size:.8rem;color:var(--muted);margin-right:5px}
.save-status.is-saving{color:#7a5a00}.save-status.is-saved{color:#2b6739}.save-status.is-error{color:var(--danger)}

.button,.icon-button{border:1px solid var(--line);background:#fff;padding:9px 12px;text-decoration:none;border-radius:8px;font-size:.85rem}
.button:hover,.icon-button:hover{border-color:#aaa49b}
.button--primary{background:var(--accent);border-color:var(--accent);color:#fff}
.button--danger{color:var(--danger);border-color:#d9baba}
.button--wide{width:100%}
.icon-button{font-size:1.45rem;line-height:1;padding:4px 9px}

.workspace{display:grid;grid-template-columns:205px minmax(0,1fr) clamp(360px,33vw,660px);min-height:calc(100vh - 78px)}
.app-shell.preview-detached .workspace{grid-template-columns:205px minmax(0,1fr)}
.app-shell.preview-detached .preview-pane{display:none}

.sidebar{position:sticky;top:78px;height:calc(100vh - 78px);padding:20px 14px;border-right:1px solid var(--line);background:#f9f7f3}
.section-nav{display:grid;gap:6px}
.section-nav button{border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:9px;font-size:.9rem}
.section-nav button:hover,.section-nav button.is-active{background:white;box-shadow:0 1px 0 rgba(0,0,0,.03)}
.section-nav button.is-active{font-weight:700}
.sidebar-note{position:absolute;bottom:18px;left:14px;right:14px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:.78rem;line-height:1.45}
.sidebar-note p{margin:.4rem 0 0;color:var(--muted)}

.editor{min-width:0;padding:28px}
.editor-section{display:none}.editor-section.is-active{display:block}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}
.section-heading h2{font-family:Georgia,serif;font-size:2rem;font-weight:400;margin:0}
.section-heading p:not(.eyebrow){color:var(--muted);margin:.45rem 0 0;max-width:760px}
.panel{background:var(--panel);border:1px solid var(--line);padding:20px;border-radius:var(--radius);margin-bottom:18px}
.panel--sticky{position:sticky;top:102px;align-self:start}
.panel__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.panel__heading h3{margin:0;font-size:1rem}.panel__heading p{margin:.35rem 0 0;color:var(--muted);font-size:.86rem}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--line);padding:18px;border-radius:14px}.stat strong{font-family:Georgia,serif;font-size:2rem;font-weight:400;display:block}.stat span{color:var(--muted);font-size:.8rem}

.preview-pane{position:sticky;top:78px;height:calc(100vh - 78px);border-left:1px solid var(--line);background:#ece8e1;padding:16px;overflow:auto}
.preview-pane__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.preview-pane__help{color:var(--muted);font-size:.79rem;line-height:1.45;margin:0 0 12px}
.preview-pane #open-preview-side{margin-bottom:12px}
.device-toggle{display:flex;background:#fff;border:1px solid var(--line);border-radius:9px;padding:3px}
.device-toggle button{border:0;background:transparent;padding:6px 9px;border-radius:6px}.device-toggle button.is-active{background:#e9e5dd}
.device-frame{margin:0 auto;background:#fff;border:1px solid #d8d2c8;box-shadow:0 12px 35px rgba(0,0,0,.08);transition:width .2s ease;overflow:hidden}
.device-frame--desktop{width:100%;min-height:660px}.device-frame--tablet{width:78%;min-height:660px}.device-frame--mobile{width:50%;min-width:250px;min-height:660px}
#site-preview-frame{display:block;width:100%;height:calc(100vh - 250px);min-height:620px;border:0;background:#fff}
.context-preview{min-height:560px;background:#fff;padding:20px}

.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.toolbar input,.toolbar select,.toolbar label{background:#fff;border:1px solid var(--line);padding:10px 12px;border-radius:9px}
.toolbar input{min-width:260px}.toolbar label{display:flex;align-items:center;gap:8px}
.toolbar label select{border:0;padding:0;background:transparent}

.photo-uploader{margin-bottom:30px}
.photo-dropzone{border:2px dashed #b99a76;background:#fbfaf7;min-height:210px;padding:32px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:14px;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.photo-dropzone:hover,.photo-dropzone:focus-visible{border-color:#6f5740;background:#fff;outline:none}
.photo-dropzone.is-dragging{border-color:#151515;background:#f1eee8;transform:scale(.997)}
.photo-dropzone.is-compact{min-height:110px;padding:14px}
.photo-dropzone.is-compact .photo-dropzone__icon,.photo-dropzone.is-compact #photo-drop-help{display:none}
.photo-dropzone.is-compact h3{font-size:1.2rem;margin:0 0 8px}
.photo-dropzone.is-compact small{margin-top:6px}
.photo-dropzone__icon{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#fff;font-size:1.4rem;margin-bottom:10px}
.photo-dropzone h3{margin:0 0 6px;font-family:Georgia,serif;font-size:1.45rem;font-weight:400}
.photo-dropzone p{margin:0 0 16px;color:var(--muted);max-width:600px}
.photo-dropzone small{display:block;margin-top:12px;color:var(--muted);font-size:.75rem}
.photo-choose-button{position:relative;overflow:hidden}
.upload-workspace{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.upload-workspace__title{font:400 1.22rem Georgia,serif;margin:0 0 5px}
.upload-workspace__hint{margin:0 0 18px}
.upload-workspace__settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}
.upload-workspace__settings .field{margin:0}
.upload-workspace__actions{display:flex;gap:8px;justify-content:flex-end;align-items:end;flex-wrap:wrap;padding-bottom:1px}
.upload-workspace__actions .button{min-height:42px}
.upload-workspace__actions #commit-upload-queue{flex:1}
.upload-workspace__actions .button:disabled{opacity:.55;cursor:not-allowed}
.upload-series-control{display:flex;gap:7px;align-items:stretch}
.upload-series-control select{min-width:0;flex:1}
.upload-series-control .button{white-space:nowrap;font-size:.77rem;padding:8px}
.upload-series-control .button:disabled{opacity:.45;cursor:not-allowed}
.upload-series-field small,.upload-subseries-field small{color:var(--muted);font-size:.72rem;font-weight:400}
.upload-series-field.is-empty .upload-series-control,.upload-subseries-field.is-empty .upload-series-control{padding:8px;border:1px dashed #b99a76;border-radius:9px;background:#fbfaf7}
.upload-series-field.is-empty small,.upload-subseries-field.is-empty small{color:#795d3e}
.upload-status{margin:12px 0 0;font-size:.82rem;color:var(--muted)}
.upload-status.is-error{color:var(--danger)}
.upload-status.is-success{color:#2b6739}
.upload-queue{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:14px}
.upload-card{position:relative;border:1px solid var(--line);background:#faf9f6;border-radius:12px;overflow:hidden}
.upload-card__image{aspect-ratio:4/3;background:#eee;overflow:hidden}
.upload-card__image img{width:100%;height:100%;object-fit:cover}
.upload-card__body{padding:10px;display:grid;gap:8px}
.upload-card__body label{display:grid;gap:4px;font-size:.72rem;color:var(--muted)}
.upload-card__body input{width:100%;border:1px solid var(--line);background:#fff;padding:8px 9px;border-radius:7px;font-size:.82rem}
.upload-card__name{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.upload-card__remove{position:absolute;top:7px;right:7px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(20,20,20,.75);color:#fff;display:grid;place-items:center;font-size:1rem}
.upload-card__remove:hover{background:#111}
.upload-card.is-processing{opacity:.6;pointer-events:none}
.upload-card.is-complete{outline:2px solid #72917a;outline-offset:-2px}
.library-heading{display:flex;justify-content:space-between;align-items:end;margin:8px 0 10px}
.library-heading h3{margin:0;font-size:1.05rem}


.series-manager{display:grid;gap:16px}
.series-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}
.series-card__cover{aspect-ratio:1/1;overflow:hidden;background:#f3f0ea;border-radius:10px}
.series-card__cover img{width:100%;height:100%;object-fit:cover}
.series-card__empty{width:100%;height:100%;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:.78rem;padding:10px}
.series-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.series-name-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:8px;align-items:center}
.series-name-row input,.subseries-row input,.inline-add input{border:1px solid var(--line);padding:9px 10px;border-radius:8px;background:#fff}
.series-meta{font-size:.8rem;color:var(--muted);margin:.5rem 0 1rem}
.subseries-list{display:grid;gap:8px}
.subseries-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(110px,1fr) auto auto auto;gap:8px;align-items:center;padding:8px;background:#f8f6f2;border-radius:9px}
.subseries-row .button.is-selected{background:#252525;color:#fff;border-color:#252525}
.nested-list{grid-column:1/-1;padding-left:18px;color:var(--muted);font-size:.8rem}
.inline-add{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:10px}
.series-actions{display:flex;gap:8px;flex-wrap:wrap}


.art-card{cursor:pointer}
.art-card__actions{display:grid;grid-template-columns:1fr;gap:6px;border-top:1px solid var(--line);padding:10px}
.art-card__actions .button{width:100%;font-size:.77rem;white-space:normal;padding:9px 8px;text-align:left}
.art-card__actions .button.is-selected{background:#252525;color:#fff;border-color:#252525}
.series-sub-selector{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:0 0 12px;padding:10px;background:#f6f3ee;border-radius:10px}
.series-sub-selector label{flex:1;display:grid;gap:5px;font-size:.76rem;font-weight:600}
.series-sub-selector select{min-width:140px;width:100%;border:1px solid var(--line);background:white;padding:8px;border-radius:8px}
.series-sub-selector .button{white-space:nowrap}
.subseries-row.is-current{outline:2px solid #292823;outline-offset:-2px}

.art-manager{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.art-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:transform .15s ease,border-color .15s ease}
.art-card:hover{transform:translateY(-2px);border-color:#aaa}
.art-card__image{aspect-ratio:4/3;background:#f1eee8;overflow:hidden}.art-card__image img{width:100%;height:100%;object-fit:cover}
.art-card__body{padding:11px}.art-card h3{font-size:.9rem;margin:0 0 .3rem}.art-card p{font-size:.77rem;color:var(--muted);margin:0}
.badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.badge{font-size:.66rem;padding:3px 6px;border:1px solid var(--line);border-radius:999px}.badge--dark{background:#222;color:white;border-color:#222}

.field{display:grid;gap:7px;font-size:.84rem;margin-bottom:14px}.field>span,.field>label{font-weight:650}
.field input,.field select,.field textarea,.dialog-card input,.dialog-card select,.dialog-card textarea{width:100%;border:1px solid var(--line);background:white;padding:10px 11px;border-radius:8px}
.field textarea,.dialog-card textarea{min-height:120px;resize:vertical}.help{color:var(--muted);font-size:.8rem;line-height:1.45}

.collage-layout,.text-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);gap:18px}
.choice-row{display:flex;gap:6px;flex-wrap:wrap}.choice{border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:8px}.choice.is-active{background:#222;color:#fff;border-color:#222}
.mini-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}
.mini-photo{position:relative;aspect-ratio:1/1;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#eee;padding:0}.mini-photo img{width:100%;height:100%;object-fit:cover}.mini-photo.is-selected{border-color:#111}.mini-photo.is-selected:after{content:"✓";position:absolute;right:5px;top:5px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-weight:700}
.collage-preview{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:72px;grid-auto-flow:dense;gap:5px;min-height:220px;background:#f4f1eb;padding:8px;border-radius:10px}
.collage-preview img{width:100%;height:100%;object-fit:cover}.collage-tile-preview{overflow:hidden;background:#ddd;border-radius:4px;grid-column:span 2;grid-row:span 2}.collage-tile-preview[data-shape="wide"]{grid-column:span 4;grid-row:span 2}.collage-tile-preview[data-shape="tall"]{grid-column:span 2;grid-row:span 4}.collage-tile-preview[data-shape="hero"]{grid-column:span 4;grid-row:span 4}
.collage-preview[data-layout="grid"] .collage-tile-preview{grid-column:span 2;grid-row:span 2}.collage-preview[data-layout="strip"]{grid-template-columns:1fr;grid-auto-rows:110px}.collage-preview[data-layout="strip"] .collage-tile-preview{grid-column:auto!important;grid-row:auto!important}.collage-preview[data-layout="balanced"] .collage-tile-preview:nth-child(3n+1){grid-column:span 3}.collage-preview[data-layout="editorial"] .collage-tile-preview:first-child{grid-column:span 4;grid-row:span 4}
.selected-list{display:grid;gap:6px;margin:12px 0}.selected-item{display:grid;grid-template-columns:38px 1fr auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--soft);font-size:.78rem}.selected-item img{width:38px;height:38px;object-fit:cover;border-radius:5px}.selected-item select{border:1px solid var(--line);padding:5px;border-radius:6px}.selected-item button{border:0;background:transparent;font-size:1rem}
.existing-collages{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.existing-collage{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--soft);font-size:.78rem}

.language-tabs{display:flex;gap:4px;margin-bottom:16px}.language-tabs button{border:1px solid var(--line);background:#fff;padding:8px 12px}.language-tabs button.is-active{background:#222;color:#fff;border-color:#222}
.site-copy-preview{font-family:Georgia,serif}.site-copy-preview .mini-hero{min-height:360px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;background:#faf9f6}.site-copy-preview .mini-hero h1{font-size:2.2rem;font-weight:400;white-space:pre-line;margin:.25rem 0 1rem}.site-copy-preview .mini-hero p{font-family:Inter,sans-serif;color:#5e5952;line-height:1.6}.site-copy-preview .mini-about{padding:28px}.site-copy-preview .mini-about h2{font-size:1.5rem;font-weight:400}.site-copy-preview .mini-about p{font-family:Inter,sans-serif;line-height:1.65;color:#4e4a44}

.archive-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.archive-tile{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line)}.archive-tile img{width:100%;height:100%;object-fit:cover}.archive-tile__caption{position:absolute;inset:auto 0 0;background:linear-gradient(transparent,rgba(0,0,0,.68));color:#fff;padding:26px 9px 8px;font-size:.72rem}

.series-nav-preview{display:flex;gap:8px;overflow:auto;padding:2px 0 10px}.series-nav-preview button{white-space:nowrap;border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:999px}.series-nav-preview button.is-active{background:#222;color:#fff;border-color:#222}
.series-preview-canvas{border-top:1px solid var(--soft);padding-top:16px}.series-preview-canvas h4{font-family:Georgia,serif;font-size:1.5rem;font-weight:400;margin:.2rem 0 1rem}
.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.preview-grid .preview-image{aspect-ratio:4/3;overflow:hidden;background:#eee}.preview-grid img{width:100%;height:100%;object-fit:cover}.preview-grid--featured .preview-image:first-child{grid-column:span 2;grid-row:span 2}
.preview-card-title{font-size:.7rem;margin-top:4px;color:#555}

.context-card{display:grid;gap:13px}.context-card h2{font-family:Georgia,serif;font-weight:400;font-size:1.7rem;margin:0}.context-card p{margin:0;color:#666;line-height:1.5;font-size:.82rem}.context-image{aspect-ratio:4/3;overflow:hidden;background:#eee}.context-image img{width:100%;height:100%;object-fit:cover}.context-thumbs{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.context-thumbs>div{aspect-ratio:1/1;overflow:hidden}.context-thumbs img{width:100%;height:100%;object-fit:cover}

.editor-dialog{border:0;padding:0;width:min(760px,calc(100vw - 32px));max-height:90vh;background:transparent}.editor-dialog::backdrop{background:rgba(0,0,0,.42)}
.dialog-card{background:#f9f7f3;border-radius:16px;padding:22px;box-shadow:var(--shadow);max-height:90vh;overflow:auto}
.dialog-heading,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading{margin-bottom:18px}.dialog-heading h2{font-family:Georgia,serif;font-weight:400;margin:0}.dialog-actions{justify-content:flex-end;margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .span-2{grid-column:1/-1}.check-row{display:flex;gap:18px;flex-wrap:wrap;padding:8px 0}.check-row label{display:flex;align-items:center;gap:7px;font-size:.85rem}
.cover-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.cover-choice{border:2px solid transparent;background:#fff;padding:5px;border-radius:9px}.cover-choice.is-active{border-color:#111}.cover-choice img{aspect-ratio:1/1;width:100%;object-fit:cover;border-radius:5px}.cover-choice span{font-size:.7rem;display:block;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:1250px){
  .workspace{grid-template-columns:190px minmax(0,1fr)}.preview-pane{display:none}
}
@media(max-width:850px){
  .topbar{position:static;align-items:flex-start;flex-direction:column}.workspace{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.section-nav{display:flex;overflow:auto}.section-nav button{white-space:nowrap}.sidebar-note{display:none}.editor{padding:18px}.stats{grid-template-columns:1fr 1fr}.series-card{grid-template-columns:1fr}.series-card__cover{max-width:180px}.series-name-row,.subseries-row,.inline-add,.collage-layout,.text-editor-layout,.form-grid{grid-template-columns:1fr}.panel--sticky{position:static}.preview-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  .stats{grid-template-columns:1fr}.topbar__actions{align-items:stretch}.upload-workspace__settings{grid-template-columns:1fr}.upload-workspace__actions{grid-column:auto}.photo-dropzone{padding:24px 16px}.upload-queue{grid-template-columns:1fr}.topbar__actions>*{width:100%}.series-card__head,.section-heading{align-items:stretch;flex-direction:column}.art-manager{grid-template-columns:1fr 1fr}.toolbar input{min-width:0;width:100%}
}

/* Admin V3 freehand collage editor */
.collage-preview[data-layout="freeform"]{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/10;
  min-height:360px;
  padding:0;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  touch-action:none;
}
.collage-preview[data-layout="freeform"] .collage-tile-preview{
  position:absolute;
  display:block;
  min-width:7%;
  min-height:9%;
  overflow:visible;
  border:1px solid rgba(0,0,0,.22);
  border-radius:0;
  box-shadow:0 4px 14px rgba(0,0,0,.08);
  cursor:grab;
  touch-action:none;
}
.collage-preview[data-layout="freeform"] .collage-tile-preview:active{cursor:grabbing}
.collage-preview[data-layout="freeform"] .collage-tile-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  user-select:none;
}
.collage-resize-handle{
  position:absolute;
  right:-7px;
  bottom:-7px;
  width:16px;
  height:16px;
  border:2px solid #fff;
  background:#1e1e1e;
  border-radius:50%;
  cursor:nwse-resize;
  touch-action:none;
}
.collage-tile-number{
  position:absolute;
  top:6px;
  left:6px;
  min-width:22px;
  height:22px;
  padding:0 6px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(0,0,0,.72);
  color:#fff;
  font-size:.68rem;
  pointer-events:none;
}
.collage-preview[data-layout="freeform"] + .selected-list .selected-item{
  grid-template-columns:38px 1fr auto;
}
.freeform-selected-actions{display:flex;gap:5px}
.freeform-selected-actions button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 7px;font-size:.72rem}

/* Keep Admin and private-site freehand geometry on the exact same 16:10 coordinate surface. */
.collage-preview[data-layout="freeform"]{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:16/10!important;
  box-sizing:border-box!important;
}
.collage-preview[data-layout="freeform"] .collage-tile-preview{box-sizing:border-box!important}

/* Series cards open their visual Series workspace when the card background is clicked. */
.series-card[data-open-series-card]{
  cursor:pointer;
}
.series-card[data-open-series-card]:hover{
  box-shadow:0 0 0 1px rgba(0,0,0,.14);
}
.series-card[data-open-series-card] input,
.series-card[data-open-series-card] select,
.series-card[data-open-series-card] button,
.series-card[data-open-series-card] label{
  cursor:auto;
}


/* Admin V3 — larger controls for easier editing */
.button,.icon-button{
  min-height:42px;
  padding:10px 14px;
  font-size:1rem;
}
.section-nav button{
  min-height:44px;
  padding:12px 13px;
  font-size:1rem;
}
.field,
.field span,
.panel p,
.panel label,
.art-card__body p,
.upload-card,
.save-status{
  font-size:.95rem;
}
input,select,textarea{
  font-size:1rem;
}


/* Admin V3 publish action */
.button--publish{
  min-height:44px;
  padding:11px 16px;
  border-color:#2f6f45;
  background:#2f6f45;
  color:#fff;
  font-weight:750;
}
.button--publish:hover{
  border-color:#255a38;
  background:#255a38;
}
.button--publish:disabled{
  cursor:wait;
  opacity:.72;
}


/* V3.54 — dedicated Exhibitions manager */
.exhibition-admin-item{margin-bottom:14px;padding:18px}
.exhibition-admin-item .panel__heading{align-items:center;gap:16px;flex-wrap:wrap}
.exhibition-admin-item h3{margin:.4rem 0;font-size:1.1rem}
.exhibition-admin-item p{overflow-wrap:anywhere;white-space:pre-wrap}
.exhibition-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
#exhibition-manager .panel__heading>div:first-child{flex:1 1 280px;min-width:0}
@media(max-width:640px){
  .exhibition-admin-actions{width:100%}
  .exhibition-admin-actions button{flex:1 1 100px}
}
