.imgpx{--imgpx-gap:1.25rem}.imgpx [hidden]{display:none!important}.imgpx .drop-zone{transition:padding .2s}.imgpx .drop-zone button{width:auto;margin:0}.imgpx.has-items .drop-zone{padding:.9rem 1rem}.imgpx.has-items .drop-zone svg{width:1.4rem;height:1.4rem;margin-bottom:.35rem}.imgpx.has-items .drop-zone p{margin-bottom:.6rem;font-size:.9rem}.imgpx.has-items .drop-zone small{display:none}.imgpx-workspace{gap:var(--imgpx-gap);margin-top:var(--imgpx-gap);grid-template-columns:minmax(0,1fr);display:grid}.imgpx-workspace[hidden]{display:none}.imgpx-stage{gap:var(--imgpx-gap);min-width:0;display:grid}.imgpx-panel{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);min-width:0}@media (width>=1200px){.imgpx-workspace{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start}.imgpx-panel{overscroll-behavior:contain;max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow-y:auto}}.imgpx-acc>summary{cursor:pointer;min-height:44px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;border-bottom:1.5px dashed var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;font-weight:600;list-style:none;display:flex}.imgpx-acc>summary::-webkit-details-marker{display:none}.imgpx-acc>summary:after{content:"+";color:var(--muted);font-size:1.1rem}.imgpx-acc[open]>summary:after{content:"−"}.imgpx-acc-body{padding:1rem}.imgpx-sub{border-top:1.5px dashed var(--line);margin-top:.5rem;padding-top:.5rem}.imgpx-sub>summary{cursor:pointer;min-height:40px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;list-style:none;display:flex}.imgpx-sub>summary::-webkit-details-marker{display:none}.imgpx-sub>summary:before{content:"▸";color:var(--muted)}.imgpx-sub[open]>summary:before{content:"▾"}@media (width>=768px){.imgpx-acc>summary{display:none}}.imgpx-field{margin-bottom:1rem;position:relative}.imgpx-field [data-tooltip]{position:static}.imgpx-field [data-tooltip]:before{width:auto;max-width:100%;inset-inline-start:0;transform:none}.imgpx-field:last-child{margin-bottom:0}.imgpx-field label{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.imgpx-legend{margin-bottom:.35rem;font-size:.9rem;font-weight:700;display:block}.imgpx-num{font-family:var(--font-mono)}.imgpx-chips{flex-wrap:wrap;gap:.4rem;display:flex}.imgpx-chips button{width:auto;min-height:44px;margin:0;padding:.4rem .7rem;font-size:.8rem}.imgpx-block-btn{width:100%;min-height:44px;margin:0 0 .4rem}.imgpx-note{color:var(--muted);margin:.35rem 0 0;font-size:.78rem;line-height:1.4}.imgpx-note--warn{color:var(--err);border:1.5px solid var(--err);padding:.5rem .6rem}.imgpx-check{cursor:pointer;align-items:center;gap:.35rem;min-height:44px;margin:0;font-size:.85rem;font-weight:400;display:inline-flex!important}.imgpx-preview-head,.imgpx-results-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.imgpx-preview-head h3,.imgpx-results-head h3{font-size:1rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;margin:0}.imgpx-results-head button{width:auto;min-height:44px;margin:0}.imgpx-holder{background:var(--field-bg);border:1.5px solid var(--line);border-radius:var(--radius);justify-content:center;align-items:center;min-height:240px;padding:.75rem;display:flex;overflow:hidden}.imgpx-placeholder{color:var(--muted);text-align:center;margin:0;font-size:.9rem}.imgpx-frame{touch-action:none;direction:ltr;width:100%;margin-inline:auto;line-height:0;position:relative}.imgpx-frame canvas{width:100%;max-width:100%;height:auto;display:block}.imgpx-before{clip-path:inset(0 calc(100% - var(--split,50%)) 0 0);position:absolute;inset:0;width:100%!important;height:100%!important}.imgpx-regions{cursor:crosshair;position:absolute;inset:0}.imgpx .imgpx-region{border:1.5px dashed var(--acc);background:rgba(var(--pri-rgb), .12);box-sizing:border-box;position:absolute}.imgpx .imgpx-region--ellipse{border-radius:50%}.imgpx .imgpx-region-del{background:var(--acc);border-color:var(--acc);width:1.75rem;height:1.75rem;min-height:0;color:var(--surface);border-radius:50%;margin:0;padding:0;font-size:.9rem;line-height:1;position:absolute;inset-block-start:-.6rem;inset-inline-end:-.6rem}@media (pointer:coarse){.imgpx .imgpx-region-del{width:2.4rem;height:2.4rem;font-size:1.2rem}}.imgpx-split{cursor:ew-resize;touch-action:none;background:0 0;width:44px;margin-inline-start:-22px;position:absolute;inset-block:0;inset-inline-start:var(--split,50%)}.imgpx-split:before{content:"";background:var(--acc);width:2px;position:absolute;inset-block:0;inset-inline-start:21px}.imgpx-split:after{content:"";border:1.5px solid var(--acc);background:var(--surface);opacity:.9;border-radius:50%;width:2.25rem;height:2.25rem;position:absolute;inset-block-start:50%;inset-inline-start:22px;transform:translate(-50%,-50%)}.imgpx-tags{pointer-events:none;justify-content:space-between;display:flex;position:absolute;inset-block-start:.4rem;inset-inline:.4rem}.imgpx-tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:var(--surface);color:var(--ink);border:1px solid var(--line);white-space:nowrap;padding:.1rem .3rem;font-size:.65rem;line-height:1.4}.imgpx .imgpx-thead{border-bottom:1.5px solid var(--line-strong);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);gap:.75rem;padding:0 .6rem .4rem;font-size:.75rem;display:none}.imgpx .imgpx-list{margin:0;padding:0;list-style:none}.imgpx .imgpx-row{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr);align-items:center;gap:.6rem;margin:0 0 .6rem;padding:.6rem;display:grid}.imgpx .imgpx-row.is-selected{border-color:var(--pri);box-shadow:inset 3px 0 0 var(--pri)}.imgpx .imgpx-row-main{align-items:center;gap:.6rem;min-width:0;display:flex}.imgpx .imgpx-thumb{object-fit:cover;border:1px solid var(--line);background:var(--field-bg);flex:none;width:48px;height:48px}.imgpx .imgpx-name-btn{width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;margin:0;padding:.2rem .25rem;display:block}.imgpx .imgpx-name-btn:hover{color:var(--link);background:0 0}.imgpx .imgpx-name-btn:active{transform:none}.imgpx .imgpx-row-name{overflow-wrap:anywhere;font-size:.88rem;font-weight:700;display:block}.imgpx .imgpx-name-btn[aria-pressed=true] .imgpx-row-name{text-underline-offset:3px;text-decoration:underline}.imgpx .imgpx-row-sub{color:var(--muted);font-size:.75rem;font-family:var(--font-mono);display:block}.imgpx .imgpx-badge{font-size:.72rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border:1.5px solid var(--muted);color:var(--muted);white-space:nowrap;justify-self:start;padding:.15rem .5rem;display:inline-block}.imgpx .imgpx-badge.is-ready{border-color:var(--ok);color:var(--ok)}.imgpx .imgpx-badge.is-processing{border-color:var(--pri);color:var(--pri)}.imgpx .imgpx-badge.is-stale{border-color:var(--acc);color:var(--acc)}.imgpx .imgpx-badge.is-error{border-color:var(--err);color:var(--err)}.imgpx .imgpx-row-actions{gap:.4rem;display:flex}.imgpx .imgpx-row-actions button{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;margin:0;padding:0;display:inline-flex}@media (width>=768px){.imgpx .imgpx-thead{grid-template-columns:minmax(0,1fr) 7.5rem 6.5rem;display:grid}.imgpx .imgpx-row{grid-template-columns:minmax(0,1fr) 7.5rem 6.5rem;gap:.75rem}}.imgpx-actions{z-index:5;margin-top:var(--imgpx-gap);padding:.7rem .8rem calc(.7rem + env(safe-area-inset-bottom,0px));background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex;position:sticky;bottom:0}.imgpx-actions[hidden]{display:none}.imgpx-status{font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;margin:0;font-size:.78rem}.imgpx-actions-btns{flex-wrap:wrap;gap:.5rem;display:flex}.imgpx-actions-btns button{width:auto;min-height:44px;margin:0}@media (width<=479px){.imgpx-actions{padding:.5rem .6rem calc(.5rem + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:stretch;gap:.4rem}.imgpx-status{font-size:.72rem}.imgpx-actions-btns button{flex:auto;padding:.45rem .6rem;font-size:.85rem}}@media (prefers-reduced-motion:reduce){.imgpx .drop-zone,.imgpx .imgpx-row,.imgpx .imgpx-name-btn{transition:none!important}}
