.overlay { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 24px; background: rgba(0, 0, 0, 0.45); } .dialog { width: min(720px, 100%); display: flex; flex-direction: column; gap: 16px; padding: 20px; border-radius: 5px; background: var(--color-white); box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18); } .head { display: flex; flex-direction: column; gap: 6px; } .title { margin: 0; font-size: 13px; font-weight: 400; letter-spacing: 0.18em; text-transform: uppercase; } .hint { margin: 0; font-size: 12px; font-weight: 400; color: var(--color-soft); } .stage { position: relative; width: 100%; height: min(52vh, 420px); overflow: hidden; border-radius: 5px; background: #111; } /* Light checker so transparent logos stay visible while cropping */ .stageLight { background-color: #f3f3f3; background-image: linear-gradient(45deg, #e8e8e8 25%, transparent 25%), linear-gradient(-45deg, #e8e8e8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #e8e8e8 75%), linear-gradient(-45deg, transparent 75%, #e8e8e8 75%); background-size: 16px 16px; background-position: 0 0, 0 8px, 8px -8px, -8px 0; } .stageLight :global(.reactEasyCrop_CropArea) { color: rgba(0, 0, 0, 0.28); border-color: rgba(0, 0, 0, 0.55); } .zoomRow { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 10px; } .zoomBtn { width: 32px; height: 32px; border: 1px solid #ececec; border-radius: 3px; background: #fff; font-size: 18px; font-weight: 400; line-height: 1; color: var(--color-muted); } .zoomBtn:hover:not(:disabled), .zoomBtn:focus-visible:not(:disabled) { border-color: var(--color-black); color: var(--color-black); } .zoomBtn:disabled { opacity: 0.4; cursor: not-allowed; } .zoomRange { width: 100%; accent-color: var(--color-black); } .zoomValue { min-width: 44px; text-align: end; font-size: 12px; font-weight: 400; letter-spacing: 0.08em; color: var(--color-soft); } .error { margin: 0; font-size: 13px; font-weight: 400; color: #8a1f11; } .actions { display: flex; justify-content: flex-end; gap: 10px; } .cancelBtn, .applyBtn { min-height: 38px; padding: 0 18px; font-size: 11px; letter-spacing: 0.16em; } .cancelBtn { border-color: #d4d4d4; color: var(--color-soft); } .cancelBtn::before { content: none; } .cancelBtn:hover, .cancelBtn:focus-visible { color: var(--color-black); border-color: var(--color-black); background: transparent; } .applyBtn { background: var(--color-black); border-color: var(--color-black); color: var(--color-white); } .applyBtn:hover, .applyBtn:focus-visible { color: var(--color-black); } .applyBtn::before { background: #fff; } .applyBtn:disabled, .cancelBtn:disabled { opacity: 0.45; cursor: not-allowed; }