:root{--paper:#f8f6f2;--canvas:#fdfcf9;--ivory:#f0ede7;--line:#e3ddd3;--ink:#2d2925;--muted:#837b72;--bronze:#947957;--bronze-soft:#eae2d6;--white:#fff;--danger:#ae5346;--shadow:0 20px 70px rgba(50,43,33,.07);--serif:Georgia,'Times New Roman',serif;--sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}#app{min-height:100vh}.boot{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.logotype{font:28px var(--serif);letter-spacing:.24em}.boot small{color:var(--muted)}
/* Authentication */
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:#ddd1be;position:relative;overflow:hidden;display:flex;align-items:end;padding:7vw}.login-art:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 15%,#f8f4eb 0,transparent 65%),linear-gradient(135deg,#cab69b,#eae2d8 50%,#b5a18c);opacity:.95}.login-line{position:absolute;border:1px solid rgba(255,255,255,.4);inset:35px}.login-art blockquote{position:relative;z-index:1;font:italic clamp(27px,4vw,56px)/1.17 var(--serif);max-width:560px;letter-spacing:-.035em;margin:0;color:#382d26}.login-panel{padding:40px;display:grid;place-items:center}.login-box{width:min(395px,100%)}.overline{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--bronze);font-weight:650}.login-box .brand{font:35px var(--serif);letter-spacing:.16em;margin:0 0 58px}.login-box h1{font:41px/1.12 var(--serif);font-weight:normal;margin:0 0 12px}.login-box p{color:var(--muted);line-height:1.7;margin:0 0 36px}.login-box label{display:block;font-size:12px;margin-bottom:10px}.login-box input{width:100%;padding:16px;border:1px solid var(--line);background:var(--white);border-radius:3px}.login-box .primary{width:100%;margin-top:17px;padding:16px}.login-foot{margin-top:52px;font-size:11px;color:var(--muted)}
/* Shell */
.shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr) 315px;grid-template-rows:65px calc(100vh - 65px)}.topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:0 24px;z-index:6;gap:18px}.brand{font:24px/1 var(--serif);letter-spacing:.2em}.brand small{display:block;letter-spacing:.19em;font:9px var(--sans);color:var(--muted);margin-top:6px}.top-left,.top-actions,.action-group{display:flex;align-items:center;gap:14px}.top-left .sep{height:26px;width:1px;background:var(--line)}.project-dropdown{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;background:transparent;color:var(--ink);font-size:13px;padding:7px;cursor:pointer}.save-badge{font-size:11px;color:var(--muted);display:inline-flex;gap:7px;align-items:center;white-space:nowrap}.status-dot{width:6px;height:6px;border-radius:50%;background:#7d9b81}.status-dot.dirty{background:#c99a59}.status-dot.error{background:var(--danger)}.btn{appearance:none;border:1px solid var(--line);padding:9px 13px;border-radius:3px;background:var(--white);color:var(--ink);white-space:nowrap;font-size:12px;font-weight:550;transition:background .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{background:var(--ivory);border-color:#c5b6a2}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-primary:hover{background:#554b40;color:#fff;border-color:#554b40}.btn-ghost{border-color:transparent;background:transparent}.btn-small{padding:6px 9px;font-size:11px}.btn-icon{width:31px;height:31px;padding:0;font-size:16px}.btn-quiet{color:var(--muted)}.btn-danger{color:var(--danger)}.ico{font-size:15px;line-height:1}
.sidebar{border-right:1px solid var(--line);background:#fdfcf9;display:flex;flex-direction:column;min-height:0;overflow:hidden}.side-head{padding:26px 18px 18px;border-bottom:1px solid var(--line)}.side-head .overline{display:block;margin-bottom:8px}.side-head strong{font:24px var(--serif);font-weight:normal}.side-tools{display:flex;justify-content:space-between;align-items:center;padding:17px 17px 8px}.side-tools span{font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.chapters{overflow-y:auto;flex:1;padding:4px 10px 24px}.chapter-head{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:8px;text-align:left;padding:12px 9px;min-width:0}.chapter-head:hover{background:#f6f3ec}.chev{font-size:10px;color:var(--muted);width:13px;flex-shrink:0}.chapter-title{font-size:11px;text-transform:uppercase;letter-spacing:.115em;font-weight:650;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-add{color:var(--muted);font-size:17px;line-height:1}.page-menu{padding:0 3px 12px 21px}.page-tab{display:flex;align-items:center;gap:6px;border-radius:2px;padding:0 4px}.page-tab.active{background:var(--bronze-soft)}.page-tab:hover:not(.active){background:#f4f1eb}.page-label{padding:10px 6px;cursor:pointer;border:0;background:transparent;flex:1;font-size:12px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#685f56}.page-tab.active .page-label{color:var(--ink);font-weight:650}.page-more{border:0;background:transparent;color:var(--muted);font-size:17px;padding:4px;visibility:hidden}.page-tab:hover .page-more,.page-tab.active .page-more{visibility:visible}.side-bottom{border-top:1px solid var(--line);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}
.workspace{min-width:0;overflow:auto;position:relative;padding:31px max(26px,4vw) 75px}.workspace-top{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1090px;margin:0 auto 22px}.breadcrumbs{font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center}.workspace-heading{max-width:1090px;margin:0 auto 24px;display:flex;align-items:end;justify-content:space-between;gap:20px}.workspace-heading h1{font:42px var(--serif);font-weight:400;margin:5px 0 0;letter-spacing:-.04em}.workspace-heading p{font-size:12px;color:var(--muted);margin:7px 0}.page-badge{font-size:10px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.canvas{max-width:1090px;margin:auto;background:var(--canvas);min-height:650px;border:1px solid var(--line);box-shadow:var(--shadow);padding:clamp(24px,4vw,60px)}.canvas-header{text-align:center;border-bottom:1px solid #bfb6a7;margin-bottom:25px;padding-bottom:25px}.canvas-header .kicker{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze)}.canvas-header h2{font:normal clamp(34px,4vw,58px)/1.05 var(--serif);letter-spacing:.02em;text-transform:uppercase;margin:14px 0 9px}.canvas-header .subtitle{font:italic 18px var(--serif);color:var(--muted)}.canvas-empty{text-align:center;padding:65px 10px 75px}.canvas-empty h3{font:30px var(--serif);font-weight:normal}.canvas-empty p{font-size:13px;color:var(--muted);max-width:440px;margin:15px auto 28px;line-height:1.7}.template-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;max-width:535px;margin:20px auto}.template-choice{padding:16px 12px;background:#f8f5ef;border:1px solid var(--line);font:13px var(--sans);color:var(--ink)}.template-choice:hover{border-color:var(--bronze);background:#f1ebdf}.module-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 0 22px;max-width:1090px;margin:auto}.add-block{border:1px dashed #bdb0a1;color:#675744;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:19px;background:transparent;font-size:12px}.add-block:hover{background:#f8f5ef}.module{position:relative;padding:15px 0 21px;margin:0 0 19px;border:1px solid transparent;cursor:pointer}.module:hover{border-color:#d9ccb9}.module.selected{border-color:#aa9273}.module-top-tools{display:none;position:absolute;z-index:2;top:-16px;right:9px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 14px #0000000a;border-radius:3px;align-items:center;gap:2px;padding:3px}.module:hover .module-top-tools,.module.selected .module-top-tools{display:flex}.module-top-tools button{border:0;background:transparent;color:#726251;padding:6px 8px}.module-top-tools button:hover{background:var(--ivory)}.drag-handle{cursor:grab}.module.dragging{opacity:.35}.module h3{font:normal 25px var(--serif);text-transform:uppercase;letter-spacing:.06em;margin:0 0 14px}.module .section-rule{border-bottom:1px solid #c8bfb2;margin:0 0 15px}.module .section-note,.editorial-copy{font:15px/1.72 var(--serif);color:#5b534b;white-space:pre-line}.editorial-copy{font-size:17px}.image-blank{background:#eeeae3;color:#978f83;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:145px;border:1px solid #e4ded4;cursor:pointer;text-align:center;padding:12px}.image-blank:hover{background:#e8e1d5}.image-blank .add-plus{font-size:27px;font-weight:200}.image-blank small{font-size:11px}.photo{position:relative;min-width:0;overflow:hidden;background:#ebe6df}.photo img{width:100%;height:100%;object-fit:cover}.photo-caption{font:12px var(--serif);color:var(--muted);padding:8px 0 0}.hero-photo{height:360px}.photo-overlay{position:absolute;right:10px;bottom:10px;background:#fff;color:var(--ink);border:0;padding:9px 11px;opacity:0}.photo:hover .photo-overlay{opacity:1}.gallery{display:grid;gap:10px}.gallery.editorial{grid-template-columns:repeat(6,minmax(0,1fr))}.gallery.editorial .gallery-cell:nth-child(5n+1){grid-column:span 4;height:330px}.gallery.editorial .gallery-cell:nth-child(5n+2),.gallery.editorial .gallery-cell:nth-child(5n+3){grid-column:span 2;height:160px}.gallery.editorial .gallery-cell:nth-child(5n+4),.gallery.editorial .gallery-cell:nth-child(5n+5){grid-column:span 3;height:205px}.gallery.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery.grid .gallery-cell{height:220px}.gallery.strip{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery.strip .gallery-cell{height:195px}.gallery.feature{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery.feature .gallery-cell:first-child{grid-column:span 4;height:390px}.gallery.feature .gallery-cell{height:150px}.gallery-cell{min-width:0}.gallery-cell .image-blank{height:100%;min-height:0}.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:10px}.swatch .tone{height:115px;background:#e8dfd1}.swatch .tone img{width:100%;height:100%;object-fit:cover}.swatch .swatch-name{font:13px var(--serif);margin:9px 0 3px}.swatch p{font-size:10px;color:var(--muted);margin:0;line-height:1.5}.items-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.items-grid.rowlayout{grid-template-columns:1fr}.item-card{border-top:1px solid var(--line);padding-top:9px;min-width:0}.item-card .photo,.item-card .image-blank{height:190px}.item-card h4{font:16px var(--serif);margin:12px 0 5px}.item-card p{font-size:11px;color:var(--muted);margin:2px 0;line-height:1.5}.item-card .item-price{color:var(--ink);font-weight:650}.item-card .status{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--bronze);margin-top:10px}.items-grid.rowlayout .item-card{display:grid;grid-template-columns:170px 1fr;gap:18px}.items-grid.rowlayout .item-card .photo,.items-grid.rowlayout .item-card .image-blank{height:145px}.compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.compare-item{min-width:0}.compare-item .photo,.compare-item .image-blank{height:260px}.compare-item h4{font:19px var(--serif);margin:12px 0 7px}.compare-item p{color:var(--muted);font:14px/1.6 var(--serif);white-space:pre-wrap}.planning{width:100%;border-collapse:collapse;font-size:11px}.planning th{font-size:10px;text-align:left;text-transform:uppercase;letter-spacing:.09em;font-weight:550;padding:12px 10px;background:#efebe3}.planning td{vertical-align:top;border-bottom:1px solid var(--line);padding:15px 10px;line-height:1.5}.planning th:last-child,.planning td:last-child{text-align:right}.planning .element-name{font-family:var(--serif);font-size:15px}.no-data{font:italic 15px var(--serif);color:#b5ab9e;text-align:center;padding:25px;background:#f9f7f2}.preview-page{background:#f8f5ee;min-height:100vh;padding:0 3vw 80px}.preview-head{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:23px 0;border-bottom:1px solid #d9d1c5;gap:16px}.preview-brand{font:22px var(--serif);letter-spacing:.19em}.preview-head small{color:var(--muted);letter-spacing:.12em;font-size:9px}.preview-content{width:100%;max-width:1120px;margin:25px auto 0;background:var(--canvas);padding:clamp(20px,5vw,73px);box-shadow:var(--shadow)}.preview-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:34px;max-width:1400px;margin:0 auto}.preview-nav{padding-top:35px;position:sticky;top:0;align-self:start;max-height:85vh;overflow:auto}.preview-nav h4{font-size:11px;color:var(--bronze);text-transform:uppercase;letter-spacing:.13em;margin:18px 0 9px}.preview-nav button{display:block;background:transparent;border:0;text-align:left;color:var(--muted);font-size:12px;padding:7px 6px;width:100%}.preview-nav button.active{color:var(--ink);font-weight:650;border-left:2px solid var(--bronze);padding-left:9px}.preview-toggle{font-size:11px;color:var(--muted)}
/* Inspector */
.inspector{background:#fdfcf9;border-left:1px solid var(--line);overflow-y:auto;min-width:0}.inspector-head{display:flex;justify-content:space-between;align-items:center;padding:24px 21px 17px;border-bottom:1px solid var(--line)}.inspector-head h3{font:20px var(--serif);margin:0}.inspector-body{padding:22px 20px 45px}.help-note{font-size:11px;line-height:1.65;color:var(--muted);margin:0 0 21px}.field{display:block;margin-bottom:16px}.field>span,.field-label{display:block;margin-bottom:7px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#74685c;font-weight:650}.field input,.field textarea,.field select{width:100%;padding:10px 11px;background:#fff;border:1px solid #dcd5cb;border-radius:2px;color:var(--ink);outline:none;font-size:12px}.field textarea{line-height:1.6;resize:vertical;min-height:85px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--bronze)}.inspector-section{padding-top:18px;border-top:1px solid var(--line);margin:22px 0}.inspector-section h4{font:17px var(--serif);margin:0 0 14px}.inspect-row{border:1px solid var(--line);padding:13px;margin-bottom:10px;background:#faf8f4}.inspect-row-title{font-size:11px;font-weight:650;margin-bottom:10px;display:flex;justify-content:space-between;gap:4px;align-items:center}.inspect-row-title button{background:none;border:0;color:var(--danger)}.inspector-add{width:100%;border:1px dashed #bcb3a6;padding:11px;background:transparent;color:#736350;font-size:11px}.inspector-add:hover{background:#f3eee5}.upload-btn{border:1px solid #ccbca7;background:#f8f5ef;color:#655340;padding:9px 10px;font-size:11px;width:100%;margin:7px 0 13px}.upload-btn:hover{background:#eee6d9}.img-preview-thumb{width:100%;height:100px;object-fit:cover;margin:8px 0}.colors-row{display:flex;gap:9px;align-items:center}.colors-row input[type=color]{width:42px;height:39px;padding:2px;flex-shrink:0}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.module-choice{background:#f9f7f2;border:1px solid var(--line);text-align:left;padding:15px 11px;font-size:11px;line-height:1.35;min-height:63px}.module-choice span{font-size:20px;display:block;color:#806e59;margin-bottom:6px}.module-choice:hover{background:#eee7db;border-color:#b8a58d}.modal-back{position:fixed;inset:0;background:rgba(40,34,29,.35);z-index:20;display:flex;align-items:center;justify-content:center;padding:15px}.modal{background:#fff;width:min(590px,100%);max-height:90vh;overflow:auto;box-shadow:0 35px 120px #0002;padding:28px}.modal h2{font:27px var(--serif);margin:0 0 9px}.modal p{font-size:12px;color:var(--muted);line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.modal .field{margin-top:22px}.media-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-height:400px;overflow:auto}.media-pick{padding:0;border:2px solid transparent;aspect-ratio:1;background:#ede7e0}.media-pick:hover{border-color:var(--bronze)}.media-pick img{height:100%;width:100%;object-fit:cover}.empty-icon{font:58px var(--serif);color:#cbbdad}#toast{position:fixed;z-index:55;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 18px;background:#2f2b27;color:#fff;font-size:12px;box-shadow:0 9px 28px #0003;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90%;text-align:center}#toast.show{opacity:1}.mobile-nav,.mobile-inspector{display:none}
@media(max-width:1190px){.shell{grid-template-columns:230px minmax(0,1fr) 285px}.topbar{padding:0 14px}.top-actions{gap:6px}.canvas{padding:25px}.workspace{padding:24px}.items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-art{padding:5vw}}
@media(max-width:920px){.shell{grid-template-columns:225px minmax(0,1fr);grid-template-rows:65px calc(100vh - 65px)}.inspector{position:fixed;z-index:12;right:0;top:65px;bottom:0;width:min(345px,100%);box-shadow:-20px 0 45px #0001;transform:translateX(110%);transition:transform .2s}.inspector.visible{transform:translateX(0)}.mobile-inspector{display:inline-flex}.workspace{padding:23px}.preview-layout{grid-template-columns:185px minmax(0,1fr);gap:18px}.preview-content{padding:30px}}
@media(max-width:680px){.login-page{grid-template-columns:1fr}.login-art{display:none}.login-panel{padding:32px 25px}.shell{display:block;min-height:100vh}.topbar{height:62px;position:sticky;top:0}.top-left{gap:8px}.brand{font-size:19px}.brand small,.top-left .sep,.save-badge,.top-actions .desktop-only,.project-dropdown{display:none}.sidebar{position:fixed;z-index:15;top:62px;bottom:0;left:0;width:min(290px,87vw);transform:translateX(-102%);transition:transform .2s;box-shadow:10px 0 35px #0001}.sidebar.visible{transform:translateX(0)}.mobile-nav{display:inline-flex}.inspector{top:62px}.workspace{height:calc(100vh - 62px);padding:17px 10px 70px}.workspace-heading{padding:0 7px}.workspace-heading h1{font-size:32px}.workspace-heading .btn{display:none}.canvas{padding:20px 12px;min-height:420px}.canvas-header h2{font-size:30px}.canvas-header{padding-bottom:16px;margin-bottom:12px}.module h3{font-size:21px}.gallery.editorial .gallery-cell:nth-child(5n+1){height:220px}.gallery.editorial .gallery-cell:nth-child(5n+2),.gallery.editorial .gallery-cell:nth-child(5n+3){height:100px}.gallery.editorial .gallery-cell:nth-child(5n+4),.gallery.editorial .gallery-cell:nth-child(5n+5){height:130px}.gallery.grid{grid-template-columns:repeat(2,1fr)}.gallery.grid .gallery-cell{height:145px}.gallery.strip{grid-template-columns:repeat(2,1fr)}.gallery.strip .gallery-cell{height:145px}.items-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.item-card .photo,.item-card .image-blank{height:135px}.hero-photo{height:220px}.planning{font-size:10px}.planning th,.planning td{padding:8px 5px}.compare-item .photo,.compare-item .image-blank{height:180px}.preview-layout{display:block}.preview-nav{position:relative;max-height:none;display:flex;gap:15px;overflow-x:auto;white-space:nowrap;padding:8px 0}.preview-nav h4{display:none}.preview-nav button{width:auto}.preview-content{padding:25px 13px}.preview-head{padding:13px 0}.preview-brand{font-size:18px}.preview-head small{display:none}.template-buttons{grid-template-columns:1fr}.media-gallery{grid-template-columns:repeat(3,1fr)}}

.project-dropdown-mobile{display:none;width:100%;max-width:100%;font-size:12px;padding:9px;margin-top:10px;background:#fff;border:1px solid var(--line);color:var(--ink)}
@media(max-width:680px){.project-dropdown-mobile{display:block}.side-head{padding-bottom:18px}}


/* v0.1.1 — Gallery containment and responsive editorial compositions.
   The photo's intrinsic dimensions must never determine a grid row height. */
.gallery{min-width:0;max-width:100%}
.gallery-cell{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.gallery-cell .photo,.gallery-cell .image-blank{flex:1 1 0;min-height:0;height:0;width:100%;overflow:hidden}
.gallery-cell .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.gallery-cell .photo-caption{flex:0 0 auto;overflow-wrap:anywhere}
.gallery.editorial{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:160px;grid-auto-flow:row dense}
.gallery.editorial .gallery-cell:nth-child(5n+1){grid-column:span 4;grid-row:span 2;height:auto}
.gallery.editorial .gallery-cell:nth-child(5n+2),.gallery.editorial .gallery-cell:nth-child(5n+3){grid-column:span 2;grid-row:span 1;height:auto}
.gallery.editorial .gallery-cell:nth-child(5n+4),.gallery.editorial .gallery-cell:nth-child(5n+5){grid-column:span 3;grid-row:span 1;height:auto}
.gallery.editorial .gallery-cell:only-child{grid-column:1/-1;grid-row:span 2}
.gallery.editorial .gallery-cell:nth-child(2):last-child{grid-row:span 2}
@media(max-width:680px){
 .gallery.editorial{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:135px}
 .gallery.editorial .gallery-cell:nth-child(n){grid-column:span 1;grid-row:span 1;height:auto}
 .gallery.editorial .gallery-cell:first-child{grid-column:span 2;grid-row:span 2}
 .gallery.editorial .gallery-cell:nth-child(2):last-child{grid-column:span 2;grid-row:span 1}
}

/* ATELIER v0.2 — per-image framing and personalized responsive grid. */
.gallery{gap:var(--gallery-gap,10px)}
.gallery.custom{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:80px;grid-auto-flow:row dense;align-items:stretch}
.gallery.custom .gallery-cell{height:auto;min-height:0;min-width:0;grid-column:span 6;grid-row:span 3;overflow:hidden}
.gallery-cell .photo img{object-fit:cover}
.control-range{margin-bottom:13px}
.control-range>span{display:flex;justify-content:space-between;align-items:center}
.control-range output{font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink);letter-spacing:0;font-weight:500}
.control-range input[type=range]{width:100%;padding:2px;accent-color:#927656;border:0;background:transparent;cursor:ew-resize}
.image-layout-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.image-layout-controls .field{min-width:0}
@media(max-width:680px){
 .gallery.custom{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;grid-auto-flow:row}
 .gallery.custom .gallery-cell{grid-column:span 2 !important;grid-row:auto !important;height:250px !important}
 .image-layout-controls{grid-template-columns:1fr}
}

/* ATELIER v0.3 — direct photo editing and history controls */
.history-actions{display:flex;gap:2px;border:1px solid var(--line);border-radius:4px;background:#faf8f4;padding:2px}
.history-actions .btn{min-width:50px;padding:5px 7px}
.gallery-cell{position:relative}
.gallery-cell.photo-selected{outline:2px solid var(--bronze);outline-offset:-2px}
.gallery-cell.photo-drop-target{outline:3px solid #ad7d44;outline-offset:-3px;background:#f3e9d8}
.photo-move-handle,.photo-resize-handle{position:absolute;z-index:4;width:29px;height:29px;border:1px solid rgba(120,98,77,.25);background:rgba(255,255,255,.94);color:#615241;display:flex;align-items:center;justify-content:center;opacity:0;touch-action:none;user-select:none;box-shadow:0 3px 9px #0001}
.photo-move-handle{top:7px;left:7px;cursor:grab;font-size:19px}
.photo-resize-handle{bottom:5px;right:6px;cursor:nwse-resize;font-size:18px}
.gallery-cell:hover .photo-move-handle,.gallery-cell:hover .photo-resize-handle,.gallery-cell.photo-selected .photo-move-handle,.gallery-cell.photo-selected .photo-resize-handle{opacity:1}
.gallery-cell .photo{touch-action:none;cursor:grab}
.gallery-cell .photo img{user-select:none;-webkit-user-drag:none}
.photo-interaction-active,.photo-interaction-active *{user-select:none!important}
.photo-interaction-active .gallery-cell .photo{cursor:grabbing}
.inspect-row.active-photo{box-shadow:inset 2px 0 0 var(--bronze);background:#f8f3eb}
@media(max-width:1200px){.history-actions .btn span{display:none}.history-actions .btn{min-width:32px}}
@media(max-width:680px){.photo-move-handle,.photo-resize-handle{opacity:1}}

/* ATELIER v0.4 — consistently adjustable editorial image frames. */
.hero-frame{position:relative;max-width:100%;margin-inline:auto;min-width:0}
.hero-frame>.photo,.hero-frame>.image-blank{width:100%;height:100%;overflow:hidden;min-height:0}
.hero-frame>.photo img{width:100%;height:100%;display:block;object-fit:cover;user-select:none;-webkit-user-drag:none}
.hero-frame>.photo{cursor:grab;touch-action:none}
.hero-frame .photo-resize-handle{opacity:0}
.hero-frame:hover .photo-resize-handle,.hero-frame.photo-selected .photo-resize-handle{opacity:1}
.swatches{grid-template-columns:var(--swatch-cols,repeat(auto-fit,minmax(105px,1fr)));gap:var(--swatch-gap,10px)}
.swatches>.swatch{min-width:0;position:relative;grid-column:span 1}
.swatches>.swatch.photo-selected>.tone{outline:2px solid var(--bronze);outline-offset:-2px}
.swatches .tone{position:relative;overflow:hidden;min-width:0}
.swatches .tone-with-image{touch-action:none;cursor:grab}
.swatches .tone img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.swatches .tone .photo-overlay{z-index:3}
.swatch:hover .photo-move-handle,.swatch:hover .photo-resize-handle,.swatch.photo-selected .photo-move-handle,.swatch.photo-selected .photo-resize-handle{opacity:1}
.swatch.photo-drop-target .tone{outline:3px solid #ad7d44;outline-offset:-3px}
@media(max-width:680px){
 .hero-frame .photo-resize-handle,.swatch .photo-move-handle,.swatch .photo-resize-handle{opacity:1}
 .swatches{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
 .swatch{grid-column:span 1}
}

/* ATELIER v0.4.3: client presentation on phones; editor and desktop layout unchanged */
.mobile-preview-switcher,.mobile-preview-pager{display:none}
@media(max-width:680px){
 .preview-page{width:100%;max-width:100%;min-height:100dvh;overflow-x:clip;padding:0 14px 38px}
 .preview-page,.preview-page *{min-width:0}
 .preview-head{padding:19px 0 16px;gap:10px;align-items:center}
 .preview-brand{font-size:clamp(17px,5vw,22px);letter-spacing:.09em;line-height:1.12;overflow-wrap:anywhere}
 .preview-head small{display:block!important;font-size:9px;letter-spacing:.105em;margin-top:7px!important}
 .preview-head .btn{padding:9px 11px;white-space:nowrap;font-size:11px;flex-shrink:0}
 .preview-toggle{font-size:10px}
 .mobile-preview-switcher{display:block;max-width:1120px;margin:14px auto 19px}
 .mobile-preview-switcher label{display:block;font-size:9px;letter-spacing:.18em;color:var(--bronze);font-weight:700;margin:0 0 8px}
 .mobile-preview-select-wrap{position:relative}
 .mobile-preview-select-wrap select{display:block;appearance:none;-webkit-appearance:none;border:1px solid #d7ccbc;background:#fff;width:100%;height:48px;padding:0 42px 0 14px;border-radius:3px;font-size:14px;color:var(--ink);font-family:var(--sans);text-overflow:ellipsis}
 .mobile-preview-select-wrap>span{pointer-events:none;position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:21px;line-height:1;color:var(--bronze)}
 .preview-layout{display:block;min-width:0;width:100%;max-width:100%;margin:0}
 .preview-nav{display:none!important}
 .preview-content{width:100%;max-width:100%;min-width:0;margin:0;padding:24px 17px 36px;background:var(--canvas);box-shadow:0 10px 28px rgba(50,43,33,.06)}
 .preview-content .canvas-header{padding:0 0 22px;margin-bottom:23px}
 .preview-content .canvas-header h2{font-size:clamp(26px,7.8vw,38px);letter-spacing:.01em;line-height:1.07;overflow-wrap:anywhere;margin:13px 0 6px}
 .preview-content .canvas-header .kicker{font-size:9px}
 .preview-content .canvas-header .subtitle{font-size:15px}
 .preview-content .module{padding:7px 0 14px;margin:0 0 25px;max-width:100%;border-color:transparent!important}
 .preview-content .module h3{font-size:clamp(19px,5.4vw,25px);line-height:1.17;letter-spacing:.035em;overflow-wrap:anywhere;margin:0 0 12px}
 .preview-content .editorial-copy{font-size:16px;line-height:1.58;overflow-wrap:anywhere}
 .preview-content .hero-frame{max-width:100%!important;width:100%!important;height:clamp(225px,84vw,410px)!important}
 .preview-content .hero-frame .photo,.preview-content .hero-frame .image-blank{height:100%}
 .preview-content .gallery{width:100%;max-width:100%;gap:var(--gallery-gap,10px)}
 .preview-content .gallery.grid,.preview-content .gallery.strip,.preview-content .gallery.editorial,.preview-content .gallery.feature{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:160px;grid-auto-flow:row dense}
 .preview-content .gallery.grid .gallery-cell,.preview-content .gallery.strip .gallery-cell,.preview-content .gallery.editorial .gallery-cell,.preview-content .gallery.feature .gallery-cell{height:auto!important;grid-row:span 1;grid-column:span 1;min-height:0}
 .preview-content .gallery.grid .gallery-cell:first-child:nth-last-child(odd),.preview-content .gallery.strip .gallery-cell:first-child:nth-last-child(odd),.preview-content .gallery.editorial .gallery-cell:first-child,.preview-content .gallery.feature .gallery-cell:first-child{grid-column:span 2;grid-row:span 2}
 .preview-content .gallery .gallery-cell .photo,.preview-content .gallery .gallery-cell .image-blank{height:0;min-height:0;flex:1 1 0;width:100%}
 .preview-content .gallery .gallery-cell .photo-caption{font-size:12px;line-height:1.35;padding:7px 0 0;overflow-wrap:anywhere}
 .preview-content .gallery.custom{grid-template-columns:1fr;grid-auto-rows:auto;gap:var(--gallery-gap,10px)}
 .preview-content .gallery.custom .gallery-cell{grid-column:1/-1!important;grid-row:auto!important;height:clamp(215px,69vw,340px)!important}
 .preview-content .swatches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--swatch-gap,10px)}
 .preview-content .swatches>.swatch{grid-column:span 1!important;width:auto;min-width:0}
 .preview-content .swatches .tone{height:clamp(110px,38vw,190px)!important}
 .preview-content .swatch-name{font-size:13px;line-height:1.35;overflow-wrap:anywhere}
 .preview-content .items-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .preview-content .item-card h4{font-size:15px}
 .preview-content .items-grid.rowlayout{grid-template-columns:1fr}
 .preview-content .items-grid.rowlayout .item-card{grid-template-columns:110px minmax(0,1fr);gap:12px}
 .preview-content .compare-grid{grid-template-columns:1fr;gap:20px}
 .preview-content .planning{font-size:10px}
 .preview-content .planning td,.preview-content .planning th{padding:10px 6px}
 .mobile-preview-pager{display:flex;justify-content:space-between;gap:10px;margin-top:32px;border-top:1px solid var(--line);padding-top:14px}
 .mobile-preview-pager button{display:flex;align-items:center;gap:9px;justify-content:space-between;max-width:50%;min-height:56px;border:0;background:none;color:var(--ink);text-align:left;padding:6px 0;font:13px var(--serif);overflow-wrap:anywhere}
 .mobile-preview-pager button:last-child{text-align:right;margin-left:auto}
 .mobile-preview-pager button small{display:block;font:9px var(--sans);letter-spacing:.11em;color:var(--bronze);margin-bottom:6px}
 .mobile-pager-spacer{flex:1}
}
@media(max-width:360px){
 .preview-page{padding:0 9px 30px}
 .preview-content{padding:19px 11px 30px}
 .preview-content .gallery.grid,.preview-content .gallery.strip,.preview-content .gallery.editorial,.preview-content .gallery.feature{grid-auto-rows:135px}
 .preview-head .btn{padding:7px 8px;font-size:10px}
}

/* ATELIER v0.4.4 — native swipe in client presentation, without changing editor gestures. */
.preview-page .preview-content .gallery-cell,
.preview-page .preview-content .gallery-cell .photo,
.preview-page .preview-content .gallery-cell .photo img,
.preview-page .preview-content .hero-frame,
.preview-page .preview-content .hero-frame > .photo,
.preview-page .preview-content .hero-frame .photo img,
.preview-page .preview-content .swatch .tone,
.preview-page .preview-content .swatch .tone img,
.preview-page .preview-content .item-card .photo,
.preview-page .preview-content .item-card .photo img,
.preview-page .preview-content .compare-item .photo,
.preview-page .preview-content .compare-item .photo img {touch-action:auto!important}
.preview-page .module{cursor:default}
@media(prefers-reduced-motion:no-preference){
 .preview-page .preview-scroll-reveal{opacity:0;transform:translate3d(0,20px,0);transition:opacity .64s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}
 .preview-page .preview-scroll-reveal.is-visible{opacity:1;transform:none;will-change:auto}
}
@media(prefers-reduced-motion:reduce){
 .preview-page .preview-scroll-reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* ATELIER v0.4.5 — own editorial navigation menu, never a browser-native select */
.mobile-preview-menu[hidden]{display:none!important}
.mobile-preview-menu{display:none}
@media(max-width:680px){
 .mobile-preview-switcher .mobile-preview-label{display:block;font-size:9px;letter-spacing:.18em;color:var(--bronze);font-weight:700;margin-bottom:8px}
 .mobile-preview-trigger{width:100%;min-height:49px;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border:1px solid #d7ccbc;border-radius:3px;background:#fff;padding:10px 15px;color:var(--ink);font:14px var(--sans)}
 .mobile-preview-trigger>span:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .mobile-preview-trigger .mobile-preview-arrow{color:var(--bronze);font-size:22px;flex:0 0 auto;line-height:1}
 .mobile-preview-trigger:focus-visible,.mobile-preview-menu button:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
 .mobile-preview-menu{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center}
 .mobile-preview-menu-backdrop{position:absolute;inset:0;border:0;background:rgba(37,31,26,.43);width:100%;height:100%;padding:0}
 .mobile-preview-sheet{position:relative;width:100%;max-width:540px;max-height:min(82dvh,750px);max-height:min(82svh,750px);display:flex;flex-direction:column;overflow:hidden;background:#faf8f4;border-radius:19px 19px 0 0;box-shadow:0 -20px 70px rgba(0,0,0,.17);padding-bottom:env(safe-area-inset-bottom,0px);animation:atelier-menu-up .28s cubic-bezier(.22,1,.36,1)}
 .mobile-preview-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:0 0 auto;padding:22px 22px 17px;border-bottom:1px solid var(--line);background:#faf8f4}
 .mobile-preview-sheet-head small{font:9px var(--sans);letter-spacing:.17em;color:var(--bronze);font-weight:600}
 .mobile-preview-sheet-head h2{font:normal 27px/1.15 var(--serif);margin:6px 0 0;letter-spacing:.01em;color:var(--ink)}
 .mobile-preview-menu-close{width:37px;height:37px;min-width:37px;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:25px;line-height:1;color:var(--ink)}
 .mobile-preview-menu-scroll{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;flex:1 1 auto;padding:8px 19px 27px}
 .mobile-preview-group{border-bottom:1px solid var(--line);padding:18px 0 13px}
 .mobile-preview-group:last-child{border-bottom:0}
 .mobile-preview-group h3{font:700 10px var(--sans);letter-spacing:.17em;color:#987d5e;text-transform:uppercase;margin:0 0 9px;padding:0 10px}
 .mobile-preview-page-link{display:flex;align-items:center;justify-content:space-between;gap:13px;width:100%;min-height:44px;padding:10px 12px;background:transparent;border:0;border-radius:3px;text-align:left;color:var(--ink);font:15px/1.4 var(--serif);overflow-wrap:anywhere}
 .mobile-preview-page-link.active{background:#eee8de;color:#55442f}
 .mobile-preview-current{color:#8b7250;font:17px var(--sans);flex:0 0 auto}
 body.preview-menu-open{overflow:hidden}
 @keyframes atelier-menu-up{from{transform:translateY(25px);opacity:.86}to{transform:none;opacity:1}}
}
@media(prefers-reduced-motion:reduce){.mobile-preview-sheet{animation:none!important}}

/* ATELIER v0.4.6 — media library administration */
.media-library-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:11px 0;color:var(--ink);font-size:12px}
.media-library-heading small{font-size:10px;color:var(--muted);line-height:1.4;text-align:right}
.media-gallery-manage{grid-template-columns:repeat(3,minmax(0,1fr));max-height:min(55vh,480px);gap:10px}
.media-library-item{border:1px solid var(--line);background:#faf8f4;min-width:0;padding:5px}
.media-library-item .media-pick{display:block;width:100%;aspect-ratio:1;border:0;background:#ece8e0;overflow:hidden}
.media-library-item .media-pick img{display:block;width:100%;height:100%;object-fit:cover}
.media-library-item button.media-pick:hover{outline:2px solid var(--bronze);outline-offset:-2px}
.media-library-actions{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:8px 3px 3px}
.media-library-status{font-size:10px;color:#60775f;line-height:1.25}
.media-library-status.in-use{color:#887459}
.media-library-delete{border:1px solid #c8a7a2;border-radius:2px;padding:5px 7px;font:10px var(--sans);color:#a04c46;background:#fff;cursor:pointer}
.media-library-delete:disabled{opacity:.35;cursor:not-allowed;border-color:var(--line);color:var(--muted)}
.media-library-delete:not(:disabled):hover{background:#f8e9e5}
@media(max-width:680px){.media-gallery-manage{grid-template-columns:repeat(2,minmax(0,1fr))}.media-library-heading{align-items:start;flex-direction:column;gap:4px}.media-library-heading small{text-align:left}}

/* ATELIER v0.4.7 — full-sized editorial lightbox, responsive and accessible */
.photo-zoom-button{
 position:absolute;left:11px;top:11px;z-index:8;width:35px;height:35px;
 border:1px solid rgba(35,31,26,.15);border-radius:50%;
 background:rgba(255,255,255,.94);color:#3b352e;cursor:zoom-in;
 display:flex;align-items:center;justify-content:center;
 font:23px/1 var(--sans);box-shadow:0 3px 15px rgba(0,0,0,.13);
 opacity:0;transition:opacity .18s,transform .18s;
}
.photo:hover .photo-zoom-button,.tone:hover .photo-zoom-button,
.photo-zoom-button:focus-visible{opacity:1}
.photo-zoom-button:hover{transform:scale(1.05)}
.preview-page .module img.lightbox-clickable{cursor:zoom-in}
.preview-page .module img.lightbox-clickable:focus-visible{outline:3px solid #aa906c;outline-offset:-3px}
body.atelier-lightbox-open{overflow:hidden}
.atelier-lightbox{
 position:fixed;inset:0;z-index:7000;
 background:rgba(22,21,20,.97);color:#f8f6f1;
 isolation:isolate;display:flex;align-items:stretch;justify-content:center;
 padding:0;overscroll-behavior:contain;
}
.lightbox-backdrop{position:absolute;inset:0;background:transparent;border:0;cursor:zoom-out}
.lightbox-shell{
 position:relative;z-index:1;width:100%;height:100%;max-width:1700px;
 display:grid;grid-template-rows:60px minmax(0,1fr) auto auto;
 padding:0 44px max(11px,env(safe-area-inset-bottom));
 pointer-events:none;
}
.lightbox-shell > *{pointer-events:auto}
.lightbox-head{display:flex;align-items:center;gap:20px;padding:0 2px;border-bottom:1px solid rgba(255,255,255,.16)}
.lightbox-section{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
 font:11px var(--sans);letter-spacing:.17em;text-transform:uppercase;color:#c9bbab}
.lightbox-count{font:12px var(--sans);color:#bcb1a4;font-variant-numeric:tabular-nums}
.lightbox-close{
 display:flex;align-items:center;justify-content:center;
 flex:0 0 auto;width:43px;height:43px;border:1px solid rgba(255,255,255,.24);
 border-radius:50%;background:rgba(255,255,255,.1);color:#fff;
 font:29px/1 var(--sans);cursor:pointer
}
.lightbox-stage{
 position:relative;display:flex;align-items:center;justify-content:center;
 min-width:0;min-height:0;width:100%;overflow:hidden;padding:18px 64px;
 touch-action:pan-y;
}
.lightbox-full-image{
 display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
 box-shadow:0 6px 25px rgba(0,0,0,.18);user-select:none;-webkit-user-drag:none;
 border-radius:2px;touch-action:pan-y;
}
.lightbox-nav{
 position:absolute;top:50%;transform:translateY(-50%);z-index:3;
 width:46px;height:46px;display:flex;align-items:center;justify-content:center;
 border:1px solid rgba(255,255,255,.28);border-radius:50%;
 color:#fff;background:rgba(255,255,255,.09);
 font:25px/1 var(--serif);cursor:pointer;
}
.lightbox-prev{left:0}.lightbox-next{right:0}
.lightbox-nav:hover,.lightbox-close:hover{background:rgba(255,255,255,.2)}
.lightbox-information{
 min-width:0;max-height:min(27vh,220px);overflow-y:auto;
 overscroll-behavior:contain;padding:14px 2px 7px;
 border-top:1px solid rgba(255,255,255,.15);scrollbar-width:thin;
}
.lightbox-information-inner{max-width:820px;margin:auto;text-align:center}
.lightbox-information h2{margin:0 0 9px;font:26px/1.2 var(--serif);color:#fff;overflow-wrap:anywhere}
.lightbox-description{font:15px/1.6 var(--sans);color:#e4ded4;margin:0 auto 8px;white-space:pre-line;overflow-wrap:anywhere}
.lightbox-meta{font:11px/1.55 var(--sans);color:#baaa93;margin:10px auto 0;overflow-wrap:anywhere}
.lightbox-mobile-hint{display:none;font:10px var(--sans);text-align:center;color:#a9a195;padding:7px}
.atelier-lightbox button:focus-visible{outline:2px solid #d5ba95;outline-offset:3px}
@media(hover:none), (pointer:coarse){.photo-zoom-button{opacity:1}}
@media(max-width:680px){
 .lightbox-shell{
  padding:env(safe-area-inset-top,0px) 13px max(15px,env(safe-area-inset-bottom));
  grid-template-rows:53px minmax(0,1fr) auto auto;
 }
 .lightbox-head{gap:12px}
 .lightbox-section{font-size:9px;letter-spacing:.11em}
 .lightbox-close{width:37px;height:37px;font-size:26px}
 .lightbox-stage{padding:13px 0 13px;align-items:center}
 .lightbox-full-image{max-width:100%;max-height:100%;border-radius:0}
 .lightbox-nav{
  top:auto;bottom:6px;transform:none;width:40px;height:40px;
  border-color:rgba(255,255,255,.18);background:rgba(20,20,19,.55);font-size:23px
 }
 .lightbox-prev{left:5px}.lightbox-next{right:5px}
 .lightbox-information{max-height:min(30dvh,260px);padding:12px 5px 6px}
 .lightbox-information h2{font-size:20px;margin-bottom:7px}
 .lightbox-description{font-size:13px;line-height:1.5}
 .lightbox-meta{font-size:10px}
 .lightbox-mobile-hint{display:block}
}
@media(max-height:600px) and (min-width:681px){
 .lightbox-shell{grid-template-rows:45px minmax(0,1fr) auto auto}
 .lightbox-stage{padding:8px 54px}
 .lightbox-information{max-height:24vh}
 .lightbox-information h2{font-size:19px}
}
@media(prefers-reduced-motion:reduce){
 .photo-zoom-button{transition:none!important}
}

/* ATELIER v0.4.8 — rounded popup, faithful crop, pinch zoom and swipe */
.atelier-lightbox{
 height:100dvh;align-items:center;justify-content:center;
 padding:clamp(12px,3vh,30px) clamp(12px,3vw,42px);
}
.lightbox-shell{
 width:min(100%,1280px);max-width:1280px;height:100%;max-height:930px;
 border-radius:22px;overflow:hidden;
 background:#282624;box-shadow:0 24px 95px rgba(0,0,0,.48);
}
.lightbox-stage{overflow:hidden}
.lightbox-crop-frame{
 position:relative;flex:0 0 auto;max-width:100%;max-height:100%;
 overflow:hidden;border-radius:12px;background:#22201f;
 touch-action:none;user-select:none;-webkit-user-select:none;
}
.lightbox-crop-frame .lightbox-full-image{
 position:absolute;inset:0;display:block;width:100%;height:100%;
 max-width:none;max-height:none;border-radius:0;object-fit:cover;
 transform-origin:center center;touch-action:none;
 user-select:none;-webkit-user-drag:none;will-change:transform;
}
.lightbox-zoomed .lightbox-crop-frame{cursor:move}
@media(max-width:680px){
 .atelier-lightbox{
  padding:max(9px,env(safe-area-inset-top)) 9px max(9px,env(safe-area-inset-bottom));
 }
 .lightbox-shell{
  width:100%;height:100%;max-height:none;max-width:none;
  border-radius:19px;padding:0 12px 12px;
 }
 .lightbox-stage{padding:11px 0}
 .lightbox-crop-frame{border-radius:11px;touch-action:none}
 .lightbox-nav{display:none!important}
 .lightbox-mobile-hint{padding:8px 0 1px}
}
@media(max-height:430px){
 .lightbox-shell{border-radius:14px}
 .lightbox-stage{padding-top:5px;padding-bottom:5px}
}
@media(prefers-reduced-motion:reduce){
 .lightbox-full-image{transition:none!important}
}

/* ATELIER v0.4.9 — tactile carousel and repeatable scroll reveals. */
@media(prefers-reduced-motion:no-preference){
 .preview-page .preview-scroll-reveal{
  opacity:0;
  transform:translate3d(0,46px,0);
  transition:opacity .82s cubic-bezier(.22,1,.36,1),transform .96s cubic-bezier(.22,1,.36,1);
 }
 .preview-page .preview-scroll-reveal.is-visible{
  opacity:1;transform:translate3d(0,0,0);
 }
}
.lightbox-crop-frame{
 z-index:2;
 backface-visibility:hidden;
}
.lightbox-carousel-neighbor{
 position:absolute;top:50%;left:50%;z-index:1;
 display:block;overflow:hidden;border-radius:12px;
 background:#22201f;will-change:transform;
 transform:translate3d(-50%,-50%,0);
 touch-action:none;
 box-shadow:0 6px 25px rgba(0,0,0,.18);
 pointer-events:none;
}
.lightbox-carousel-neighbor img{
 display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;
}
@media(max-width:680px){
 .lightbox-carousel-neighbor{border-radius:11px}
}
@media(prefers-reduced-motion:reduce){
 .preview-page .preview-scroll-reveal{opacity:1!important;transform:none!important;transition:none!important}
 .lightbox-carousel-neighbor,.lightbox-crop-frame{transition:none!important}
}

/* ATELIER v0.4.10 — compact editorial lightbox that hugs the visible image crop. */
.atelier-lightbox{
 background:rgba(16,15,14,.73);
 padding:clamp(16px,3vh,32px) clamp(14px,3vw,44px);
}
.lightbox-shell{
 flex:0 0 auto;
 display:flex;
 flex-direction:column;
 align-items:stretch;
 justify-content:flex-start;
 width:auto;
 height:auto;
 max-width:100%;
 max-height:100%;
 padding:0 19px 12px;
 border-radius:20px;
 overflow:hidden;
}
.lightbox-head{
 flex:0 0 53px;
 min-height:53px;
}
.lightbox-stage{
 flex:0 0 auto;
 width:100%;
 min-height:0;
 padding:10px 56px;
}
.lightbox-information{
 flex:0 1 auto;
 min-height:0;
 overflow-y:auto;
 margin-top:2px;
 padding:12px 2px 7px;
}
.lightbox-mobile-hint{
 flex:0 0 auto;
}
@media(max-width:680px){
 .atelier-lightbox{
  padding:max(15px,env(safe-area-inset-top)) 13px max(15px,env(safe-area-inset-bottom));
 }
 .lightbox-shell{
  max-width:100%;
  height:auto;
  max-height:100%;
  border-radius:19px;
  padding:0 12px 10px;
 }
 .lightbox-head{flex:0 0 51px;min-height:51px}
 .lightbox-stage{padding:10px 0;min-height:0}
 .lightbox-information{margin-top:0;padding:11px 2px 6px}
 .lightbox-mobile-hint{padding:8px 0 2px}
}
@media(max-height:480px){
 .atelier-lightbox{padding:8px}
 .lightbox-shell{padding-bottom:5px;border-radius:13px}
 .lightbox-head{flex-basis:43px;min-height:43px}
 .lightbox-stage{padding-top:5px;padding-bottom:5px}
}

/* ATELIER v0.5.0 planning column controls */
.plan-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border:1px solid var(--line)}
.plan-table{width:100%;min-width:max(100%,calc(var(--plan-count,3)*175px));table-layout:fixed}
.plan-table th,.plan-table td{text-align:left!important;overflow-wrap:anywhere;border-right:1px solid var(--line)}
.plan-table th:last-child,.plan-table td:last-child{border-right:0}
.plan-table .plan-money{text-align:right!important;font-variant-numeric:tabular-nums}
.plan-head-edit{width:100%;min-width:0;background:transparent;border:1px dashed transparent;padding:4px;color:inherit;text-align:inherit;text-transform:inherit;font:inherit;letter-spacing:inherit}
.plan-head-edit:hover,.plan-head-edit:focus{border-color:#bda78a;background:#fff;outline:0}
.plan-unit{display:block;font-size:9px;letter-spacing:.06em;color:#91795a;margin-top:5px}
.plan-invalid{color:#b05239;display:block;font-size:11px}
.plan-status{margin-top:6px;font-size:9px;color:#917c65}
.plan-empty{text-align:center!important;color:#9e9387;font-style:italic}
.plan-total td{background:#f1ebe1;border-top:2px solid #cdbda4}
.plan-total small{display:block;font:9px/1.4 var(--sans);letter-spacing:.08em;color:#816b4f}
.plan-total strong{display:block;font:600 15px var(--serif);margin-top:5px}
.plan-total-toggle{display:flex;align-items:flex-start;gap:9px}
.plan-total-toggle input{width:16px!important;height:16px;margin:2px 0 0;flex:0 0 16px}
.plan-total-toggle span{margin:0!important}
@media(max-width:680px){.plan-table{min-width:max(100%,calc(var(--plan-count,3)*160px))}.plan-table th,.plan-table td{padding:10px 8px}.plan-total strong{font-size:13px}}


/* ATELIER v0.5.1 — focused planning cell in canvas and inspector */
.plan-table tbody td[data-plan-col],.plan-table tfoot td[data-plan-col],.plan-table thead th[data-plan-col]{
 cursor:pointer;
 transition:background-color .2s ease, box-shadow .2s ease;
}
.plan-table .plan-focused-cell{
 background:#f3e7d7!important;
 box-shadow:inset 0 0 0 2px #b49367;
}
.inspector .plan-focused-position{
 border-left:3px solid #b49367;
 padding-left:9px;
 background:linear-gradient(90deg,rgba(180,147,103,.10),transparent 90%);
}
.inspector .plan-focused-field{
 position:relative;
 border-radius:4px;
 padding:8px;
 margin:0 -8px 10px;
 background:#f3e7d7;
 outline:2px solid #b49367;
 outline-offset:0;
}
.inspector .plan-focused-field>span{color:#715334}
.inspector .plan-focused-field input,.inspector .plan-focused-field textarea,.inspector .plan-focused-field select{
 border-color:#b49367;
 background:#fffdf8;
}
@media(prefers-reduced-motion:reduce){
 .plan-table [data-plan-col]{transition:none!important}
}


/* ATELIER v0.5.2 — image->inspector focus and independent reset controls */
.workspace-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reset-action{color:#886a48!important;border-color:#d6c7b3!important}
.reset-action:hover{background:#f5ebdc!important;border-color:#af906c!important}
.inspector [data-inspector-media-id].media-focused-inspector,
.inspector [data-inspector-hero].media-focused-inspector{
 border-left:3px solid #a7865d;
 padding-left:10px;
 background:linear-gradient(90deg,rgba(174,137,88,.13),transparent 93%);
 outline:1px solid #d5b58d;
 outline-offset:1px;
 border-radius:3px;
 transition:background .2s,border-color .2s;
}
.module .media-card-selected>.photo,
.module .media-card-selected .tone,
.module .hero-frame.media-card-selected>.photo,
.module .hero-frame.media-card-selected>.image-blank{
 outline:3px solid #b49367;
 outline-offset:-3px;
}
.module .media-card-selected{box-shadow:inset 0 0 0 2px #b49367}
.inspector .inspect-row.active-photo{border-color:#b49367}
@media(max-width:680px){.workspace-page-actions{gap:5px}.workspace-page-actions .btn{font-size:10px;padding:7px}}
@media(prefers-reduced-motion:reduce){
 .inspector .media-focused-inspector{transition:none!important}
}

/* V0.5.3 studio brand: Verum Casa principal, VOS supporting. */
.preview-head{padding:16px clamp(9px,1.8vw,23px);min-height:94px}
.preview-head.identity-light,.brand-footer.identity-light{background:#f8f5ee;color:#2d2925}
.preview-head.identity-dark,.brand-footer.identity-dark{background:#262523;color:#f7f3ec;border-color:#57514a}
.preview-head.identity-dark .preview-brand,.brand-footer.identity-dark .brand-footer-copy{color:#f7f3ec}
.preview-head.identity-dark small,.brand-footer.identity-dark small{color:#c6bfb3}
.preview-head.identity-dark .btn{background:rgba(255,255,255,.1);color:#f7f3ec;border-color:#76716a}
.preview-identity{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-width:0;flex:1}
.preview-identity-logos,.brand-footer-logos{display:flex;align-items:center;flex-wrap:wrap;gap:14px}
.identity-logo{display:block;width:min(var(--identity-w),100%);max-width:100%;height:auto;max-height:76px;object-fit:contain}
.preview-identity .preview-brand{font-size:clamp(14px,1.6vw,18px);letter-spacing:.08em;line-height:1.2}
.preview-identity>small{font:9px var(--sans);letter-spacing:.15em;margin:0}
.brand-footer{margin-top:31px;padding:20px 16px;border-top:1px solid #d7cfc3;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand-footer-copy{display:flex;flex-direction:column;gap:6px;font:12px var(--serif);color:#756d61;overflow-wrap:anywhere;min-width:0}
.brand-footer-copy small{font:9px var(--sans);letter-spacing:.13em}
.brand-footer-logos{justify-content:flex-end}
.brand-footer-logos .identity-logo{max-height:53px}
.brand-style-minimal .preview-identity-logos{transform:scale(.84);transform-origin:left center;margin-bottom:-5px}
.brand-style-minimal .brand-footer{padding-top:14px;padding-bottom:14px}
.brand-style-institutional .preview-head{border-bottom:2px solid #a18d73}
.brand-style-institutional .brand-footer{border-top:2px solid #a18d73}
.brand-edit-grid,.brand-samples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.brand-edit-grid h3{font:17px var(--serif);margin:12px 0;color:var(--ink)}
.brand-samples{margin:14px 0 22px}
.brand-sample{min-height:119px;padding:13px;border:1px solid #d9d1c6;border-radius:3px;display:flex;flex-direction:column;gap:12px;justify-content:center;overflow:hidden}
.brand-sample.identity-light{background:#f8f5ee;color:#62584c}
.brand-sample.identity-dark{background:#262523;color:#f7f3ec}
.brand-sample-name{font:9px var(--sans);letter-spacing:.15em}
.brand-sample-logos{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%}
.brand-sample-logos .identity-logo{max-height:64px}
.brand-actions{display:flex;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-top:15px}
.brand-check{display:flex;align-items:center;gap:9px}
.brand-check input{width:17px!important;height:17px!important;flex:0 0 17px}
.brand-check span{margin:0!important}
@media(max-width:680px){
 .preview-head{padding:14px 9px;align-items:flex-start;min-height:84px;gap:9px}
 .preview-identity-logos{gap:8px}
 .preview-identity .identity-logo{max-width:min(var(--identity-w),40vw);max-height:53px}
 .preview-identity .preview-brand{font-size:clamp(14px,4vw,17px);letter-spacing:.06em}
 .preview-identity>small{font-size:8px;letter-spacing:.10em}
 .brand-footer{padding:17px 10px;gap:10px;flex-wrap:wrap}
 .brand-footer-copy{font-size:11px}
 .brand-footer-logos{justify-content:flex-start;margin-left:auto;gap:10px}
 .brand-footer-logos .identity-logo{max-height:38px;max-width:min(var(--identity-w),41vw)}
 .brand-edit-grid,.brand-samples{grid-template-columns:1fr}
 .brand-sample{min-height:105px}
}

/* ATELIER v0.5.4 — full-width mobile editorial layouts, aligned header branding. */
.preview-page .preview-head{
 position:relative;box-sizing:border-box;
 display:flex;align-items:flex-end;min-height:152px;
 padding:62px clamp(16px,2.2vw,30px) 21px;
}
.preview-page .preview-identity{
 display:grid;grid-template-columns:minmax(0,1fr) auto;
 align-items:end;justify-content:space-between;gap:22px;
 width:100%;min-width:0;flex:1 1 auto;
}
.preview-page .preview-identity-copy{
 display:flex;flex-direction:column;align-items:flex-start;
 justify-content:flex-end;gap:7px;min-width:0;
}
.preview-page .preview-identity-copy .preview-brand{
 display:block;font:normal var(--project-title-size,30px)/1.12 var(--serif);
 letter-spacing:.012em;color:inherit;overflow-wrap:anywhere;
}
.preview-page .preview-identity-copy>small{
 display:block!important;margin:0!important;color:inherit;opacity:.72;
 font:9px/1.35 var(--sans);letter-spacing:.14em;
}
.preview-page .preview-identity-logos{
 display:flex;align-items:flex-end;justify-content:flex-end;
 justify-self:end;flex-wrap:wrap;gap:13px;min-width:0;
}
.preview-page .preview-identity-logos .identity-logo{
 width:min(var(--identity-w),100%);max-height:67px;
 height:auto;object-position:right bottom;
}
.preview-page .preview-head>.btn,.preview-page .preview-head>.preview-toggle{
 position:absolute;top:17px;right:clamp(16px,2.2vw,30px);margin:0;
}
.brand-sample-line{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(0,45%);
 width:100%;gap:10px;align-items:end;
}
.brand-sample-copy{
 display:flex;flex-direction:column;gap:6px;min-width:0;overflow-wrap:anywhere;
}
.brand-sample-copy strong{font:normal 30px/1.1 var(--serif)}
.brand-sample-copy small{font:8px/1.35 var(--sans);letter-spacing:.09em;opacity:.75}
.brand-sample-line .brand-sample-logos{
 width:100%;min-width:0;justify-content:flex-end;align-items:flex-end;gap:6px;
}
.brand-sample-line .brand-sample-logos .identity-logo{
 width:min(var(--identity-w),100%);max-height:63px;object-position:right bottom;
}
@media(max-width:680px){
 .preview-page{padding:0!important;width:100%;max-width:100%;background:var(--canvas);overflow-x:clip}
 .preview-page .preview-head{
  width:100%;max-width:none;margin:0;
  min-height:171px;padding:67px 17px 18px;border-radius:0;
 }
 .preview-page .preview-head>.btn,
 .preview-page .preview-head>.preview-toggle{top:13px;right:17px}
 .preview-page .preview-identity{
  grid-template-columns:minmax(0,1fr) minmax(0,43%);gap:9px;
 }
 .preview-page .preview-identity-copy .preview-brand{
  font:normal var(--project-title-size,30px)/1.08 var(--serif);letter-spacing:.01em;
 }
 .preview-page .preview-identity-copy>small{font-size:8px;letter-spacing:.09em}
 .preview-page .preview-identity-logos{gap:6px;justify-content:flex-end}
 .preview-page .preview-identity-logos .identity-logo{
  width:min(var(--identity-w),100%);max-width:100%;max-height:60px;
 }
 .preview-page .mobile-preview-switcher{
  width:100%;max-width:none;margin:0;padding:18px 17px 22px;background:var(--canvas);
 }
 .preview-page .preview-layout{display:block;width:100%;max-width:none;margin:0;padding:0}
 .preview-page .preview-content{
  width:100%;max-width:none;min-width:0;margin:0;
  padding:26px 17px 34px;border:0;border-radius:0;
  box-shadow:none!important;background:var(--canvas);
 }
 .preview-page .preview-content .canvas-header{margin-top:0}
}
@media(max-width:380px){
 .preview-page .preview-head{padding-left:14px;padding-right:14px}
 .preview-page .preview-head>.btn,.preview-page .preview-head>.preview-toggle{right:14px}
 .preview-page .mobile-preview-switcher{padding-left:14px;padding-right:14px}
 .preview-page .preview-content{padding-left:14px;padding-right:14px}
}


/* ATELIER v0.5.5 — softer overlays, 20% stronger editorial reveals. */
@media(max-width:680px){
 .mobile-preview-trigger{
  border-radius:11px;
  transition:border-color .26s ease,background-color .26s ease,box-shadow .26s ease;
 }
 .mobile-preview-trigger[aria-expanded="true"]{
  border-color:#b69d78;
  box-shadow:0 0 0 2px rgba(182,157,120,.11);
 }
}
@media(prefers-reduced-motion:no-preference){
 /* Reveal: +20% offset and durations over v0.4.9 (46px, .82s, .96s). */
 .preview-page .preview-scroll-reveal{
  opacity:0;
  transform:translate3d(0,55px,0);
  transition:opacity .984s cubic-bezier(.22,1,.36,1),
             transform 1.152s cubic-bezier(.22,1,.36,1);
 }
 .preview-page .preview-scroll-reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
 }
 /* Lightbox: ease the appearance and disappearance without touching pinch/pan. */
 .atelier-lightbox{animation:atelier-layer-in .35s ease-out both}
 .atelier-lightbox .lightbox-shell{animation:atelier-dialog-in .48s cubic-bezier(.22,1,.36,1) both}
 .atelier-lightbox.is-leaving{animation:atelier-layer-out .23s ease-in both}
 .atelier-lightbox.is-leaving .lightbox-shell{animation:atelier-dialog-out .23s cubic-bezier(.4,0,.7,1) both}
 /* Standard edit/settings popup. */
 .modal-back{animation:atelier-layer-in .3s ease-out both}
 .modal-back>.modal{animation:atelier-dialog-in .4s cubic-bezier(.22,1,.36,1) both}
 .modal-back.is-leaving{animation:atelier-layer-out .22s ease-in both}
 .modal-back.is-leaving>.modal{animation:atelier-dialog-out .22s cubic-bezier(.4,0,.7,1) both}
 /* Mobile main-menu sheet and dimmed background. */
 .mobile-preview-menu:not([hidden]) .mobile-preview-menu-backdrop{
  animation:atelier-layer-in .33s ease-out both;
 }
 .mobile-preview-menu:not([hidden]) .mobile-preview-sheet{
  animation:atelier-menu-in .44s cubic-bezier(.22,1,.36,1) both;
 }
 .mobile-preview-menu.is-leaving .mobile-preview-menu-backdrop{
  animation:atelier-layer-out .26s ease-in both;
 }
 .mobile-preview-menu.is-leaving .mobile-preview-sheet{
  animation:atelier-menu-out .26s cubic-bezier(.4,0,.7,1) both;
 }
}
@keyframes atelier-layer-in{from{opacity:0}to{opacity:1}}
@keyframes atelier-layer-out{from{opacity:1}to{opacity:0}}
@keyframes atelier-dialog-in{
 from{opacity:0;transform:translate3d(0,17px,0) scale(.985)}
 to{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes atelier-dialog-out{
 from{opacity:1;transform:translate3d(0,0,0) scale(1)}
 to{opacity:0;transform:translate3d(0,9px,0) scale(.99)}
}
@keyframes atelier-menu-in{
 from{opacity:.7;transform:translate3d(0,30px,0)}
 to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes atelier-menu-out{
 from{opacity:1;transform:translate3d(0,0,0)}
 to{opacity:.7;transform:translate3d(0,25px,0)}
}
@media(prefers-reduced-motion:reduce){
 .atelier-lightbox,.atelier-lightbox .lightbox-shell,.modal-back,.modal-back>.modal,
 .mobile-preview-menu .mobile-preview-menu-backdrop,.mobile-preview-menu .mobile-preview-sheet{
  animation:none!important;
 }
 .preview-page .preview-scroll-reveal{
  opacity:1!important;transform:none!important;transition:none!important;
 }
}

/* V0.5.6: Safari desktop isolates native module dragging from image edits. */
.module-top-tools .module-drag-handle{
 display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;
 min-height:30px;font-size:17px;color:#806c54;cursor:grab;
 user-select:none;-webkit-user-select:none;-webkit-user-drag:element;
 touch-action:none;border-right:1px solid var(--line);
}
.module-top-tools .module-drag-handle:active{cursor:grabbing}
.module .gallery-cell img,.module .swatch img,.module .hero-frame img{
 -webkit-user-drag:none!important;user-select:none;-webkit-user-select:none;
}
.module .photo-move-handle,.module .photo-resize-handle{
 -webkit-user-select:none;-webkit-user-drag:none;
}
.photo-interaction-active .module .photo,
.photo-interaction-active .module .tone-with-image{cursor:grabbing}


/* ATELIER v0.5.7 — shared drag/snap/resize for all editorial image types. */
.item-card,.compare-item{position:relative}
.item-image-frame,.compare-image-frame{
 position:relative;max-width:100%;min-width:65px;overflow:visible;
}
.item-image-frame>.photo,.compare-image-frame>.photo,
.item-image-frame>.image-blank,.compare-image-frame>.image-blank{
 width:100%;height:100%!important;min-height:0;
}
.item-card .photo-move-handle,.compare-item .photo-move-handle{
 position:absolute;left:8px;top:16px;z-index:6;
}
.item-image-frame .photo-resize-handle,.compare-image-frame .photo-resize-handle{
 z-index:8;opacity:0;
}
.item-card:hover .photo-move-handle,.compare-item:hover .photo-move-handle,
.item-card.media-card-selected .photo-move-handle,.compare-item.media-card-selected .photo-move-handle,
.item-image-frame:hover .photo-resize-handle,.compare-image-frame:hover .photo-resize-handle,
.item-card.media-card-selected .photo-resize-handle,.compare-item.media-card-selected .photo-resize-handle{
 opacity:1;
}
.gallery-cell .photo-resize-handle{z-index:8}
.gallery:not(.custom)>.gallery-cell[style]{
 min-width:0;max-width:100%;align-self:start;
}
.photo-interaction-active .item-image-frame,.photo-interaction-active .compare-image-frame{
 cursor:grabbing;
}
@media(max-width:680px){
 .item-image-frame .photo-resize-handle,.compare-image-frame .photo-resize-handle,
 .item-card .photo-move-handle,.compare-item .photo-move-handle{opacity:1}
 /* Client pages remain edge-to-edge and never overflow due to editor-only sizes. */
 .preview-page .preview-content .gallery:not(.custom)>.gallery-cell[style]{
  max-width:100%!important;
  width:100%!important;
  height:auto!important;
  min-height:185px;
 }
}


/* ATELIER v0.5.8 — remove editor photo zoom and declutter editing handles. */
/* Editor: move ⠿ top-left, replace top-right, resize ↘ bottom-right. */
.workspace .module .photo-overlay,
.workspace .module .tone .photo-overlay{
 top:8px;
 right:8px;
 bottom:auto;
 left:auto;
 max-width:calc(100% - 48px);
 overflow:hidden;
 white-space:nowrap;
 text-overflow:ellipsis;
 padding:6px 8px;
 font-size:10px;
 border-radius:7px;
 z-index:7;
}
.workspace .module .photo-move-handle{
 z-index:9;
}
.workspace .module .photo-resize-handle{
 z-index:9;
}
/* Safety if the page was partially hydrated with older editor controls. */
.workspace .module .photo-zoom-button{display:none!important}

/* V0.5.10: one media-library action for each photo/texture in the inspector. */
.inspector .inspector-library-choice{
 display:block;width:100%;margin:7px 0 13px;min-height:34px;
 text-align:center;white-space:normal;
}
.inspector-body>.inspector-library-choice{margin:0 0 14px}

/* V0.5.11: highlight the currently displayed image in the media library. */
.media-library-item.media-library-current{outline:3px solid var(--bronze);outline-offset:-3px;background:var(--bronze-soft)}
.media-library-current .media-pick{border-color:var(--bronze)}
.media-library-missing{font-size:11px!important;color:var(--muted);padding:8px 10px;background:var(--ivory);border-left:2px solid var(--bronze)}

/* V0.5.12 — empty module compositions shown before media or items are added. */
.workspace .gallery-placeholder .gallery-cell .image-blank{border:1px dashed #cbbfae;min-height:0;padding:8px}
.workspace .gallery-placeholder .gallery-cell .image-blank:hover{background:#e5dcd0;border-color:var(--bronze)}
.workspace .gallery-placeholder .gallery-cell .image-blank small{font-size:10px;line-height:1.25}
.swatches-placeholder .swatch-placeholder{border:0;padding:0;background:transparent;text-align:left;color:var(--muted);cursor:pointer}
.swatches-placeholder .swatch-placeholder .tone{display:flex;align-items:center;justify-content:center;height:115px;background:#eeeae3;border:1px dashed #cbbfae;color:#9e8b72;font:26px var(--sans)}
.swatches-placeholder .swatch-placeholder .swatch-name{display:block;font:11px var(--sans);color:var(--muted)}
.swatches-placeholder .swatch-placeholder:hover .tone{background:#e8dfd1;border-color:var(--bronze)}
.items-grid.items-layout-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.items-grid.items-layout-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.items-grid.items-layout-feature{grid-template-columns:repeat(2,minmax(0,1fr))}
.items-grid.items-layout-feature>.item-card:first-child{grid-column:1/-1}
.items-grid.items-layout-feature>.item-card:first-child:not(.item-placeholder){display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}
.items-grid.items-layout-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.items-grid.items-layout-compact>.item-card:not(.item-placeholder){display:grid;grid-template-columns:115px minmax(0,1fr);gap:12px;align-items:start}
.items-grid.items-layout-compact>.item-card:not(.item-placeholder) h4{margin-top:0;font-size:15px}
.items-grid .item-placeholder{min-width:0}
.items-grid .item-placeholder-button{display:block;width:100%;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;color:var(--ink)}
.items-grid .item-placeholder-button .item-image-frame{display:block;max-width:100%}
.items-grid .item-placeholder-button .image-blank{min-height:0;height:100%;border:1px dashed #cbbfae}
.items-grid .item-placeholder-button:hover .image-blank{background:#e5dcd0;border-color:var(--bronze)}
.items-grid .item-placeholder-copy{display:block;padding-top:10px;overflow-wrap:anywhere}
.items-grid .item-placeholder-copy strong{display:block;font:14px var(--serif);font-weight:normal}
.items-grid .item-placeholder-copy small{display:block;color:var(--muted);font:10px var(--sans);margin-top:5px}
.items-grid.rowlayout>.item-placeholder{display:block}
.items-grid.rowlayout .item-placeholder-button{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px}
.items-grid.items-layout-feature>.item-placeholder:first-child .item-placeholder-button{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}
.items-grid.items-layout-compact .item-placeholder-button{display:grid;grid-template-columns:115px minmax(0,1fr);gap:12px}
.items-grid.items-layout-compact .item-placeholder-copy{padding-top:0}
@media(max-width:680px){.items-grid.items-layout-four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){
 .items-grid.items-layout-feature>.item-card:first-child:not(.item-placeholder),
 .items-grid.items-layout-feature>.item-placeholder:first-child .item-placeholder-button{display:block}
 .items-grid.rowlayout .item-placeholder-button{grid-template-columns:105px minmax(0,1fr);gap:12px}
 .items-grid.items-layout-compact{grid-template-columns:1fr}
 .items-grid.items-layout-compact>.item-card:not(.item-placeholder),
 .items-grid.items-layout-compact .item-placeholder-button{grid-template-columns:100px minmax(0,1fr);gap:10px}
}

/* V0.5.14 — editor overview and mobile client preview. */
.workspace-view-controls{display:flex;flex-direction:column;align-items:flex-end;gap:9px;min-width:0}
.workspace-view-row,.workspace-action-row{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.editor-zoom-label{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;color:var(--muted);font:11px var(--sans)}
.editor-zoom-label select{font:11px var(--sans);color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:3px;padding:7px 9px;min-width:70px}
.atelier-canvas-stage{width:100%;position:relative}
.atelier-canvas-stage>.canvas{transform-origin:top center;will-change:transform}
.atelier-preview-switchbar{position:sticky;top:0;z-index:18;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:11px clamp(12px,3vw,32px);background:#fdfcf9;border-bottom:1px solid var(--line);box-shadow:0 2px 10px #00000008}
.atelier-preview-caption{font:11px var(--sans);letter-spacing:.02em;color:var(--muted)}
.atelier-preview-modes{display:flex;align-items:center;gap:4px;background:#f4f1eb;border:1px solid var(--line);border-radius:5px;padding:3px}
.atelier-preview-modes .btn{border:0;background:transparent}
.atelier-preview-modes .btn.is-active{background:var(--bronze-soft);color:var(--ink);box-shadow:inset 0 0 0 1px #c6b399}
.atelier-device-preview{min-height:calc(100dvh - 60px);padding:20px 12px 30px;background:#eeeae4;display:flex;flex-direction:column;align-items:center;gap:11px}
.atelier-device-label{font:11px var(--sans);letter-spacing:.045em;color:#756c61}
.atelier-phone-frame{width:min(390px,100%);background:white;border:8px solid #302e2c;border-radius:28px;box-shadow:0 20px 55px #00000023;padding:8px 0;overflow:hidden}
.atelier-phone-frame iframe{display:block;border:0;width:100%;height:min(76dvh,760px);min-height:400px;background:#fff}
.atelier-device-note{max-width:390px;text-align:center;font:11px/1.6 var(--sans);color:var(--muted);margin:0}
@media(max-width:940px){.workspace-heading{align-items:start;flex-direction:column}.workspace-view-controls{width:100%;align-items:flex-start}.workspace-view-row,.workspace-action-row{justify-content:flex-start}}
@media(max-width:680px){.atelier-preview-switchbar{gap:7px;padding:9px 10px}.atelier-preview-caption{display:none}.atelier-device-preview{padding:10px 7px 22px}.atelier-phone-frame{border-width:5px;border-radius:18px;padding:5px 0}.atelier-phone-frame iframe{min-height:55dvh;height:73dvh}}

/* V0.5.15 — accurate iframe inner viewport and mobile copy wrapping. */
.atelier-preview-size{display:inline-flex;align-items:center;gap:6px;margin-left:8px;color:var(--muted);font:11px var(--sans);white-space:nowrap}
.atelier-preview-size select{border:1px solid var(--line);background:#fff;color:var(--ink);font:11px var(--sans);padding:7px;border-radius:3px}
.atelier-device-preview{overflow-x:auto;max-width:100%}
.atelier-phone-frame{width:calc(var(--preview-phone-width,390px) + 16px);max-width:none;flex-shrink:0}
@media(max-width:680px){
 .preview-page .preview-content .item-card,
 .preview-page .preview-content .compare-item,
 .preview-page .preview-content .planning td,
 .preview-page .preview-content .planning th{overflow-wrap:anywhere}
 .preview-page .preview-content .items-grid>.item-card,
 .preview-page .preview-content .compare-grid>.compare-item{min-width:0}
}

/* V0.5.17 — a draft is previewable before publication; mobile mode is truthful. */
.atelier-preview-private{font:11px/1.4 var(--sans);color:#7d5e35;background:#f4eadc;border:1px solid #e3ceb0;padding:7px 10px;border-radius:4px}
.atelier-preview-device-label{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font:12px var(--sans);border:1px solid var(--line);border-radius:4px;padding:8px 11px;background:#f3f0e9}
@media(max-width:680px){
 .atelier-preview-switchbar{justify-content:space-between;gap:8px}
 .atelier-preview-private{flex-basis:100%;order:3;text-align:center;font-size:10px;padding:6px 8px}
}

/* V0.5.18 — prevent enlarged editorial tiles escaping their grid rows.
   Fixed 160px tracks caused subsequent modules to begin beneath tall images.
   Allow rows to expand to accommodate saved per-image frame heights. */
.gallery.editorial,
.preview-content .gallery.editorial{grid-auto-rows:minmax(160px,auto)}
@media(max-width:680px){
 .gallery.editorial,
 .preview-content .gallery.editorial{grid-auto-rows:minmax(135px,auto)}
}

/* V0.5.20: preset grid geometry is not changed by saved individual photo sizes. */
.gallery.grid>.gallery-cell{grid-column:auto;grid-row:auto}
.gallery.strip>.gallery-cell{grid-column:auto;grid-row:auto}
.gallery.feature>.gallery-cell:not(:first-child){grid-column:auto;grid-row:auto}

/* V0.5.21: Finder file drop highlighting, no layout shifts and no changes
   to the existing photo resize/reorder handles. */
.workspace .atelier-file-drop-target{position:relative;outline:3px dashed var(--bronze)!important;outline-offset:-4px;background-color:#f3eadc!important}
.workspace .atelier-file-drop-target::after{content:"Eliberează pentru a adăuga fotografia";position:absolute;z-index:11;inset:8px;display:flex;justify-content:center;align-items:center;pointer-events:none;border-radius:4px;background:rgba(246,239,227,.87);color:#574934;text-align:center;padding:12px;font:600 12px/1.5 var(--sans)}
.workspace .atelier-file-drop-target.item-card::after,.workspace .atelier-file-drop-target.swatch::after{font-size:11px}

/* Client dossier: original image proportions, without added photo bands. */
.preview-page .preview-content .photo{background:transparent}
.preview-page .preview-content .item-image-frame:has(>.photo),
.preview-page .preview-content .compare-image-frame:has(>.photo){
 width:100%!important;height:auto!important;
}
.preview-page .preview-content .item-image-frame>.photo,
.preview-page .preview-content .compare-image-frame>.photo{
 height:auto!important;min-height:0;
}
.preview-page .preview-content .item-image-frame>.photo>img,
.preview-page .preview-content .compare-image-frame>.photo>img{
 display:block;width:100%;height:auto;
}
.preview-page .preview-content .gallery:not(.custom){
 grid-auto-rows:auto;align-items:start;
}
.preview-page .preview-content .gallery:not(.custom)>.gallery-cell{
 height:auto!important;min-height:0!important;grid-row:auto!important;align-self:start;
}
.preview-page .preview-content .gallery:not(.custom)>.gallery-cell>.photo{
 height:auto!important;min-height:0;flex:none;
}
.preview-page .preview-content .gallery:not(.custom)>.gallery-cell>.photo>img{
 position:static;inset:auto;display:block;width:100%;height:auto;
}


/* Targeted plan rotation and entrance mirror proportions. */
.photo:has(>img[src$="camera-joaca-plan-01.webp"]){container-type:size;position:relative}
.photo>img[src$="camera-joaca-plan-01.webp"]{position:absolute!important;left:50%!important;top:50%!important;width:100cqh!important;height:100cqw!important;transform:translate(-50%,-50%) rotate(90deg);object-fit:contain}
.lightbox-full-image[src$="camera-joaca-plan-01.webp"]{rotate:90deg;scale:.65}
.preview-page .preview-content .item-card[data-item-id="0ivc8fbk6"] .item-image-frame{width:100%!important;height:auto!important}
.preview-page .preview-content .item-card[data-item-id="0ivc8fbk6"] .photo{position:relative;aspect-ratio:736/950;height:auto!important}
.preview-page .preview-content .item-card[data-item-id="0ivc8fbk6"] .photo>img{position:absolute;inset:0;width:100%;height:100%!important;object-fit:contain;object-position:center}

/* Equal square product photos for Eric, with white contain padding. */
.preview-page .preview-content :is(.module[data-select-module="cdz000a"],.item-card[data-item-id="pin-sofa-eric01"]) .item-image-frame{width:100%!important;height:auto!important;aspect-ratio:1}
.preview-page .preview-content :is(.module[data-select-module="cdz000a"],.item-card[data-item-id="pin-sofa-eric01"]) .photo{position:relative;width:100%;height:auto!important;aspect-ratio:1;background:#fff}
.preview-page .preview-content :is(.module[data-select-module="cdz000a"],.item-card[data-item-id="pin-sofa-eric01"]) .photo>img{position:absolute;inset:0;display:block;width:100%;height:100%!important;object-fit:contain;object-position:center}
