.px-h{margin:14px 0 8px;color:var(--muted);font-size:14px}
.px-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.px-bar label,.px-f label{display:flex;gap:8px;align-items:center;font-size:14px}
.px-bar .btn,.px-bar .btn.ghost{padding:8px 14px;font-size:14px;min-height:0}
.px-bar .btn.on{border-color:var(--brand);background:var(--soft);color:var(--brand)}
.px-bar input[type=color]{width:36px;height:30px;padding:0;border:1px solid var(--line);border-radius:8px;background:none}
.px-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;margin:12px 0}
.px-c{border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--surface);text-align:center;cursor:grab}
.px-c b{display:block;font-size:13px;margin:4px 0}
.px-t{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--soft);border-radius:8px;overflow:hidden}
.px-t img{max-width:100%;max-height:100%;transition:transform .15s}
.px-a{display:flex;justify-content:center;gap:2px;flex-wrap:wrap}
.px-a button{border:0;background:none;color:var(--ink);font-size:15px;min-width:30px;min-height:30px;border-radius:8px;cursor:pointer}
.px-a button:hover{background:var(--soft)}
.px-crop{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;margin:10px 0}
.px-pv{position:relative;display:inline-block;max-width:100%;line-height:0;border:1px solid var(--line)}
.px-pv canvas{max-width:100%;height:auto}
.px-pv .m{position:absolute;background:rgba(20,20,40,.55);pointer-events:none}
.px-pv .t{top:0;left:0;right:0;height:0}.px-pv .b{bottom:0;left:0;right:0;height:0}.px-pv .l{top:0;bottom:0;left:0;width:0}.px-pv .r{top:0;bottom:0;right:0;width:0}
.px-f{display:flex;flex-direction:column;gap:12px;min-width:200px}
.px-f label{justify-content:space-between}.px-f output{min-width:34px;text-align:right}
.px-f select{padding:8px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.px-pg{overflow:auto;text-align:center;margin:8px 0 14px}
.px-st{position:relative;display:inline-block;max-width:100%;line-height:0;border:1px solid var(--line);background:#fff}
.px-st #e-pg{display:block;max-width:100%;height:auto}
.px-st #e-ov{position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}
.px-body .btn:not(.ghost){margin-top:6px}
.px-bar .btn,.px-bar .btn.ghost{width:auto!important;flex:none;margin:0}
.px-a button{min-width:26px;min-height:30px;font-size:14px}
.px-a{gap:0}
