/* Editor only. The two recipient experiences retain their own artwork and motion. */
.apology-builder { --builder-accent:#294E45; --builder-paper:#FFFFFF; --builder-surface:#F4F6F3; --builder-border:#D9E1DB; --builder-ink:#294E45; --builder-muted:#59675F; }
.apology-builder .saas-builder-side { display:flex; flex-direction:column; min-width:0; }
.apology-builder .saas-template-switch { padding:24px; }
.ap-builder-intro { margin:0; padding:0 24px 22px; color:var(--builder-muted); font-size:13px; line-height:1.7; }
.apology-builder .builder-section-picker { display:grid; gap:9px; padding:0 24px 22px; border-bottom:1px solid var(--builder-border); color:var(--builder-muted); font-size:12px; background:var(--builder-paper); }
.apology-builder .builder-section-picker select { min-height:46px; width:100%; padding:10px 12px; font-family:inherit; font-weight:500; font-size:14px; line-height:1.5; border:1px solid var(--builder-border); border-radius:6px; background:var(--builder-paper); color:var(--builder-ink); }
.ap-builder-step { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; color:var(--builder-muted); font-size:11px; }
.ap-builder-step button { border:0; background:none; padding:8px 0 8px 8px; color:var(--builder-accent); font:inherit; cursor:pointer; }
.ap-builder-section-tools { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin:20px 0 8px; }
.ap-builder-example { padding:10px 0; border:0; background:none; color:var(--builder-accent); font:500 12px/1.5 'Inter Tight',sans-serif; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.apology-builder .ap-builder-example-hint { margin:0 0 24px; font-size:11px; line-height:1.7; color:var(--builder-muted); }
.ap-builder-story-section > .builder-fields { margin-top:24px; }
.ap-builder-secondary { margin-top:28px; border:1px solid var(--builder-border); border-radius:8px; padding:16px; background:var(--builder-paper); }
.ap-builder-secondary summary { cursor:pointer; color:var(--builder-accent); font-size:13px; font-weight:500; line-height:1.6; }
.ap-builder-secondary summary small { display:block; margin-top:4px; padding-left:16px; font-size:11px; font-weight:400; color:var(--builder-muted); }
.ap-builder-secondary > p { font-size:12px; line-height:1.7; color:var(--builder-muted); margin:16px 0 22px; }
.ap-builder-secondary .builder-fields { gap:22px; }
.ap-builder-wording > .builder-fields { margin-top:20px; }
.ap-builder-field :is(input,textarea)::placeholder { color:var(--builder-muted); opacity:.58; }
.ap-builder-upload-note { color:var(--builder-muted); font-size:11px; line-height:1.6; }
.ap-builder-film-photos { margin-top:30px; padding-top:24px; border-top:1px solid var(--builder-border); }
.ap-builder-film-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ap-builder-film-heading h4,.ap-builder-memories > h4 { margin:0; font:600 16px/1.4 'Inter Tight',sans-serif; color:var(--builder-ink); }
.ap-builder-film-heading > span { flex-shrink:0; padding:4px 8px; border:1px solid var(--builder-border); border-radius:20px; color:var(--builder-muted); font-size:10px; }
.ap-builder-film-photos > p { margin:12px 0 20px; font-size:14px; line-height:1.6; color:var(--builder-muted); }
.ap-builder-film-list { margin-bottom:14px; }
.ap-builder-film-controls { display:flex; align-items:center; gap:5px 10px; flex-wrap:wrap; }
.ap-builder-film-controls .ap-builder-upload { min-width:0; padding:9px 12px; font-size:14px; }
.ap-builder-film-remove,.ap-builder-photo-remove { min-height:44px; padding:8px 0; border:0; background:none; color:var(--builder-muted); font:500 14px/1.4 'Inter Tight',sans-serif; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.ap-builder-film-photos > .ap-builder-upload-note { display:block; }
.apology-builder .saas-builder-form { flex:1; min-height:0; }
.ap-builder-fieldset { min-width:0; border:0; padding:0; margin:0; }
.ap-builder-fieldset:disabled { opacity:.65; }
.ap-builder-field small { font-size:12px; line-height:1.65; color:var(--builder-muted); }
.apology-builder .ap-builder-field textarea { resize:vertical; min-height:90px; line-height:1.7; }
.ap-builder-name-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.ap-builder-name-pair > * { min-width:0; }
.ap-builder-quiet-note { padding-left:13px; border-left:2px solid var(--builder-border); font-size:12px!important; }
.ap-builder-photo-list,.ap-builder-film-list { border:1px solid var(--builder-border); border-radius:10px; background:var(--builder-paper); }
.ap-builder-photo-list:empty,.ap-builder-film-list:empty { display:none; }
.ap-builder-photo-editor { min-width:0; display:block; border-bottom:1px solid var(--builder-border); }
.ap-builder-photo-editor:last-child { border-bottom:0; }
.ap-builder-photo-summary { display:flex; align-items:center; gap:12px; min-height:80px; padding:12px 14px; cursor:pointer; list-style:none; color:var(--builder-ink); }
.ap-builder-photo-summary::-webkit-details-marker { display:none; }
.ap-builder-photo-summary::marker { content:''; }
.ap-builder-photo-summary:focus-visible { outline:2px solid var(--builder-accent); outline-offset:-4px; border-radius:8px; }
.ap-builder-photo-thumb { flex:0 0 48px; width:48px; height:56px; display:grid; place-items:center; overflow:hidden; border:1px solid var(--builder-border); border-radius:5px; background:var(--builder-surface); color:var(--builder-muted); }
.ap-builder-photo-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.ap-builder-photo-thumb svg { width:26px; height:24px; fill:none; stroke:currentColor; stroke-width:1.3; }
.ap-builder-photo-summary-copy { flex:1; min-width:0; display:grid; gap:4px; font-family:'Inter Tight',sans-serif; }
.ap-builder-photo-summary-copy strong { font-size:15px; font-weight:600; line-height:1.35; }
.ap-builder-photo-summary-copy > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; line-height:1.4; color:var(--builder-muted); }
.ap-builder-photo-chevron { flex:0 0 26px; width:26px; height:26px; padding:3px; border-radius:6px; background:#EAF1ED; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .16s ease; }
.ap-builder-photo-editor[open] > .ap-builder-photo-summary .ap-builder-photo-chevron { transform:rotate(180deg); }
.ap-builder-photo-editor-body { display:grid; min-width:0; gap:18px; padding:4px 14px 20px; }
.ap-builder-photo-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.ap-builder-photo-actions .ap-builder-upload { flex:1; min-width:145px; font-size:14px; }
.ap-builder-photo-empty-note { margin:0; color:var(--builder-muted); font-size:14px; line-height:1.6; }
.ap-builder-section-hidden { margin:18px 0 0; padding:12px 14px; border-left:3px solid var(--builder-accent); border-radius:0 6px 6px 0; background:#EAF1ED; color:var(--builder-ink); font-size:14px; line-height:1.5; }
.ap-builder-section-hidden strong { font-weight:600; }
.ap-builder-section-hidden p { margin:4px 0 0; color:var(--builder-muted); }
.apology-builder .saas-template-switch .ap-builder-change-design { padding:8px 0 8px 12px; border:0; background:none; box-shadow:none; color:var(--builder-muted); font:500 14px/1.4 'Inter Tight',sans-serif; text-decoration:underline; text-underline-offset:3px; }
.ap-builder-photo { display:block; width:100%; max-height:255px; aspect-ratio:4/3; object-fit:cover; border:5px solid #fff; border-radius:3px; box-shadow:0 4px 16px #4f382711; }
.ap-builder-upload { position:relative; display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 14px; border:1px solid var(--builder-border); border-radius:6px; color:var(--builder-accent); background:var(--builder-surface); font-size:13px; font-weight:500; cursor:pointer; }
.ap-builder-upload input { position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer; }
.ap-builder-upload:focus-within { outline:2px solid var(--builder-accent); outline-offset:3px; }
.ap-builder-upload.is-busy { cursor:wait; opacity:.7; }
.ap-builder-endnote { margin-top:28px; padding:23px 15px; text-align:center; border-top:1px solid var(--builder-border); }
.ap-builder-endnote > span { font:30px/1 Georgia,serif; color:var(--builder-accent); }
.ap-builder-endnote p { margin:13px 0 18px; color:var(--builder-muted); font-size:13px; }
.ap-builder-savebar { padding:16px 24px 20px; border-top:1px solid var(--builder-border); background:var(--builder-paper); }
.ap-builder-savebar > p { margin:0 0 12px; min-height:18px; font-size:12px; line-height:1.6; color:var(--builder-muted); overflow-wrap:anywhere; }
.ap-builder-savebar > p.is-error { color:#a02f39; }
.ap-builder-savebar > div { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.apology-builder .btn { text-transform:none; letter-spacing:0; font-size:12px; min-height:44px; padding:11px 14px; white-space:normal; line-height:1.4; }
.apology-builder .btn-primary { background:var(--builder-accent); color:#fff; border:1px solid var(--builder-accent); }
.apology-builder .btn-secondary { background:transparent; color:var(--builder-accent); border:1px solid var(--builder-border); }
.apology-builder button:disabled { cursor:not-allowed; opacity:.55; }
.ap-builder-load-error { padding:16px; border:1px solid #bb6c705c; border-radius:8px; margin-bottom:20px; color:#913a3c; }
.ap-builder-load-error p { margin-bottom:12px; }
.apology-builder .ap-builder-preview { padding:24px clamp(20px,3vw,45px); display:flex; flex-direction:column; align-items:center; min-width:0; overflow:auto; }
.ap-builder-preview-toolbar { width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.ap-builder-preview-toolbar strong { display:block; font:500 27px/1.2 'Cormorant Garamond',Georgia,serif; margin-top:5px; color:var(--builder-ink); }
.ap-builder-preview-eyebrow { font-size:11px; color:var(--builder-muted); }
.ap-builder-devices { display:grid; gap:6px; flex-shrink:0; font:400 14px/1.4 'Inter Tight',sans-serif; color:var(--builder-muted); }
.ap-builder-devices select { min-height:44px; padding:9px 30px 9px 12px; border:1px solid var(--builder-border); border-radius:8px; background:var(--builder-paper); color:var(--builder-ink); font:500 14px/1.4 'Inter Tight',sans-serif; }
.ap-builder-devices select:focus-visible { outline:2px solid var(--builder-accent); outline-offset:3px; }
.ap-builder-preview-stage { position:relative; width:min(390px,100%); height:clamp(480px,72vh,800px); flex:0 0 auto; background:var(--builder-paper); border:7px solid #fffdf9; border-radius:21px; overflow:hidden; box-shadow:0 17px 40px #42352d15,0 0 0 1px var(--builder-border); }
.ap-builder-preview-stage--desktop { width:100%; border-radius:10px; }
.ap-builder-preview-stage iframe { width:100%; height:100%; border:0; display:block; background:var(--builder-paper); }
.ap-builder-preview-loading { position:absolute; inset:0; display:flex; gap:18px; flex-direction:column; align-items:center; justify-content:center; padding:30px; background:var(--builder-paper); text-align:center; color:var(--builder-muted); font-size:13px; line-height:1.7; }
.ap-builder-preview-footer { display:flex; flex-direction:column; align-items:center; gap:12px; padding:22px 0 4px; text-align:center; }
.ap-builder-preview-footer p { margin:0; color:var(--builder-muted); font-size:12px; }
.ap-builder-preview-footer small { color:var(--builder-muted); font-size:10px; line-height:1.6; }
@media(min-width:1101px) { .apology-builder { grid-template-columns:minmax(380px,440px) minmax(0,1fr); } }
@media(max-width:1100px) { .apology-builder .ap-builder-preview { padding:28px 20px; } }
@media(max-width:820px) {
  .apology-builder .saas-template-switch { padding:22px 20px; }
  .ap-builder-intro { padding:0 20px 18px; }
  .apology-builder .builder-section-picker { padding:0 20px 20px; scroll-margin-top:90px; }
  .apology-builder .saas-builder-form { overflow:visible; }
  .apology-builder .builder-progress-actions { position:static; inset:auto; margin-top:24px; padding:16px 0 0; box-shadow:none; }
  .ap-builder-savebar { position:fixed; inset:auto 0 0; z-index:86; padding:12px 20px max(13px,env(safe-area-inset-bottom)); box-shadow:0 -6px 18px #50382c08; }
  .ap-builder-savebar > p { font-size:11px; margin-bottom:9px; }
  .apology-builder .ap-builder-preview { display:none; }
  .ap-builder-photo { max-height:270px; }
}
@media(max-width:360px) { .ap-builder-name-pair { grid-template-columns:1fr; } .ap-builder-savebar { padding-inline:16px; } .ap-builder-photo-summary { padding-inline:12px; gap:10px; } }
@media(prefers-reduced-motion:reduce) { .ap-builder-photo-chevron { transition:none; } }

.ap-builder-photo-slots{display:grid;gap:16px;margin:20px 0 24px}.ap-builder-photo-slots>h4{margin:0;font-size:18px}.ap-builder-portrait-slot{min-width:0}.ap-builder-photo--portrait{object-fit:contain;background:var(--builder-paper,#fffaf0);max-height:260px}.ap-builder-photo-slots .ap-builder-memory-top strong{font-size:14px;letter-spacing:0;text-transform:none}.ap-builder-photo-slots .ap-builder-quiet-note{margin:0}
