/* Shared CMS composition contract. Themes may override these tokens. */
:root { --sm-section-gap: 1.5rem; --sm-grid-min: 18rem; --sm-site-width: 70rem; }
.cms-layout-flow, .cms-layout-flow > .cms-component-group,
.cms-layout-flow > .cms-component-group > .cms-component { display: contents; }
.cms-layout-stack, .cms-layout-grid { display: grid; gap: var(--sm-section-gap); min-width: 0; }
.cms-layout-stack > .cms-component-group { display: grid; gap: var(--sm-section-gap); }
.cms-layout-grid > .cms-component-group { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,var(--sm-grid-min)),1fr)); gap: var(--sm-section-gap); }
.cms-component, .cms-content { min-width: 0; overflow-wrap: anywhere; }
.cms-component img, .cms-content img { max-width: 100%; height: auto; }
.cms-public-site { background: var(--tblr-body-bg,#f6f8fb); color: var(--tblr-body-color,#182433); }
.cms-site-header, .cms-site-main, .cms-site-footer { width: min(var(--sm-site-width),calc(100% - 2rem)); margin-inline: auto; }
.cms-site-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1rem; }
.cms-site-logo { width: 9rem; height: auto; }
.cms-site-main { padding-block: clamp(1.5rem,5vw,5rem); }
.cms-site-main .cms-component { padding: clamp(1.25rem,4vw,3rem); background: var(--tblr-bg-surface,#fff); border-radius: var(--tblr-border-radius-lg,.75rem); }
.cms-site-main h1 { font-size: clamp(2rem,5vw,4rem); line-height: 1.1; }
.cms-site-main h2 { font-size: clamp(1.5rem,3vw,2.25rem); line-height: 1.2; }
.cms-site-main p { max-width: 65ch; line-height: 1.7; }
.cms-site-footer { padding-block: 2rem; text-align: center; }
.cms-site-footer nav.sm-horizontal-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
/* Shared authoring controls inherit the active theme, including dark palettes. */
.ql-snow .ql-picker, .ql-snow .ql-picker-label, .ql-snow .ql-picker-options { color: var(--tblr-body-color); }
.ql-snow .ql-picker-options { background: var(--tblr-bg-surface); }
.ql-snow .ql-stroke { stroke: var(--tblr-body-color); }
.ql-snow .ql-fill { fill: var(--tblr-body-color); }
.cms-settings-table .form-control { min-width: 8rem; }
.cms-settings-table .cms-order-control { min-width: 5rem; }

/* Vendor authoring popovers inherit the host even when Quill loads later. */
html[data-ui-theme] .ql-snow .ql-tooltip { background: var(--tblr-bg-surface); color: var(--tblr-body-color); border-color: var(--tblr-border-color); box-shadow: var(--tblr-box-shadow); }
html[data-ui-theme] .ql-snow .ql-tooltip input[type=text] { background: var(--tblr-bg-forms, var(--tblr-bg-surface)); color: var(--tblr-body-color); border-color: var(--tblr-border-color); }
html[data-ui-theme] .ql-snow .ql-tooltip a { color: var(--tblr-link-color); }
html[data-ui-theme] .ql-toolbar.ql-snow, html[data-ui-theme] .ql-container.ql-snow,
html[data-ui-theme] .ql-snow .ql-picker-options { border-color: var(--tblr-border-color); }
