.local-editor .range-ready{
  margin-top:18px;
  padding:13px 14px;
  border:1px solid #ddd6fe;
  border-radius:10px;
  background:#f7f5ff;
  color:#514a70;
}
.local-editor .part-groups{grid-column:1/-1}.local-editor .part-search{display:grid;gap:8px;margin-top:18px;font-size:13px}.local-editor .part-search input{padding:12px;border:1px solid #ddd4ed;border-radius:12px;min-width:0;width:100%;font:inherit}.editor-viewport{overflow:auto;max-height:65dvh;margin-top:20px;overscroll-behavior:contain}.local-editor .photo-wrap{margin:0;overflow:visible;width:100%;max-width:none}.local-editor .photo-wrap img{max-height:none;object-fit:fill}.editor-zoom{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.editor-zoom button{min-height:44px;border:1px solid #dfd5ee;background:white;border-radius:10px;padding:8px 12px}.local-editor .resize-handle{width:28px;height:28px}.local-editor .photo-panel,.local-editor .settings-panel{border-radius:20px}.local-editor .intro h1{font-size:34px;line-height:1.3;letter-spacing:0}.local-editor .topbar{gap:12px}.local-editor .steps{border-radius:14px}.local-editor .position-tab{max-width:100%;overflow-wrap:anywhere}.local-editor .choice-row input:focus-visible+span{outline:3px solid #bca6ed}@media(max-width:760px){.local-editor .intro h1{font-size:26px}.local-editor main{padding-top:24px}.local-editor .editor-viewport{max-height:none;overflow-x:auto;overflow-y:visible;overscroll-behavior:auto}.local-editor .part-search input{font-size:16px}}
.part-groups{display:flex;gap:8px;flex-wrap:wrap;width:100%;margin-bottom:12px}.part-groups button{padding:10px 14px;border:1px solid #ded7ee;border-radius:12px;min-height:44px;background:white}.part-groups button[aria-pressed=true]{background:#7855df;color:white}
.local-editor .region-box{
  position:absolute;
  z-index:2;
  border:2px solid var(--purple);
  background:rgba(115,84,239,.08);
  touch-action:none;
}
.local-editor #regionBoxes{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
.local-editor .region-box{
  pointer-events:auto;
}
.local-editor #regionDraw{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  pointer-events:none;
  touch-action:none;
}
.local-editor #regionDraw.is-drawing{
  pointer-events:auto;
  cursor:crosshair;
}
.local-editor .free-region{
  fill:rgba(115,84,239,.15);
  stroke:var(--purple);
  stroke-width:5;
  vector-effect:non-scaling-stroke;
}
.local-editor .free-region.active{
  filter:drop-shadow(0 0 3px rgba(115,84,239,.45));
}
.local-editor .free-region-open{
  fill:none;
  stroke-dasharray:10 7;
}
.local-editor .region-box.active{
  box-shadow:0 0 0 3px rgba(115,84,239,.18);
}
.local-editor .region-box>span{
  position:absolute;
  left:-2px;
  top:-27px;
  padding:4px 7px;
  border-radius:5px 5px 0 0;
  background:var(--purple);
  color:#fff;
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
}
.local-editor .region-box[data-region-index="1"]{border-color:#4f79dc;background:rgba(79,121,220,.08)}
.local-editor .region-box[data-region-index="1"]>span,.local-editor .region-box[data-region-index="1"] .resize-handle{background:#4f79dc}
.local-editor .region-box[data-region-index="2"]{border-color:#15967b;background:rgba(21,150,123,.08)}
.local-editor .region-box[data-region-index="2"]>span,.local-editor .region-box[data-region-index="2"] .resize-handle{background:#15967b}
.local-editor .resize-handle{
  position:absolute;
  right:-8px;
  bottom:-8px;
  width:19px;
  height:19px;
  border:2px solid #fff;
  border-radius:4px;
  background:var(--purple);
}
.local-editor .position-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
.local-editor .position-tab,.local-editor .position-add{
  min-height:38px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  color:#5b566a;
  font-size:13px;
  font-weight:800;
}
.local-editor .position-tab.active{
  border-color:var(--purple);
  background:var(--soft);
  color:var(--purple);
}
.local-editor .position-add{
  border-style:dashed;
  color:var(--purple);
}
.local-editor .selection-mode{
  display:flex;
  gap:8px;
  margin-top:14px;
}
.local-editor .selection-mode button{
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  color:#5b566a;
  font-size:13px;
  font-weight:800;
}
.local-editor .selection-mode button.active{
  border-color:var(--purple);
  background:var(--soft);
  color:var(--purple);
}
.local-editor .choice-title{margin:20px 0 9px;font-size:14px;color:var(--ink)}
.local-editor .choice-empty,.local-editor .choice-hint{grid-column:1/-1;margin:0;padding:12px 13px;border:1px dashed #d9d2ec;border-radius:8px;background:#fbfaff;color:#706a82;font-size:13px;line-height:1.5}
.local-editor .choice-hint{margin-bottom:1px;border-style:solid;border-color:#ebe7f4;background:#f7f5ff;color:#5e5871;font-weight:700}
.local-editor .position-add:disabled,.local-editor .photo-actions .quiet:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.local-editor .photo-actions{
  flex-wrap:wrap;
}
.local-editor .photo-actions p{
  flex:1 1 180px;
}
.local-editor .range-rules{
  margin-top:12px;
  padding:13px 14px;
  border:1px solid #ddd6fe;
  border-radius:10px;
  background:#fbfaff;
  color:#625b78;
  font-size:12px;
  line-height:1.55;
}
.local-editor .range-rules strong{display:block;color:var(--ink);font-size:13px}
.local-editor .range-rules ul{margin:7px 0 0;padding-left:18px}
.local-editor .range-rules li+li{margin-top:3px}
.local-editor .range-ready strong{
  display:block;
  color:var(--purple);
  font-size:13px;
  font-weight:850;
}
.local-editor .range-ready p{
  margin:4px 0 0;
  color:#69637f;
  font-size:12px;
  line-height:1.5;
}
.local-editor .custom-request{
  display:block;
  margin-top:18px;
  padding:15px;
  border:1px solid #e4dfff;
  border-radius:12px;
  background:#fbfaff;
}
.local-editor .custom-request>span{
  display:block;
  color:var(--ink);
  font-size:14px;
  font-weight:850;
}
.local-editor .custom-request textarea{
  display:block;
  width:100%;
  min-height:88px;
  margin-top:10px;
  padding:12px;
  resize:vertical;
  border:1px solid #d8d0ef;
  border-radius:8px;
  outline:0;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:14px;
  line-height:1.55;
}
.local-editor .custom-request textarea::placeholder{color:#9892aa}
.local-editor .custom-request textarea:focus{
  border-color:var(--purple);
  box-shadow:0 0 0 3px rgba(115,84,239,.1);
}
.local-editor .custom-request small{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:12px;
}
.local-editor .custom-request.is-required{
  border-color:#bdafff;
  background:#f6f3ff;
}
.local-editor .reference-library{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #ebe7f4;
}
.local-editor .reference-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.local-editor .reference-heading strong{font-size:14px;color:var(--ink)}
.local-editor .reference-heading p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.local-editor .reference-heading>span{padding:4px 7px;border-radius:5px;background:#f4f1fb;color:#746d89;font-size:12px;white-space:nowrap}
.local-editor .reference-upload{display:flex;gap:8px;margin-top:12px}
.local-editor .reference-upload input{min-width:0;flex:1;padding:9px 10px;border:1px solid var(--line);border-radius:7px;outline:0;font:inherit;font-size:13px}
.local-editor .reference-upload input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(115,84,239,.1)}
.local-editor .reference-upload .quiet{display:grid;place-items:center;white-space:nowrap}
.local-editor .reference-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.local-editor .reference-card{position:relative;min-height:76px;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#fbfaff;color:#615b72;text-align:left}
.local-editor .reference-card img{display:block;width:100%;height:68px;object-fit:cover}
.local-editor .reference-card span{display:block;padding:5px 6px;overflow:hidden;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.local-editor .reference-card.active{border:2px solid var(--purple);color:var(--purple)}
.local-editor .reference-none{display:grid;place-items:center;min-height:76px;padding:8px;font-size:12px;font-weight:800}
.local-editor .reference-delete{position:absolute;top:4px;right:4px;width:21px;height:21px;border:0;border-radius:50%;background:rgba(32,29,43,.78);color:#fff;font-size:15px;line-height:1}
@media(max-width:560px){
  .local-editor .position-tabs{gap:6px}
  .local-editor .position-tab,.local-editor .position-add{padding:8px 9px;font-size:12px}
  .local-editor .custom-request{padding:13px}
  .local-editor .custom-request textarea{min-height:96px}
  .local-editor .reference-list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .local-editor .reference-upload{align-items:stretch;flex-direction:column}
}
#strengthRow .change-strength{display:grid;gap:8px;min-width:150px;padding:10px 12px;border:1px solid #e4dcf1;border-radius:10px;background:#fff}#strengthRow .change-strength select{padding:8px;border:1px solid #d9cce8;border-radius:8px;font:inherit}

.local-editor .plan-summary{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.local-editor .plan-summary button{width:100%;min-height:44px;padding:10px 12px;border:1px solid #e2dcf5;border-radius:9px;background:#fff;color:#4f466d;text-align:left;font:inherit;font-size:13px;line-height:1.45;cursor:pointer}
.local-editor .plan-summary button:focus-visible{outline:3px solid #bca6ed}
.form-issue:not([hidden]){position:fixed;z-index:10005;top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);box-sizing:border-box;width:min(520px,calc(100vw - 24px));padding:14px 18px;border-radius:14px;background:#2f2449;color:#fff;box-shadow:0 8px 28px #0004;font-size:15px;line-height:1.5}

/* Show the complete generated image in the result card, including portrait photos. */
.local-editor #result .compare{grid-template-columns:repeat(2,minmax(0,1fr))}
.local-editor #result .compare figure{min-width:0}
.local-editor #result .compare img{height:auto;max-height:75vh;aspect-ratio:auto;object-fit:contain}
@media(max-width:560px){
  .local-editor #result .compare{grid-template-columns:minmax(0,1fr)}
  .local-editor #result .compare img{max-height:none}
}
