.pe-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;
background:rgba(12,7,3,.82);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
font-family:Georgia,"Times New Roman",serif;color:#f0e2c4;padding:12px;box-sizing:border-box}
.pe-panel{width:600px;max-width:100%;max-height:94vh;max-height:94dvh;overflow-y:auto;box-sizing:border-box;
background:linear-gradient(160deg,#3a2410 0%,#2a1a0c 55%,#1d1106 100%);
border:2px solid #c9a86a;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.7),inset 0 0 40px rgba(0,0,0,.35)}
.pe-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;
border-bottom:1px solid rgba(201,168,106,.35)}
.pe-head h3{margin:0;font-size:1.25rem;letter-spacing:1px;color:#e8cf9a;font-weight:normal}
.pe-x{background:none;border:1px solid rgba(201,168,106,.5);color:#e8cf9a;border-radius:8px;
width:34px;height:34px;font-size:1rem;cursor:pointer;line-height:1}
.pe-x:active{transform:scale(.94)}
.pe-body{display:flex;gap:18px;padding:16px 18px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.pe-stage{position:relative;width:min(68vw,300px);aspect-ratio:1/1;flex:0 0 auto;
background:#120b05 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M0 12h24M12 0v24' stroke='%232a1c0e' stroke-width='1'/%3E%3C/svg%3E");
border:1px solid #6b4c26;border-radius:10px;overflow:hidden;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.pe-stage.dragging{cursor:grabbing}
.pe-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transform-origin:center}
.pe-frame{position:absolute;display:none;pointer-events:none;border:2px dashed #d4a94e;
box-shadow:0 0 0 9999px rgba(0,0,0,.38)}
.pe-frame.circle{border-radius:50%}
.pe-frame.rect{border-radius:8px}
.pe-hint{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-size:.75rem;font-style:italic;
color:rgba(240,226,196,.75);pointer-events:none;text-shadow:0 1px 3px #000}
.pe-loading,.pe-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
font-style:italic;color:rgba(240,226,196,.7);padding:20px;text-align:center}
.pe-side{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1 1 180px;min-width:170px}
.pe-preview-label{font-size:.8rem;letter-spacing:2px;color:rgba(232,207,154,.7);text-transform:uppercase}
.pe-preview{position:relative;overflow:hidden;border:2px solid #c9a86a;background:#120b05;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.pe-preview.circle{width:118px;height:118px;border-radius:50%}
.pe-preview.rect{width:132px;height:99px;border-radius:8px}
.pe-prev-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;transform-origin:center}
.pe-zoom{display:flex;align-items:center;gap:10px;width:100%;max-width:230px}
.pe-zbtn{flex:0 0 auto;width:38px;height:38px;border-radius:10px;border:1.5px solid #c9a86a;background:rgba(0,0,0,.25);
color:#e8cf9a;font-size:1.3rem;cursor:pointer;line-height:1;font-family:inherit}
.pe-zbtn:active{transform:scale(.92);background:rgba(201,168,106,.25)}
.pe-zoom input[type=range]{flex:1 1 auto;min-width:0;accent-color:#d4a94e;height:38px;cursor:pointer}
.pe-scale-read{font-size:1.05rem;color:#e8cf9a;letter-spacing:1px}
.pe-reset{background:none;border:1px solid rgba(201,168,106,.5);color:#e8cf9a;border-radius:10px;
padding:8px 16px;font-size:.9rem;cursor:pointer;font-family:inherit}
.pe-reset:active{transform:scale(.95)}
.pe-foot{display:flex;gap:12px;justify-content:flex-end;padding:12px 18px 16px;border-top:1px solid rgba(201,168,106,.35)}
.pe-cancel{background:rgba(0,0,0,.25);border:1.5px solid #c9a86a;color:#e8cf9a;border-radius:10px;
padding:10px 22px;font-size:1rem;cursor:pointer;font-family:inherit}
.pe-cancel:active{transform:scale(.96)}
.pe-save{background:linear-gradient(#e8c56a,#b9862f);border:1.5px solid #8a6420;color:#2a1a0e;border-radius:10px;
padding:10px 26px;font-size:1rem;font-weight:bold;cursor:pointer;font-family:inherit;letter-spacing:.5px}
.pe-save:active{transform:scale(.96)}
@media (max-width:520px){
.pe-body{flex-direction:column;align-items:center;gap:14px}
.pe-stage{width:min(80vw,300px)}
.pe-side{width:100%}
.pe-foot{justify-content:stretch}
.pe-cancel,.pe-save{flex:1}
}