/* Owner controls use the existing brand and spacing tokens. */
.cms-tools{position:fixed;right:var(--size-20);bottom:var(--size-20);z-index:var(--z-index-10000);font-family:var(--font-body);color:var(--color-text);}
.cms-tools button,.cms-photo-dialog button{font:inherit;font-size:var(--size-16);font-weight:var(--font-weight-600);min-height:var(--size-44);padding:var(--size-10) var(--size-18);border:var(--size-1) solid var(--brand-primary);background:var(--color-surface);color:var(--brand-primary);cursor:pointer;}
.cms-tools button:focus-visible,.cms-photo-dialog :is(button,input):focus-visible{outline:var(--size-3) solid var(--color-focus);outline-offset:var(--size-4);}
.cms-tools .cms-start,.cms-tools .cms-save,.cms-photo-dialog .cms-use-photo{background:var(--brand-primary);color:var(--color-surface);}
.cms-tools button:disabled,.cms-photo-dialog button:disabled{opacity:var(--cms-disabled-opacity);cursor:default;}
.cms-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--size-12);background:var(--color-surface);border:var(--size-1) solid var(--color-muted);padding:var(--size-16);max-width:calc(var(--measure-100-vw) - var(--size-40));box-shadow:0 var(--size-8) var(--size-24) var(--color-overlay);}
.cms-tools [hidden],.cms-photo-dialog [hidden]{display:none!important;}
.cms-instructions{display:grid;gap:var(--size-4);max-width:var(--size-350);font-size:var(--size-14);}
.cms-instructions strong{font-size:var(--size-16);}
.cms-status{font-size:var(--size-14);line-height:var(--line-height-1-5);max-width:var(--size-350);margin:0;}
html[data-cms-editing=true] body{padding-bottom:var(--size-180);}
html[data-cms-editing=true] [data-cms-text]{outline:var(--size-1) dashed var(--brand-primary);outline-offset:var(--size-2);cursor:text;white-space:pre-wrap;}
html[data-cms-editing=true] [data-cms-text]:focus{outline:var(--size-3) solid var(--color-focus);background:var(--brand-tint);color:var(--color-text);}
html[data-cms-editing=true] img[data-cms-image]{outline:var(--size-3) dashed var(--brand-primary);outline-offset:calc(-1 * var(--size-3));cursor:pointer;}
.cms-photo-dialog{padding:var(--size-30);width:var(--size-550);max-width:calc(var(--percent-100) - var(--size-32));max-height:calc(var(--measure-100-vh) - var(--size-40));overflow:auto;color:var(--color-text);background:var(--color-surface);border:var(--size-1) solid var(--color-muted);}
.cms-photo-dialog::backdrop{background:var(--color-overlay);}
.cms-photo-dialog h2{font-size:var(--size-36);margin:0 0 var(--size-16);}
.cms-photo-dialog p,.cms-photo-dialog label{font:inherit;font-size:var(--size-16);line-height:var(--line-height-1-5);margin:var(--size-12) 0;}
.cms-photo-dialog input{display:block;width:var(--percent-100);font:inherit;margin:var(--size-12) 0;padding:var(--size-10);border:var(--size-1) solid var(--color-muted);color:var(--color-text);background:var(--color-surface);}
.cms-photo-preview{display:block;width:var(--percent-100);height:var(--size-240);object-fit:contain;background:var(--surface-soft);}
.cms-photo-dialog>div{display:flex;gap:var(--size-12);flex-wrap:wrap;}
.cms-warning{position:fixed;bottom:var(--size-16);left:var(--size-16);right:var(--size-16);padding:var(--size-16);z-index:var(--z-index-10000);background:var(--color-surface);color:var(--color-text);border:var(--size-1) solid var(--color-muted);font-size:var(--size-16);}
@media(max-width:47.5rem) /* token:breakpoint-760 */{.cms-tools{right:var(--size-12);left:var(--size-12);bottom:var(--size-12);}.cms-toolbar{max-width:var(--percent-100);}.cms-status{flex-basis:var(--percent-100);}.cms-instructions span{display:none;}.cms-photo-dialog{padding:var(--size-20);}}

