.ip-card .ip-photo,
.ipd-product-shot,
.ipmix-frame-sample { position:relative; }
.ipmix-product-frame {
    position:absolute;
    inset:3px;
    z-index:2;
    box-sizing:border-box;
    border:36px solid transparent;
    border-image-slice:60;
    border-image-width:clamp(28px,18%,54px);
    border-image-repeat:stretch;
    pointer-events:none;
}
.ipmix-product-frame--celebrate { border-image-source:url('assets/frames/celebrate.svg?v=20261103'); }
.ipmix-product-frame--christmas { border-image-source:url('assets/frames/christmas.svg?v=20261103'); }
.ipmix-product-frame--lunar { border-image-source:url('assets/frames/lunar.svg?v=20261103'); }
.ipmix-product-frame--halloween { border-image-source:url('assets/frames/halloween.svg?v=20261103'); }
.ipmix-product-frame--custom { border:0; background-size:100% 100%; background-position:center; background-repeat:no-repeat; }
.ipd-product-shot .ipd-sale { z-index:3; }
.ipmix-frame-admin { max-width:1120px; }
.ipmix-frame-preview-note { padding:10px 16px; background:#fceff4; color:#612747; font:14px/1.6 system-ui,sans-serif; text-align:center; }
.ipmix-frame-preview-note a { color:inherit; text-decoration:underline; margin-left:12px; }
.ipmix-frame-choices {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(168px,1fr));
    gap:16px;
    margin:22px 0;
}
.ipmix-frame-choice {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:12px;
    border:1px solid #a7aaad;
    border-radius:6px;
    background:#fff;
    cursor:pointer;
}
.ipmix-frame-choice:has(input:checked) { border-color:#b52d70; outline:2px solid #b52d70; outline-offset:2px; }
.ipmix-frame-choice:has(input:focus-visible) { outline:3px solid #2271b1; outline-offset:3px; }
.ipmix-frame-choice>input { position:absolute; top:20px; left:20px; z-index:3; }
.ipmix-frame-choice>span:last-child { line-height:1.6; color:#50575e; }
.ipmix-frame-sample { display:block; aspect-ratio:1; background:#fff; }
.ipmix-frame-sample>img { display:block; width:100%; height:100%; object-fit:contain; }
.ipmix-frame-choice strong { font-size:15px; }
.ipmix-frame-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.ipmix-frame-upload { padding:4px 20px 12px; border:1px solid #c3c4c7; background:#fff; }
.ipmix-frame-upload p { max-width:800px; line-height:1.7; }
.ipmix-frame-error { color:#b32d2e; font-weight:600; }
.ipmix-frame-actions a[aria-disabled="true"] { opacity:.5; cursor:default; }
@media(max-width:600px) {
    .ipmix-frame-choices { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .ipmix-frame-choice { padding:8px; }
}
