.wrapper { display: flex; flex-direction: column; gap: 12px; width: 100%; } .uploadZone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; width: 100%; aspect-ratio: 1 / 1; max-width: 320px; border: 2px dashed rgba(143, 65, 12, 0.28); border-radius: var(--radius-sm); background: rgba(255, 250, 250, 0.55); color: var(--text-primary); font-size: 0.9rem; cursor: pointer; transition: border-color 0.2s, background 0.2s, color 0.2s; } .uploadZone:hover { border-color: var(--brown); background: rgba(143, 65, 12, 0.05); color: var(--brown); } .hint { font-size: 0.75rem; color: var(--text-muted); } .preview { position: relative; width: 100%; max-width: 320px; aspect-ratio: 1 / 1; border-radius: var(--radius-sm); overflow: hidden; border: 1px solid var(--glass-border); background: var(--bg-mid); } .previewImg { width: 100%; height: 100%; object-fit: cover; } .removeBtn { position: absolute; top: 8px; inset-inline-start: 8px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(42, 24, 16, 0.65); color: white; transition: background 0.2s; } .removeBtn:hover { background: #9b2c2c; } .cropPanel { border: 1px solid var(--glass-border); border-radius: var(--radius-sm); overflow: hidden; background: rgba(255, 250, 250, 0.7); max-width: 420px; } .cropArea { position: relative; width: 100%; aspect-ratio: 1 / 1; background: #2a1810; } .cropControls { padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; } .zoomLabel { display: flex; align-items: center; gap: 12px; font-size: 0.85rem; color: var(--text-secondary); } .zoomLabel input { flex: 1; accent-color: var(--brown); } .cropActions { display: flex; justify-content: flex-end; gap: 8px; } .cancelBtn, .applyBtn { height: 38px; padding: 0 14px; border-radius: 10px; font-size: 0.85rem; font-weight: 500; } .cancelBtn { color: var(--text-primary); } .cancelBtn:hover { background: rgba(143, 65, 12, 0.06); } .applyBtn { color: var(--text-on-dark); background: var(--brown); } .applyBtn:hover { background: var(--brown-dark); } .applyBtn:disabled { opacity: 0.55; cursor: not-allowed; } .changeBtn { display: inline-flex; align-self: flex-start; padding: 8px 14px; font-size: 0.85rem; font-weight: 500; color: var(--brown); border: 1px solid rgba(143, 65, 12, 0.25); border-radius: 10px; cursor: pointer; transition: background 0.2s; } .changeBtn:hover { background: rgba(143, 65, 12, 0.06); }