efficient-storefront-blocks 0.47.0 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/editor.css CHANGED
@@ -1 +1 @@
1
- .sf-embedded{height:100%;min-height:0}.sf-embedded .sf-editor{height:100%}.sf-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.sf-panel-heading{display:flex;align-items:baseline;gap:var(--space-8);min-width:0}.sf-panel-site{display:block;margin:0;min-width:0;overflow:hidden;font-size:var(--text-2xs);font-weight:500;color:var(--sf-muted);white-space:nowrap;text-overflow:ellipsis}.sf-name-tip{position:relative;display:block;min-width:0;max-width:100%}.sf-name-text{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sf-panel-site:before{content:"\b7";margin-right:var(--space-8)}.sf-x{width:24px;height:24px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--sf-muted);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm)}.sf-x:hover{background:var(--sf-hover)}.sf-gap{position:relative;display:block;width:100%;height:9px;margin:-2px 0;padding:0;border:0;background:transparent;cursor:pointer;z-index:1}.sf-gap-line{position:absolute;left:12px;right:12px;top:50%;height:2px;transform:translateY(-50%);border-radius:calc(var(--radius-sm) / 2);background:var(--sf-accent);opacity:0;transition:opacity .12s}.sf-gap-plus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);width:18px;height:18px;border-radius:50%;background:var(--sf-accent);color:var(--sf-on-accent);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);line-height:1;box-shadow:0 0 0 2px var(--sf-panel);opacity:0;transition:opacity .12s,transform .12s}.sf-gap:hover .sf-gap-line,.sf-gap:focus-visible .sf-gap-line{opacity:1}.sf-gap:hover .sf-gap-plus,.sf-gap:focus-visible .sf-gap-plus{opacity:1;transform:translate(-50%,-50%) scale(1)}.sf-subtree{margin:var(--es-rhythm-between) 0 var(--es-rhythm-between) 16px;padding-left:var(--space-12);border-left:1px solid var(--sf-line);display:flex;flex-direction:column;gap:var(--es-rhythm-between)}.sf-addside-sitewide{display:flex;align-items:center;gap:var(--space-12);margin-top:16px;padding:var(--space-12);border:1px solid var(--sf-divider);border-radius:var(--radius-xl)}.sf-addside-sitewide-glyph{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-lg);background:var(--sf-hover);color:var(--sf-muted)}.sf-addside-sitewide-name{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:0;background:none;font:600 var(--text-xs)/1.3 var(--sf-font);color:var(--sf-text);text-align:left;cursor:pointer}.sf-addside-sitewide-name:hover{color:var(--sf-accent)}.sf-addside-sitewide-desc{font-weight:400;font-size:var(--text-xs);color:var(--sf-muted)}.sf-thumb{--sf-thumb-card: #ffffff;--sf-thumb-thumb-bg: #fcfdff;--sf-thumb-thumb-border: #edeff4;--sf-thumb-block: #e9ebf0;--sf-thumb-bar-light: #dde1e8;--sf-thumb-bar-dark: #c3c9d3;--sf-thumb-hatch1: #e2e5ec;--sf-thumb-hatch2: #edeff4;--sf-thumb-accent: #2f6bed;--sf-thumb-accent-tint: #e6edfd;--sf-thumb-border: #e7eaf1;--sf-thumb-ink: #1b2027;--sf-thumb-ink-2: #39434f;--sf-thumb-ink-soft: #2c3540;--sf-thumb-ink-soft-2: #4a5763;--sf-thumb-paper: #f4f1ed;--sf-thumb-paper-2: #cfc8bf;--sf-thumb-warm: #e7c26a;--sf-thumb-rust: #b4652a;--sf-thumb-on-ink: #ffffff;--sf-thumb-scene-text: #171412;--sf-thumb-scene-muted: #6b7280;--sf-thumb-scene-rule: #eceef1;--sf-thumb-mark-1: #c8ccd1;--sf-thumb-mark-2: #8e9aa6;--sf-thumb-scrim: rgba(0, 0, 0, .55)}@keyframes sf-thumb-marquee{0%{transform:translate(0)}to{transform:translate(-33.34%)}}.sf-addcard-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--sf-addcard-veil);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;transition:opacity .15s;pointer-events:none}.sf-addcard:hover .sf-addcard-overlay,.sf-addcard:focus-visible .sf-addcard-overlay{opacity:1}.sf-addcard-addbtn{display:inline-flex;align-items:center;gap:var(--space-8);background:var(--sf-accent);color:var(--sf-on-accent);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-16);font-size:var(--text-xs);font-weight:600;box-shadow:0 4px 12px var(--sf-accent-shadow)}.sf-addcard-plus{font-size:var(--text-base);line-height:1;margin-top:-1px}.sf-addcard-meta{display:flex;flex-direction:column;gap:2px;padding:0 2px 2px}.sf-addcard-name{font-size:var(--text-xs);font-weight:600;color:var(--sf-text)}.sf-addcard-desc{font-size:var(--text-2xs);line-height:1.35;color:var(--sf-muted)}.sf-addempty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-12);padding:64px 20px;text-align:center;color:var(--sf-muted)}.sf-addempty-icon{display:flex;color:var(--sf-field-placeholder)}.sf-addempty-icon svg{width:30px;height:30px}.sf-addempty-title{font-size:var(--text-sm);font-weight:600;color:var(--sf-text)}.sf-frame--tablet,.sf-frame--mobile{align-self:stretch}.sf-frame--tablet{width:800px;outline:1px solid var(--sf-device-border);outline-offset:-1px}.sf-frame--mobile{width:390px;outline:1px solid var(--sf-device-border);outline-offset:-1px}[data-puck-entry] .es-zone:empty:not(.is-area-selected):not(.is-hovering-area:not(.is-root)){outline:none}[data-puck-entry] .es-zone.is-area-selected:not(.is-root),[data-puck-entry] .es-zone.is-hovering-area:not(.is-root){outline:none}[data-puck-entry] .es-zone:empty:is(.is-area-selected,.is-hovering-area:not(.is-root)){outline:1px solid var(--es-accent-line, #bfdbfe)}[data-puck-overlay-portal]:hover{outline:1px solid color-mix(in srgb,var(--es-accent, #2563eb) 60%,transparent);outline-offset:2px}[data-puck-overlay-portal],[data-puck-overlay-portal] *{pointer-events:auto!important}[data-puck-overlay-portal]:focus-within{outline:2px solid var(--es-accent-line, #bfdbfe);outline-offset:2px}[data-puck-overlay-portal]:hover:has([data-puck-overlay-portal]:hover){outline:none}[data-puck-entry]:has([data-puck-overlay-portal]:hover) .es-canvas-outline.is-hover{outline:none}.sf-insp-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;--sf-insp-pad-x: var(--es-insp-pad-x, var(--space-16));padding-block:var(--space-4) var(--space-20);--sf-select-arrow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23c3c3c3'><polygon points='0,0 100,0 50,50'/></svg>")}.sf-insp-body input[type=text]:not(:where(.rosh-focus-ring)),.sf-insp-body input[type=number]:not(:where(.rosh-focus-ring)),.sf-insp-body input:not([type]):not(:where(.rosh-focus-ring)),.sf-insp-body textarea:not(:where(.rosh-focus-ring)){width:100%;border:1px solid var(--sf-input-border);background:var(--sf-field-bg);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);color:var(--sf-field-text);font-family:var(--sf-font)}.sf-insp-body input:not(:where(.rosh-focus-ring))::placeholder,.sf-insp-body textarea:not(:where(.rosh-focus-ring))::placeholder{color:var(--sf-field-placeholder);opacity:1}.sf-insp-body textarea:not(:where(.rosh-focus-ring)){min-height:74px;line-height:1.45;resize:vertical}.sf-insp-body input[type=text]:not(:where(.rosh-focus-ring)):focus,.sf-insp-body input:not([type]):not(:where(.rosh-focus-ring)):focus,.sf-insp-body textarea:not(:where(.rosh-focus-ring)):focus{outline:none;border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-insp-body input[aria-invalid=true]{border-color:var(--sf-danger)}.sf-insp-body select{width:100%;border:1px solid var(--sf-input-border);background-color:var(--sf-field-bg);appearance:none;-webkit-appearance:none;background-image:var(--sf-select-arrow);background-size:12px;background-repeat:no-repeat;background-position:calc(100% - 12px) calc(50% + 3px);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);color:var(--sf-field-text);cursor:pointer}.sf-editor .sf-body .sf-panel .sf-insp-body select:hover{background-color:var(--sf-hover);background-image:var(--sf-select-arrow);border-color:var(--sf-input-border)}.sf-insp-body input[type=range]{accent-color:var(--sf-accent)}.sf-multi-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--sf-input-border);background:var(--sf-field-bg);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);font-family:var(--sf-font);color:var(--sf-field-text);text-align:left;cursor:pointer}.sf-multi-btn:focus-visible{outline:none;border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-multi-caret{font-size:var(--text-2xs);color:var(--sf-text-secondary);flex:none}.sf-multi-menu{margin:var(--space-8) 0 0;padding:4px;border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);display:flex;flex-direction:column}.sf-secttheme-btn{display:block;width:100%}.sf-secttheme-btn:focus-within{outline:none;border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-secttheme-btn .sf-theme-pick:focus-visible,.sf-secttheme-btn .sf-theme-edit:focus-visible{outline:none}.sf-secttheme-caret{flex:none;border:0;background:none;padding:var(--space-4) var(--space-2) var(--space-4) var(--space-8);font:inherit;line-height:1;color:var(--sf-text-secondary);cursor:pointer}.sf-secttheme-oncard{margin:0;padding:var(--space-8) var(--space-4) var(--space-8);font-size:var(--text-2xs);line-height:1.4;color:var(--sf-text-secondary)}.sf-secttheme-nopreview{display:block;height:74px;background:var(--sf-field-bg);border-bottom:1px dashed var(--sf-input-border)}.sf-secttheme-chip{width:30px;height:20px;flex:none;display:flex;overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--line-strong)}.sf-secttheme-chip i{display:block;height:100%;flex:1 1 auto}.sf-secttheme-chip i.sf-secttheme-chip-accent{flex:0 0 40%}.sf-secttheme-chip--none{background:var(--sf-field-bg);border-style:dashed}.sf-secttheme-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1 1 auto;min-width:0}.sf-secttheme-menu{display:flex;flex-direction:column;padding:4px;gap:8px;background:var(--sf-accent-tint)}.sf-secttheme-menu>.sf-secttheme-item{flex:none}.sf-secttheme-item{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-8) var(--space-8);border:0;background:transparent;border-radius:max(calc(var(--sf-field-radius) - 2px),2px);font-size:var(--text-sm);font-family:var(--sf-font);color:var(--sf-field-text);text-align:left;cursor:pointer}.sf-secttheme-item:hover{background:var(--sf-accent-ring)}.sf-secttheme-item.is-active{background:var(--sf-accent-ring);font-weight:600}.sf-secttheme-item:focus-visible,.sf-secttheme-done:focus-visible{outline:2px solid var(--sf-accent);outline-offset:-2px;border-radius:var(--radius-sm)}.sf-secttheme-sep{height:1px;margin:var(--space-4) 0;background:var(--sf-input-border)}.sf-secttheme-sheet{margin-top:var(--space-8);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);overflow:hidden}.sf-secttheme-sheet-head{display:flex;align-items:center;padding:var(--space-8) var(--space-12);background:var(--sf-field-bg);border-bottom:1px solid var(--sf-input-border);font-size:var(--text-xs);font-weight:600;color:var(--sf-field-text)}.sf-secttheme-done{margin-left:auto;padding:2px 4px;border:0;background:transparent;color:var(--sf-text-secondary);font-size:var(--text-2xs);font-family:var(--sf-font);cursor:pointer}.sf-secttheme-rows{padding:0 12px 12px}.sf-secttheme-rows>.es-field:first-child{margin-top:var(--es-rhythm-group-first)}.sf-secttheme-warn{margin:0;padding:var(--space-8) var(--space-12);border-top:1px solid var(--sf-input-border);background:var(--sf-accent-ring);font-size:var(--text-2xs);line-height:1.4;color:var(--sf-text-secondary)}.sf-panel--hidden{display:none}.sf-pages,.sf-styles{display:flex;flex-direction:column;min-height:0;height:100%}.sf-pages-find{flex:none;padding:0 var(--space-12) var(--space-8)}.sf-pages>.sf-note{margin:0 var(--space-12);padding:var(--space-12)}.sf-pages>.sf-note--error{margin-top:var(--space-4)}.sf-panel-head-actions{display:flex;align-items:center;gap:2px}.sf-insp-body .es-insp-tabs{padding:0;position:sticky;top:0;z-index:2;background:var(--sf-panel);box-shadow:0 -16px 0 0 var(--sf-panel)}.sf-field{margin-top:var(--es-rhythm-between)}.sf-insp-body .es-insp-row:has(.es-group-sub),.sf-theme-colours .es-group-sub,.sf-secttheme-rows .es-group-sub{border-top:1px solid var(--sf-line);margin-top:var(--space-32);padding-top:var(--space-32);margin-left:calc(var(--sf-insp-pad-x) * -1);margin-right:calc(var(--sf-insp-pad-x) * -1);padding-left:var(--sf-insp-pad-x);padding-right:var(--sf-insp-pad-x)}.sf-insp-body .es-insp-row:has(.es-group-sub) .es-group-sub{margin-top:0}.sf-insp-body .es-insp-row:nth-child(1 of:not([hidden],:empty,:has(>[data-sf-device-hidden],>[data-sf-no-control]))):has(.es-group-sub){border-top:0;margin-top:0;padding-top:var(--es-rhythm-group-first)}.sf-insp-body .es-insp-row:has(.es-group-sub)+.es-insp-row .sf-field,.sf-insp-body .es-insp-row:has(.es-group-head)+.es-insp-row .sf-field{margin-top:var(--es-rhythm-group-first)}.sf-field-label{display:block;font-size:var(--text-xs);font-weight:500;color:var(--sf-text-secondary);margin-bottom:var(--es-rhythm-within)}.sf-field-label--inline{margin-bottom:0}.sf-panel--right.sf-hints-folded .es-field-hint:not(.sf-hint-keep):not(:has(.sf-hint-keep)){display:none}.es-field-hint:has(.sf-hint-while-typing){display:none}.es-field:focus-within>.es-field-hint:has(.sf-hint-while-typing){display:block}.es-insp-row:has(>[data-sf-no-control]){display:none!important}.sf-header-value[data-changed]{color:var(--sf-text)}.sf-field-readonly{border:1px solid var(--sf-input-border);background:var(--sf-chip-bg);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);color:var(--sf-text-secondary);font-family:var(--sf-font);cursor:default;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-field-head{display:flex;align-items:center;gap:8px;margin-bottom:var(--es-rhythm-within)}.sf-field-head .sf-field-label{flex:1;min-width:0;margin-bottom:0}.sf-field-eye{flex:none;width:22px;height:22px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--sf-muted);display:flex;align-items:center;justify-content:center;opacity:.6;transition:background .12s,color .12s,opacity .12s}.sf-field-eye:hover{background:var(--sf-hover);opacity:1;color:var(--sf-text-secondary)}.es-field.is-hidden .es-field-label{color:var(--sf-muted);text-decoration:line-through}.es-field.is-hidden .sf-field-eye{opacity:1;color:var(--sf-text-secondary)}.es-field.is-hidden input,.es-field.is-hidden textarea,.es-field.is-hidden .sf-markup-bar{opacity:.5}.sf-copybox{border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);overflow:hidden}.sf-copybox:focus-within{border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-copybox>.sf-markup-bar{margin-bottom:0;padding:var(--space-4) var(--space-8);border-bottom:1px solid var(--sf-input-border);background:var(--sf-hover)}.sf-copybox:not(:focus-within)>.sf-markup-bar{display:none}.sf-copybox>input,.sf-copybox>textarea,.sf-insp-body .sf-copybox>input[type=text],.sf-insp-body .sf-copybox>input:not([type]),.sf-insp-body .sf-copybox>textarea{border:none;border-radius:0;background:transparent;display:block;width:100%}.sf-copybox>input:focus,.sf-copybox>textarea:focus,.sf-insp-body .sf-copybox>input[type=text]:focus,.sf-insp-body .sf-copybox>input:not([type]):focus,.sf-insp-body .sf-copybox>textarea:focus{box-shadow:none}.sf-swatches{display:flex;align-items:center;gap:var(--space-12)}.sf-swatch{width:26px;height:26px;border-radius:var(--radius-lg);border:none;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px var(--line-strong)}.sf-swatch.is-active{box-shadow:0 0 0 2px var(--sf-panel),0 0 0 4px var(--sf-accent)}.sf-swatch-hex{font-size:var(--text-2xs);color:var(--sf-muted);font-variant-numeric:tabular-nums;margin-left:2px}.sf-colour{display:inline-flex;align-items:center;gap:var(--space-8);min-width:0}.es-field-head>.sf-colour{margin-left:auto}.sf-colour-hexwrap{flex:none;display:flex}.sf-colour-caption{font-size:var(--text-xs);color:var(--sf-muted);white-space:nowrap}.sf-editor .sf-colour input.sf-colour-hex.is-inherited,.sf-editor .sf-insp-body .sf-colour input[type=text].sf-colour-hex.is-inherited{color:var(--sf-muted)}.sf-chooser{display:flex;width:100%;align-items:center;gap:8px;padding:var(--space-8) var(--space-12);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-field-text);font-size:var(--text-sm);text-align:left;cursor:pointer}.sf-chooser:hover{background:var(--sf-hover)}.sf-chooser-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-chooser-meta{flex:none;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--sf-disabled)}.sf-chooser-caret{flex:none;color:var(--sf-disabled)}.sf-chooser-menu{position:absolute;left:0;z-index:50;margin-top:4px;width:100%;overflow:hidden;padding:4px 0;border:1px solid var(--sf-divider);border-radius:var(--sf-field-radius);background:var(--sf-panel);box-shadow:var(--es-menu-shadow)}.sf-chooser-menu--tall{max-height:256px;overflow:hidden auto}.sf-chooser-item{display:flex;width:100%;align-items:center;gap:8px;padding:var(--space-8) var(--space-12);border:0;background:none;text-align:left;font-size:var(--text-sm);color:var(--sf-text-secondary);cursor:pointer}.sf-chooser-item:hover{background:var(--sf-hover)}.sf-chooser-item.is-active{font-weight:600;color:var(--sf-text)}.sf-chooser-add{color:var(--sf-accent-text);font-weight:500}.sf-chooser-add:hover{background:var(--sf-hover)}.sf-rungs{display:flex;width:100%;gap:4px}.sf-rung{flex:1;padding:4px 8px;border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-text-secondary);font-size:var(--text-xs);cursor:pointer}.sf-rung:hover:not(.is-active){background:var(--sf-hover)}.sf-rung.is-active{border-color:var(--sf-disabled);background:var(--sf-chip-bg);color:var(--sf-text);font-weight:600}.sf-shadow-chip{display:block;flex:none;box-sizing:border-box;width:16px;height:11px;border:1px solid var(--sf-disabled);background:var(--sf-field-bg)}.sf-hints{display:flex;margin-top:var(--space-32)}.sf-hints-toggle{display:inline-flex;flex:none;align-items:center;gap:var(--space-8);color:var(--sf-muted)}.sf-hints-toggle svg{flex:none}.sf-scale-a{flex:none;font-size:var(--text-2xs);line-height:1;color:var(--sf-disabled)}.sf-scale-a--lg{font-size:var(--text-base);color:var(--sf-muted)}.sf-auto-reset{padding:var(--space-2) var(--space-8);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);font-size:var(--text-2xs);color:var(--sf-text-secondary);cursor:pointer}.sf-auto-reset:hover{background:var(--sf-hover)}.sf-site-styles-tabpanel>:first-child{margin-top:var(--es-rhythm-group-first)}.sf-style-list{display:flex;flex-direction:column}.sf-style-head{display:flex;width:100%;align-items:center;gap:8px;padding:var(--space-12) 0;background:none;border:0;text-align:left;cursor:pointer}.sf-style-head:hover .sf-style-sample{color:var(--sf-text)}.sf-style-caret{display:inline-flex;flex:none;align-items:center;color:var(--sf-disabled);transition:transform .12s ease}.sf-style-row.is-open .sf-style-caret{transform:rotate(90deg)}.sf-style-name{flex:none;font-size:var(--text-2xs);font-weight:600;color:var(--sf-muted)}.sf-style-sample{min-width:0;margin-left:auto;overflow:hidden;color:var(--sf-text);text-overflow:ellipsis;white-space:nowrap}.sf-style-sample-tip{position:relative;display:flex;min-width:0;margin-left:auto}.sf-style-slot{display:inline-flex;flex:none;width:14px;height:14px;align-items:center;justify-content:center;color:var(--sf-muted);opacity:0;transform:scale(.6);transition:opacity .16s ease,transform .16s ease}.sf-style-slot.is-saved{opacity:1;transform:scale(1)}@media(prefers-reduced-motion:reduce){.sf-style-slot{transition:none}}.sf-style-body{padding:2px 0 12px}.sf-select{padding:var(--space-8) var(--space-8);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-text);font-size:var(--text-xs);cursor:pointer}.sf-rung--glyph{flex:0 0 34px;font-size:var(--text-sm);line-height:18px;text-align:center}.sf-rung--glyph:disabled{color:var(--sf-disabled);cursor:not-allowed}.sf-rung--glyph:disabled:hover{background:var(--sf-field-bg)}.sf-rung-tip{position:relative;display:inline-flex;flex:0 0 34px}.sf-rung-tip .sf-rung--glyph{flex:1}.sf-tip-disabled{display:inline-flex}.sf-rung-tip>.sf-tip-disabled{flex:1}.sf-tip-disabled>button:disabled{pointer-events:none}.sf-tip-disabled:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px;border-radius:var(--radius-sm)}.sf-theme-list{display:flex;flex-direction:column;gap:8px;margin-top:max(var(--es-row-gap),var(--es-rhythm-group-first))}.sf-theme-card,.sf-secttheme-btn{border:1px solid var(--sf-input-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--sf-panel)}.sf-theme-card:hover,.sf-secttheme-btn:hover{border-color:var(--sf-muted)}.sf-theme-card.is-selected{border-color:var(--sf-accent);box-shadow:0 0 0 2px var(--sf-accent-ring)}.sf-theme-pick{display:block;width:100%;padding:0;border:0;background:none;font:inherit;text-align:left;cursor:pointer}.sf-theme-page{display:flex;flex-direction:column;gap:4px;padding:var(--space-12) var(--space-12)}.sf-theme-eyebrow{font-size:7.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1}.sf-theme-headline{font-size:var(--text-sm);font-weight:750;letter-spacing:-.01em;line-height:1.1}.sf-theme-body{font-size:9.5px;line-height:1.4;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sf-theme-row{display:flex;align-items:center;gap:var(--space-8);margin-top:1px}.sf-theme-btn{font-size:8.5px;font-weight:700;letter-spacing:.02em;padding:var(--space-8) var(--space-12);border-radius:var(--radius-sm);white-space:nowrap;flex:none}.sf-theme-mini{flex:1;min-width:0;height:22px;border-radius:var(--radius-sm);border:1px solid;display:flex;align-items:center;justify-content:center;font-size:7.5px;font-weight:600;opacity:.75}.sf-theme-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:var(--space-8) var(--space-8) var(--space-8) var(--space-12);background:var(--sf-hover)}.sf-theme-card.is-selected .sf-theme-foot{color:var(--sf-accent-text)}.sf-theme-name{font-size:var(--text-2xs);font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-theme-warn{flex:none;margin-left:auto;font-size:var(--text-2xs);font-weight:700;color:var(--status-warning-soft-ink);white-space:nowrap}.sf-theme-warn+.sf-theme-edit{margin-left:8px}.sf-theme-name{margin-right:auto}.sf-theme-edit{flex:none}.sf-theme-colours{padding:0 12px 12px}.sf-theme-colours[hidden]{display:none}.sf-theme-colours>.es-field:first-child{margin-top:var(--es-rhythm-group-first)}.sf-theme-reset{margin-top:var(--es-rhythm-between-tight)}.sf-theme-add{display:flex;align-items:center;gap:var(--space-8);margin-top:8px;border:0;background:none;font:inherit;font-size:var(--text-xs);font-weight:600;color:var(--sf-accent-text);padding:4px 0;cursor:pointer}.sf-theme-add:hover{text-decoration:underline}.sf-colour-lede{margin-top:-3px;margin-bottom:var(--space-12)}.sf-colour-pair{border:1px solid var(--sf-divider);border-radius:var(--sf-row-radius);padding:var(--space-2) var(--space-12) var(--space-12);background:var(--sf-app-bg)}.sf-colour-row{margin-top:var(--space-12);display:flex;align-items:center;justify-content:space-between;gap:12px}.sf-colour-mode{font-size:var(--text-xs);font-weight:500;color:var(--sf-text-secondary)}.sf-colour-mode small{display:block;margin-top:1px;font-size:var(--text-2xs);font-weight:400;color:var(--sf-muted)}.sf-readability{margin-top:var(--space-12);padding:var(--space-12) var(--space-12) var(--space-12);border:1px solid var(--sf-divider);border-radius:var(--sf-row-radius)}.sf-readability-row{display:flex;align-items:center;gap:var(--space-12);padding:4px 0;font-size:var(--text-xs)}.sf-readability-who{flex:1;color:var(--sf-text-secondary)}.sf-readability-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--sf-disabled)}.sf-readability-val{color:var(--sf-muted)}.sf-readability-dot.is-good{background:var(--sf-muted)}.sf-readability-dot.is-large-only{background:var(--sf-warning)}.sf-readability-dot.is-hard{background:var(--sf-danger)}.sf-readability-val.is-good{color:var(--sf-text-secondary)}.sf-readability-val.is-large-only{color:var(--sf-warning)}.sf-readability-val.is-hard{color:var(--sf-danger)}.sf-readability-advice{margin-top:var(--space-8);font-size:var(--text-2xs);line-height:1.6;color:var(--sf-muted)}.sf-readability-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-top:8px}.sf-readability-suggestion{display:inline-flex;align-items:center;gap:var(--space-8);height:26px;padding:0 var(--space-12);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-btn-text);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;cursor:pointer}.sf-readability-suggestion:hover{background:var(--sf-hover)}.sf-readability-chip{width:9px;height:9px;flex:none;border-radius:calc(var(--radius-sm) / 2);box-shadow:inset 0 0 0 1px var(--line-strong)}.sf-slider{display:flex;align-items:center;gap:12px}.es-field-ctl>.sf-slider{flex:1;min-width:0}.sf-slider>.sf-slider-track{flex:1;min-width:0}.sf-slider.has-notch{position:relative}.sf-slider.has-notch:before{content:"";position:absolute;top:50%;left:calc(7px + (100% - 14px) * var(--sf-notch));width:2px;height:10px;margin-top:-5px;border-radius:calc(var(--radius-sm) / 2);background:var(--sf-input-border);pointer-events:none}.sf-preview-pin{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:var(--space-12) var(--space-16);background:var(--sf-panel)}.sf-preview-pin-text{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.sf-preview-pin-label{font-size:var(--text-sm);font-weight:500;color:var(--sf-text)}.sf-preview-pin-hint{font-size:var(--text-2xs);color:var(--sf-muted)}.sf-colstep{display:flex;align-items:center;gap:var(--space-8)}.sf-colstep-value{min-width:14px;text-align:center;font-size:var(--text-sm);font-weight:500;color:var(--sf-text)}.sf-checkbox{cursor:pointer}.sf-locked{opacity:.5;pointer-events:none}.sf-seg2 button:focus-visible,.sf-readability-suggestion:focus-visible,.sf-swatch:focus-visible,.sf-field-eye:focus-visible,.sf-insp-body select:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px}.sf-seg2 button:focus-visible{outline-offset:-1px}.sf-seg2{display:flex;gap:var(--space-4);background:var(--sf-track-bg);border:1px solid var(--sf-input-border);border-radius:var(--radius-lg);padding:var(--space-4)}.sf-seg2 button{flex:1;border:none;background:transparent;border-radius:var(--radius-md);padding:var(--space-8) var(--space-8);font-size:var(--text-xs);font-weight:500;color:var(--sf-icon);cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}@container (width < 284px){.sf-seg2 button{padding-inline:var(--space-8)}}.sf-seg2 button:hover:not(.is-active){color:var(--sf-text-secondary);background:var(--sf-hover)}.sf-seg2 button.is-active{background:var(--sf-raised);color:var(--sf-text-strong);box-shadow:var(--es-raised-shadow)}.sf-seg2[data-disabled]{opacity:.5;cursor:not-allowed}.sf-seg2[data-disabled] button{cursor:not-allowed;color:var(--sf-disabled)}.sf-seg2[data-disabled] button.is-active{color:var(--sf-text-secondary)}.sf-seg2[data-disabled] button:hover:not(.is-active){background:transparent;color:var(--sf-disabled)}.sf-seg2 button>svg{display:block;margin:0 auto}.es-list-above>.sf-markup-bar{margin-bottom:0}input.sf-list-marking{border-color:var(--sf-accent);box-shadow:0 0 0 1px var(--sf-accent-tint)}.sf-blogsource{display:flex;flex-direction:column;gap:var(--space-12)}.sf-blogsource-action{align-self:flex-start}.sf-blogsource-status{margin:0;font-size:var(--text-xs);color:var(--sf-text-secondary)}.sf-blogsource-status[data-state=error]{color:var(--sf-danger)}.sf-source-open{display:inline;padding:0;border:0;background:none;font:inherit;color:var(--sf-accent-text);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.sf-source-open:hover{color:var(--sf-accent)}.sf-source-open:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px;border-radius:calc(var(--radius-sm) / 2)}.sf-formpicker{display:flex;flex-direction:column;gap:var(--space-12)}.sf-formsummary-caption{margin-bottom:4px;font-size:var(--text-2xs);font-weight:600;letter-spacing:.02em;color:var(--sf-text-secondary)}.sf-formsummary-fields{margin:0;padding-left:var(--space-20);font-size:var(--text-xs);line-height:1.55;color:var(--sf-text-secondary)}.sf-formsummary-warn{margin:0;font-size:var(--text-xs);line-height:1.45;color:var(--sf-danger)}.sf-formsummary-actions{display:flex;flex-wrap:wrap;gap:8px}.sf-image-slot-inert{border:1.5px dashed var(--sf-input-border);border-radius:var(--radius-lg);padding:var(--space-12) var(--space-16);font-size:var(--text-xs);line-height:1.5;color:var(--sf-muted);background-image:repeating-linear-gradient(45deg,var(--sf-hatch) 0 1px,transparent 1px 12px)}.sf-note{padding:var(--space-16) var(--space-16);font-size:var(--text-sm);line-height:1.5;color:var(--sf-muted)}.sf-note p+p{margin-top:8px}.sf-note strong{color:var(--sf-text);font-weight:600}.sf-note-detail{margin-top:var(--space-12);font-size:var(--text-2xs);color:var(--sf-muted);opacity:.75;word-break:break-all}.sf-note--error{color:var(--sf-danger);background:var(--sf-danger-tint);border-radius:var(--radius-md)}.sf-part-style{position:relative;margin:0 0 4px;padding:var(--space-12) var(--space-16);border:1px solid var(--sf-divider);border-radius:var(--radius-xl);background:var(--sf-track-bg)}.sf-part-style.has-overrides{border-color:var(--sf-accent-ring)}.sf-part-style.has-overrides:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--sf-accent);border-radius:var(--radius-xl) 0 0 var(--radius-xl)}.sf-part-style-caption{margin-bottom:2px;font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sf-muted)}.sf-part-style-count{margin-bottom:var(--space-4);font-size:var(--text-2xs);font-weight:600;color:var(--sf-muted)}.sf-part-style-name{min-width:0;font-size:var(--text-xl);line-height:1.15;letter-spacing:-.01em;color:var(--sf-text-strong);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sf-part-style-pick{position:relative}.sf-part-style-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer;min-width:0}.sf-part-style-trigger .sf-part-style-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-part-style-sign{margin-left:auto;width:16px;flex:none;text-align:center;color:var(--sf-muted);font-size:var(--text-sm);line-height:1}.sf-part-style-trigger[aria-expanded=false] .sf-part-style-sign:before{content:"+"}.sf-part-style-trigger[aria-expanded=true] .sf-part-style-sign:before{content:"\2212"}.sf-part-style-trigger:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px;border-radius:var(--radius-sm)}.sf-part-style-menu{position:absolute;z-index:30;left:0;right:0;box-shadow:var(--es-menu-shadow)}.sf-part-style-option{display:flex;align-items:baseline;gap:8px;width:100%;padding:var(--space-8) var(--space-12);border:0;background:none;text-align:left;font-size:var(--text-sm);color:var(--sf-field-text);border-radius:max(calc(var(--sf-field-radius) - 2px),2px);cursor:pointer}.sf-part-style-option:hover{background:var(--sf-accent-ring)}.sf-part-style-option:focus-visible{outline:2px solid var(--sf-accent);outline-offset:-2px}.sf-part-style-option.is-on{background:var(--sf-accent-ring);font-weight:600}.sf-part-style-option-name{flex:0 0 auto;white-space:nowrap}.sf-part-style-option .sf-note{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.es-fsel-label.sf-part-style-keep{flex:none}.sf-part-style-aside{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-2xs);font-weight:400;color:var(--es-muted)}.sf-part-style-meta{margin-top:1px;font-size:var(--text-2xs);color:var(--sf-muted);font-variant-numeric:tabular-nums}.sf-part-style-top{display:flex;align-items:center;gap:var(--space-12);margin-top:8px}.sf-part-style-gap{flex:1}.sf-part-style-state{font-size:var(--text-xs);color:var(--sf-text-secondary)}.sf-part-chip{display:inline-flex;align-items:center;border-radius:999px;padding:var(--space-2) var(--space-12);background:var(--sf-accent-tint);color:var(--sf-accent-text);font-size:var(--text-2xs);font-weight:700;font-variant-numeric:tabular-nums}.sf-part-link{border:0;background:none;padding:0;font:inherit;font-size:var(--text-xs);font-weight:500;color:var(--sf-accent-text);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--sf-accent-ring)}.sf-part-link:hover{text-decoration-color:currentColor}.es-group-body>.sf-note{margin:12px 0 -4px;padding:0 0 0 2px}.sf-slot-rows>.sf-note{padding:var(--space-12) var(--space-12) var(--space-12)}.sf-part-field.is-style-value>.es-field-head>.es-field-value{color:var(--sf-muted)}.sf-part-select{width:100%;min-width:0}.sf-part-ink{display:flex;flex-direction:column;gap:8px;min-width:0}.sf-part-ink-top{display:flex;align-items:baseline;gap:8px}.sf-part-ink-label{font-size:var(--text-2xs);font-weight:600;color:var(--sf-muted)}.sf-part-ink-read{margin-left:auto;font-size:var(--text-xs);color:var(--sf-text-secondary);font-variant-numeric:tabular-nums}.sf-part-ink-swatches{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8)}.sf-part-mark{width:18px;height:18px;flex:none;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:none;color:var(--sf-accent);cursor:pointer}.sf-part-mark-dot{transform-origin:center;transition:transform .15s ease,opacity .15s ease}.sf-part-mark-arrow{opacity:0;transition:opacity .15s ease}.sf-part-mark:hover .sf-part-mark-dot,.sf-part-mark:focus-visible .sf-part-mark-dot{transform:scale(0);opacity:0}.sf-part-mark:hover .sf-part-mark-arrow,.sf-part-mark:focus-visible .sf-part-mark-arrow{opacity:1}@media(prefers-reduced-motion:reduce){.sf-part-mark-dot,.sf-part-mark-arrow{transition:none}}.sf-part-text{margin-top:4px;margin-bottom:4px}.sf-part-text .sf-copybox textarea{min-height:84px;line-height:1.5;resize:vertical}.sf-entries{margin-top:32px}.sf-entries-head{margin:var(--space-16) 0 var(--space-4);font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sf-muted)}.sf-entry-eye{display:inline-flex;align-items:center;color:var(--sf-muted)}.sf-slot-rows .sf-add-card{padding:var(--space-8) var(--space-12);border-radius:0}.sf-gallery-filter{display:flex;gap:var(--space-8);flex-wrap:wrap}.sf-gallery-filter button{border:1px solid var(--sf-input-border);background:var(--sf-field-bg);border-radius:999px;padding:var(--space-4) var(--space-12);font-size:var(--text-xs);font-weight:600;color:var(--sf-icon);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.sf-gallery-filter button:hover{background:var(--sf-hover)}.sf-gallery-filter button[aria-pressed=true]{background:var(--sf-accent);border-color:var(--sf-accent);color:var(--sf-on-accent)}.sf-gallery-layouts{margin-top:var(--space-8)}.es-field-ctl>.sf-gallery-layouts,.es-field-ctl>.sf-gallery-filter{flex:1 1 auto;min-width:0}.sf-gallery-pic{width:100%;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:6px;grid-auto-flow:row dense;gap:2px}.sf-gallery-pic i{display:block;background:var(--sf-track-bg);border-radius:calc(var(--radius-sm) / 2)}.sf-gallery-layouts button[aria-pressed=true] .sf-gallery-pic i{background:var(--sf-accent)}.sf-gallery-count{font-size:var(--text-2xs);color:var(--sf-disabled);margin-top:var(--space-8)}.sf-locations-view{margin-top:var(--es-rhythm-between)}.sf-blogsource>.es-field-hint,.sf-formsummary .es-field-hint{margin:0}.es-field-ctl>.sf-copybox{flex:1 1 auto;min-width:0}.sf-canvas-notice{position:absolute;top:8px;left:8px;right:8px;z-index:1}.es-ts+.es-ts-section{margin-top:var(--es-rhythm-group)}
1
+ .sf-embedded{height:100%;min-height:0}.sf-embedded .sf-editor{height:100%}.sf-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.sf-panel-heading{display:flex;align-items:baseline;gap:var(--space-8);min-width:0}.sf-panel-site{display:block;margin:0;min-width:0;overflow:hidden;font-size:var(--text-2xs);font-weight:500;color:var(--sf-muted);white-space:nowrap;text-overflow:ellipsis}.sf-name-tip{position:relative;display:block;min-width:0;max-width:100%}.sf-name-text{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sf-panel-site:before{content:"\b7";margin-right:var(--space-8)}.sf-x{width:24px;height:24px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--sf-muted);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm)}.sf-x:hover{background:var(--sf-hover)}.sf-gap{position:relative;display:block;width:100%;height:9px;margin:-2px 0;padding:0;border:0;background:transparent;cursor:pointer;z-index:1}.sf-gap-line{position:absolute;left:12px;right:12px;top:50%;height:2px;transform:translateY(-50%);border-radius:calc(var(--radius-sm) / 2);background:var(--sf-accent);opacity:0;transition:opacity .12s}.sf-gap-plus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);width:18px;height:18px;border-radius:50%;background:var(--sf-accent);color:var(--sf-on-accent);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);line-height:1;box-shadow:0 0 0 2px var(--sf-panel);opacity:0;transition:opacity .12s,transform .12s}.sf-gap:hover .sf-gap-line,.sf-gap:focus-visible .sf-gap-line{opacity:1}.sf-gap:hover .sf-gap-plus,.sf-gap:focus-visible .sf-gap-plus{opacity:1;transform:translate(-50%,-50%) scale(1)}.sf-subtree{margin:var(--es-rhythm-between) 0 var(--es-rhythm-between) 16px;padding-left:var(--space-12);border-left:1px solid var(--sf-line);display:flex;flex-direction:column;gap:var(--es-rhythm-between)}.sf-addside-sitewide{display:flex;align-items:center;gap:var(--space-12);margin-top:16px;padding:var(--space-12);border:1px solid var(--sf-divider);border-radius:var(--radius-xl)}.sf-addside-sitewide-glyph{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-lg);background:var(--sf-hover);color:var(--sf-muted)}.sf-addside-sitewide-name{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:0;background:none;font:600 var(--text-xs)/1.3 var(--sf-font);color:var(--sf-text);text-align:left;cursor:pointer}.sf-addside-sitewide-name:hover{color:var(--sf-accent)}.sf-addside-sitewide-desc{font-weight:400;font-size:var(--text-xs);color:var(--sf-muted)}.sf-thumb{--sf-thumb-card: #ffffff;--sf-thumb-thumb-bg: #fcfdff;--sf-thumb-thumb-border: #edeff4;--sf-thumb-block: #e9ebf0;--sf-thumb-bar-light: #dde1e8;--sf-thumb-bar-dark: #c3c9d3;--sf-thumb-hatch1: #e2e5ec;--sf-thumb-hatch2: #edeff4;--sf-thumb-accent: #2f6bed;--sf-thumb-accent-tint: #e6edfd;--sf-thumb-border: #e7eaf1;--sf-thumb-ink: #1b2027;--sf-thumb-ink-2: #39434f;--sf-thumb-ink-soft: #2c3540;--sf-thumb-ink-soft-2: #4a5763;--sf-thumb-paper: #f4f1ed;--sf-thumb-paper-2: #cfc8bf;--sf-thumb-warm: #e7c26a;--sf-thumb-rust: #b4652a;--sf-thumb-on-ink: #ffffff;--sf-thumb-scene-text: #171412;--sf-thumb-scene-muted: #6b7280;--sf-thumb-scene-rule: #eceef1;--sf-thumb-mark-1: #c8ccd1;--sf-thumb-mark-2: #8e9aa6;--sf-thumb-scrim: rgba(0, 0, 0, .55)}@keyframes sf-thumb-marquee{0%{transform:translate(0)}to{transform:translate(-33.34%)}}.sf-addcard-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--sf-addcard-veil);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;transition:opacity .15s;pointer-events:none}.sf-addcard:hover .sf-addcard-overlay,.sf-addcard:focus-visible .sf-addcard-overlay{opacity:1}.sf-addcard-addbtn{display:inline-flex;align-items:center;gap:var(--space-8);background:var(--sf-accent);color:var(--sf-on-accent);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-16);font-size:var(--text-xs);font-weight:600;box-shadow:0 4px 12px var(--sf-accent-shadow)}.sf-addcard-plus{font-size:var(--text-base);line-height:1;margin-top:-1px}.sf-addcard-meta{display:flex;flex-direction:column;gap:2px;padding:0 2px 2px}.sf-addcard-name{font-size:var(--text-xs);font-weight:600;color:var(--sf-text)}.sf-addcard-desc{font-size:var(--text-2xs);line-height:1.35;color:var(--sf-muted)}.sf-addempty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-12);padding:64px 20px;text-align:center;color:var(--sf-muted)}.sf-addempty-icon{display:flex;color:var(--sf-field-placeholder)}.sf-addempty-icon svg{width:30px;height:30px}.sf-addempty-title{font-size:var(--text-sm);font-weight:600;color:var(--sf-text)}.sf-frame--tablet,.sf-frame--mobile{align-self:stretch}.sf-frame--tablet{width:800px;outline:1px solid var(--sf-device-border);outline-offset:-1px}.sf-frame--mobile{width:390px;outline:1px solid var(--sf-device-border);outline-offset:-1px}[data-puck-entry] .es-zone:empty:not(.is-area-selected):not(.is-hovering-area:not(.is-root)){outline:none}[data-puck-entry] .es-zone.is-area-selected:not(.is-root),[data-puck-entry] .es-zone.is-hovering-area:not(.is-root){outline:none}[data-puck-entry] .es-zone:empty:is(.is-area-selected,.is-hovering-area:not(.is-root)){outline:1px solid var(--es-accent-line, #bfdbfe)}[data-puck-overlay-portal]:hover{outline:1px solid color-mix(in srgb,var(--es-accent, #2563eb) 60%,transparent);outline-offset:2px}[data-puck-overlay-portal],[data-puck-overlay-portal] *{pointer-events:auto!important}[data-puck-overlay-portal]:focus-within{outline:2px solid var(--es-accent-line, #bfdbfe);outline-offset:2px}[data-puck-overlay-portal]:hover:has([data-puck-overlay-portal]:hover){outline:none}[data-puck-entry]:has([data-puck-overlay-portal]:hover) .es-canvas-outline.is-hover{outline:none}.sf-insp-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;padding-block:var(--space-4) var(--space-20);--sf-insp-bar-w: 0px;--sf-insp-pad-end: calc(var(--es-insp-pad-x) - var(--sf-insp-bar-w));padding-inline-end:var(--sf-insp-pad-end);--sf-select-arrow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23c3c3c3'><polygon points='0,0 100,0 50,50'/></svg>")}@supports selector(::-webkit-scrollbar){.sf-insp-body{--sf-insp-bar-w: var(--space-8)}.sf-insp-body::-webkit-scrollbar{width:var(--sf-insp-bar-w)}.sf-insp-body::-webkit-scrollbar-thumb{border-width:var(--space-2)}}.sf-insp-body input[type=text]:not(:where(.rosh-focus-ring)),.sf-insp-body input[type=number]:not(:where(.rosh-focus-ring)),.sf-insp-body input:not([type]):not(:where(.rosh-focus-ring)),.sf-insp-body textarea:not(:where(.rosh-focus-ring)){width:100%;border:1px solid var(--sf-input-border);background:var(--sf-field-bg);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);color:var(--sf-field-text);font-family:var(--sf-font)}.sf-insp-body input:not(:where(.rosh-focus-ring))::placeholder,.sf-insp-body textarea:not(:where(.rosh-focus-ring))::placeholder{color:var(--sf-field-placeholder);opacity:1}.sf-insp-body textarea:not(:where(.rosh-focus-ring)){min-height:74px;line-height:1.45;resize:vertical}.sf-insp-body input[type=text]:not(:where(.rosh-focus-ring)):focus,.sf-insp-body input:not([type]):not(:where(.rosh-focus-ring)):focus,.sf-insp-body textarea:not(:where(.rosh-focus-ring)):focus{outline:none;border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-insp-body input[aria-invalid=true]{border-color:var(--sf-danger)}.sf-insp-body select{width:100%;border:1px solid var(--sf-input-border);background-color:var(--sf-field-bg);appearance:none;-webkit-appearance:none;background-image:var(--sf-select-arrow);background-size:12px;background-repeat:no-repeat;background-position:calc(100% - 12px) calc(50% + 3px);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);color:var(--sf-field-text);cursor:pointer}.sf-editor .sf-body .sf-panel .sf-insp-body select:hover{background-color:var(--sf-hover);background-image:var(--sf-select-arrow);border-color:var(--sf-input-border)}.sf-insp-body input[type=range]{accent-color:var(--sf-accent)}.sf-multi-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--sf-input-border);background:var(--sf-field-bg);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);font-family:var(--sf-font);color:var(--sf-field-text);text-align:left;cursor:pointer}.sf-multi-btn:focus-visible{outline:none;border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-multi-caret{font-size:var(--text-2xs);color:var(--sf-text-secondary);flex:none}.sf-multi-menu{margin:var(--space-8) 0 0;padding:4px;border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);display:flex;flex-direction:column}.sf-secttheme-btn{display:block;width:100%}.sf-secttheme-btn:focus-within{outline:none;border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-secttheme-btn .sf-theme-pick:focus-visible,.sf-secttheme-btn .sf-theme-edit:focus-visible{outline:none}.sf-secttheme-caret{flex:none;border:0;background:none;padding:var(--space-4) var(--space-2) var(--space-4) var(--space-8);font:inherit;line-height:1;color:var(--sf-text-secondary);cursor:pointer}.sf-secttheme-oncard{margin:0;padding:var(--space-8) var(--space-4) var(--space-8);font-size:var(--text-2xs);line-height:1.4;color:var(--sf-text-secondary)}.sf-secttheme-nopreview{display:block;height:74px;background:var(--sf-field-bg);border-bottom:1px dashed var(--sf-input-border)}.sf-secttheme-chip{width:30px;height:20px;flex:none;display:flex;overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--line-strong)}.sf-secttheme-chip i{display:block;height:100%;flex:1 1 auto}.sf-secttheme-chip i.sf-secttheme-chip-accent{flex:0 0 40%}.sf-secttheme-chip--none{background:var(--sf-field-bg);border-style:dashed}.sf-secttheme-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1 1 auto;min-width:0}.sf-secttheme-menu{display:flex;flex-direction:column;padding:4px;gap:8px;background:var(--sf-accent-tint)}.sf-secttheme-menu>.sf-secttheme-item{flex:none}.sf-secttheme-item{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-8) var(--space-8);border:0;background:transparent;border-radius:max(calc(var(--sf-field-radius) - 2px),2px);font-size:var(--text-sm);font-family:var(--sf-font);color:var(--sf-field-text);text-align:left;cursor:pointer}.sf-secttheme-item:hover{background:var(--sf-accent-ring)}.sf-secttheme-item.is-active{background:var(--sf-accent-ring);font-weight:600}.sf-secttheme-item:focus-visible,.sf-secttheme-done:focus-visible{outline:2px solid var(--sf-accent);outline-offset:-2px;border-radius:var(--radius-sm)}.sf-secttheme-sep{height:1px;margin:var(--space-4) 0;background:var(--sf-input-border)}.sf-secttheme-sheet{margin-top:var(--space-8);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);overflow:hidden}.sf-secttheme-sheet-head{display:flex;align-items:center;padding:var(--space-8) var(--space-12);background:var(--sf-field-bg);border-bottom:1px solid var(--sf-input-border);font-size:var(--text-xs);font-weight:600;color:var(--sf-field-text)}.sf-secttheme-done{margin-left:auto;padding:2px 4px;border:0;background:transparent;color:var(--sf-text-secondary);font-size:var(--text-2xs);font-family:var(--sf-font);cursor:pointer}.sf-secttheme-rows{padding:0 12px 12px}.sf-secttheme-rows>.es-field:first-child{margin-top:var(--es-rhythm-group-first)}.sf-secttheme-warn{margin:0;padding:var(--space-8) var(--space-12);border-top:1px solid var(--sf-input-border);background:var(--sf-accent-ring);font-size:var(--text-2xs);line-height:1.4;color:var(--sf-text-secondary)}.sf-panel--hidden{display:none}.sf-pages,.sf-styles{display:flex;flex-direction:column;min-height:0;height:100%}.sf-pages-find{flex:none;padding:0 var(--space-12) var(--space-8)}.sf-pages>.sf-note{margin:0 var(--space-12);padding:var(--space-12)}.sf-pages>.sf-note--error{margin-top:var(--space-4)}.sf-panel-head-actions{display:flex;align-items:center;gap:2px}.sf-insp-body .es-insp-tabs{padding:0;position:sticky;top:0;z-index:2;background:var(--sf-panel);box-shadow:0 -16px 0 0 var(--sf-panel)}.sf-field{margin-top:var(--es-rhythm-between)}.sf-insp-body .es-insp-row:has(.es-group-sub),.sf-theme-colours .es-group-sub,.sf-secttheme-rows .es-group-sub{border-top:1px solid var(--sf-line);margin-top:var(--space-32);padding-top:var(--space-32);margin-left:calc(var(--es-insp-pad-x) * -1);margin-right:calc(var(--sf-insp-pad-end) * -1);padding-left:var(--es-insp-pad-x);padding-right:var(--sf-insp-pad-end)}.sf-insp-body .es-insp-row:has(.es-group-sub) .es-group-sub{margin-top:0}.sf-insp-body .es-insp-row:nth-child(1 of:not([hidden],:empty,:has(>[data-sf-device-hidden],>[data-sf-no-control]))):has(.es-group-sub){border-top:0;margin-top:0;padding-top:var(--es-rhythm-group-first)}.sf-insp-body .es-insp-row:has(.es-group-sub)+.es-insp-row .sf-field,.sf-insp-body .es-insp-row:has(.es-group-head)+.es-insp-row .sf-field{margin-top:var(--es-rhythm-group-first)}.sf-field-label{display:block;font-size:var(--text-xs);font-weight:500;color:var(--sf-text-secondary);margin-bottom:var(--es-rhythm-within)}.sf-field-label--inline{margin-bottom:0}.sf-panel--right.sf-hints-folded .es-field-hint:not(.sf-hint-keep):not(:has(.sf-hint-keep)){display:none}.es-field-hint:has(.sf-hint-while-typing){display:none}.es-field:focus-within>.es-field-hint:has(.sf-hint-while-typing){display:block}.es-insp-row:has(>[data-sf-no-control]){display:none!important}.sf-header-value[data-changed]{color:var(--sf-text)}.sf-field-readonly{border:1px solid var(--sf-input-border);background:var(--sf-chip-bg);border-radius:var(--sf-field-radius);padding:var(--space-8) var(--space-12);font-size:var(--text-sm);color:var(--sf-text-secondary);font-family:var(--sf-font);cursor:default;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-field-head{display:flex;align-items:center;gap:8px;margin-bottom:var(--es-rhythm-within)}.sf-field-head .sf-field-label{flex:1;min-width:0;margin-bottom:0}.sf-field-eye{flex:none;width:22px;height:22px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--sf-muted);display:flex;align-items:center;justify-content:center;opacity:.6;transition:background .12s,color .12s,opacity .12s}.sf-field-eye:hover{background:var(--sf-hover);opacity:1;color:var(--sf-text-secondary)}.es-field.is-hidden .es-field-label{color:var(--sf-muted);text-decoration:line-through}.es-field.is-hidden .sf-field-eye{opacity:1;color:var(--sf-text-secondary)}.es-field.is-hidden input,.es-field.is-hidden textarea,.es-field.is-hidden .sf-markup-bar{opacity:.5}.sf-copybox{border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);overflow:hidden}.sf-copybox:focus-within{border-color:var(--sf-accent);box-shadow:0 0 0 3px var(--sf-accent-ring)}.sf-copybox>.sf-markup-bar{margin-bottom:0;padding:var(--space-4) var(--space-8);border-bottom:1px solid var(--sf-input-border);background:var(--sf-hover)}.sf-copybox:not(:focus-within)>.sf-markup-bar{display:none}.sf-copybox>input,.sf-copybox>textarea,.sf-insp-body .sf-copybox>input[type=text],.sf-insp-body .sf-copybox>input:not([type]),.sf-insp-body .sf-copybox>textarea{border:none;border-radius:0;background:transparent;display:block;width:100%}.sf-copybox>input:focus,.sf-copybox>textarea:focus,.sf-insp-body .sf-copybox>input[type=text]:focus,.sf-insp-body .sf-copybox>input:not([type]):focus,.sf-insp-body .sf-copybox>textarea:focus{box-shadow:none}.sf-swatches{display:flex;align-items:center;gap:var(--space-12)}.sf-swatch{width:26px;height:26px;border-radius:var(--radius-lg);border:none;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px var(--line-strong)}.sf-swatch.is-active{box-shadow:0 0 0 2px var(--sf-panel),0 0 0 4px var(--sf-accent)}.sf-swatch-hex{font-size:var(--text-2xs);color:var(--sf-muted);font-variant-numeric:tabular-nums;margin-left:2px}.sf-colour{display:inline-flex;align-items:center;gap:var(--space-8);min-width:0}.es-field-head>.sf-colour{margin-left:auto}.sf-colour-hexwrap{flex:none;display:flex}.sf-colour-caption{font-size:var(--text-xs);color:var(--sf-muted);white-space:nowrap}.sf-editor .sf-colour input.sf-colour-hex.is-inherited,.sf-editor .sf-insp-body .sf-colour input[type=text].sf-colour-hex.is-inherited{color:var(--sf-muted)}.sf-chooser{display:flex;width:100%;align-items:center;gap:8px;padding:var(--space-8) var(--space-12);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-field-text);font-size:var(--text-sm);text-align:left;cursor:pointer}.sf-chooser:hover{background:var(--sf-hover)}.sf-chooser-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-chooser-meta{flex:none;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--sf-disabled)}.sf-chooser-caret{flex:none;color:var(--sf-disabled)}.sf-chooser-menu{position:absolute;left:0;z-index:50;margin-top:4px;width:100%;overflow:hidden;padding:4px 0;border:1px solid var(--sf-divider);border-radius:var(--sf-field-radius);background:var(--sf-panel);box-shadow:var(--es-menu-shadow)}.sf-chooser-menu--tall{max-height:256px;overflow:hidden auto}.sf-chooser-item{display:flex;width:100%;align-items:center;gap:8px;padding:var(--space-8) var(--space-12);border:0;background:none;text-align:left;font-size:var(--text-sm);color:var(--sf-text-secondary);cursor:pointer}.sf-chooser-item:hover{background:var(--sf-hover)}.sf-chooser-item.is-active{font-weight:600;color:var(--sf-text)}.sf-chooser-add{color:var(--sf-accent-text);font-weight:500}.sf-chooser-add:hover{background:var(--sf-hover)}.sf-rungs{display:flex;width:100%;gap:4px}.sf-rung{flex:1;padding:4px 8px;border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-text-secondary);font-size:var(--text-xs);cursor:pointer}.sf-rung:hover:not(.is-active){background:var(--sf-hover)}.sf-rung.is-active{border-color:var(--sf-disabled);background:var(--sf-chip-bg);color:var(--sf-text);font-weight:600}.sf-shadow-chip{display:block;flex:none;box-sizing:border-box;width:16px;height:11px;border:1px solid var(--sf-disabled);background:var(--sf-field-bg)}.sf-hints{display:flex;margin-top:var(--space-32)}.sf-hints-toggle{display:inline-flex;flex:none;align-items:center;gap:var(--space-8);color:var(--sf-muted)}.sf-hints-toggle svg{flex:none}.sf-scale-a{flex:none;font-size:var(--text-2xs);line-height:1;color:var(--sf-disabled)}.sf-scale-a--lg{font-size:var(--text-base);color:var(--sf-muted)}.sf-auto-reset{padding:var(--space-2) var(--space-8);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);font-size:var(--text-2xs);color:var(--sf-text-secondary);cursor:pointer}.sf-auto-reset:hover{background:var(--sf-hover)}.sf-site-styles-tabpanel>:first-child{margin-top:var(--es-rhythm-group-first)}.sf-style-list{display:flex;flex-direction:column}.sf-style-head{display:flex;width:100%;align-items:center;gap:8px;padding:var(--space-12) 0;background:none;border:0;text-align:left;cursor:pointer}.sf-style-head:hover .sf-style-sample{color:var(--sf-text)}.sf-style-caret{display:inline-flex;flex:none;align-items:center;color:var(--sf-disabled);transition:transform .12s ease}.sf-style-row.is-open .sf-style-caret{transform:rotate(90deg)}.sf-style-name{flex:none;font-size:var(--text-2xs);font-weight:600;color:var(--sf-muted)}.sf-style-sample{min-width:0;margin-left:auto;overflow:hidden;color:var(--sf-text);text-overflow:ellipsis;white-space:nowrap}.sf-style-sample-tip{position:relative;display:flex;min-width:0;margin-left:auto}.sf-style-slot{display:inline-flex;flex:none;width:14px;height:14px;align-items:center;justify-content:center;color:var(--sf-muted);opacity:0;transform:scale(.6);transition:opacity .16s ease,transform .16s ease}.sf-style-slot.is-saved{opacity:1;transform:scale(1)}@media(prefers-reduced-motion:reduce){.sf-style-slot{transition:none}}.sf-style-body{padding:2px 0 12px}.sf-select{padding:var(--space-8) var(--space-8);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-text);font-size:var(--text-xs);cursor:pointer}.sf-rung--glyph{flex:0 0 34px;font-size:var(--text-sm);line-height:18px;text-align:center}.sf-rung--glyph:disabled{color:var(--sf-disabled);cursor:not-allowed}.sf-rung--glyph:disabled:hover{background:var(--sf-field-bg)}.sf-rung-tip{position:relative;display:inline-flex;flex:0 0 34px}.sf-rung-tip .sf-rung--glyph{flex:1}.sf-tip-disabled{display:inline-flex}.sf-rung-tip>.sf-tip-disabled{flex:1}.sf-tip-disabled>button:disabled{pointer-events:none}.sf-tip-disabled:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px;border-radius:var(--radius-sm)}.sf-theme-list{display:flex;flex-direction:column;gap:8px;margin-top:max(var(--es-row-gap),var(--es-rhythm-group-first))}.sf-theme-card,.sf-secttheme-btn{border:1px solid var(--sf-input-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--sf-panel)}.sf-theme-card:hover,.sf-secttheme-btn:hover{border-color:var(--sf-muted)}.sf-theme-card.is-selected{border-color:var(--sf-accent);box-shadow:0 0 0 2px var(--sf-accent-ring)}.sf-theme-pick{display:block;width:100%;padding:0;border:0;background:none;font:inherit;text-align:left;cursor:pointer}.sf-theme-page{display:flex;flex-direction:column;gap:4px;padding:var(--space-12) var(--space-12)}.sf-theme-eyebrow{font-size:7.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1}.sf-theme-headline{font-size:var(--text-sm);font-weight:750;letter-spacing:-.01em;line-height:1.1}.sf-theme-body{font-size:9.5px;line-height:1.4;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sf-theme-row{display:flex;align-items:center;gap:var(--space-8);margin-top:1px}.sf-theme-btn{font-size:8.5px;font-weight:700;letter-spacing:.02em;padding:var(--space-8) var(--space-12);border-radius:var(--radius-sm);white-space:nowrap;flex:none}.sf-theme-mini{flex:1;min-width:0;height:22px;border-radius:var(--radius-sm);border:1px solid;display:flex;align-items:center;justify-content:center;font-size:7.5px;font-weight:600;opacity:.75}.sf-theme-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:var(--space-8) var(--space-8) var(--space-8) var(--space-12);background:var(--sf-hover)}.sf-theme-card.is-selected .sf-theme-foot{color:var(--sf-accent-text)}.sf-theme-name{font-size:var(--text-2xs);font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-theme-warn{flex:none;margin-left:auto;font-size:var(--text-2xs);font-weight:700;color:var(--status-warning-soft-ink);white-space:nowrap}.sf-theme-warn+.sf-theme-edit{margin-left:8px}.sf-theme-name{margin-right:auto}.sf-theme-edit{flex:none}.sf-theme-colours{padding:0 12px 12px}.sf-theme-colours[hidden]{display:none}.sf-theme-colours>.es-field:first-child{margin-top:var(--es-rhythm-group-first)}.sf-theme-reset{margin-top:var(--es-rhythm-between-tight)}.sf-theme-add{display:flex;align-items:center;gap:var(--space-8);margin-top:8px;border:0;background:none;font:inherit;font-size:var(--text-xs);font-weight:600;color:var(--sf-accent-text);padding:4px 0;cursor:pointer}.sf-theme-add:hover{text-decoration:underline}.sf-colour-lede{margin-top:-3px;margin-bottom:var(--space-12)}.sf-colour-pair{border:1px solid var(--sf-divider);border-radius:var(--sf-row-radius);padding:var(--space-2) var(--space-12) var(--space-12);background:var(--sf-app-bg)}.sf-colour-row{margin-top:var(--space-12);display:flex;align-items:center;justify-content:space-between;gap:12px}.sf-colour-mode{font-size:var(--text-xs);font-weight:500;color:var(--sf-text-secondary)}.sf-colour-mode small{display:block;margin-top:1px;font-size:var(--text-2xs);font-weight:400;color:var(--sf-muted)}.sf-readability{margin-top:var(--space-12);padding:var(--space-12) var(--space-12) var(--space-12);border:1px solid var(--sf-divider);border-radius:var(--sf-row-radius)}.sf-readability-row{display:flex;align-items:center;gap:var(--space-12);padding:4px 0;font-size:var(--text-xs)}.sf-readability-who{flex:1;color:var(--sf-text-secondary)}.sf-readability-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--sf-disabled)}.sf-readability-val{color:var(--sf-muted)}.sf-readability-dot.is-good{background:var(--sf-muted)}.sf-readability-dot.is-large-only{background:var(--sf-warning)}.sf-readability-dot.is-hard{background:var(--sf-danger)}.sf-readability-val.is-good{color:var(--sf-text-secondary)}.sf-readability-val.is-large-only{color:var(--sf-warning)}.sf-readability-val.is-hard{color:var(--sf-danger)}.sf-readability-advice{margin-top:var(--space-8);font-size:var(--text-2xs);line-height:1.6;color:var(--sf-muted)}.sf-readability-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-top:8px}.sf-readability-suggestion{display:inline-flex;align-items:center;gap:var(--space-8);height:26px;padding:0 var(--space-12);border:1px solid var(--sf-input-border);border-radius:var(--sf-field-radius);background:var(--sf-field-bg);color:var(--sf-btn-text);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;cursor:pointer}.sf-readability-suggestion:hover{background:var(--sf-hover)}.sf-readability-chip{width:9px;height:9px;flex:none;border-radius:calc(var(--radius-sm) / 2);box-shadow:inset 0 0 0 1px var(--line-strong)}.sf-slider{display:flex;align-items:center;gap:12px}.es-field-ctl>.sf-slider{flex:1;min-width:0}.sf-slider>.sf-slider-track{flex:1;min-width:0}.sf-slider.has-notch{position:relative}.sf-slider.has-notch:before{content:"";position:absolute;top:50%;left:calc(7px + (100% - 14px) * var(--sf-notch));width:2px;height:10px;margin-top:-5px;border-radius:calc(var(--radius-sm) / 2);background:var(--sf-input-border);pointer-events:none}.sf-preview-pin{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:var(--space-12) var(--space-16);background:var(--sf-panel)}.sf-preview-pin-text{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.sf-preview-pin-label{font-size:var(--text-sm);font-weight:500;color:var(--sf-text)}.sf-preview-pin-hint{font-size:var(--text-2xs);color:var(--sf-muted)}.sf-colstep{display:flex;align-items:center;gap:var(--space-8)}.sf-colstep-value{min-width:14px;text-align:center;font-size:var(--text-sm);font-weight:500;color:var(--sf-text)}.sf-checkbox{cursor:pointer}.sf-locked{opacity:.5;pointer-events:none}.sf-seg2 button:focus-visible,.sf-readability-suggestion:focus-visible,.sf-swatch:focus-visible,.sf-field-eye:focus-visible,.sf-insp-body select:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px}.sf-seg2 button:focus-visible{outline-offset:-1px}.sf-seg2{display:flex;gap:var(--space-4);background:var(--sf-track-bg);border:1px solid var(--sf-input-border);border-radius:var(--radius-lg);padding:var(--space-4)}.sf-seg2 button{flex:1;border:none;background:transparent;border-radius:var(--radius-md);padding:var(--space-8) var(--space-8);font-size:var(--text-xs);font-weight:500;color:var(--sf-icon);cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}@container (width < 284px){.sf-seg2 button{padding-inline:var(--space-8)}}.sf-seg2 button:hover:not(.is-active){color:var(--sf-text-secondary);background:var(--sf-hover)}.sf-seg2 button.is-active{background:var(--sf-raised);color:var(--sf-text-strong);box-shadow:var(--es-raised-shadow)}.sf-seg2[data-disabled]{opacity:.5;cursor:not-allowed}.sf-seg2[data-disabled] button{cursor:not-allowed;color:var(--sf-disabled)}.sf-seg2[data-disabled] button.is-active{color:var(--sf-text-secondary)}.sf-seg2[data-disabled] button:hover:not(.is-active){background:transparent;color:var(--sf-disabled)}.sf-seg2 button>svg{display:block;margin:0 auto}.es-list-above>.sf-markup-bar{margin-bottom:0}input.sf-list-marking{border-color:var(--sf-accent);box-shadow:0 0 0 1px var(--sf-accent-tint)}.sf-blogsource{display:flex;flex-direction:column;gap:var(--space-12)}.sf-blogsource-action{align-self:flex-start}.sf-blogsource-status{margin:0;font-size:var(--text-xs);color:var(--sf-text-secondary)}.sf-blogsource-status[data-state=error]{color:var(--sf-danger)}.sf-source-open{display:inline;padding:0;border:0;background:none;font:inherit;color:var(--sf-accent-text);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.sf-source-open:hover{color:var(--sf-accent)}.sf-source-open:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px;border-radius:calc(var(--radius-sm) / 2)}.sf-formpicker{display:flex;flex-direction:column;gap:var(--space-12)}.sf-formsummary-caption{margin-bottom:4px;font-size:var(--text-2xs);font-weight:600;letter-spacing:.02em;color:var(--sf-text-secondary)}.sf-formsummary-fields{margin:0;padding-left:var(--space-20);font-size:var(--text-xs);line-height:1.55;color:var(--sf-text-secondary)}.sf-formsummary-warn{margin:0;font-size:var(--text-xs);line-height:1.45;color:var(--sf-danger)}.sf-formsummary-actions{display:flex;flex-wrap:wrap;gap:8px}.sf-image-slot-inert{border:1.5px dashed var(--sf-input-border);border-radius:var(--radius-lg);padding:var(--space-12) var(--space-16);font-size:var(--text-xs);line-height:1.5;color:var(--sf-muted);background-image:repeating-linear-gradient(45deg,var(--sf-hatch) 0 1px,transparent 1px 12px)}.sf-note{padding:var(--space-16) var(--space-16);font-size:var(--text-sm);line-height:1.5;color:var(--sf-muted)}.sf-note p+p{margin-top:8px}.sf-note strong{color:var(--sf-text);font-weight:600}.sf-note-detail{margin-top:var(--space-12);font-size:var(--text-2xs);color:var(--sf-muted);opacity:.75;word-break:break-all}.sf-note--error{color:var(--sf-danger);background:var(--sf-danger-tint);border-radius:var(--radius-md)}.sf-part-style{position:relative;margin:0 0 4px;padding:var(--space-12) var(--space-16);border:1px solid var(--sf-divider);border-radius:var(--radius-xl);background:var(--sf-track-bg)}.sf-part-style.has-overrides{border-color:var(--sf-accent-ring)}.sf-part-style.has-overrides:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--sf-accent);border-radius:var(--radius-xl) 0 0 var(--radius-xl)}.sf-part-style-caption{margin-bottom:2px;font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sf-muted)}.sf-part-style-count{margin-bottom:var(--space-4);font-size:var(--text-2xs);font-weight:600;color:var(--sf-muted)}.sf-part-style-name{min-width:0;font-size:var(--text-xl);line-height:1.15;letter-spacing:-.01em;color:var(--sf-text-strong);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sf-part-style-pick{position:relative}.sf-part-style-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer;min-width:0}.sf-part-style-trigger .sf-part-style-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-part-style-sign{margin-left:auto;width:16px;flex:none;text-align:center;color:var(--sf-muted);font-size:var(--text-sm);line-height:1}.sf-part-style-trigger[aria-expanded=false] .sf-part-style-sign:before{content:"+"}.sf-part-style-trigger[aria-expanded=true] .sf-part-style-sign:before{content:"\2212"}.sf-part-style-trigger:focus-visible{outline:2px solid var(--sf-accent);outline-offset:2px;border-radius:var(--radius-sm)}.sf-part-style-menu{position:absolute;z-index:30;left:0;right:0;box-shadow:var(--es-menu-shadow)}.sf-part-style-option{display:flex;align-items:baseline;gap:8px;width:100%;padding:var(--space-8) var(--space-12);border:0;background:none;text-align:left;font-size:var(--text-sm);color:var(--sf-field-text);border-radius:max(calc(var(--sf-field-radius) - 2px),2px);cursor:pointer}.sf-part-style-option:hover{background:var(--sf-accent-ring)}.sf-part-style-option:focus-visible{outline:2px solid var(--sf-accent);outline-offset:-2px}.sf-part-style-option.is-on{background:var(--sf-accent-ring);font-weight:600}.sf-part-style-option-name{flex:0 0 auto;white-space:nowrap}.sf-part-style-option .sf-note{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.es-fsel-label.sf-part-style-keep{flex:none}.sf-part-style-aside{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-2xs);font-weight:400;color:var(--es-muted)}.sf-part-style-meta{margin-top:1px;font-size:var(--text-2xs);color:var(--sf-muted);font-variant-numeric:tabular-nums}.sf-part-style-top{display:flex;align-items:center;gap:var(--space-12);margin-top:8px}.sf-part-style-gap{flex:1}.sf-part-style-state{font-size:var(--text-xs);color:var(--sf-text-secondary)}.sf-part-chip{display:inline-flex;align-items:center;border-radius:999px;padding:var(--space-2) var(--space-12);background:var(--sf-accent-tint);color:var(--sf-accent-text);font-size:var(--text-2xs);font-weight:700;font-variant-numeric:tabular-nums}.sf-part-link{border:0;background:none;padding:0;font:inherit;font-size:var(--text-xs);font-weight:500;color:var(--sf-accent-text);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--sf-accent-ring)}.sf-part-link:hover{text-decoration-color:currentColor}.es-group-body>.sf-note{margin:12px 0 -4px;padding:0 0 0 2px}.sf-slot-rows>.sf-note{padding:var(--space-12) var(--space-12) var(--space-12)}.sf-part-field.is-style-value>.es-field-head>.es-field-value{color:var(--sf-muted)}.sf-part-select{width:100%;min-width:0}.sf-part-ink{display:flex;flex-direction:column;gap:8px;min-width:0}.sf-part-ink-top{display:flex;align-items:baseline;gap:8px}.sf-part-ink-label{font-size:var(--text-2xs);font-weight:600;color:var(--sf-muted)}.sf-part-ink-read{margin-left:auto;font-size:var(--text-xs);color:var(--sf-text-secondary);font-variant-numeric:tabular-nums}.sf-part-ink-swatches{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8)}.sf-part-mark{width:18px;height:18px;flex:none;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:none;color:var(--sf-accent);cursor:pointer}.sf-part-mark-dot{transform-origin:center;transition:transform .15s ease,opacity .15s ease}.sf-part-mark-arrow{opacity:0;transition:opacity .15s ease}.sf-part-mark:hover .sf-part-mark-dot,.sf-part-mark:focus-visible .sf-part-mark-dot{transform:scale(0);opacity:0}.sf-part-mark:hover .sf-part-mark-arrow,.sf-part-mark:focus-visible .sf-part-mark-arrow{opacity:1}@media(prefers-reduced-motion:reduce){.sf-part-mark-dot,.sf-part-mark-arrow{transition:none}}.sf-part-text{margin-top:4px;margin-bottom:4px}.sf-part-text .sf-copybox textarea{min-height:84px;line-height:1.5;resize:vertical}.sf-entries{margin-top:32px}.sf-entries-head{margin:var(--space-16) 0 var(--space-4);font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sf-muted)}.sf-entry-eye{display:inline-flex;align-items:center;color:var(--sf-muted)}.sf-slot-rows .sf-add-card{padding:var(--space-8) var(--space-12);border-radius:0}.sf-gallery-filter{display:flex;gap:var(--space-8);flex-wrap:wrap}.sf-gallery-filter button{border:1px solid var(--sf-input-border);background:var(--sf-field-bg);border-radius:999px;padding:var(--space-4) var(--space-12);font-size:var(--text-xs);font-weight:600;color:var(--sf-icon);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.sf-gallery-filter button:hover{background:var(--sf-hover)}.sf-gallery-filter button[aria-pressed=true]{background:var(--sf-accent);border-color:var(--sf-accent);color:var(--sf-on-accent)}.sf-gallery-layouts{margin-top:var(--space-8)}.es-field-ctl>.sf-gallery-layouts,.es-field-ctl>.sf-gallery-filter{flex:1 1 auto;min-width:0}.sf-gallery-pic{width:100%;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:6px;grid-auto-flow:row dense;gap:2px}.sf-gallery-pic i{display:block;background:var(--sf-track-bg);border-radius:calc(var(--radius-sm) / 2)}.sf-gallery-layouts button[aria-pressed=true] .sf-gallery-pic i{background:var(--sf-accent)}.sf-gallery-count{font-size:var(--text-2xs);color:var(--sf-disabled);margin-top:var(--space-8)}.sf-locations-view{margin-top:var(--es-rhythm-between)}.sf-blogsource>.es-field-hint,.sf-formsummary .es-field-hint{margin:0}.es-field-ctl>.sf-copybox{flex:1 1 auto;min-width:0}.sf-canvas-notice{position:absolute;top:8px;left:8px;right:8px;z-index:1}.es-ts+.es-ts-section{margin-top:var(--es-rhythm-group)}
package/dist/index.d.ts CHANGED
@@ -17,15 +17,27 @@ export type EditorTarget =
17
17
  | { kind: "page"; slug: string; siteId?: string; originSlug?: string }
18
18
  | { kind: "template"; id: string; pageSlug?: string };
19
19
 
20
- /** The standalone one-section editor's target (a section template). */
21
- export type SectionEditorTarget = { kind: "section"; id: string; type?: string; name?: string };
22
-
23
- /** A media item the host's picker returns. */
24
- export interface HostPickedMedia {
25
- id: string;
26
- url: string;
27
- kind: "image" | "video";
28
- }
20
+ // The editor's host contract IS easel's (efficient-easel/screen/lib/host), under
21
+ // the names this package has always used: re-exported, never a second copy, so
22
+ // a message easel adds (`publish-failed`) reaches hosts with no line here.
23
+ import type {
24
+ EaselHost as EditorHost,
25
+ EaselHostAddress as EditorHostAddress,
26
+ EaselToHostMessage as EditorToHostMessage,
27
+ HostPickedMedia,
28
+ HostToEaselMessage as HostToEditorMessage,
29
+ } from "efficient-easel/screen/lib/host";
30
+ export type {
31
+ EaselHost as EditorHost,
32
+ EaselHostAddress as EditorHostAddress,
33
+ EaselMessageType as EditorMessageType,
34
+ EaselToHostMessage as EditorToHostMessage,
35
+ HostPickedMedia,
36
+ HostToEaselMessage as HostToEditorMessage,
37
+ InboundHostMessage,
38
+ SectionScreenTarget as SectionEditorTarget,
39
+ SendToHost,
40
+ } from "efficient-easel/screen/lib/host";
29
41
 
30
42
  /** What a field asked the media panel for. `file` is a file dropped straight on
31
43
  * the field: the host uploads it and picks it without waiting for a click. */
@@ -56,88 +68,6 @@ export interface MediaPanelProps {
56
68
  * panel (the rail's Media view, and every image field's pick mode). */
57
69
  export type MediaPanelComponent = ComponentType<MediaPanelProps>;
58
70
 
59
- /** Every message the editor sends its host. */
60
- export type EditorToHostMessage =
61
- | { type: "storefront-editor:ready" }
62
- | { type: "storefront-editor:auth-expired" }
63
- | { type: "storefront-editor:dirty" }
64
- | { type: "storefront-editor:saved" }
65
- | { type: "storefront-editor:published" }
66
- | { type: "storefront-editor:save-failed" }
67
- | { type: "storefront-editor:navigated"; target: EditorTarget }
68
- | {
69
- type: "storefront-editor:open-media-picker";
70
- requestId: string;
71
- accept: string;
72
- title: string;
73
- file?: File;
74
- }
75
- /** `mode: "create"` asks for a new form and carries a `requestId` to answer
76
- * with `form-saved` / `form-closed`. `mode: "edit"` opens the form builder on
77
- * `formId` and carries none: nothing waits on it. */
78
- | { type: "storefront-editor:open-form"; requestId?: string; mode: "create" | "edit"; formId?: string }
79
- | { type: "storefront-editor:open-category"; categoryId: string; name?: string }
80
- | { type: "storefront-editor:open-product"; slug: string; name?: string }
81
- | { type: "storefront-editor:open-post"; slug: string; title?: string }
82
- /** Open the website's Settings (`"settings"`, e.g. Selling, where the stock
83
- * rules live) or its Shipping (`"shipping"`, the pickup places) in the host,
84
- * from a panel row that reads a rule the editor does not own. Nothing
85
- * answers it. */
86
- | { type: "storefront-editor:open-site-section"; section: "settings" | "shipping" }
87
- | { type: "storefront-editor:open-menus"; menuId?: string | null }
88
- | { type: "storefront-editor:open-page"; slug: string }
89
- | { type: "storefront-editor:new-page" }
90
- | { type: "storefront-editor:save-as-template"; siteId: string; slug: string };
91
-
92
- /** Every message a host sends the editor. */
93
- export type HostToEditorMessage =
94
- | {
95
- type: "storefront-editor:auth";
96
- token: string;
97
- siteId?: string;
98
- brandId?: string;
99
- theme?: string;
100
- can?: { canCreatePlatformTemplate?: boolean };
101
- }
102
- | { type: "storefront-editor:navigate"; target: EditorTarget | SectionEditorTarget }
103
- | { type: "storefront-editor:category-updated"; categoryId?: string }
104
- | { type: "storefront-editor:menus-updated" }
105
- | { type: "storefront-editor:form-saved"; requestId?: string; form?: { id: string; slug: string } }
106
- | { type: "storefront-editor:form-closed"; requestId?: string }
107
- | { type: "storefront-editor:media-picked"; requestId: string; media: HostPickedMedia }
108
- | { type: "storefront-editor:media-pick-cancelled"; requestId: string };
109
-
110
- export type EditorMessageType = EditorToHostMessage["type"];
111
- type PayloadOf<T extends EditorMessageType> = Omit<Extract<EditorToHostMessage, { type: T }>, "type">;
112
-
113
- export type SendToHost = <T extends EditorMessageType>(
114
- type: T,
115
- ...payload: Record<string, never> extends PayloadOf<T> ? [PayloadOf<T>?] : [PayloadOf<T>]
116
- ) => void;
117
-
118
- export type InboundHostMessage = { type: string } & Record<string, unknown>;
119
-
120
- /** The editor's address — for an embedder, retargets of its own window. */
121
- export interface EditorHostAddress {
122
- /** The query the editor was opened with. An embedder that opens templates to
123
- * edit their layout answers `"?editTemplate=1"`. */
124
- search(): string;
125
- /** Keep the embedder's notion of "where" in step (no load). */
126
- show(target: EditorTarget | SectionEditorTarget): void;
127
- /** Leave for another document by LOADING it — re-mount the editor there. */
128
- load(target: EditorTarget): void;
129
- /** Reload the editor from scratch — re-mount it on the same target. */
130
- reload(): void;
131
- }
132
-
133
- export interface EditorHost {
134
- readonly connected: boolean;
135
- readonly ownsDocument: boolean;
136
- send: SendToHost;
137
- subscribe(listener: (message: InboundHostMessage) => void): () => void;
138
- readonly address: EditorHostAddress;
139
- }
140
-
141
71
  /** A host for an editor mounted in the embedder's own page. One per editor. */
142
72
  export function createEditorHost(options: {
143
73
  onMessage: (message: EditorToHostMessage) => void;