.crop-backdrop{z-index:1200;padding:var(--space-4);background:color-mix(in srgb, var(--color-bg-base) 75%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;display:grid;position:fixed;inset:0}.crop-dialog{max-width:calc(100vw - var(--space-6));padding:var(--space-6) var(--space-6) var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-bg-elevated);box-shadow:0 1.5rem 3rem var(--color-shadow);flex-direction:column;align-items:stretch;display:flex}.crop-title{margin-bottom:var(--space-5);font-size:var(--text-lg);color:var(--color-text-primary);font-weight:600;line-height:1.3}.crop-stage{border-radius:var(--radius-lg);background:var(--color-bg-base);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;align-self:center;position:relative;overflow:hidden}.crop-stage:active{cursor:grabbing}.crop-stage:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.crop-image{transform-origin:50%;pointer-events:none;max-width:none;position:absolute;top:50%;left:50%}.crop-frame{pointer-events:none;border:2px solid #ffffffe6;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #0009}.crop-frame[data-shape=avatar]{border-radius:50%}.crop-frame[data-shape=banner]{border-radius:var(--radius-md)}.crop-zoom{align-items:center;gap:var(--space-3);margin-top:var(--space-5);color:var(--color-text-muted);display:flex}.crop-zoom input{accent-color:var(--color-accent);flex:1}.crop-rotate{width:2.25rem;height:2.25rem;min-height:0;margin-right:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;background:0 0;flex-shrink:0;place-items:center;padding:0;display:grid}.crop-rotate:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.crop-rotate svg{width:1.1rem;height:1.1rem}.crop-glyph-small{width:1rem;height:1rem}.crop-glyph-large{width:1.5rem;height:1.5rem}.crop-error{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-danger)}.crop-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border);display:flex}.crop-actions-spacer{flex:1}.crop-reset,.crop-cancel,.crop-apply{min-height:2.5rem;padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-emphasized);font-weight:600}.crop-reset{color:var(--color-text-secondary);background:0 0;border:0;padding-inline:0;text-decoration:none}.crop-reset:hover:not(:disabled){color:var(--color-text-primary)}.crop-cancel{border:1px solid var(--color-border-strong);color:var(--color-text-primary);background:0 0}.crop-cancel:hover:not(:disabled){background:var(--color-bg-hover)}.crop-apply{background:var(--color-accent);color:var(--color-accent-text);border:0}.crop-apply:hover:not(:disabled){background:var(--color-accent-hover)}.crop-apply:disabled,.crop-cancel:disabled,.crop-reset:disabled{opacity:.55;cursor:not-allowed}@media (width<=30rem){.crop-dialog{padding:var(--space-5) var(--space-4) var(--space-4)}.crop-actions{margin-top:var(--space-5);padding-top:var(--space-4)}}@media (width<=39.99rem){.crop-backdrop{padding:calc(var(--safe-top) + 8px) max(12px, var(--safe-right)) calc(var(--safe-bottom) + 8px) max(12px, var(--safe-left))}.crop-dialog{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 16px);overscroll-behavior:contain;overflow-y:auto}.crop-actions{flex-wrap:wrap}.crop-reset,.crop-cancel,.crop-apply,.crop-rotate{min-height:44px}.crop-rotate{width:44px;height:44px}}