/* Responsive layout overrides and owner-only handles. */
.cms-layout-shifted{transform:translate(var(--cms-shift-x),var(--cms-shift-y))!important;}
.cms-layout-text-sized{font-size:var(--cms-resize-font)!important;overflow-wrap:anywhere;}
.cms-layout-image-sized{width:var(--cms-resize-width)!important;max-width:none!important;height:auto!important;}
.cms-layout-block-sized{width:var(--cms-resize-width)!important;max-width:none!important;}
.cms-layout-section-sized{min-height:var(--cms-section-height)!important;height:auto!important;padding-top:var(--cms-section-before)!important;padding-bottom:var(--cms-section-after)!important;}
.cms-has-layout{overflow-x:clip;}
html[data-cms-layout-mode=true] [data-cms-text]{outline:none;cursor:default;white-space:normal;}
html[data-cms-layout-mode=true] [data-cms-layout]{cursor:pointer;}
html[data-cms-layout-mode=true] [data-cms-layout]:hover{outline:var(--size-1) dashed var(--brand-primary);outline-offset:var(--size-2);}
.cms-tools .cms-mode[aria-pressed=true]{background:var(--brand-primary);color:var(--color-surface);}
.cms-layout-selection{position:fixed;left:var(--cms-selection-left);top:var(--cms-selection-top);width:var(--cms-selection-width);height:var(--cms-selection-height);border:var(--size-2) solid var(--brand-primary);z-index:var(--cms-selection-layer);pointer-events:none;}
.cms-layout-selection[hidden],.cms-layout-panel[hidden],.cms-layout-drop[hidden],.cms-layout-panel [hidden]{display:none!important;}
.cms-layout-selection button{position:absolute;pointer-events:auto;touch-action:none;font:inherit;font-size:var(--size-14);font-weight:var(--font-weight-600);background:var(--brand-primary);color:var(--color-surface);border:var(--size-1) solid var(--color-surface);min-height:var(--size-36);cursor:grab;}
.cms-layout-move{left:var(--cms-handle-inline);top:var(--cms-handle-offset);padding:var(--size-6) var(--size-12);transform:translateY(calc(-1 * var(--percent-100)));}
.cms-layout-resize{right:calc(-1 * var(--size-16));bottom:calc(-1 * var(--size-16));width:var(--size-36);height:var(--size-36);cursor:nwse-resize!important;}
.cms-layout-panel{position:fixed;right:var(--size-20);top:calc(var(--size-100) + var(--size-20));width:var(--size-300);max-width:calc(var(--measure-100-vw) - var(--size-40));max-height:calc(var(--measure-100-vh) - var(--size-300));overflow:auto;z-index:var(--z-index-10000);background:var(--color-surface);color:var(--color-text);border:var(--size-1) solid var(--color-muted);padding:var(--size-20);font-family:var(--font-body);box-shadow:0 var(--size-8) var(--size-24) var(--color-overlay);}
.cms-layout-panel h2{font-size:var(--size-30);color:var(--color-text);margin:0 0 var(--size-12);}
.cms-layout-panel p,.cms-layout-panel label,.cms-layout-panel strong,.cms-layout-panel span{font-size:var(--size-14);line-height:var(--line-height-1-5);}
.cms-layout-panel p{margin:var(--size-12) 0;}
.cms-layout-panel strong{display:block;margin:var(--size-16) 0;}
.cms-layout-panel label{display:block;}
.cms-layout-panel output{float:right;font-weight:var(--font-weight-600);}
.cms-layout-panel input{width:var(--percent-100);accent-color:var(--brand-primary);margin:var(--size-12) 0;min-height:var(--size-30);}
.cms-layout-panel button{font:inherit;font-size:var(--size-14);color:var(--brand-primary);background:var(--color-surface);border:var(--size-1) solid var(--brand-primary);padding:var(--size-8) var(--size-12);min-height:var(--size-44);cursor:pointer;}
.cms-layout-panel button:focus-visible,.cms-layout-selection button:focus-visible,.cms-layout-panel input:focus-visible{outline:var(--size-3) solid var(--color-focus);outline-offset:var(--size-4);}
.cms-layout-size-buttons,.cms-layout-position>div{display:flex;gap:var(--size-8);margin-bottom:var(--size-16);}
.cms-layout-size-buttons button{flex:1;}
.cms-layout-position>div{margin-top:var(--size-8);}
.cms-layout-reset,.cms-layout-reset-page{display:block;width:var(--percent-100);margin-top:var(--size-16);}
.cms-layout-reset-page{border-color:var(--color-muted)!important;color:var(--color-text)!important;}
.cms-layout-drop{position:fixed;left:var(--percent-5);right:var(--percent-5);top:var(--cms-drop-y);height:var(--size-4);background:var(--brand-primary);z-index:var(--z-index-10000);pointer-events:none;}
html[data-cms-dragging=true] .cms-layout-panel{visibility:hidden;}
@media(max-width:47.5rem) /* token:breakpoint-760 */{.cms-layout-panel{right:var(--size-12);top:var(--size-90);width:var(--size-240);max-height:var(--size-300);padding:var(--size-16);}.cms-toolbar .cms-mode{font-size:var(--size-14);}.cms-toolbar{gap:var(--size-8);}.cms-layout-selection button{min-height:var(--size-44);}}

html[data-cms-layout-mode=true]{overflow-x:clip;}
.cms-layout-parent{margin-bottom:var(--size-16);}
