
.epa-canvas-trigger-wrap{margin:16px 0 8px;display:flex;flex-direction:column;align-items:center;gap:10px}
.epa-designer-action-row{width:100%;display:flex;justify-content:center}
.epa-modal{display:none;position:fixed;inset:0;z-index:999999;padding:16px;overscroll-behavior:contain}
.epa-modal.is-open{display:flex;align-items:center;justify-content:center}
.epa-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.epa-modal-dialog{position:relative;width:min(1180px,calc(100vw - 32px));height:min(92vh,calc(100dvh - 32px));max-height:min(92vh,calc(100dvh - 32px));overflow:auto;margin:0;background:#fff;border-radius:16px;padding:18px 22px 22px;box-shadow:0 24px 80px rgba(0,0,0,.35);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
html.epa-modal-open,body.epa-modal-open{overflow:hidden!important}
.epa-close{position:absolute;top:10px;right:12px;border:0;background:transparent;font-size:32px;line-height:1;cursor:pointer}
.epa-title{margin:0 0 18px;font-size:28px;line-height:1.2;padding-right:36px}
.epa-dropzone{border:2px dashed #c9c9c9;border-radius:14px;padding:18px;margin-bottom:18px;background:#fafafa}
.epa-dropzone.is-drag{border-color:#2271b1;background:#f0f7ff}
.epa-drop-inner{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;text-align:center}
.epa-drop-inner span{opacity:.7}
.epa-file-input{display:none}
.epa-stage-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.epa-stage-outer{background:#f2f2f2;border-radius:14px;padding:18px;display:flex;justify-content:center;align-items:center;height:clamp(320px,54vh,620px);min-height:320px}
.epa-stage{width:100%;height:100%;background:#e8e8e8;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}
#epa-crop-image{display:block;max-width:100%;max-height:100%}
.epa-side{display:flex;flex-direction:column;gap:10px;position:sticky;top:0}
.epa-preview-title{font-weight:600}
.epa-preview-box{border:1px solid #ddd;border-radius:10px;background:#fff;padding:10px;min-height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden}
#epa-preview-image{display:block;max-width:100%;height:auto;object-fit:contain}
.epa-status{font-size:14px;min-height:22px;color:#2271b1}
.epa-controls{position:sticky;bottom:-22px;z-index:5;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding:14px 0 max(0px, env(safe-area-inset-bottom));background:linear-gradient(to top,#fff 82%,rgba(255,255,255,.94));border-top:1px solid #e7e7e7}
.woocommerce div.product div.images .woocommerce-product-gallery__image{display:flex;align-items:center;justify-content:center}
.woocommerce div.product div.images .woocommerce-product-gallery__image img{width:100%;height:auto;object-fit:contain}
@media (max-width: 900px){
  .epa-modal{padding:8px}
  .epa-modal-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);padding:14px 14px 18px;border-radius:14px}
  .epa-title{font-size:24px;margin-bottom:12px;padding-right:42px}
  .epa-stage-wrap{grid-template-columns:1fr;gap:14px}
  .epa-stage-outer{height:min(44vh,360px);min-height:280px;padding:10px}
  .epa-stage{width:100%}
  .epa-controls{bottom:-18px;gap:8px}
  .epa-controls .button{flex:1 1 calc(50% - 8px)}
  .epa-controls .button-primary{flex-basis:100%}
}
@media (max-width: 480px){
  .epa-modal{padding:4px}
  .epa-modal-dialog{width:calc(100vw - 8px);height:calc(100dvh - 8px);max-height:calc(100dvh - 8px);padding:12px 12px 16px;border-radius:12px}
  .epa-close{top:8px;right:10px;font-size:30px}
  .epa-dropzone{padding:14px;margin-bottom:12px}
  .epa-drop-inner{gap:8px}
  .epa-stage-outer{height:min(40vh,320px);min-height:240px}
  .epa-preview-box{min-height:140px}
  .epa-controls .button{width:100%;flex-basis:100%}
}

.epa-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:0}
#epa-preview-canvas{display:block;max-width:100%;height:auto;border:1px solid #111;border-radius:4px;background:#fff;box-sizing:border-box}
.epa-edge-options{border:1px solid #ddd;border-radius:10px;padding:10px;background:#fafafa;display:flex;flex-direction:column;gap:8px}
.epa-edge-options label{display:flex;align-items:center;gap:8px;font-size:15px;cursor:pointer}
.epa-edge-options label.is-disabled{opacity:.45;cursor:not-allowed}
.epa-color-picker-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:4px}
.epa-border-color{width:44px;height:32px;padding:0;border:1px solid #111;border-radius:4px;background:#fff}
.epa-selected-attrs{border:1px solid #ddd;border-radius:10px;padding:10px;background:#fff;font-size:14px;line-height:1.5}


.epa-safe-note{
  margin-top:12px;
  font-size:15px;
  line-height:1.4;
  color:#7a1f1f;
}

#epa-canvas-modal .cropper-view-box{
  position:relative;
}

#epa-canvas-modal .cropper-view-box::after{
  content:"";
  position:absolute;
  left:var(--epa-safe-left, 2%);
  right:var(--epa-safe-left, 2%);
  top:var(--epa-safe-top, 2%);
  bottom:var(--epa-safe-top, 2%);
  border:2px dashed #d33;
  box-sizing:border-box;
  pointer-events:none;
}

.epa-edge-options[hidden]{display:none !important;}


.woocommerce-product-gallery{position:relative;}
.woocommerce-product-gallery__image,.woocommerce-product-gallery .flex-viewport{position:relative;}
.epa-live-product-preview{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:3;
  pointer-events:none;
  padding:12px;
}
.epa-live-product-preview.is-active{display:flex;}
.epa-live-product-preview-box{
  width:100%;
  height:100%;
  background:#f3f3f3;
  border:1px solid #e3e3e3;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.epa-live-product-preview-box img{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.flex-control-thumbs .epa-live-thumb{cursor:pointer;}
.flex-control-thumbs .epa-live-thumb img{
  border:2px solid transparent;
  box-sizing:border-box;
}
.flex-control-thumbs .epa-live-thumb.flex-active img{
  border-color:#2d5166;
}
.epa-preview-alert{
  width:100%;
  max-width:420px;
  margin:0;
  padding:10px 12px;
  border-radius:10px;
  background:#fff6e5;
  color:#7a4b00;
  border:1px solid #f0cf85;
  font-size:14px;
  text-align:center;
}

.woocommerce-product-gallery .epa-custom-main-image{
  background:#f3f3f3;
}
.flex-control-thumbs .epa-live-thumb[hidden]{display:none!important;}


.epa-page-live-preview{
  width:100%;
  max-width:420px;
  margin:0 auto 14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.epa-page-live-preview-title{
  font-weight:700;
  margin:2px 0 8px;
  text-align:center;
}
.epa-page-live-preview-box{
  width:100%;
  max-width:420px;
  background:#f3f3f3;
  border:1px solid #e3e3e3;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  padding:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.epa-page-live-preview-image{
  display:block;
  max-width:100%;
  height:auto;
  width:auto;
  object-fit:contain;
}

.epa-page-live-preview[hidden]{display:none !important;}
.epa-page-live-preview:not(.has-image){display:none !important;}
.epa-page-live-preview-image:not([src]),
.epa-page-live-preview-image[src=""]{display:none !important;}

.epa-mount-info{margin-top:14px;padding-top:6px}.epa-mount-info-title{font-weight:700;margin:0 0 8px}.epa-mount-info-row{display:flex;align-items:center;gap:12px}.epa-mount-info-image{width:138px;max-width:100%;height:auto;border:1px solid #e4e4e4;border-radius:6px;display:block;background:#f5f5f5}.epa-mount-info-text{font-size:14px;line-height:1.35;color:#333;flex:1}@media (max-width:900px){.epa-mount-info-row{align-items:flex-start}.epa-mount-info-image{width:120px}}

.epa-mount-option-easel{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:15px;color:#222;}
.epa-mount-option-easel input{margin:0;width:18px;height:18px;}

.epa-mount-option-easel[hidden]{display:none!important;}


.epa-saving-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(255,255,255,.78);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000001;border-radius:0}
.epa-saving-overlay.is-active{display:flex}
.epa-saving-overlay-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px 26px;border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 12px 40px rgba(0,0,0,.12)}
.epa-saving-eye{position:relative;width:94px;height:56px;border:4px solid #111;border-radius:100px/62px;background:#fff;display:flex;align-items:center;justify-content:center;animation:epa-eye-blink 1.7s ease-in-out infinite;transform-origin:center center;overflow:hidden}
.epa-saving-eye::before{content:"";position:absolute;width:28px;height:28px;border-radius:50%;background:#111;box-shadow:0 0 0 8px #5d8cff inset}
.epa-saving-eye::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;top:14px;left:48px;opacity:.92}
.epa-saving-label{font-size:16px;font-weight:700;color:#111;text-align:center}
.epa-saving-subtext{font-size:13px;color:#555;text-align:center}
@keyframes epa-eye-blink{
  0%, 42%, 100% { transform:scaleY(1); }
  45% { transform:scaleY(0.12); }
  48% { transform:scaleY(1); }
  78% { transform:scaleY(1); }
  82% { transform:scaleY(0.18); }
  86% { transform:scaleY(1); }
}
@media (max-width:480px){
  .epa-saving-eye{width:82px;height:48px}
  .epa-saving-overlay-inner{padding:18px 20px;gap:12px}
}
.epa-coaster-options{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px;padding:12px;border:1px solid #e4e4e4;border-radius:12px;background:#fafafa}
.epa-coaster-options-title,.epa-coaster-slot-toolbar-title{font-weight:700;font-size:14px}
.epa-coaster-options label{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.4}
.epa-coaster-slot-toolbar{margin:0 0 14px;padding:12px;border:1px solid #e4e4e4;border-radius:12px;background:#fff}
.epa-coaster-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.epa-coaster-slot{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border:1px solid #000;border-radius:10px;background:#000;color:#fff;cursor:pointer;text-align:left;transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease, border-color .15s ease, background .15s ease}
.epa-coaster-slot:hover{transform:translateY(-1px)}
.epa-coaster-slot.is-active{transform:translateY(-1px) scale(1.01);box-shadow:0 0 0 2px #fff,0 0 0 5px rgba(17,17,17,.28)}
.epa-coaster-slot.is-ready{border-color:#8b8b8b;background:#8b8b8b}
.epa-coaster-slot.is-ready .epa-coaster-slot-status{color:rgba(255,255,255,.92)}
.epa-coaster-slot-label{font-weight:700;font-size:13px;color:#fff}
.epa-coaster-slot-status{font-size:12px;color:rgba(255,255,255,.82)}
@media (max-width:640px){.epa-coaster-slot-grid{grid-template-columns:1fr}}

.epa-coaster-progress{font-size:13px;font-weight:700;margin-top:6px;color:#222}
.epa-copy-coaster-one{margin-top:0!important;border-radius:999px!important;background:#111!important;color:#fff!important;border-color:#111!important;padding:6px 12px!important;font-size:13px!important;line-height:1.2!important;min-height:auto!important}
.epa-coaster-slot{position:relative;min-height:58px;padding-left:62px!important}
.epa-coaster-slot-thumb{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:6px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.55)}
.epa-coaster-slot-thumb[hidden]{display:none!important}
.epa-coaster-slot:not(.is-ready){padding-left:14px!important}

.epa-coaster-slot-toolbar-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.epa-copy-coaster-one{padding:6px 12px!important;font-size:13px!important;line-height:1.2!important;min-height:auto!important}

.epa-save-set.is-disabled{opacity:.6;cursor:not-allowed}
.epa-controls .epa-save-set{margin-left:8px}

body.epa-modal-open .epa-saving-overlay.is-active{display:flex;align-items:center;justify-content:center;padding:16px}

/* Pillow designer v560.1 pillow workflow quality fix */
.epa-pillow-slot-toolbar{margin:0 0 14px;padding:14px;border:1px solid #e4e4e4;border-radius:12px;background:#fff}
.epa-pillow-mode-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;font-size:15px;line-height:1.45}
.epa-pillow-mode-title{display:block;font-size:19px;line-height:1.2;color:#111;margin-right:4px}
.epa-pillow-mode-row label{display:flex;align-items:center;gap:7px;margin:0}
.epa-pillow-side-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.epa-pillow-side{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:13px 15px;border:2px solid #2271b1;border-radius:10px;background:#fff;color:#2271b1;cursor:pointer;text-align:left;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease,background .15s ease,border-color .15s ease}
.epa-pillow-side:hover{transform:translateY(-1px);background:#f0f7ff}
.epa-pillow-side.is-active{transform:translateY(-1px) scale(1.01);box-shadow:0 0 0 2px #fff,0 0 0 5px rgba(34,113,177,.28)}
.epa-pillow-side.is-ready{background:#eef7ff;border-color:#2271b1}
.epa-pillow-side span{font-weight:800;font-size:15px;color:#2271b1}
.epa-pillow-side small{font-size:12.5px;color:#2271b1}
.epa-pillow-layout-note{margin-top:8px;font-size:13px;line-height:1.45;color:#555}
.epa-pillow-slot-toolbar[hidden],.epa-pillow-side[hidden]{display:none!important}
.epa-save-pillow.is-disabled{opacity:.6;cursor:not-allowed}
.epa-controls .epa-save-pillow{margin-left:8px}
.epa-pillow-side.is-locked{opacity:.55;cursor:not-allowed;border-color:#b7c7d6;background:#f7f9fb}
.epa-pillow-side.is-locked:hover{transform:none;background:#f7f9fb}
.epa-controls .epa-save-pillow{background:#00e5ff!important;color:#111!important;border-color:#00e5ff!important;font-weight:900}
.epa-controls .epa-save-pillow:hover{background:#26ecff!important;color:#111!important}
.epa-controls .epa-save-pillow.is-disabled{background:#888!important;border-color:#888!important;color:#e0faff!important;opacity:1;cursor:not-allowed}

@media (max-width:640px){.epa-pillow-side-grid{grid-template-columns:1fr}.epa-controls .epa-save-pillow{margin-left:0;margin-top:8px}}

/* Pillow designer v560.1 visual emphasis */
.epa-pillow-slot-toolbar{
  background:#000!important;
  border-color:#000!important;
  color:#00e5ff!important;
  box-shadow:0 2px 12px rgba(0,0,0,.16);
}
.epa-pillow-mode-title,
.epa-pillow-mode-row,
.epa-pillow-mode-row label{
  color:#00e5ff!important;
}
.epa-pillow-mode-row input[type="radio"]{
  accent-color:#00e5ff;
}
.epa-pillow-side{
  background:#050505!important;
  border-color:#00e5ff!important;
  color:#00e5ff!important;
}
.epa-pillow-side span,
.epa-pillow-side small{
  color:#00e5ff!important;
}
.epa-pillow-side:hover,
.epa-pillow-side.is-active,
.epa-pillow-side.is-ready{
  background:#101010!important;
}
.epa-pillow-side.is-locked{
  background:#222!important;
  border-color:#555!important;
  opacity:.72;
}


/* v561.3 liquid modal layout test: keep upload/status/preview/crop/controls visible on desktop. */
@media (min-width: 901px){
  .epa-modal{
    padding:8px;
  }
  .epa-modal.is-open{
    align-items:stretch;
    justify-content:center;
  }
  .epa-modal-dialog{
    width:min(1500px, calc(100vw - 16px));
    height:calc(100dvh - 16px);
    max-height:calc(100dvh - 16px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    padding:12px 22px 12px;
    border-radius:12px;
  }
  .epa-title{
    flex:0 0 auto;
    margin:0 0 8px;
    font-size:24px;
    line-height:1.15;
  }
  .epa-dropzone{
    flex:0 0 auto;
    padding:10px 14px;
    margin-bottom:12px;
  }
  .epa-stage-wrap{
    flex:1 1 auto;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,390px);
    gap:14px;
    align-items:stretch;
    overflow:hidden;
  }
  .epa-stage-outer{
    height:auto;
    min-height:0;
    max-height:none;
    padding:12px;
  }
  .epa-stage{
    min-height:0;
  }
  .epa-side{
    min-height:0;
    overflow:auto;
    position:relative;
    top:auto;
    gap:8px;
    padding-right:4px;
  }
  .epa-preview-box{
    min-height:0;
    max-height:30vh;
    padding:8px;
  }
  #epa-preview-canvas{
    max-height:28vh;
    object-fit:contain;
  }
  .epa-status{
    order:-10;
    flex:0 0 auto;
    position:sticky;
    top:0;
    z-index:20;
    min-height:0;
    margin:0 0 2px;
    padding:8px 10px;
    border:1px solid #cfe3f7;
    border-radius:8px;
    background:#f5fbff;
    color:#2271b1;
    font-size:14px;
    line-height:1.35;
  }
  .epa-status:empty{
    display:none;
  }
  .epa-edge-options,
  .epa-selected-attrs,
  .epa-mount-info{
    flex:0 0 auto;
  }
  .epa-safe-note{
    flex:0 0 auto;
    margin-top:8px;
    font-size:14px;
    line-height:1.3;
  }
  .epa-controls{
    flex:0 0 auto;
    position:relative;
    bottom:auto;
    margin-top:8px;
    padding:10px 0 0;
    background:#fff;
  }
  .epa-controls .button{
    min-height:38px;
  }
}
@media (min-width: 901px) and (max-height: 760px){
  .epa-title{
    font-size:22px;
    margin-bottom:6px;
  }
  .epa-dropzone{
    padding:8px 12px;
    margin-bottom:8px;
  }
  .epa-drop-inner{
    gap:8px;
  }
  .epa-stage-wrap{
    gap:10px;
  }
  .epa-stage-outer{
    padding:8px;
  }
  .epa-preview-box{
    max-height:24vh;
  }
  #epa-preview-canvas{
    max-height:22vh;
  }
  .epa-edge-options,
  .epa-selected-attrs,
  .epa-mount-info{
    padding:8px;
  }
  .epa-safe-note{
    margin-top:6px;
    font-size:13px;
  }
  .epa-controls{
    margin-top:6px;
    padding-top:8px;
  }
}


/* v561.4 special preview layout test:
   Pillow and coaster previews need more visual room than the compact regular-product preview.
   This is layout-only; upload/save/crop/S3 logic is unchanged. */
@media (min-width: 901px){
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-stage-wrap,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-stage-wrap{
    grid-template-columns:minmax(0,1fr) minmax(360px,520px);
  }

  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-preview-box,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-preview-box{
    min-height:110px;
    max-height:none;
    align-items:center;
  }

  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) #epa-preview-canvas,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) #epa-preview-canvas{
    width:100%;
    max-height:220px;
    height:auto;
  }

  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-side,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-side{
    overflow:auto;
  }

  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-selected-attrs,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-selected-attrs{
    font-size:14px;
    line-height:1.35;
  }
}

@media (min-width: 901px) and (max-height: 760px){
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-preview-box,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-preview-box{
    min-height:95px;
  }

  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) #epa-preview-canvas,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) #epa-preview-canvas{
    max-height:180px;
  }
}

@media (max-width: 900px){
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-preview-box,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-preview-box{
    min-height:120px;
  }

  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) #epa-preview-canvas,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) #epa-preview-canvas{
    width:100%;
    max-height:220px;
    height:auto;
  }
}


/* v561.6 flow-grid modal layout test
   Layout-only. No upload, save, S3, high-res crop, pillow, or coaster logic was changed.
   Goal: stable app-style modal with no absolute overlay, large crop area, useful preview area,
   compact upload bar, fixed workflow controls/header, and fixed save controls/footer.
*/
@media (min-width: 901px){
  .epa-modal{
    padding:8px;
  }
  .epa-modal.is-open{
    align-items:stretch;
    justify-content:center;
  }
  .epa-modal-dialog{
    --epa-side-col: clamp(360px, 31vw, 560px);
    width:min(1680px, calc(100vw - 16px));
    height:calc(100dvh - 16px);
    max-height:calc(100dvh - 16px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    padding:12px 20px 12px;
    border-radius:12px;
  }
  .epa-title{
    flex:0 0 auto;
    margin:0 0 8px;
    font-size:24px;
    line-height:1.15;
  }
  .epa-pillow-slot-toolbar,
  .epa-coaster-slot-toolbar{
    flex:0 0 auto;
    margin-bottom:10px;
  }
  .epa-stage-wrap{
    flex:1 1 auto;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--epa-side-col);
    gap:16px;
    align-items:stretch;
    overflow:hidden;
    width:100%;
  }
  .epa-work-left{
    min-width:0;
    min-height:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .epa-dropzone{
    flex:0 0 auto;
    padding:8px 12px;
    margin:0 0 10px;
    border-radius:12px;
  }
  .epa-drop-inner{
    min-height:36px;
    gap:8px;
  }
  .epa-drop-inner strong{
    font-size:15px;
  }
  .epa-browse-btn{
    min-height:34px;
    padding:6px 18px;
  }
  .epa-stage-outer{
    flex:1 1 auto;
    min-height:0;
    height:auto;
    max-height:none;
    padding:10px;
  }
  .epa-stage{
    min-height:0;
  }
  .epa-safe-note{
    flex:0 0 auto;
    margin:8px 0 0;
    font-size:14px;
    line-height:1.28;
  }
  .epa-side{
    position:relative;
    top:auto;
    right:auto;
    bottom:auto;
    min-width:0;
    min-height:0;
    width:auto;
    display:flex;
    flex-direction:column;
    overflow:auto;
    gap:8px;
    padding-right:4px;
  }
  .epa-status{
    order:-1;
    position:sticky;
    top:0;
    z-index:20;
    min-height:0;
    margin:0;
    padding:8px 10px;
    border:1px solid #cfe3f7;
    border-radius:8px;
    background:#f5fbff;
    color:#2271b1;
    font-size:14px;
    line-height:1.35;
  }
  .epa-status:empty{
    display:none;
  }
  .epa-preview-title{
    flex:0 0 auto;
    margin-top:0;
  }
  .epa-preview-box{
    flex:0 0 auto;
    min-height:clamp(190px, 31vh, 380px);
    max-height:none;
    padding:8px;
  }
  #epa-preview-canvas{
    width:100%;
    max-height:clamp(180px, 29vh, 360px);
    height:auto;
    object-fit:contain;
  }
  .epa-edge-options,
  .epa-selected-attrs,
  .epa-mount-info{
    flex:0 0 auto;
  }
  .epa-controls{
    flex:0 0 auto;
    position:relative;
    bottom:auto;
    z-index:30;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:10px;
    padding:10px 0 0;
    background:#fff;
    border-top:1px solid #e7e7e7;
  }
  .epa-controls .button{
    min-height:38px;
  }

  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-modal-dialog,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-modal-dialog{
    --epa-side-col: clamp(430px, 35vw, 620px);
  }
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-preview-box,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-preview-box{
    min-height:clamp(220px, 36vh, 430px);
  }
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) #epa-preview-canvas,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) #epa-preview-canvas{
    max-height:clamp(210px, 34vh, 410px);
  }
}

@media (min-width: 901px) and (max-height: 780px){
  .epa-modal-dialog{
    --epa-side-col: clamp(350px, 30vw, 520px);
    padding:10px 18px 10px;
  }
  .epa-title{
    font-size:22px;
    margin-bottom:6px;
  }
  .epa-pillow-slot-toolbar,
  .epa-coaster-slot-toolbar{
    margin-bottom:8px;
  }
  .epa-stage-wrap{
    gap:12px;
  }
  .epa-dropzone{
    padding:7px 10px;
    margin-bottom:8px;
  }
  .epa-stage-outer{
    padding:8px;
  }
  .epa-preview-box{
    min-height:clamp(160px, 28vh, 300px);
  }
  #epa-preview-canvas{
    max-height:clamp(150px, 26vh, 285px);
  }
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-modal-dialog,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-modal-dialog{
    --epa-side-col: clamp(410px, 35vw, 570px);
  }
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) .epa-preview-box,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) .epa-preview-box{
    min-height:clamp(185px, 32vh, 340px);
  }
  #epa-canvas-modal:has(.epa-pillow-slot-toolbar:not([hidden])) #epa-preview-canvas,
  #epa-canvas-modal:has(.epa-coaster-slot-toolbar) #epa-preview-canvas{
    max-height:clamp(175px, 30vh, 325px);
  }
  .epa-safe-note{
    font-size:13px;
    margin-top:6px;
  }
  .epa-controls{
    margin-top:8px;
    padding-top:8px;
  }
}

@media (max-width: 900px){
  .epa-modal-dialog{
    display:flex;
    flex-direction:column;
    overflow:auto;
  }
  .epa-stage-wrap{
    display:flex;
    flex-direction:column;
    gap:14px;
    overflow:visible;
  }
  .epa-work-left{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .epa-dropzone{
    margin-bottom:0;
  }
  .epa-side{
    position:relative;
    width:auto;
    overflow:visible;
  }
  .epa-preview-box{
    min-height:160px;
  }
  #epa-preview-canvas{
    width:100%;
    max-height:260px;
    height:auto;
  }
}


/* v562.6 non-blocking original-upload eye indicator.
   Shows while the full original uploads; does not block cropper interaction. */
.epa-uploading-original-indicator{
  display:none;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid #bfe7ef;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(0,255,255,.10), rgba(34,113,177,.08));
  color:#0a4d68;
  font-size:14px;
  line-height:1.25;
  box-shadow:0 6px 20px rgba(0,0,0,.06);
}
.epa-uploading-original-indicator.is-active{
  display:flex;
}
.epa-uploading-original-eye{
  position:relative;
  flex:0 0 auto;
  width:48px;
  height:29px;
  border:3px solid #111;
  border-radius:100px/62px;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  animation:epa-eye-blink 1.7s ease-in-out infinite;
  transform-origin:center center;
  overflow:hidden;
}
.epa-uploading-original-eye::before{
  content:"";
  position:absolute;
  width:14px;
  height:14px;
  border-radius:50%;
  background:#111;
  box-shadow:0 0 0 4px #00e5ff inset;
}
.epa-uploading-original-eye::after{
  content:"";
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#fff;
  top:7px;
  left:25px;
  opacity:.92;
}
.epa-uploading-original-label{
  font-weight:800;
  color:#111;
}
.epa-uploading-original-subtext{
  color:#226985;
  font-size:12.5px;
  margin-top:2px;
}
@media (max-width:900px){
  .epa-uploading-original-indicator{
    padding:9px 10px;
  }
  .epa-uploading-original-eye{
    width:42px;
    height:25px;
  }
}


/* v562.7 Open Designer button/helper polish. UI-only. */
.epa-canvas-trigger-wrap .epa-designer-action-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 14px;
  margin:16px 0 18px;
}
.epa-canvas-trigger-wrap .epa-open-designer,
.epa-canvas-trigger-wrap .epa-open-designer.button,
.epa-canvas-trigger-wrap .epa-open-designer.button.alt{
  color:#fff !important;
  background:#000 !important;
  border-color:#000 !important;
  text-shadow:none !important;
}
.epa-canvas-trigger-wrap .epa-open-designer:hover,
.epa-canvas-trigger-wrap .epa-open-designer:focus{
  color:#00e5ff !important;
  background:#000 !important;
  border-color:#000 !important;
}
.epa-open-designer-helper{
  font-size:14px;
  line-height:1.35;
  color:#555;
  max-width:460px;
}
.epa-open-designer-helper::before{
  content:"➜ ";
  color:#00cfe8;
  font-weight:800;
}
@media (max-width:700px){
  .epa-canvas-trigger-wrap .epa-designer-action-row{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .epa-open-designer-helper{
    font-size:13px;
    max-width:100%;
  }
}


/* v562.8 Open Designer helper above button + stronger button text override. UI-only. */
.epa-canvas-trigger-wrap .epa-designer-action-row{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:7px !important;
  margin:16px 0 18px !important;
}
.epa-canvas-trigger-wrap .epa-open-designer-helper{
  order:1;
  display:block;
  font-size:14px;
  line-height:1.35;
  color:#555;
  max-width:520px;
  margin:0;
}
.epa-canvas-trigger-wrap .epa-open-designer{
  order:2;
}
.epa-canvas-trigger-wrap button.epa-open-designer,
.epa-canvas-trigger-wrap button.epa-open-designer.button,
.epa-canvas-trigger-wrap button.epa-open-designer.button.alt,
.single-product .epa-canvas-trigger-wrap button.epa-open-designer,
.single-product .epa-canvas-trigger-wrap button.epa-open-designer.button,
.single-product .epa-canvas-trigger-wrap button.epa-open-designer.button.alt{
  color:#ffffff !important;
  background-color:#000000 !important;
  background:#000000 !important;
  border-color:#000000 !important;
  text-shadow:none !important;
  box-shadow:none;
  -webkit-text-fill-color:#ffffff !important;
}
.epa-canvas-trigger-wrap button.epa-open-designer:hover,
.epa-canvas-trigger-wrap button.epa-open-designer:focus,
.epa-canvas-trigger-wrap button.epa-open-designer.button:hover,
.epa-canvas-trigger-wrap button.epa-open-designer.button:focus,
.single-product .epa-canvas-trigger-wrap button.epa-open-designer:hover,
.single-product .epa-canvas-trigger-wrap button.epa-open-designer:focus{
  color:#ffffff !important;
  background-color:#000000 !important;
  background:#000000 !important;
  border-color:#000000 !important;
  -webkit-text-fill-color:#ffffff !important;
}
@media (max-width:700px){
  .epa-canvas-trigger-wrap .epa-open-designer-helper{
    font-size:13px;
    max-width:100%;
  }
}


/* v562.9 direct Open Designer instruction/button styling.
   Uses plugin-only classes and avoids Elementor/Astra global button styling. */
.epa-canvas-trigger-wrap{
  display:block !important;
  margin:16px 0 18px !important;
}
.epa-canvas-trigger-wrap .epa-open-designer-instruction{
  display:block !important;
  margin:0 0 8px 0 !important;
  padding:0 !important;
  clear:both !important;
  color:#333 !important;
  font-size:14px !important;
  line-height:1.35 !important;
  font-weight:400 !important;
  max-width:560px !important;
}
.epa-canvas-trigger-wrap .epa-open-designer-instruction::before{
  content:"➜ ";
  color:#00cfe8 !important;
  font-weight:900 !important;
}
.epa-canvas-trigger-wrap .epa-designer-action-row{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  clear:both !important;
}
.epa-canvas-trigger-wrap .epa-open-designer{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:44px !important;
  padding:11px 28px !important;
  margin:0 !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  background:#000 !important;
  background-color:#000 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:16px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  text-decoration:none !important;
  text-shadow:none !important;
  box-shadow:none !important;
  cursor:pointer !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.epa-canvas-trigger-wrap .epa-open-designer:visited,
.epa-canvas-trigger-wrap .epa-open-designer:hover,
.epa-canvas-trigger-wrap .epa-open-designer:active,
.epa-canvas-trigger-wrap .epa-open-designer:focus{
  background:#000 !important;
  background-color:#000 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-color:#000 !important;
  text-decoration:none !important;
  outline:2px solid transparent;
}
@media (max-width:700px){
  .epa-canvas-trigger-wrap .epa-open-designer-instruction{
    font-size:13px !important;
    max-width:100% !important;
  }
  .epa-canvas-trigger-wrap .epa-open-designer{
    min-height:42px !important;
    padding:10px 24px !important;
  }
}


/* v563.0 JS-positioned Open Designer helper.
   JS moves this directly above .epa-open-designer after Plugin Republic/Woo layout runs. */
.epa-open-designer-js-helper{
  display:block !important;
  margin:0 0 8px 0 !important;
  padding:0 !important;
  clear:both !important;
  color:#333 !important;
  font-size:14px !important;
  line-height:1.35 !important;
  font-weight:400 !important;
  max-width:560px !important;
  text-decoration:none !important;
}
.epa-open-designer-js-helper::before{
  content:"➜ ";
  color:#00cfe8 !important;
  font-weight:900 !important;
}
button.epa-open-designer,
button.epa-open-designer:hover,
button.epa-open-designer:focus,
button.epa-open-designer:active,
.epa-open-designer,
.epa-open-designer:hover,
.epa-open-designer:focus,
.epa-open-designer:active{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  background:#000000 !important;
  background-color:#000000 !important;
  border-color:#000000 !important;
  text-shadow:none !important;
  text-decoration:none !important;
}
